1 ReadImpacts(Int_t nEvents=1,char* file="galice.root")
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
8 // Yuri Kharlov 4 June 2001
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()->
15 fPHOS->GetGeometry()->GetTitle() ) ;
16 Int_t nPHOSModules = fGeom->GetNModules();
17 Int_t nCPVModules = fGeom->GetNCPVModules();
18 Int_t nPPSDModules = fGeom->GetNPPSDModules();
20 TBranch * branchEMCimpacts;
21 TBranch * branchCPVimpacts;
22 TBranch * branchPPSDimpacts;
25 TList * fPpsdImpacts ;
28 for (Int_t iEvent=0; iEvent<nEvents; iEvent++) {
29 printf("===========> Event %5d <====================\n",iEvent);
30 gAlice->GetEvent(iEvent) ;
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;
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);
47 TClonesArray *impacts;
48 AliPHOSImpact *impact;
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);
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);
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);