1 ////////////////////////////////////////////////////////////////////////////
3 // AliFemtoAnalysisReactionPlane - Femtoscopic analysis which mixes event //
4 // with respect to the z position of the primary vertex and event total //
5 // multiplicity and uses only events in certain reaction plane angle bin //
7 ////////////////////////////////////////////////////////////////////////////
9 #ifndef ALIFEMTOANALYSISAZIMUTHAL_H
10 #define ALIFEMTOANALYSISAZIMUTHAL_H
12 #include "AliFemtoSimpleAnalysis.h" // base analysis class
16 class AliFemtoAnalysisAzimuthal : public AliFemtoSimpleAnalysis {
20 AliFemtoAnalysisAzimuthal(unsigned int binsVertex=10, double minVertex=-100., double maxVertex=+100., unsigned int binsMult=10, double minMult=-1.e9, double maxMult=+1.e9, unsigned short binsRP=10);
21 AliFemtoAnalysisAzimuthal(const AliFemtoAnalysisAzimuthal& TheOriginalAnalysis); // copy constructor
23 AliFemtoAnalysisAzimuthal& operator=(const AliFemtoAnalysisAzimuthal& aAna);
25 virtual void ProcessEvent(const AliFemtoEvent* ProcessThisEvent);
26 virtual ~AliFemtoAnalysisAzimuthal();
27 virtual unsigned int OverflowVertexZ() const { return fOverFlowVertexZ;}
28 virtual unsigned int UnderflowVertexZ() const { return fUnderFlowVertexZ;}
29 virtual unsigned int OverflowMult() const { return fOverFlowMult;}
30 virtual unsigned int UnderflowMult() const { return fUnderFlowMult;}
31 double GetCurrentReactionPlane();
32 TVector2 GetQVector(AliFemtoParticleCollection* particlecollection);
33 virtual void MakePairs(const char* typeIn, AliFemtoParticleCollection *partCollection1, AliFemtoParticleCollection *partCollection2=0);
34 virtual TList* GetOutputList();
36 // Get the particle cuts
37 virtual AliFemtoParticleCut* FemtoParticleCut() {return fFemtoParticleCut;}
38 virtual AliFemtoParticleCut* FlowParticleCut() {return fFlowParticleCut;}
40 void SetFemtoParticleCut(AliFemtoParticleCut* x) {fFemtoParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
41 void SetFlowParticleCut(AliFemtoParticleCut* x) {fFlowParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
42 void SetEventCut(AliFemtoEventCut* x) {fEventCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
43 void SetPairCut(AliFemtoPairCut* x) {fPairCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
47 AliFemtoParticleCut* fFemtoParticleCut; // select particles of type #1
48 AliFemtoParticleCut* fFlowParticleCut; // select particles of type #2
50 double fVertexZ[2]; /* min/max z-vertex position allowed to be processed */
51 unsigned int fVertexZBins; /* number of VERTEX mixing bins in z-vertex in EventMixing Buffer */
52 unsigned int fOverFlowVertexZ; /* number of events encountered which had too large z-vertex */
53 unsigned int fUnderFlowVertexZ; /* number of events encountered which had too small z-vertex */
54 double fMult[2]; /* min/max multiplicity allowed for event to be processed */
55 unsigned int fMultBins; /* number of MULTIPLICITY mixing bins in z-vertex in EventMixing Buffer */
56 unsigned int fOverFlowMult; /* number of events encountered which had too large multiplicity */
57 unsigned int fUnderFlowMult; /* number of events encountered which had too small multiplicity */
58 unsigned short fRPBins; // Number of reaction plane angle orientation bins
59 double fPsi; // Reaction plane angle of the current event
62 ClassDef(AliFemtoAnalysisAzimuthal, 0)