]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCEventHandler.h
recMC.C submitMC.sh
[u/mrichter/AliRoot.git] / STEER / AliMCEventHandler.h
index c6dbd951eee610ede48295c09209f1e8dae62155..b3e8f0bf4e7c12005bfa1ccaeeb6f1e15eab98fc 100644 (file)
@@ -17,6 +17,8 @@
 //-------------------------------------------------------------------------
 #include "AliVEventHandler.h"
 #include "AliHeader.h"
+#include <TExMap.h>
+
 class TFile;
 class TTree;
 class TParticle;
@@ -34,11 +36,11 @@ public:
     AliMCEventHandler();
     AliMCEventHandler(const char* name, const char* title);
     virtual ~AliMCEventHandler();
-    virtual void         SetOutputFileName(char* /* fname */) {;}
-    virtual char*        GetOutputFileName() {return 0;}
-    virtual void         SetInputPath(char* fname); 
+    virtual void         SetOutputFileName(const char* /* fname */) {;}
+    virtual const char*  GetOutputFileName() {return 0;}
+    virtual void         SetInputPath(const char* fname); 
     virtual void         SetInputTree(TTree* /*tree*/) {;}
-    virtual TString*     GetInputPath() {return fPathName;}
+    virtual TString*     GetInputPath() const {return fPathName;}
     virtual Bool_t       Init(Option_t* opt);
     virtual Bool_t       InitIO(Option_t* opt) {return Init(opt);};
     virtual Bool_t       Init(TTree* /*tree*/, Option_t* /*opt*/) {return kTRUE;}
@@ -52,12 +54,21 @@ public:
     virtual Bool_t       GetEvent(Int_t iev);
     virtual void         SetReadTR(Bool_t flag) { fReadTR = flag; }
     //
-    AliMCEvent* MCEvent() {return fMCEvent;}
-    TTree*      TreeTR() {return fTreeTR;}
+    AliMCEvent* MCEvent() const {return fMCEvent;} 
+    TTree*      TreeTR()  const {return fTreeTR;}
+    TTree*      TreeK()   const {return fTreeK;}
     Int_t       GetParticleAndTR(Int_t i, TParticle*& particle, TClonesArray*& trefs);
     void        DrawCheck(Int_t i, Int_t search=0);
+    Bool_t      InitOk() {return fInitOk;}
+    // Label manipulation
+    void   SelectParticle(Int_t i);
+    Bool_t IsParticleSelected(Int_t i);
+    void   CreateLabelMap();
+    Int_t  GetNewLabel(Int_t i);
+
 private:
     Bool_t      OpenFile(Int_t i);
+    void  VerifySelectedParticles();
     AliMCEventHandler(const AliMCEventHandler& handler);             
     AliMCEventHandler& operator=(const AliMCEventHandler& handler);  
 private:
@@ -70,13 +81,16 @@ private:
     TTree            *fTreeTR;           //! TreeTR (track references tree)
     TDirectoryFile   *fDirK;             //! Directory for Kine Tree
     TDirectoryFile   *fDirTR;            //! Directory for TR Tree
+    TExMap            fParticleSelected; //! List of selected MC particles for t
+    TExMap            fLabelMap;         //! Stores the Map of MC (ESDLabel,AODlabel)  
     Int_t             fNEvent;           //! Number of events
     Int_t             fEvent;            //! Current event
     TString          *fPathName;         //! Input file path 
-    char             *fExtension;        //! File name extension 
+    const Char_t     *fExtension;        //! File name extension 
     Int_t             fFileNumber;       //! Input file number
     Int_t             fEventsPerFile;    //! Number of events per file
     Bool_t            fReadTR;           // determines if TR shall be read
+    Bool_t            fInitOk;           // Initialization ok
     ClassDef(AliMCEventHandler,1)  //MC Truth EventHandler class
 };
 #endif