--- yoda/techmodel/CalibTrk1Reader.cpp 2004/12/03 22:08:00 2.2 +++ yoda/techmodel/CalibTrk1Reader.cpp 2005/08/29 09:46:13 5.0 @@ -1,6 +1,6 @@ /** @file * $Source: /home/cvsmanager/yoda/techmodel/CalibTrk1Reader.cpp,v $ - * $Id: CalibTrk1Reader.cpp,v 2.1 2004/10/17 12:28:38 kusanagi Exp $ + * $Id: CalibTrk1Reader.cpp,v 4.4 2005/05/28 10:44:11 kusanagi Exp $ * $Author: kusanagi $ * * Implementation of the LogReader class. @@ -34,9 +34,9 @@ int nbad_l2[6]; int nbad_l3[6]; int cal_flag[6]; - int DSPped_par[6][3072]; + float DSPped_par[6][3072]; float DSPsig_par[6][3072]; - float DSPbad_par[6][3072]; + int DSPbad_par[6][3072]; } trkcalib_; #include } @@ -67,7 +67,7 @@ */ std::string CalibTrk1Reader::GetVersionInfo(void) const { return - "$Header: /home/cvsmanager/yoda/techmodel/CalibTrk1Reader.cpp,v 2.1 2004/10/17 12:28:38 kusanagi Exp $\n"; + "$Header: /home/cvsmanager/yoda/techmodel/CalibTrk1Reader.cpp,v 4.4 2005/05/28 10:44:11 kusanagi Exp $\n"; } /** @@ -92,24 +92,25 @@ //Scrivo un file temporaneo per passarlo alla routine //Speriamo di cambiare la routine per passargli un buffer..... - DIR *dirp; - std::string pathDir((char*)getenv("YODA_DATA")); - pathDir = pathDir + "/todatemp.dat";; + oss.str(""); + oss << getenv("YODA_DATA") << "/" << time(NULL) << "trc1.dat"; FILE *pfile; - pfile = fopen((char*)pathDir.c_str(), "wb"); + pfile = fopen(oss.str().c_str(), "wb"); fwrite(subData, 1, dataLength, pfile); fclose(pfile); //Call to the FORTRAN routin that unpack tracker events - trkcalibpkt_(&ERROR, (char*)pathDir.c_str()); + trkcalibpkt_(&ERROR, (char*)oss.str().c_str()); + calibTrk1->unpackError = ERROR; + remove(oss.str().c_str()); if (ERROR != 0) { oss.str(""); oss << "Fortran77 function trkcalibpkt error code = " << ERROR; logger->warn(oss.str().c_str()); } - remove((char*)pathDir.c_str()); + remove((char*)oss.str().c_str()); //Store the unpacked data memcpy(calibTrk1->DAQmode, trkcalib_.DAQmode, sizeof(calibTrk1->DAQmode)); @@ -130,12 +131,12 @@ // memcpy(calibTrk1->DSPped_par, trkcalib_.DSPped_par, sizeof(calibTrk1->DSPped_par)); // memcpy(calibTrk1->DSPsig_par, trkcalib_.DSPsig_par, sizeof(calibTrk1->DSPsig_par)); //--------have to invert array because of FORTRAN <-> C different management of the indexes - int tempBad_par[3072][6]; - int tempPed_par[3072][6]; - int tempSig_par[3072][6]; - memcpy(calibTrk1->DSPbad_par,trkcalib_.DSPbad_par, sizeof(calibTrk1->DSPbad_par)); - memcpy(calibTrk1->DSPped_par,trkcalib_.DSPped_par, sizeof(calibTrk1->DSPped_par)); - memcpy(calibTrk1->DSPsig_par,trkcalib_.DSPsig_par, sizeof(calibTrk1->DSPsig_par)); + int tempBad_par[3072][6]; + float tempPed_par[3072][6]; + float tempSig_par[3072][6]; + memcpy(tempBad_par,trkcalib_.DSPbad_par, sizeof(tempBad_par)); + memcpy(tempPed_par,trkcalib_.DSPped_par, sizeof(tempPed_par)); + memcpy(tempSig_par,trkcalib_.DSPsig_par, sizeof(tempSig_par)); for (int i = 0; i < 6; i++){ for (int j = 0; j < 3072; j++){ @@ -145,7 +146,7 @@ } } //----------------------------------------------------------------------------------------- - delete [] subData; + }