]>
Commit | Line | Data |
---|---|---|
387f1a9e | 1 | void readDigits(){ |
2 | ||
3 | gSystem->Load("libITSUpgradeBase"); | |
4 | gSystem->Load("libITSUpgradeSim"); | |
5 | gROOT->SetStyle("Plain"); | |
6 | ||
7 | const Int_t nLayers = 6; | |
8 | Int_t nbins=100; | |
9 | Int_t xmin=0; | |
10 | Int_t xmax=50000;//00*1e-09; | |
11 | ||
12 | ||
13 | TH1D *hNelSDig[nLayers], *hNelDig[nLayers]; | |
14 | for(Int_t i=0; i< nLayers; i++ ) { | |
15 | hNelSDig[i] = new TH1D(Form("hNelSDig%i",i),Form("electron distribution in SDigits [ Layer %i] ",i),nbins,xmin,xmax); | |
16 | hNelSDig[i]->SetXTitle("N electrons"); | |
17 | hNelDig[i] = new TH1D(Form("hNelDig%i",i),Form("electron distribution in Digits [ Layer %i] ",i),nbins,xmin,xmax); | |
18 | hNelDig[i]->SetXTitle("N electrons"); | |
19 | } | |
20 | ||
21 | const Int_t layers = 6; | |
22 | ||
23 | gAlice=NULL; | |
24 | AliRunLoader* runLoader = AliRunLoader::Open("galice.root"); | |
25 | runLoader->LoadgAlice(); | |
26 | ||
27 | gAlice = runLoader->GetAliRun(); | |
28 | ||
29 | runLoader->LoadHeader(); | |
30 | runLoader->LoadKinematics(); | |
31 | runLoader->LoadSDigits(); | |
32 | runLoader->LoadDigits(); | |
33 | ||
34 | AliLoader *dl = runLoader->GetDetectorLoader("ITS"); | |
35 | ||
36 | ||
37 | //SDIGITS INIT | |
38 | TTree * sDigTree = 0x0; | |
39 | TObjArray *sDigList= new TObjArray(layers); | |
40 | for(Int_t i=0; i<layers; i++) sDigList->AddAt(new TClonesArray("AliITSDigitUpgrade"),i); | |
41 | ||
42 | //DIGITS INIT | |
43 | TTree * digTree = 0x0; | |
44 | TObjArray *digList= new TObjArray(layers); | |
45 | for(Int_t i=0; i<layers; i++) digList->AddAt(new TClonesArray("AliITSDigitUpgrade"),i); | |
46 | ||
47 | printf("N Events : %i \n",(Int_t)runLoader->GetNumberOfEvents()); | |
48 | ||
49 | for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { | |
50 | printf("\n Event %i \n",iEvent); | |
51 | runLoader->GetEvent(iEvent); | |
52 | AliStack *s = runLoader->Stack(); | |
53 | sDigTree=dl->TreeS(); | |
54 | digTree=dl->TreeD(); | |
55 | ||
56 | for(Int_t ilayer=0; ilayer<layers; ilayer ++) { | |
57 | digTree->SetBranchAddress(Form("Layer%d",ilayer),&(*digList)[ilayer]); | |
58 | sDigTree->SetBranchAddress(Form("Layer%d",ilayer),&(*sDigList)[ilayer]); | |
59 | } | |
60 | ||
61 | // LOOPS | |
62 | ||
63 | digTree->GetEntry(0); | |
64 | sDigTree->GetEntry(0); | |
65 | ||
66 | for(Int_t il=0; il<layers; il++){ | |
67 | TClonesArray *pArrDig= (TClonesArray*)digList->At(il); | |
68 | TClonesArray *pArrSdig= (TClonesArray*)sDigList->At(il); | |
69 | for(Int_t isdentry=0; isdentry< pArrSdig->GetEntries(); isdentry++) { | |
70 | AliITSDigitUpgrade *pSdig = (AliITSDigitUpgrade*)pArrSdig->At(isdentry); | |
71 | cout << " --- SDigit generated by a "<<s->Particle(pSdig->GetTrack(0))->GetName()<<"----"<<endl; | |
72 | hNelSDig[pSdig->GetLayer()]->Fill(pSdig->GetNelectrons()); | |
73 | pSdig->PrintInfo(); | |
74 | } | |
75 | ||
76 | for(Int_t ientry=0; ientry< pArrDig->GetEntries(); ientry++) { | |
77 | cout << " --- Digit ---"<<endl; | |
78 | AliITSDigitUpgrade *pDig = (AliITSDigitUpgrade*)pArrDig->At(ientry); | |
79 | hNelDig[pDig->GetLayer()]->Fill(pDig->GetNelectrons()); | |
80 | pDig->PrintInfo(); | |
81 | } | |
82 | } | |
83 | ||
84 | }//event loop | |
85 | TCanvas *cSd = new TCanvas("cSd","Summable Digits",1000,800); | |
86 | cSd->Divide(3,2); | |
87 | TCanvas *cD = new TCanvas("cD","Digits",1000,800); | |
88 | cD->Divide(3,2); | |
89 | ||
90 | for(Int_t ip =1; ip<=6; ip++){ | |
91 | cSd->cd(ip); | |
92 | hNelSDig[ip-1]->Draw(); | |
93 | cD->cd(ip); | |
94 | hNelDig[ip-1]->Draw(); | |
95 | } | |
96 | ||
97 | ||
98 | } |