LCOV - code coverage report
Current view: top level - STEER/STEERBase - AliMCEventHandler.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 5 18 27.8 %
Date: 2016-06-14 17:26:59 Functions: 6 22 27.3 %

          Line data    Source code
       1             :   // -*- mode: C++ -*-
       2             : #ifndef ALIMCEVENTHANDLER_H
       3             : #define ALIMCEVENTHANDLER_H
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : 
       8             : /* $Id$ */
       9             : 
      10             : //-------------------------------------------------------------------------
      11             : //                          Class AliMCEvent
      12             : // This class gives access to MC truth during the analysis.
      13             : // Monte Carlo truth is contained in the kinematics tree (produced particles) and 
      14             : // the tree of reference hits.
      15             : //      
      16             : // Origin: Andreas Morsch, CERN, andreas.morsch@cern.ch 
      17             : //-------------------------------------------------------------------------
      18             : #include "AliInputEventHandler.h"
      19             : #include "AliHeader.h"
      20             : #include <TExMap.h>
      21             : 
      22             : class TFile;
      23             : class TTree;
      24             : class TList;
      25             : class TTreeCache;
      26             : 
      27             : class TParticle;
      28             : class TString;
      29             : class TClonesArray;
      30             : class TDirectoryFile;
      31             : 
      32             : class AliMCEvent;
      33             : 
      34             : 
      35             : 
      36             : class AliMCEventHandler : public AliInputEventHandler
      37             : {
      38             : public:
      39             : 
      40             :     enum PreReadMode_t {kNoPreRead = 0, kLmPreRead = 1, kHmPreRead = 2};
      41             : 
      42             :     AliMCEventHandler();
      43             :     AliMCEventHandler(const char* name, const char* title);
      44             :     virtual ~AliMCEventHandler();
      45           0 :     virtual void         SetOutputFileName(const char* /* fname */) {;}
      46           0 :     virtual const char*  GetOutputFileName() const {return 0;}
      47             :     virtual void         SetInputPath(const char* fname); 
      48           0 :     virtual void         SetInputTree(TTree* /*tree*/) {;}
      49           0 :     virtual TString*     GetInputPath() const {return fPathName;}
      50             :     virtual Bool_t       Init(Option_t* opt);
      51           0 :     virtual Bool_t       GetEntry() {return kTRUE;}
      52           2 :     virtual Bool_t       InitIO(Option_t* opt) {return Init(opt);};
      53           2 :     virtual Bool_t       Init(TTree* /*tree*/, Option_t* /*opt*/) {return kTRUE;}
      54             :     virtual Bool_t       BeginEvent(Long64_t entry);
      55           0 :     virtual Bool_t       Notify() { return AliVEventHandler::Notify(); };
      56             :     virtual Bool_t       Notify(const char* path);
      57             :     virtual Bool_t       FinishEvent();
      58             :     virtual Bool_t       Terminate();
      59             :     virtual Bool_t       TerminateIO();
      60             :     virtual void         ResetIO();
      61             :     virtual Bool_t       LoadEvent(Int_t iev);
      62           0 :     virtual void         SetReadTR(Bool_t flag) { Changed(); fReadTR = flag; }
      63             :     virtual void         AddSubsidiaryHandler(AliMCEventHandler* handler);
      64           0 :     virtual void         SetNumberOfEventsInContainer(Int_t nev) {fEventsInContainer = nev;}
      65           0 :     virtual void         SetPreReadMode(PreReadMode_t mode) {Changed(); fPreReadMode = mode;}
      66           4 :     virtual void         SetCacheSize(Long64_t size) {if (fCacheSize==0) fCacheSize = size;}
      67             :     //
      68          78 :     AliMCEvent* MCEvent() const {return fMCEvent;}
      69           0 :     TTree*      TreeTR()  const {return fTreeTR;}
      70           0 :     TTree*      TreeK()   const {return fTreeK;}
      71           0 :     virtual TTree*      GetTree() const {return fTreeE;}
      72             :     Int_t       GetParticleAndTR(Int_t i, TParticle*& particle, TClonesArray*& trefs);
      73             :     void        DrawCheck(Int_t i, Int_t search=0);
      74           0 :     Bool_t      InitOk() const {return fInitOk;}
      75             :     // Label manipulation
      76             :     void   SelectParticle(Int_t i);
      77             :     Bool_t IsParticleSelected(Int_t i);
      78             :     void   CreateLabelMap();
      79             :     Int_t  GetNewLabel(Int_t i);
      80             : 
      81             : private:
      82             :     Bool_t      OpenFile(Int_t i);
      83             :     void  VerifySelectedParticles();
      84             :     AliMCEventHandler(const AliMCEventHandler& handler);             
      85             :     AliMCEventHandler& operator=(const AliMCEventHandler& handler);  
      86             : private:
      87             :     AliMCEvent            *fMCEvent;            //! MC Event
      88             :     TFile                 *fFileE;              //! File with TreeE
      89             :     TFile                 *fFileK;              //! File with TreeK
      90             :     TFile                 *fFileTR;             //! File with TreeTR
      91             :     TTree                 *fTreeE;              //! TreeE  (Event Headers)
      92             :     TTree                 *fTreeK;              //! TreeK  (kinematics tree)
      93             :     TTree                 *fTreeTR;             //! TreeTR (track references tree)
      94             :     TDirectoryFile        *fDirK;               //! Directory for Kine Tree
      95             :     TDirectoryFile        *fDirTR;              //! Directory for TR Tree
      96             :     TExMap                 fParticleSelected;   //! List of selected MC particles for t
      97             :     TExMap                 fLabelMap;           //! Stores the Map of MC (ESDLabel,AODlabel)  
      98             :     Int_t                  fNEvent;             //! Number of events
      99             :     Int_t                  fEvent;              //! Current event
     100             :     TString               *fPathName;           //! Input file path 
     101             :     const Char_t          *fkExtension;         //! File name extension 
     102             :     Int_t                  fFileNumber;         //! Input file number
     103             :     Int_t                  fEventsPerFile;      //! Number of events per file
     104             :     Bool_t                 fReadTR;             // determines if TR shall be read
     105             :     Bool_t                 fInitOk;             // Initialization ok
     106             :     TList                 *fSubsidiaryHandlers; //! List of subsidiary MC handlers (for example for Background)
     107             :     Int_t                  fEventsInContainer;  //! Number of events in container class
     108             :     PreReadMode_t          fPreReadMode;        // Pre reading mode
     109             :     Long64_t               fCacheSize;          // Cache size for kinematics tree
     110             :     TTreeCache            *fCacheTK;            //! Cache for kinematics tree
     111             :     TTreeCache            *fCacheTR;            //! Cache for track references tree
     112             :     
     113         184 :     ClassDef(AliMCEventHandler,3)  //MC Truth EventHandler class
     114             : };
     115             : #endif 
     116             : 

Generated by: LCOV version 1.11