]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliESDInputHandler.h
Base class (AliMisaligner); each detector will provide its derived class,
[u/mrichter/AliRoot.git] / STEER / AliESDInputHandler.h
1 #ifndef ALIESDINPUTHANDLER_H
2 #define ALIESDINPUTHANDLER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     ESD Input Handler realisation of the AliVEventHandler interface
10 //     Author: Andreas Morsch, CERN
11 //-------------------------------------------------------------------------
12
13 #include "AliInputEventHandler.h"
14 #include "AliESDEvent.h"
15 class TChain;
16 class TTree;
17 class AliRunTag;
18
19
20 class AliESDInputHandler : public AliInputEventHandler {
21
22  public:
23     AliESDInputHandler();
24     AliESDInputHandler(const char* name, const char* title);
25     virtual ~AliESDInputHandler();
26     virtual Bool_t       Init(Option_t* /*opt*/) {return kTRUE;}
27     virtual Bool_t       Init(TTree* tree, Option_t* opt);
28     virtual Bool_t       BeginEvent(Long64_t entry);
29     virtual Bool_t       Notify() { return AliVEventHandler::Notify(); };
30     virtual Bool_t       Notify(const char* path);
31     virtual Bool_t       FinishEvent();
32     AliESDEvent         *GetEvent()        const {return fEvent;}
33     Option_t            *GetAnalysisType() const {return fAnalysisType;}
34     Option_t            *GetDataType() const;
35     //
36     void SetInactiveBranches(const char* branches) {fBranches   = branches;}
37     void SetActiveBranches  (const char* branches) {fBranchesOn = branches;}
38     // Tag analysis
39     void SetReadTags() {fUseTags = kTRUE;}
40     AliRunTag           *GetRunTag() const {return fRunTag;}
41             
42  private:
43     void SwitchOffBranches() const;
44     void SwitchOnBranches()  const;
45     AliESDInputHandler(const AliESDInputHandler& handler);             
46     AliESDInputHandler& operator=(const AliESDInputHandler& handler);  
47  protected:
48     // ESD event
49     AliESDEvent    *fEvent;        //! Pointer to the event
50     TString         fBranches;     //  List of branches to be switched off (separated by space)
51     TString         fBranchesOn;   //  List of branches to be switched on  (separated by space)
52     Option_t       *fAnalysisType; //! local, proof, grid
53     Int_t           fNEvents;      //! Number of events in the current tree 
54     
55     // ESD Tags (optional)
56     Bool_t          fUseTags;    //  Flag to use tags
57     TChain         *fChainT;     //! File with event tags
58     TTree          *fTreeT;      //! Tree of tags
59     AliRunTag      *fRunTag;     //! Pointer to the run tag
60     ClassDef(AliESDInputHandler, 3);
61 };
62
63 #endif