]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Script to read impacts generated by AliPHOSvImpacts
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 5 Jun 2001 16:47:45 +0000 (16:47 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 5 Jun 2001 16:47:45 +0000 (16:47 +0000)
PHOS/ReadImpacts.C [new file with mode: 0644]

diff --git a/PHOS/ReadImpacts.C b/PHOS/ReadImpacts.C
new file mode 100644 (file)
index 0000000..81b80a1
--- /dev/null
@@ -0,0 +1,86 @@
+ReadImpacts(Int_t nEvents=1,char* file="galice.root")
+{
+
+  // Script reads PHOS impacts and prints them
+  // Impacts are exacts values of the track coming to EMC, CPV or PPSD
+  // and was stored to separate branches of TreeH by AliPHOSvImpacts
+  //
+  // Yuri Kharlov 4 June 2001
+
+  f = new TFile(file,"readonly");
+  (AliRun*)gAlice=(AliRun*)f->Get("gAlice");
+  AliPHOSvImpacts *  fPHOS  = (AliPHOSvImpacts *)gAlice->GetDetector("PHOS") ;
+  AliPHOSGeometry *  fGeom  = AliPHOSGeometry::GetInstance(fPHOS->GetGeometry()->
+                                                           GetName(),
+                                                           fPHOS->GetGeometry()->GetTitle() ) ;
+  Int_t nPHOSModules = fGeom->GetNModules();
+  Int_t nCPVModules  = fGeom->GetNCPVModules();
+  Int_t nPPSDModules = fGeom->GetNPPSDModules();
+
+  TBranch * branchEMCimpacts;
+  TBranch * branchCPVimpacts;
+  TBranch * branchPPSDimpacts;
+  TList * fEmcImpacts ;
+  TList * fCpvImpacts ;
+  TList * fPpsdImpacts ;
+
+  // Loop over events
+  for (Int_t iEvent=0; iEvent<nEvents; iEvent++) {
+    printf("===========> Event %5d <====================\n",iEvent);
+    gAlice->GetEvent(iEvent) ;
+    
+    // Get branches EMC, CPV and PPSD impacts
+    if (! (branchEMCimpacts =gAlice->TreeH()->GetBranch("PHOSEmcImpacts")) )  return 1;
+    if (! (branchCPVimpacts =gAlice->TreeH()->GetBranch("PHOSCpvImpacts")) )  return 1;
+    if (! (branchPPSDimpacts=gAlice->TreeH()->GetBranch("PHOSPpsdImpacts")) ) return 1;
+    
+    // Loop over primary tracks
+    for (itrack=0; itrack < gAlice->GetNtrack(); itrack++){
+      // Set addresses of impacts
+      branchEMCimpacts ->SetAddress(&fEmcImpacts) ;
+      branchCPVimpacts ->SetAddress(&fCpvImpacts) ;
+      branchPPSDimpacts->SetAddress(&fPpsdImpacts) ;
+      branchEMCimpacts ->GetEntry(itrack,0);
+      branchCPVimpacts ->GetEntry(itrack,0);
+      branchPPSDimpacts->GetEntry(itrack,0);
+      
+      TClonesArray  *impacts;
+      AliPHOSImpact *impact;
+      Int_t iModule;
+
+      // Do loop over EMC modules
+      for (iModule=0; iModule<nPHOSModules; iModule++) {
+       impacts = (TClonesArray *)fEmcImpacts->At(iModule);
+       // Do loop over impacts in the module
+       for (Int_t iImpact=0; iImpact<impacts->GetEntries(); iImpact++) {
+         impact=(AliPHOSImpact*)impacts->At(iImpact);
+         printf("EMC  module %d: ",iModule);
+         impact->Print();
+       }
+      }
+
+      // Do loop over CPV modules
+      for (iModule=0; iModule<nCPVModules; iModule++) {
+       impacts = (TClonesArray *)fCpvImpacts->At(iModule);
+       // Do loop over impacts in the module
+       for (Int_t iImpact=0; iImpact<impacts->GetEntries(); iImpact++) {
+         impact=(AliPHOSImpact*)impacts->At(iImpact);
+         printf("CPV  module %d: ",iModule);
+         impact->Print();
+       }
+      }
+
+      // Do loop over PPSD modules
+      for (iModule=0; iModule<nPPSDModules; iModule++) {
+       impacts = (TClonesArray *)fPpsdImpacts->At(iModule);
+       // Do loop over impacts in the module
+       for (Int_t iImpact=0; iImpact<impacts->GetEntries(); iImpact++) {
+         impact=(AliPHOSImpact*)impacts->At(iImpact);
+         printf("PPSD Module %d: ",iModule);
+         impact->Print();
+       }
+      }
+
+    }
+  }
+}