]>
Commit | Line | Data |
---|---|---|
1 | ReadImpacts(Int_t nEvents=1,char* file="galice.root") | |
2 | { | |
3 | ||
4 | // Script reads PHOS impacts and prints them | |
5 | // Impacts are exacts values of the track coming to EMC, CPV or PPSD | |
6 | // and was stored to separate branches of TreeH by AliPHOSvImpacts | |
7 | // | |
8 | // Yuri Kharlov 4 June 2001 | |
9 | ||
10 | f = new TFile(file,"readonly"); | |
11 | (AliRun*)gAlice=(AliRun*)f->Get("gAlice"); | |
12 | AliPHOSvImpacts * fPHOS = (AliPHOSvImpacts *)gAlice->GetDetector("PHOS") ; | |
13 | AliPHOSGeometry * fGeom = AliPHOSGeometry::GetInstance(fPHOS->GetGeometry()-> | |
14 | GetName(), | |
15 | fPHOS->GetGeometry()->GetTitle() ) ; | |
16 | Int_t nPHOSModules = fGeom->GetNModules(); | |
17 | Int_t nCPVModules = fGeom->GetNCPVModules(); | |
18 | Int_t nPPSDModules = fGeom->GetNPPSDModules(); | |
19 | ||
20 | TBranch * branchEMCimpacts; | |
21 | TBranch * branchCPVimpacts; | |
22 | TBranch * branchPPSDimpacts; | |
23 | TList * fEmcImpacts ; | |
24 | TList * fCpvImpacts ; | |
25 | TList * fPpsdImpacts ; | |
26 | ||
27 | // Loop over events | |
28 | for (Int_t iEvent=0; iEvent<nEvents; iEvent++) { | |
29 | printf("===========> Event %5d <====================\n",iEvent); | |
30 | gAlice->GetEvent(iEvent) ; | |
31 | ||
32 | // Get branches EMC, CPV and PPSD impacts | |
33 | if (! (branchEMCimpacts =gAlice->TreeH()->GetBranch("PHOSEmcImpacts")) ) return 1; | |
34 | if (! (branchCPVimpacts =gAlice->TreeH()->GetBranch("PHOSCpvImpacts")) ) return 1; | |
35 | if (! (branchPPSDimpacts=gAlice->TreeH()->GetBranch("PHOSPpsdImpacts")) ) return 1; | |
36 | ||
37 | // Loop over primary tracks | |
38 | for (itrack=0; itrack < gAlice->GetNtrack(); itrack++){ | |
39 | // Set addresses of impacts | |
40 | branchEMCimpacts ->SetAddress(&fEmcImpacts) ; | |
41 | branchCPVimpacts ->SetAddress(&fCpvImpacts) ; | |
42 | branchPPSDimpacts->SetAddress(&fPpsdImpacts) ; | |
43 | branchEMCimpacts ->GetEntry(itrack,0); | |
44 | branchCPVimpacts ->GetEntry(itrack,0); | |
45 | branchPPSDimpacts->GetEntry(itrack,0); | |
46 | ||
47 | TClonesArray *impacts; | |
48 | AliPHOSImpact *impact; | |
49 | Int_t iModule; | |
50 | ||
51 | // Do loop over EMC modules | |
52 | for (iModule=0; iModule<nPHOSModules; iModule++) { | |
53 | impacts = (TClonesArray *)fEmcImpacts->At(iModule); | |
54 | // Do loop over impacts in the module | |
55 | for (Int_t iImpact=0; iImpact<impacts->GetEntries(); iImpact++) { | |
56 | impact=(AliPHOSImpact*)impacts->At(iImpact); | |
57 | printf("EMC module %d: ",iModule); | |
58 | impact->Print(); | |
59 | } | |
60 | } | |
61 | ||
62 | // Do loop over CPV modules | |
63 | for (iModule=0; iModule<nCPVModules; iModule++) { | |
64 | impacts = (TClonesArray *)fCpvImpacts->At(iModule); | |
65 | // Do loop over impacts in the module | |
66 | for (Int_t iImpact=0; iImpact<impacts->GetEntries(); iImpact++) { | |
67 | impact=(AliPHOSImpact*)impacts->At(iImpact); | |
68 | printf("CPV module %d: ",iModule); | |
69 | impact->Print(); | |
70 | } | |
71 | } | |
72 | ||
73 | // Do loop over PPSD modules | |
74 | for (iModule=0; iModule<nPPSDModules; iModule++) { | |
75 | impacts = (TClonesArray *)fPpsdImpacts->At(iModule); | |
76 | // Do loop over impacts in the module | |
77 | for (Int_t iImpact=0; iImpact<impacts->GetEntries(); iImpact++) { | |
78 | impact=(AliPHOSImpact*)impacts->At(iImpact); | |
79 | printf("PPSD Module %d: ",iModule); | |
80 | impact->Print(); | |
81 | } | |
82 | } | |
83 | ||
84 | } | |
85 | } | |
86 | } |