]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/EventMixing/AliMixEventPool.h
Martin Valas fast mixing classes.
[u/mrichter/AliRoot.git] / ANALYSIS / EventMixing / AliMixEventPool.h
CommitLineData
c5e33610 1//
2// Class AliMixEventPool
3//
4// AliMixEventPool is used to find
5// similar events
6//
7// author:
8// Martin Vala (martin.vala@cern.ch)
9//
10
11#ifndef ALIMIXEVENTPOOL_H
12#define ALIMIXEVENTPOOL_H
13
14#include <TObjArray.h>
15#include <TNamed.h>
16
17class TEntryList;
18class AliMixEventCutObj;
19class AliVEvent;
20class AliMixEventPool : public TNamed
21{
22 public:
23 AliMixEventPool(const char* name="mixEventPool", const char* title="Mix event pool");
24 AliMixEventPool(const AliMixEventPool& obj);
25 virtual ~AliMixEventPool();
26
27 // prints object info
28 virtual void Print(const Option_t* option="") const;
29
30 // inits correctly object
31 Int_t Init();
32
33 void CreateEntryListsRecursivly(Int_t index);
34 void SearchIndexRecursive(Int_t num, Int_t *i, Int_t *d, Int_t &index);
35 TEntryList* AddEntryList();
36
37 Bool_t AddEntry(Long64_t entry, AliVEvent* ev);
38 TEntryList *FindEntryList(AliVEvent *ev);
39
40 void AddCut(AliMixEventCutObj*cut);
41
42 Bool_t NeedInit() { return (fListOfEntryList.GetEntries() == 0); }
43 TObjArray *GetListOfEntryLists() { return &fListOfEntryList; }
44 TObjArray *GetListOfEventCuts() { return &fListOfEventCuts; }
45
46 private:
47
48 TObjArray fListOfEntryList; // list of entry lists
49 TObjArray fListOfEventCuts; // list of entry lists
50
51 Int_t fBinNumber; // bin number
52
53 AliMixEventPool& operator= (const AliMixEventPool&) { return *this; }
54
55 ClassDef(AliMixEventPool, 1)
56};
57
58#endif