]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetCorrel/AliJetCorrelMixer.h
Updates from Paul Constantin
[u/mrichter/AliRoot.git] / PWG4 / JetCorrel / AliJetCorrelMixer.h
1 #ifndef ALIJETCORRELMIXER_H
2 #define ALIJETCORRELMIXER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id:  $ */
6
7 //__________________________________________
8 // Event mixing class. A 6-dimensinal pool fPool is maintained:
9 // type(fixed), type_idx(fixed), vertex(fixed), centrality(fixed), 
10 // and event(dynamic), particle(dynamic)
11 // fixed dimensions are fixed at task initialization time (via AliJetCorrelSelector)
12 // event&particle are allow to float during runtime (via linked lists TList=event & CorrelList_t=particle)
13 //-- Author: Paul Constantin
14
15 #include  "AliJetCorrelSelector.h"
16 #include  "AliJetCorrelWriter.h"
17
18 class AliJetCorrelMixer : public TObject {
19   
20  public:
21   AliJetCorrelMixer();
22   ~AliJetCorrelMixer();
23   void Init(AliJetCorrelSelector * const s, AliJetCorrelMaker * const m, AliJetCorrelWriter * const w);
24   
25   // pool manipulation:
26   void FillPool(CorrelList_t *partList, UInt_t pIdx, UInt_t vBin, UInt_t cBin);
27   UInt_t PoolSize(PoolType_t pType, UInt_t vBin, UInt_t cBin) const;
28   void CleanPool(PoolType_t pType);
29   // mixing methods:  
30   void Mix(UInt_t vBin, UInt_t cBin, UInt_t it, UInt_t ia, UInt_t ic);
31   // print methods:
32   void ShowPool(PoolType_t pType, UInt_t vBin, UInt_t cBin) const;
33   void ShowSummary(PoolType_t pType, UInt_t pIdx, UInt_t vBin, UInt_t cBin) const;
34   
35  private:
36   AliJetCorrelSelector* fSelector;       // user selection object
37   AliJetCorrelMaker* fMaker;             // correlation maker object
38   AliJetCorrelWriter* fWriter;           // output writer object
39   CorrelList_t *fTriggEvnt, *fAssocEvnt;   //! particle lists
40   CorrelListIter_t fAssocIter, fTriggIter; //! particle list iterators
41   UInt_t fNumCentBins, fNumVertBins, fPoolDepth, fNumCorrel, fNumTriggs, fNumAssocs; // counters
42   TList* fPool[2][AliJetCorrelSelector::kMaxCorrel][AliJetCorrelSelector::kMaxVert][AliJetCorrelSelector::kMaxCent]; //! the particle pools used for mixing
43   
44   // disable (make private) copy constructor and assignment operator:
45   AliJetCorrelMixer(const AliJetCorrelMixer&);
46   AliJetCorrelMixer* operator=(const AliJetCorrelMixer&);
47   
48   ClassDef(AliJetCorrelMixer, 1);
49 };
50
51 #endif
52