Martin Valas fast mixing classes.
[u/mrichter/AliRoot.git] / ANALYSIS / EventMixing / AliMixInputHandlerInfo.h
1 //
2 // Class AliMixInputHandlerInfo
3 //
4 // AliMixInputHandlerInfo is interface with mixed 
5 // input handlers
6 //
7 // author: 
8 //        Martin Vala (martin.vala@cern.ch)
9 //
10 #ifndef ALIMIXINPUTHANDLERINFO_H
11 #define ALIMIXINPUTHANDLERINFO_H
12 #include <TArrayI.h>
13 #include <TNamed.h>
14
15 class TTree;
16 class TChain;
17 class TChainElement;
18 class AliInputEventHandler;
19 class AliMixInputHandlerInfo : public TNamed {
20
21 public:
22   AliMixInputHandlerInfo(const char* name = "defautlTree", const char* title = "Defautl tree");
23   virtual ~AliMixInputHandlerInfo();
24   TChain *GetChain();
25   
26   void AddChain(TChain *chain);
27   void AddTreeToChain(TTree *tree);
28   
29   void PrepareEntry(TChainElement* te, Long64_t entry, AliInputEventHandler* eh);
30   
31   void SetZeroEntryNumber(Long64_t num) { fZeroEntryNumber = num;}
32   TChainElement* GetEntryInTree(Long64_t& entry);
33
34 private:
35   TChain    *fChain;              // current chain
36   TArrayI   fChainEntriesArray;   // array of entries of every chaing
37   Long64_t  fZeroEntryNumber;     // zero entry number (will be used when we will delete not needed chains)
38   Bool_t    fNeedNotify;          // flag if Notify is needed for current input handler
39   
40   AliMixInputHandlerInfo(const AliMixInputHandlerInfo& handler);             
41   AliMixInputHandlerInfo& operator=(const AliMixInputHandlerInfo& handler);  
42
43   ClassDef(AliMixInputHandlerInfo, 1); // Mix Input Handler info
44 };
45
46 #endif // ALIMIXINPUTHANDLERINFO_H