]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetCorrel/AliJetCorrelMixer.h
new module for hadron correlations
[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 namespace JetCorrelHD {
19   class AliJetCorrelMixer : public TObject {
20     
21   public:
22     AliJetCorrelMixer();
23     ~AliJetCorrelMixer();
24     void Init(AliJetCorrelSelector * const s, AliJetCorrelMaker * const m, AliJetCorrelWriter * const w);
25     
26     // pool manipulation:
27     void FillPool(CorrelList_t *partList, UInt_t pIdx, UInt_t vBin, UInt_t cBin);
28     UInt_t PoolSize(PoolType_t pType, UInt_t vBin, UInt_t cBin);
29     void CleanPool(PoolType_t pType);
30     // mixing methods:  
31     void Mix(UInt_t vBin, UInt_t cBin, UInt_t it, UInt_t ia, UInt_t ic);
32     // print methods:
33     void ShowPool(PoolType_t pType, UInt_t vBin, UInt_t cBin);
34     void ShowSummary(PoolType_t pType, UInt_t pIdx, UInt_t vBin, UInt_t cBin);
35     
36   private:
37     AliJetCorrelSelector* fSelector;       // user selection object
38     AliJetCorrelMaker* fMaker;             // correlation maker object
39     AliJetCorrelWriter* fWriter;           // output writer object
40     CorrelList_t *TriggEvnt, *AssocEvnt;   // particle lists
41     CorrelListIter_t AssocIter, TriggIter; // particle list iterators
42     UInt_t fNumCentBins, fNumVertBins, fPoolDepth, fNumCorrel, fNumTriggs, fNumAssocs; // counters
43     TList* fPool[2][kMAXNUMCORREL][kMAXVERTBIN][kMAXCENTBIN]; // the particle pools used for mixing
44
45     // disable (make private) copy constructor and assignment operator:
46     AliJetCorrelMixer(const AliJetCorrelMixer&);
47     AliJetCorrelMixer* operator=(const AliJetCorrelMixer&);
48
49     ClassDef(AliJetCorrelMixer, 1);
50   };
51
52 } // namespace
53
54 #endif
55