]>
Commit | Line | Data |
---|---|---|
f1d945a1 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | /* $Id$ */ | |
4 | ||
929098e4 | 5 | /***************************************************************** |
6 | AliFlowEventSimple: A simple event | |
7 | for flow analysis | |
8 | ||
9 | origin: Naomi van der Kolk (kolk@nikhef.nl) | |
10 | Ante Bilandzic (anteb@nikhef.nl) | |
11 | Raimond Snellings (Raimond.Snellings@nikhef.nl) | |
12 | mods: Mikolaj Krzewicki (mikolaj.krzewicki@cern.ch) | |
13 | *****************************************************************/ | |
f1d945a1 | 14 | |
929098e4 | 15 | #ifndef ALIFLOWEVENTSIMPLE_H |
16 | #define ALIFLOWEVENTSIMPLE_H | |
17 | ||
18 | #include "TObject.h" | |
c076fda8 | 19 | #include "TParameter.h" |
bc231a12 | 20 | #include "TMath.h" |
929098e4 | 21 | class TTree; |
bc231a12 | 22 | class TF1; |
929098e4 | 23 | class AliFlowVector; |
f1d945a1 | 24 | class AliFlowTrackSimple; |
929098e4 | 25 | class AliFlowTrackSimpleCuts; |
f1d945a1 | 26 | |
27 | class AliFlowEventSimple: public TObject { | |
28 | ||
29 | public: | |
9fa64edc | 30 | |
31 | enum ConstructionMethod {kEmpty,kGenerate}; | |
32 | ||
46bec39c | 33 | AliFlowEventSimple(); |
bc231a12 | 34 | AliFlowEventSimple( Int_t nParticles, |
9fa64edc | 35 | ConstructionMethod m=kEmpty, |
36 | TF1* ptDist=NULL, | |
37 | Double_t phiMin=0.0, | |
bc231a12 | 38 | Double_t phiMax=TMath::TwoPi(), |
39 | Double_t etaMin=-1.0, | |
40 | Double_t etaMax= 1.0 ); | |
929098e4 | 41 | AliFlowEventSimple(TTree* anInput, const AliFlowTrackSimpleCuts* rpCuts, const AliFlowTrackSimpleCuts* poiCuts); |
e35ddff0 | 42 | AliFlowEventSimple(const AliFlowEventSimple& anEvent); |
43 | AliFlowEventSimple& operator=(const AliFlowEventSimple& anEvent); | |
f1d945a1 | 44 | virtual ~AliFlowEventSimple(); |
c076fda8 | 45 | |
46 | Bool_t IsFolder() const {return kTRUE;}; | |
29195b69 | 47 | void Browse(TBrowser *b); |
48 | void Print(Option_t* option = "") const; //method to print stats | |
f1d945a1 | 49 | |
929098e4 | 50 | Int_t NumberOfTracks() const { return fNumberOfTracks; } |
85d2ee8d | 51 | Int_t GetReferenceMultiplicity() const { return fReferenceMultiplicity; } |
52 | void SetReferenceMultiplicity( Int_t m ) { fReferenceMultiplicity = m; } | |
bc231a12 | 53 | Int_t GetEventNSelTracksRP() const { return fNumberOfRPs; } |
54 | void SetEventNSelTracksRP(Int_t nr) { fNumberOfRPs = nr; } | |
929098e4 | 55 | Double_t GetMCReactionPlaneAngle() const { return fMCReactionPlaneAngle; } |
56 | void SetMCReactionPlaneAngle(Double_t fPhiRP) { fMCReactionPlaneAngle=fPhiRP; fMCReactionPlaneAngleIsSet=kTRUE; } | |
124fb262 | 57 | Bool_t IsSetMCReactionPlaneAngle() const { return fMCReactionPlaneAngleIsSet; } |
bc231a12 | 58 | void SetAfterBurnerPrecision(Double_t p) { fAfterBurnerPrecision=p; } |
59 | Double_t GetAfterBurnerPrecision() const { return fAfterBurnerPrecision; } | |
9fa64edc | 60 | void SetUserModified(Bool_t s=kTRUE) { fUserModified=s; } |
61 | Bool_t IsUserModified() const { return fUserModified; } | |
929098e4 | 62 | |
7382279b | 63 | void ResolutionPt(Double_t res); |
940a5ed1 | 64 | void TagSubeventsInEta(Double_t etaMinA, Double_t etaMaxA, Double_t etaMinB, Double_t etaMaxB ); |
dd91b595 | 65 | void TagRP(AliFlowTrackSimpleCuts* cuts ); |
66 | void TagPOI(AliFlowTrackSimpleCuts* cuts ); | |
929098e4 | 67 | void CloneTracks(Int_t n); |
bc231a12 | 68 | void AddV1( Double_t v1 ); |
244c607a | 69 | void AddV2( Double_t v2 ); |
bc231a12 | 70 | void AddV4( Double_t v4 ); |
bff213ad | 71 | void AddFlow( Double_t v1, Double_t v2, Double_t v3, Double_t v4 ); |
34b15925 | 72 | void DefineDeadZone( Double_t etaMin, Double_t etaMax, Double_t phiMin, Double_t phiMax ); |
73 | Int_t CleanUpDeadTracks(); | |
26c4cbb9 | 74 | |
f1d945a1 | 75 | AliFlowTrackSimple* GetTrack(Int_t i); |
7382279b | 76 | void AddTrack( AliFlowTrackSimple* track ); |
03a02aca | 77 | |
78 | AliFlowVector GetQ(Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE); | |
29195b69 | 79 | void Get2Qsub(AliFlowVector* Qarray, Int_t n=2, TList *weightsList=NULL, Bool_t usePhiWeights=kFALSE, Bool_t usePtWeights=kFALSE, Bool_t useEtaWeights=kFALSE); |
395fadba | 80 | |
7382279b | 81 | protected: |
9fa64edc | 82 | virtual void Generate( Int_t nParticles, |
83 | TF1* ptDist=NULL, | |
84 | Double_t phiMin=0.0, | |
85 | Double_t phiMax=TMath::TwoPi(), | |
86 | Double_t etaMin=-1.0, | |
87 | Double_t etaMax= 1.0 ); | |
88 | ||
bc231a12 | 89 | TObjArray* fTrackCollection; //-> collection of tracks |
85d2ee8d | 90 | Int_t fReferenceMultiplicity; // reference multiplicity |
929098e4 | 91 | Int_t fNumberOfTracks; // number of tracks |
bc231a12 | 92 | Int_t fNumberOfRPs; // number of tracks that have passed the RP selection |
929098e4 | 93 | Double_t fMCReactionPlaneAngle; // the angle of the reaction plane from the MC truth |
94 | Bool_t fMCReactionPlaneAngleIsSet; // did we set it from MC? | |
bc231a12 | 95 | Double_t fAfterBurnerPrecision; // iteration precision in afterburner |
9fa64edc | 96 | Bool_t fUserModified; // did we modify the event in any way (afterburner etc) ? |
929098e4 | 97 | TParameter<Int_t>* fNumberOfTracksWrap; //! number of tracks in TBrowser |
bc231a12 | 98 | TParameter<Int_t>* fNumberOfRPsWrap; //! number of tracks that have passed the RP selection in TBrowser |
99 | TParameter<Double_t>* fMCReactionPlaneAngleWrap; //! the angle of the reaction plane from the MC truth in TBrowser | |
29195b69 | 100 | |
bc231a12 | 101 | ClassDef(AliFlowEventSimple,1) |
f1d945a1 | 102 | }; |
103 | ||
104 | #endif | |
5fef318d | 105 | |
106 |