]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoAnalysisAzimuthal.h
Testing the patch
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoAnalysisAzimuthal.h
CommitLineData
76ce4b5b 1////////////////////////////////////////////////////////////////////////////
2// //
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 //
6// //
7////////////////////////////////////////////////////////////////////////////
8
9#ifndef ALIFEMTOANALYSISAZIMUTHAL_H
10#define ALIFEMTOANALYSISAZIMUTHAL_H
11
12#include "AliFemtoSimpleAnalysis.h" // base analysis class
13
14class TVector2;
15
16class AliFemtoAnalysisAzimuthal : public AliFemtoSimpleAnalysis {
17
18public:
19
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
22
23 AliFemtoAnalysisAzimuthal& operator=(const AliFemtoAnalysisAzimuthal& aAna);
24
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();
35
36 // Get the particle cuts
37 virtual AliFemtoParticleCut* FemtoParticleCut() {return fFemtoParticleCut;}
38 virtual AliFemtoParticleCut* FlowParticleCut() {return fFlowParticleCut;}
39 // Set the cuts
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);}
44
45protected:
46
47 AliFemtoParticleCut* fFemtoParticleCut; // select particles of type #1
48 AliFemtoParticleCut* fFlowParticleCut; // select particles of type #2
49
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
60
61#ifdef __ROOT__
62 ClassDef(AliFemtoAnalysisAzimuthal, 0)
63#endif
64
65};
66
67#endif