X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFRawDataRead.C;h=1629e9bdbe612074d68da823664497662fa2b1cc;hb=941603c023b092ec7d873264b0837cc5abb15fbd;hp=94ed79fe75ea1438f65b9131a196438fa22f92e6;hpb=15ec34b9b6683053e9966529840b49637e5ce0e0;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFRawDataRead.C b/TOF/AliTOFRawDataRead.C index 94ed79fe75e..1629e9bdbe6 100644 --- a/TOF/AliTOFRawDataRead.C +++ b/TOF/AliTOFRawDataRead.C @@ -1,7 +1,3 @@ -// gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/RAW -I$ALICE_ROOT/TOF") -// .L AliTOFRawDataRead.C++ -// AliTOFRawDataRead() - #if !defined(__CINT__) || defined(__MAKECINT__) // Root include files @@ -28,84 +24,39 @@ void AliTOFRawDataRead(Int_t iEvent) // To read TOF raw data // - TClonesArray *fTOFrawData = new TClonesArray("AliTOFrawData",1000); + AliTOFrawData *tofRawDatum=new AliTOFrawData(); + TTree *PackedDataTree= new TTree("PackedDataTree", "Decoded Packed Data"); + PackedDataTree->Branch("HitData", "AliTOFrawData", &tofRawDatum); + + TClonesArray *clonesRawData = new TClonesArray("AliTOFrawData",1000); Int_t fPackedDigits=0; - Int_t indexDDL = 0; Int_t detectorIndex[5] = {-1, -1, -1, -1, -1}; Int_t dummy = -1; - AliRawReaderFile reader(iEvent); - reader.RewindEvents(); + AliRawReader *reader = new AliRawReaderFile(iEvent); + reader->RewindEvents(); ofstream ftxt; ftxt.open("TOFrawDataReading.txt",ios::app); - while (reader.NextEvent()) { + while (reader->NextEvent()) { - AliTOFRawMap *rawMap = new AliTOFRawMap(fTOFrawData); + AliTOFRawMap *rawMap = new AliTOFRawMap(clonesRawData); Int_t slot[4] = {-1, -1, -1, -1}; - for (indexDDL = 0; indexDDL < AliDAQ::NumberOfDdls("TOF"); indexDDL++) { - - rawMap->Clear(); - fTOFrawData->Clear(); - fPackedDigits = 0; - - printf(" \n \n \n DRM number %2i \n \n \n ", indexDDL); - - reader.Reset(); - AliTOFRawStream stream(&reader); - - reader.Select("TOF", indexDDL, indexDDL); - Bool_t signal = kFALSE; - - while(stream.Next()) { - - signal = (stream.GetSector()!=-1 && - stream.GetPlate()!=-1 && - stream.GetStrip()!=-1 && - stream.GetPadZ()!=-1 && - stream.GetPadX()!=-1); - - if (signal) { - printf(" %2i %1i %2i %1i %2i \n", stream.GetSector(), stream.GetPlate(), stream.GetStrip(), stream.GetPadZ(), stream.GetPadX()); - - slot[0] = stream.GetTRM(); - slot[1] = stream.GetTRMchain(); - slot[2] = stream.GetTDC(); - slot[3] = stream.GetTDCchannel(); + for (Int_t indexDDL = 0; indexDDL < AliDAQ::NumberOfDdls("TOF"); indexDDL++) { - if (rawMap->TestHit(slot) != kEmpty) { + reader->Reset(); + AliTOFRawStream stream(reader); + stream.LoadRawData(indexDDL); - AliTOFrawData *rawDigit = static_cast(rawMap->GetHit(slot)); - rawDigit->Update(stream.GetTofBin(), stream.GetToTbin(), stream.GetLeadingEdge(), stream.GetTrailingEdge(), stream.GetPSbit(), stream.GetACQ(), stream.GetErrorFlag()); + clonesRawData = (TClonesArray*)stream.GetRawData(); - } - else { + for (Int_t iRawData = 0; iRawDataGetEntriesFast(); iRawData++) { - TClonesArray &arrayTofRawData = *fTOFrawData; - new (arrayTofRawData[fPackedDigits++]) AliTOFrawData(stream.GetTRM(), stream.GetTRMchain(), stream.GetTDC(), stream.GetTDCchannel(), - stream.GetTofBin(), stream.GetToTbin(), stream.GetLeadingEdge(), stream.GetTrailingEdge(), - stream.GetPSbit(), stream.GetACQ(), stream.GetErrorFlag()); - - rawMap->SetHit(slot); - - printf(" %6i \n", rawMap->GetHitIndex(slot)); - - } - - } // end if (signal) - - } // closed loop on TOF raw data per current DDL file - - printf("\n \n \n end of reading DRM number %2i\n", indexDDL); - printf(" packed data %5i\n \n \n ", fTOFrawData->GetEntriesFast()); - - for (Int_t iRawData = 0; iRawDataGetEntriesFast(); iRawData++) { - - AliTOFrawData *tofRawDatum = (AliTOFrawData*)fTOFrawData->UncheckedAt(iRawData); + tofRawDatum = (AliTOFrawData*)clonesRawData->UncheckedAt(iRawData); if (tofRawDatum->GetTOT()==-1 || tofRawDatum->GetTOF()==-1) continue; @@ -133,14 +84,22 @@ void AliTOFRawDataRead(Int_t iEvent) if (detectorIndex[4]<10) ftxt << " " << detectorIndex[4]; else ftxt << " " << detectorIndex[4]; - if (tofRawDatum->GetTOT()<10) ftxt << " " << tofRawDatum->GetTOT(); - else if (tofRawDatum->GetTOT()>=10 && tofRawDatum->GetTOT()<100) ftxt << " " << tofRawDatum->GetTOT(); - else ftxt << " " << tofRawDatum->GetTOT(); - if (tofRawDatum->GetTOF()<10) ftxt << " " << tofRawDatum->GetTOF() << endl; - else if (tofRawDatum->GetTOF()>=10 && tofRawDatum->GetTOF()<100) ftxt << " " << tofRawDatum->GetTOF() << endl; - else if (tofRawDatum->GetTOF()>=100 && tofRawDatum->GetTOF()<1000) ftxt << " " << tofRawDatum->GetTOF() << endl; - else ftxt << " " << tofRawDatum->GetTOF() << endl; - + if (tofRawDatum->GetTOT()<10) ftxt << " " << tofRawDatum->GetTOT(); + else if (tofRawDatum->GetTOT()>=10 && tofRawDatum->GetTOT()<100) ftxt << " " << tofRawDatum->GetTOT(); + else if (tofRawDatum->GetTOT()>=100 && tofRawDatum->GetTOT()<1000) ftxt << " " << tofRawDatum->GetTOT(); + else if (tofRawDatum->GetTOT()>=1000 && tofRawDatum->GetTOT()<10000) ftxt << " " << tofRawDatum->GetTOT(); + else if (tofRawDatum->GetTOT()>=10000 && tofRawDatum->GetTOT()<100000) ftxt << " " << tofRawDatum->GetTOT(); + else if (tofRawDatum->GetTOT()>=100000 && tofRawDatum->GetTOT()<1000000) ftxt << " " << tofRawDatum->GetTOT(); + else ftxt << " " << tofRawDatum->GetTOT(); + if (tofRawDatum->GetTOF()<10) ftxt << " " << tofRawDatum->GetTOF() << endl; + else if (tofRawDatum->GetTOF()>=10 && tofRawDatum->GetTOF()<100) ftxt << " " << tofRawDatum->GetTOF() << endl; + else if (tofRawDatum->GetTOF()>=100 && tofRawDatum->GetTOF()<1000) ftxt << " " << tofRawDatum->GetTOF() << endl; + else if (tofRawDatum->GetTOF()>=1000 && tofRawDatum->GetTOF()<10000) ftxt << " " << tofRawDatum->GetTOF() << endl; + else if (tofRawDatum->GetTOF()>=10000 && tofRawDatum->GetTOF()<100000) ftxt << " " << tofRawDatum->GetTOF() << endl; + else if (tofRawDatum->GetTOF()>=100000 && tofRawDatum->GetTOF()<1000000) ftxt << " " << tofRawDatum->GetTOF() << endl; + else ftxt << " " << tofRawDatum->GetTOF() << endl; + + PackedDataTree->Fill(); } // end loop } // endl loop on DDL files @@ -150,5 +109,9 @@ void AliTOFRawDataRead(Int_t iEvent) } // end while loop on event ftxt.close(); + TFile fileOut("TOF_rawQA_OldDecoder.root", "RECREATE"); + PackedDataTree->Write(); + fileOut.Close(); } +