X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFRawDataRead.C;h=1629e9bdbe612074d68da823664497662fa2b1cc;hb=934558d8d2bc39c2a79fe1cad461525bdba0515b;hp=de24f1e74677f7cf3c88ecc9c0a92ee7c764037c;hpb=362c9d61708912a81d77cb017e1d05fd1f9486a6;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFRawDataRead.C b/TOF/AliTOFRawDataRead.C index de24f1e7467..1629e9bdbe6 100644 --- a/TOF/AliTOFRawDataRead.C +++ b/TOF/AliTOFRawDataRead.C @@ -1,48 +1,117 @@ -void AliTOFRawDataRead(Int_t iEvent=0) +#if !defined(__CINT__) || defined(__MAKECINT__) + +// Root include files +#include "TClonesArray.h" + +// AliRoot include files +#include "AliDAQ.h" +#include "AliHitMap.h" + +#include "AliRawReader.h" +#include "AliRawReaderFile.h" + +#include "AliTOFrawData.h" +#include "AliTOFRawMap.h" +#include "AliTOFRawStream.h" + +#endif + +void AliTOFRawDataRead(Int_t iEvent=0); + +void AliTOFRawDataRead(Int_t iEvent) { // // To read TOF raw data // - Int_t indexDDL = 0; + 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 detectorIndex[5] = {-1, -1, -1, -1, -1}; + Int_t dummy = -1; + + AliRawReader *reader = new AliRawReaderFile(iEvent); + reader->RewindEvents(); - AliRawReaderFile reader(ievt); + ofstream ftxt; + ftxt.open("TOFrawDataReading.txt",ios::app); - for (indexDDL = 0; indexDDL < 72; indexDDL++) { + while (reader->NextEvent()) { - reader.Reset(); - AliTOFRawStream stream(&reader); - reader.Select("TOF", indexDDL, indexDDL); + AliTOFRawMap *rawMap = new AliTOFRawMap(clonesRawData); - //FILE *fpw = fopen("TOFrawDataRead.txt","w"); + Int_t slot[4] = {-1, -1, -1, -1}; - while(stream.Next()) { + for (Int_t indexDDL = 0; indexDDL < AliDAQ::NumberOfDdls("TOF"); indexDDL++) { - if (stream.GetSector()==0) { + reader->Reset(); + AliTOFRawStream stream(reader); + stream.LoadRawData(indexDDL); - printf("%2i %2i %2i %2i %2i %1i %2i %1i %2i %7i %8i\n", - stream.GetDDL(),stream.GetTRM(), - stream.GetTDC(),stream.GetChannel(), - stream.GetSector(),stream.GetPlate(), - stream.GetStrip(),stream.GetPadZ(),stream.GetPadX(), - stream.GetADCbin(),stream.GetTofBin()); - /* - Int_t iSector = stream.GetSector(); - Int_t iPlate = stream.GetPlate(); - Int_t iStrip = stream.GetStrip(); - Int_t iPadZ = stream.GetPadZ(); - Int_t iPadX = stream.GetPadX(); - Int_t iTof = stream.GetTofBin(); - Int_t iAdc = stream.GetADCbin(); - - fprintf(fpw,"%2i %1i %2i %1i %2i %8i %7i\n", - iSector, iPlate, iStrip, iPadZ, iPadX, iTof, iAdc); - */ + clonesRawData = (TClonesArray*)stream.GetRawData(); - } + for (Int_t iRawData = 0; iRawDataGetEntriesFast(); iRawData++) { - } + tofRawDatum = (AliTOFrawData*)clonesRawData->UncheckedAt(iRawData); - } + if (tofRawDatum->GetTOT()==-1 || tofRawDatum->GetTOF()==-1) continue; + + if (indexDDL<10) ftxt << " " << indexDDL; + else ftxt << " " << indexDDL; + if (tofRawDatum->GetTRM()<10) ftxt << " " << tofRawDatum->GetTRM(); + else ftxt << " " << tofRawDatum->GetTRM(); + ftxt << " " << tofRawDatum->GetTRMchain(); + if (tofRawDatum->GetTDC()<10) ftxt << " " << tofRawDatum->GetTDC(); + else ftxt << " " << tofRawDatum->GetTDC(); + ftxt << " " << tofRawDatum->GetTDCchannel(); + + stream.EquipmentId2VolumeId(indexDDL, tofRawDatum->GetTRM(), tofRawDatum->GetTRMchain(), + tofRawDatum->GetTDC(), tofRawDatum->GetTDCchannel(), detectorIndex); + dummy = detectorIndex[3]; + detectorIndex[3] = detectorIndex[4]; + detectorIndex[4] = dummy; + + if (detectorIndex[0]<10) ftxt << " -> " << detectorIndex[0]; + else ftxt << " -> " << detectorIndex[0]; + ftxt << " " << detectorIndex[1]; + if (detectorIndex[2]<10) ftxt << " " << detectorIndex[2]; + else ftxt << " " << detectorIndex[2]; + ftxt << " " << detectorIndex[3]; + 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 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 + + iEvent++; + + } // end while loop on event + + ftxt.close(); + TFile fileOut("TOF_rawQA_OldDecoder.root", "RECREATE"); + PackedDataTree->Write(); + fileOut.Close(); } +