]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/STEER/AliTransportMonitor.h
Rudimentary merging added.
[u/mrichter/AliRoot.git] / STEER / STEER / AliTransportMonitor.h
index 7300016cefa0d440f09f9f0897d51a76bf95392f..a28e4b1f6d995a0605d83255b0d08b80c8f0da48 100644 (file)
 #include "TStopwatch.h"
 #endif
 
+#ifndef ROOT_TH2F
+#include "TH2F.h"
+#endif
+
 // Class that can be plugged in the simulation to monitor transport timing per 
 // particle for each geometry volume.
 //
 //  andrei.gheata@cern.ch 
 
-class TH2F;
 
 
 //______________________________________________________________________________
@@ -34,6 +37,7 @@ public:
       Double_t      fEdt;        // Energy * dt integral
       Double_t      fTime;       // Total transport time for the particle in this volume
       AliPMonData() : fPDG(0), fEdt(0), fTime(0) {}
+      void          Merge(AliPMonData* pdata) {fTime = 0.5*(fTime+pdata->fTime); fEdt = 0.5 * (fEdt+pdata->fEdt);}
       virtual ~AliPMonData() {}
       ClassDef(AliPMonData, 1)     // Basic monitoring info structure
     };   
@@ -51,6 +55,8 @@ public:
     Double_t        GetEmed(Int_t itype) const {return (fTotalTime>0)?fPData[itype].fEdt/fTotalTime : 0.;}
     Int_t           GetPDG(Int_t itype)  const {return fPData[itype].fPDG;}
     TH2F           *GetHistogram() const {return fTimeRZ;}
+    AliPMonData    *GetPMonData(Int_t itype) const {AliPMonData obj = fPData[itype]; return &obj;} 
+    void            Merge(AliTransportMonitorVol* volM);
     private:
       AliPMonData  &GetPMonData(Int_t pdg);
       AliTransportMonitorVol(const AliTransportMonitorVol& other) : TNamed(other), fNtypes(0), fTotalTime(0), fPData(0), fTimeRZ(0), fParticles() {}
@@ -84,6 +90,8 @@ public:
   void              Start();
   void              Stop();
   void              Export(const char *fname);
+  TObjArray*        GetVolumes() const {return fVolumeMon;}
+  void              Merge(AliTransportMonitor* mergeMon);
   static AliTransportMonitor *Import(const char *fname);
 private:
   Double_t          fTotalTime;  // Total simulation time