--- yoda/techmodel/physics/NeutronDetectorReader.cpp 2005/03/05 15:54:21 2.3.2.1 +++ yoda/techmodel/physics/NeutronDetectorReader.cpp 2006/08/16 08:20:29 6.1 @@ -22,7 +22,7 @@ */ std::string NeutronDetectorReader::GetVersionInfo(void) const { return - "$Header: /home/cvsmanager/yoda/techmodel/physics/NeutronDetectorReader.cpp,v 3.0 2005/03/04 15:54:11 kusanagi Exp $"; + "$Header: /home/cvsmanager/yoda/techmodel/physics/NeutronDetectorReader.cpp,v 6.0 2006/02/07 17:11:11 kusanagi Exp $"; } /** @@ -53,33 +53,31 @@ /** * Unpack the NeutronDetector data event from the physical packet. */ -void NeutronDetectorReader::RunEvent(int EventNumber, const char subData[], long int lenght) { +void NeutronDetectorReader::RunEvent(int EventNumber, const char subData[], long int length) { NeutronRecord *rec; const int lenNeutronData = 12; - char *data = new char[lenght]; - memcpy(data, subData, lenght); + //char *data = new char[lenght]; + //memcpy(data, subData, lenght); neutronEvent->Records->Clear(); TClonesArray &recs = *(neutronEvent->Records); int offset; - if (haveData(data, lenght)){ + if (haveData(&*subData, length)){ for (int i = 0; i < 3; i++){ offset = lenNeutronData - 4*i; rec = new(recs[i]) NeutronRecord(); //aggiungo un nuovo NeutronRecord all'evento - rec->trigPhysics = (UINT8)data[lenght-offset]; - rec->upperBack = (((UINT8)data[lenght-offset+1])>>4); - rec->bottomBack = (((UINT8)data[lenght-offset+1])&0x0F); + rec->trigPhysics = (UINT8)subData[length-offset]; + rec->upperBack = (((UINT8)subData[length-offset+1])>>4); + rec->bottomBack = (((UINT8)subData[length-offset+1])&0x0F); } neutronEvent->unpackError = 0; } else { neutronEvent->unpackError = 1; } - delete [] data; } -bool NeutronDetectorReader::haveData(const char data[], long int lenght){ +bool NeutronDetectorReader::haveData(const char data[], long int length){ bool ret = false; - if (((data[lenght-1] && data[lenght - 5] && data[lenght - 9]) && 0x0F) && - ((data[lenght-2] | data[lenght - 6] | data[lenght - 10]) == 0x00)) ret = true; + if (((UINT8)data[length - 1] == 0x0F)&&((UINT8)data[length - 5] == 0x0F)&&((UINT8)data[length - 9] == 0x0F)) ret = true; return ret; }