// ----------------------------------------------------// // // // This is a macro to read PMD.Digits.root // // // // ----------------------------------------------------// #include "Riostream.h" #include "TROOT.h" #include "TFile.h" #include "TNetFile.h" #include "TRandom.h" #include "TTree.h" #include "TBranch.h" #include "TClonesArray.h" #include "TStopwatch.h" #include void AliPMDDigitsRead(Int_t nevt = 1) { TStopwatch timer; timer.Start(); // FILE *fp = fopen("junk.dat","w"); AliRunLoader *fRunLoader = AliRunLoader::Open("galice.root"); if (!fRunLoader) { Error("Open","Can not open session for file %s.",file); } fRunLoader->LoadgAlice(); fRunLoader->LoadHeader(); gAlice = fRunLoader->GetAliRun(); if (gAlice) { printf("AliRun object found on file.\n"); } else { printf("Could not find AliRun object.\n"); } fPMD = (AliPMD*)gAlice->GetDetector("PMD"); fPMDLoader = fRunLoader->GetLoader("PMDLoader"); if (fPMDLoader == 0x0) { cerr<<"OpengAlice : Can not find PMD or PMDLoader\n"; } fPMDLoader->LoadDigits("READ"); TClonesArray *fDigits; // -------------------------------------------------------------- // Int_t det = 0,smn = 0; Int_t xpos,ypos; Float_t adc; Int_t isup; Int_t idet; Float_t clusdata[7]; for (Int_t ievt = 2; ievt GetEvent(ievt); fTreeD = fPMDLoader->TreeD(); if (fTreeD == 0x0) { cout << " Can not get TreeD" << endl; } AliPMDdigit *pmddigit; TBranch *branch = fTreeD->GetBranch("PMDDigit"); branch->SetAddress(&fDigits); Int_t nmodules = (Int_t) fTreeD->GetEntries(); cout << " Total number of modules in an event = " << nmodules << endl; for (Int_t imodule = 0; imodule < nmodules; imodule++) { fTreeD->GetEntry(imodule); Int_t nentries = fDigits->GetLast(); cout << "nentries = " << nentries << endl; for (Int_t ient = 0; ient < nentries+1; ient++) { pmddigit = (AliPMDdigit*)fDigits->UncheckedAt(ient); det = pmddigit->GetDetector(); smn = pmddigit->GetSMNumber(); xpos = pmddigit->GetRow(); ypos = pmddigit->GetColumn(); adc = pmddigit->GetADC(); Int_t trno = pmddigit->GetTrackNumber(); //fprintf(fp,"%d %d %d %d %f \n ",ievt,smn,xpos,ypos,adc); } } // modules } timer.Stop(); timer.Print(); }