void readDigits(){ gSystem->Load("libITSUpgradeBase"); gSystem->Load("libITSUpgradeSim"); gROOT->SetStyle("Plain"); const Int_t nLayers = 6; Int_t nbins=100; Int_t xmin=0; Int_t xmax=50000;//00*1e-09; TH1D *hNelSDig[nLayers], *hNelDig[nLayers]; for(Int_t i=0; i< nLayers; i++ ) { hNelSDig[i] = new TH1D(Form("hNelSDig%i",i),Form("electron distribution in SDigits [ Layer %i] ",i),nbins,xmin,xmax); hNelSDig[i]->SetXTitle("N electrons"); hNelDig[i] = new TH1D(Form("hNelDig%i",i),Form("electron distribution in Digits [ Layer %i] ",i),nbins,xmin,xmax); hNelDig[i]->SetXTitle("N electrons"); } const Int_t layers = 6; gAlice=NULL; AliRunLoader* runLoader = AliRunLoader::Open("galice.root"); runLoader->LoadgAlice(); gAlice = runLoader->GetAliRun(); runLoader->LoadHeader(); runLoader->LoadKinematics(); runLoader->LoadSDigits(); runLoader->LoadDigits(); AliLoader *dl = runLoader->GetDetectorLoader("ITS"); //SDIGITS INIT TTree * sDigTree = 0x0; TObjArray *sDigList= new TObjArray(layers); for(Int_t i=0; iAddAt(new TClonesArray("AliITSDigitUpgrade"),i); //DIGITS INIT TTree * digTree = 0x0; TObjArray *digList= new TObjArray(layers); for(Int_t i=0; iAddAt(new TClonesArray("AliITSDigitUpgrade"),i); printf("N Events : %i \n",(Int_t)runLoader->GetNumberOfEvents()); for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { printf("\n Event %i \n",iEvent); runLoader->GetEvent(iEvent); AliStack *s = runLoader->Stack(); sDigTree=dl->TreeS(); digTree=dl->TreeD(); for(Int_t ilayer=0; ilayerSetBranchAddress(Form("Layer%d",ilayer),&(*digList)[ilayer]); sDigTree->SetBranchAddress(Form("Layer%d",ilayer),&(*sDigList)[ilayer]); } // LOOPS digTree->GetEntry(0); sDigTree->GetEntry(0); for(Int_t il=0; ilAt(il); TClonesArray *pArrSdig= (TClonesArray*)sDigList->At(il); for(Int_t isdentry=0; isdentry< pArrSdig->GetEntries(); isdentry++) { AliITSDigitUpgrade *pSdig = (AliITSDigitUpgrade*)pArrSdig->At(isdentry); cout << " --- SDigit generated by a "<Particle(pSdig->GetTrack(0))->GetName()<<"----"<GetLayer()]->Fill(pSdig->GetNelectrons()); pSdig->PrintInfo(); } for(Int_t ientry=0; ientry< pArrDig->GetEntries(); ientry++) { cout << " --- Digit ---"<At(ientry); hNelDig[pDig->GetLayer()]->Fill(pDig->GetNelectrons()); pDig->PrintInfo(); } } }//event loop TCanvas *cSd = new TCanvas("cSd","Summable Digits",1000,800); cSd->Divide(3,2); TCanvas *cD = new TCanvas("cD","Digits",1000,800); cD->Divide(3,2); for(Int_t ip =1; ip<=6; ip++){ cSd->cd(ip); hNelSDig[ip-1]->Draw(); cD->cd(ip); hNelDig[ip-1]->Draw(); } }