ROOT logo
//
// Class AliMixEventPool
//
// AliMixEventPool is used to find
// similar events
//
// author:
//        Martin Vala (martin.vala@cern.ch)
//

#ifndef ALIMIXEVENTPOOL_H
#define ALIMIXEVENTPOOL_H

#include <TObjArray.h>
#include <TNamed.h>

class TEntryList;
class AliMixEventCutObj;
class AliVEvent;
class AliMixEventPool : public TNamed {
public:
   AliMixEventPool(const char *name = "mixEventPool", const char *title = "Mix event pool");
   AliMixEventPool(const AliMixEventPool &obj);
   AliMixEventPool &operator= (const AliMixEventPool &obj);
   virtual ~AliMixEventPool();

   // prints object info
   virtual void      Print(const Option_t *option = "") const;

   // inits correctly object
   Int_t       Init();

   void        CreateEntryListsRecursivly(Int_t index);
   void        SearchIndexRecursive(Int_t num, Int_t *i, Int_t *d, Int_t &index);
   TEntryList *AddEntryList();

   Bool_t      AddEntry(Long64_t entry, AliVEvent *ev);
   TEntryList *FindEntryList(AliVEvent *ev, Int_t &idEntryList);

   void        AddCut(AliMixEventCutObj *cut);

   Bool_t      NeedInit() { return (fListOfEntryList.GetEntries() == 0); }
   TObjArray  *GetListOfEntryLists() { return &fListOfEntryList; }
   TObjArray  *GetListOfEventCuts() { return &fListOfEventCuts; }

   Bool_t      SetCutValuesFromBinIndex(Int_t index);
   void        SetBufferSize(Int_t buffer) { fBufferSize = buffer; }
   void        SetMixNumber(Int_t numMix) { fMixNumber = numMix; }
   Int_t       GetBufferSize() const { return fBufferSize; }
   Int_t       GetMixNumber() const { return fMixNumber; }

private:

   TObjArray   fListOfEntryList;       // list of entry lists
   TObjArray   fListOfEventCuts;       // list of entry lists

   Int_t       fBinNumber;             // bin number
   Int_t       fBufferSize;            // buffer size
   Int_t       fMixNumber;             // mixing number

   ClassDef(AliMixEventPool, 1)
};

#endif
 AliMixEventPool.h:1
 AliMixEventPool.h:2
 AliMixEventPool.h:3
 AliMixEventPool.h:4
 AliMixEventPool.h:5
 AliMixEventPool.h:6
 AliMixEventPool.h:7
 AliMixEventPool.h:8
 AliMixEventPool.h:9
 AliMixEventPool.h:10
 AliMixEventPool.h:11
 AliMixEventPool.h:12
 AliMixEventPool.h:13
 AliMixEventPool.h:14
 AliMixEventPool.h:15
 AliMixEventPool.h:16
 AliMixEventPool.h:17
 AliMixEventPool.h:18
 AliMixEventPool.h:19
 AliMixEventPool.h:20
 AliMixEventPool.h:21
 AliMixEventPool.h:22
 AliMixEventPool.h:23
 AliMixEventPool.h:24
 AliMixEventPool.h:25
 AliMixEventPool.h:26
 AliMixEventPool.h:27
 AliMixEventPool.h:28
 AliMixEventPool.h:29
 AliMixEventPool.h:30
 AliMixEventPool.h:31
 AliMixEventPool.h:32
 AliMixEventPool.h:33
 AliMixEventPool.h:34
 AliMixEventPool.h:35
 AliMixEventPool.h:36
 AliMixEventPool.h:37
 AliMixEventPool.h:38
 AliMixEventPool.h:39
 AliMixEventPool.h:40
 AliMixEventPool.h:41
 AliMixEventPool.h:42
 AliMixEventPool.h:43
 AliMixEventPool.h:44
 AliMixEventPool.h:45
 AliMixEventPool.h:46
 AliMixEventPool.h:47
 AliMixEventPool.h:48
 AliMixEventPool.h:49
 AliMixEventPool.h:50
 AliMixEventPool.h:51
 AliMixEventPool.h:52
 AliMixEventPool.h:53
 AliMixEventPool.h:54
 AliMixEventPool.h:55
 AliMixEventPool.h:56
 AliMixEventPool.h:57
 AliMixEventPool.h:58
 AliMixEventPool.h:59
 AliMixEventPool.h:60
 AliMixEventPool.h:61
 AliMixEventPool.h:62
 AliMixEventPool.h:63
 AliMixEventPool.h:64