X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFSDigits2Digits.C;h=b0c154516212cb91f24d16ecba1e65239f13287f;hb=48b634ff934842fabcb6cfedda2ada1875d97b1f;hp=8a42bee6597acfac3103823e96eee3157abefccd;hpb=32bd3eb55dee2702135321badfc0b978dd01fc18;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFSDigits2Digits.C b/TOF/AliTOFSDigits2Digits.C index 8a42bee6597..b0c15451621 100644 --- a/TOF/AliTOFSDigits2Digits.C +++ b/TOF/AliTOFSDigits2Digits.C @@ -1,17 +1,39 @@ -Int_t AliTOFSDigits2Digits(Int_t nev = 1) { +Int_t AliTOFSDigits2Digits(Int_t numberOfEvents = 0) { + + ///////////////////////////////////////////////////////////////////////// + // + // Creates TOF digits from the summable digits for all event in the header file + // + // Use case: + // start root + // // load the macro + // root[0] .L AliTOFSDigits2Digits.C + // root[1] AliTOFSDigits2Digits() + // + // By default, it creates digits for all the events in the header file. + // + // If you want create digits only the firts event + // you can use the following lines: + // + // root[0] .L AliTOFSDigits2Digits.C + // root[1] AliTOFSDigits2Digits(1) + // + // Created by: F. Pierella + // Updated to the new I/O: I.Belikov (Jouri.Belikov@cern.ch) + // + // Report problems to decaro@sa.infn.it + // + ///////////////////////////////////////////////////////////////////////// - // Adapted to the NewIO by I.Belikov (Jouri.Belikov@cern.ch) - // number 3 is a legacy from AliDigit object - Int_t rc = 0; if (gAlice) { - delete gAlice->GetRunLoader(); + delete AliRunLoader::Instance(); delete gAlice; gAlice = 0x0; } - + AliRunLoader* rl = AliRunLoader::Open("galice.root"); if (rl == 0x0) { @@ -19,22 +41,22 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { rc = 1; return rc; } - + if (rl->LoadgAlice()) { - cerr<<"Error occured while loading gAlice"<GetLoader("TOFLoader"); if (tofl == 0x0) { - cerr<<"Can not get the TOF Loader"<GetAliRun(); if (!gAlice) { @@ -42,20 +64,20 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { rc = 4; return rc; } - + tofl->LoadSDigits("read"); tofl->LoadDigits("recreate"); - + Int_t totndig=0; // total number of digits Int_t tottracks=0; // total number of tracks contributing to totndig - - if (nev>rl->GetNumberOfEvents()) nev=rl->GetNumberOfEvents(); - + + if (numberOfEvents==0) numberOfEvents=rl->GetNumberOfEvents(); + TClonesArray *fSDigits=new TClonesArray("AliTOFSDigit", 1000); TClonesArray *fDigits =new TClonesArray("AliTOFdigit", 1000); TClonesArray &da=*fDigits; - for (Int_t ievent = 0; ievent < nev; ievent++) { + for (Int_t ievent = 0; ievent < numberOfEvents; ievent++) { rl->GetEvent(ievent); TTree *sTree=tofl->TreeS(); @@ -72,8 +94,8 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { rc = 6; return rc; } - branch->SetAddress(&fSDigits); - + branch->SetAddress(&fSDigits); + TTree *dTree=tofl->TreeD(); if (dTree == 0) { tofl->MakeTree("D"); @@ -86,15 +108,15 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { Int_t nEntries = sTree->GetEntries(); for (Int_t iEntry = 0; iEntry < nEntries; iEntry++) { sTree->GetEvent(iEntry); - + Int_t ndig = fSDigits->GetEntriesFast(); - cout << "--------------------------------" << endl; + cout << "-------------------------------- \n"; cout << "Found " << ndig << " TOF SDigits for event " << ievent << endl; - cout << "------------------------------------------------------" << endl; + cout << "------------------------------------------------------ \n"; for (Int_t k = 0; k < ndig; k++) { Int_t vol[5]; // location for a digit - + // Get the information for this digit AliTOFSDigit *tofsdigit = (AliTOFSDigit *)fSDigits->UncheckedAt(k); @@ -102,11 +124,11 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { // for current sdigit // TOF sdigit volumes (always the same for all slots) - Int_t sector = tofsdigit->GetSector(); // range [1-18] - Int_t plate = tofsdigit->GetPlate(); // range [1- 5] - Int_t strip = tofsdigit->GetStrip(); // range [1-20] - Int_t padz = tofsdigit->GetPadz(); // range [1- 2] - Int_t padx = tofsdigit->GetPadx(); // range [1-48] + Int_t sector = tofsdigit->GetSector(); // range [0-17] + Int_t plate = tofsdigit->GetPlate(); // range [0- 4] + Int_t strip = tofsdigit->GetStrip(); // range [0-19] + Int_t padz = tofsdigit->GetPadz(); // range [0- 1] + Int_t padx = tofsdigit->GetPadx(); // range [0-47] vol[0] = sector; vol[1] = plate; @@ -116,14 +138,14 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { //--------------------- QA section ---------------------- // in the while, I perform QA - Bool_t isSDigitBad = (sector<1 || sector>18 || - plate<1 || plate >5 || - padz<1 || padz>2 || - padx<1 || padx>48); + Bool_t isSDigitBad = (sector<0 || sector>17 || + plate<0 || plate >4 || + padz<0 || padz>1 || + padx<0 || padx>47); if (isSDigitBad) { - cout << " strange sdigit found" << endl; + cout << " strange sdigit found \n"; rc = 7; return rc; } @@ -131,10 +153,11 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { // start loop on number of slots for current sdigit for (Int_t islot = 0; islot < nslot; islot++) { - Float_t digit[2]; // TOF digit variables - const Int_t kMAXDIGITS = 3; - Int_t tracknum[kMAXDIGITS];//contributing tracks for the current slot - + Float_t digit[2]; // TOF digit variables + const Int_t kMAXDIGITS = 3; // number 3 is a legacy from AliDigit object + + Int_t tracknum[kMAXDIGITS]; //contributing tracks for the current slot + Float_t tdc=tofsdigit->GetTdc(islot); digit[0]=tdc; Float_t adc=tofsdigit->GetAdc(islot); digit[1]=adc; @@ -159,10 +182,9 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { totndig++; } - } // end loop on sdigits fSDigits->Clear(); - + } // end loop on entries dTree->Fill(); @@ -175,20 +197,20 @@ Int_t AliTOFSDigits2Digits(Int_t nev = 1) { delete fSDigits; delete fDigits; - + tofl->UnloadDigits(); tofl->UnloadSDigits(); rl->UnloadHeader(); rl->UnloadgAlice(); - - cout << "----------------------------------------------------------" << endl; - cout << " Summary" << endl; - cout << "contributing tracks to " << totndig << " digits: " << tottracks << endl; - cout << "----------------------------------------------------------" << endl; + + cout << "---------------------------------------------------------- \n"; + cout << " Summary \n"; + cout << "contributing tracks to " << totndig << " digits: " << tottracks << endl; + cout << "---------------------------------------------------------- \n"; if (gAlice) { - delete gAlice->GetRunLoader(); + delete AliRunLoader::Instance(); delete gAlice; gAlice = 0x0; }