]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/Base/AliTwoPlusOneContainer.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / Base / AliTwoPlusOneContainer.h
1 #ifndef AliTwoPlusOneContainer_H
2 #define AliTwoPlusOneContainer_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // data container for 2+1 particle analysis
8
9 #include "TNamed.h"
10 #include "AliUEHist.h"
11 // #include "THn.h" // in cxx file causes .../THn.h:257: error: conflicting declaration ‘typedef class THnT<float> THnF’
12
13 class AliVParticle;
14
15 class TList;
16 class TSeqCollection;
17 class TObjArray;
18 class TH1F;
19 class TH2F;
20 class TH3F;
21
22 class AliTwoPlusOneContainer : public TNamed
23 {
24  public:
25   AliTwoPlusOneContainer(const char* name = "AliTwoPlusOneContainer", const char* binning = 0, Double_t alpha = 0.2);
26
27   virtual ~AliTwoPlusOneContainer();
28   
29   enum PlotKind {kSameNS = 0, kSameAS, kMixedNS, kMixedAS, kMixedCombNS, kMixedCombAS, k1plus1, kBackgroundSameNS, kBackgroundSameAS, kMixed1plus1};
30
31   void FillCorrelations(Double_t centrality, Float_t zVtx, AliTwoPlusOneContainer::PlotKind step, TObjArray* triggerNear, TObjArray* triggerAway, TObjArray* assocNear, TObjArray* assocAway, Double_t weight, Bool_t is1plus1, Bool_t isBackgroundSame);
32   
33   AliUEHist* GetData() {return fTwoPlusOne;}
34   TH1F* GetAsymmetry() {return fAsymmetry;}
35   TH1F* GetAsymmetryMixed() {return fAsymmetryMixed;}
36   TH2F* GetTriggerPt() {return fTriggerPt;}
37   Double_t getTriggerPt1Min() {return fTriggerPt1Min;}
38   Double_t getTriggerPt1Max() {return fTriggerPt1Max;}
39   Double_t getTriggerPt2Min() {return fTriggerPt2Min;}
40   Double_t getTriggerPt2Max() {return fTriggerPt2Max;}
41   Double_t getPtAssocMin() {return fPtAssocMin;}
42   Double_t getPtAssocMax() {return fPtAssocMax;}
43   
44   void SetData(AliUEHist* obj) {fTwoPlusOne = obj; }
45   void SetAlpha(Double_t value) {fAlpha = value;}
46   void SetUseLeadingPt(Bool_t flag) { fUseLeadingPt = flag; }
47
48   AliTwoPlusOneContainer(const AliTwoPlusOneContainer &c);
49   AliTwoPlusOneContainer& operator=(const AliTwoPlusOneContainer& c);
50   virtual void Copy(TObject& c) const;
51   virtual Long64_t Merge(TCollection* list);
52  
53 protected:
54   void DeleteContainers();
55   
56   AliUEHist* fTwoPlusOne;            //a 7 dim histogram which actually contains all the data
57
58   TH1F* fAsymmetry;                  //asymmetry of the same event
59   TH1F* fAsymmetryMixed;             //asymmetry of the mixed event
60
61   TH2F* fTriggerPt;                  //2 dim histogramm with fine binning to describe the pT distribution of the trigger particles
62
63   Double_t fTriggerPt1Min;           //minimum energy for the first trigger particle
64   Double_t fTriggerPt1Max;           //maximum energy for the first trigger particle
65   Double_t fTriggerPt2Min;           //minimum energy for the second trigger particle
66   Double_t fTriggerPt2Max;           //maximum energy for the second trigger particle
67   Double_t fPtAssocMin;              //minimum energy for the associated particles
68   Double_t fPtAssocMax;              //maximum energy for the associated particle
69   Double_t fAlpha;                   //minimum energy for the first trigger particle
70   Bool_t fUseLeadingPt;        //decides if all particles of a cone are used as trigger particles or only the leading particles within alpha (apply this on near and away side)
71   Int_t fMergeCount;                 // counts how many objects have been merged together
72   
73   ClassDef(AliTwoPlusOneContainer, 5)  // underlying event histogram container
74 };
75
76
77 #endif