]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoAnalysisAzimuthalPbPb.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoAnalysisAzimuthalPbPb.h
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  *
10  * Author: Johanna Gramling, University of Heidelberg, jgramlin@cern.ch
11  *         Jorge Mercado, University of Heidelberg, jmercado@cern.ch
12  *         Vera Loggins, Wayne State University, veraloggins@wayne.edu
13  *
14  **************************************************************************/
15
16 #ifndef ALIFEMTOANALYSISAZIMUTHALPB_H
17 #define ALIFEMTOANALYSISAZIMUTHALPB_H
18
19 #include "AliFemtoSimpleAnalysis.h"        // base analysis class
20 #include "TH1.h"
21 #include "TVector2.h"
22 #include "AliAODEvent.h"
23 #include "AliFemtoPicoEventRP.h"
24 #include "AliFemtoPairCutRadialDistanceLM.h"
25
26 class TVector2;
27 class AliFemtoPicoEventRP;
28
29 class AliFemtoAnalysisAzimuthalPbPb : public AliFemtoSimpleAnalysis {
30
31 public:
32
33   AliFemtoAnalysisAzimuthalPbPb(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);
34   AliFemtoAnalysisAzimuthalPbPb(const AliFemtoAnalysisAzimuthalPbPb& TheOriginalAnalysis);  // copy constructor
35
36   AliFemtoAnalysisAzimuthalPbPb& operator=(const AliFemtoAnalysisAzimuthalPbPb& aAna);
37
38 //   virtual void FillHBTParticleCollectionRP(AliFemtoParticleCut* partCut, AliFemtoEvent* hbtEvent, AliFemtoPicoEventRP* picoevent);
39   virtual void ProcessEvent(const AliFemtoEvent* ProcessThisEvent);
40   virtual ~AliFemtoAnalysisAzimuthalPbPb();
41   virtual unsigned int OverflowVertexZ() const { return fOverFlowVertexZ;}
42   virtual unsigned int UnderflowVertexZ() const { return fUnderFlowVertexZ;}
43   virtual unsigned int OverflowMult() const { return fOverFlowMult;}
44   virtual unsigned int UnderflowMult() const { return fUnderFlowMult;}
45   double GetCurrentReactionPlane();
46   TVector2 GetQVector(AliFemtoParticleCollection* particlecollection);
47   virtual void MakePairs(const char* typeIn, AliFemtoPicoEventRP *coll1, AliFemtoPicoEventRP *coll2=0);
48   virtual TList* GetOutputList();
49   virtual void Finish() {;}
50         
51  // Get the particle cuts
52   virtual AliFemtoParticleCut*   FirstParticleCut() {return fFirstParticleCut;}
53   virtual AliFemtoParticleCut*   SecondParticleCut() {return fSecondParticleCut;}
54  // Set the cuts
55   void SetFirstParticleCut(AliFemtoParticleCut* x) {fFirstParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
56   void SetSecondParticleCut(AliFemtoParticleCut* x) {fSecondParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
57   void SetEventCut(AliFemtoEventCut* x) {fEventCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
58   void SetPairCut(AliFemtoPairCut* x) {fPairCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
59   void SetPairCutRD(AliFemtoPairCutRadialDistanceLM* x) {fPairCutRD = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
60   void SetEPhistname(char* histname);
61
62 protected:
63
64   AliFemtoParticleCut*          fFirstParticleCut;    //  select particles of type #1 
65   AliFemtoParticleCut*          fSecondParticleCut;   //  select particles of type #2 
66   AliFemtoPairCutRadialDistanceLM* fPairCutRD;
67   AliFemtoPicoEventRP*          fPicoEventRP;
68
69   double fVertexZ[2];                 /* min/max z-vertex position allowed to be processed */
70   unsigned int fVertexZBins;          /* number of VERTEX mixing bins in z-vertex in EventMixing Buffer */
71   unsigned int fOverFlowVertexZ;      /* number of events encountered which had too large z-vertex */
72   unsigned int fUnderFlowVertexZ;     /* number of events encountered which had too small z-vertex */
73   double fMult[2];                    /* min/max multiplicity allowed for event to be processed */
74   unsigned int fMultBins;             /* number of MULTIPLICITY mixing bins in z-vertex in EventMixing Buffer */
75   unsigned int fOverFlowMult;         /* number of events encountered which had too large multiplicity */
76   unsigned int fUnderFlowMult;        /* number of events encountered which had too small multiplicity */
77   unsigned short fRPBins;             // Number of reaction plane angle orientation bins
78   double fRP;                           // Reaction plane angle of the current event
79   TH1F* fphidist;                       // Phi distribution as control histogram
80   TH1F* fpairphi;                       // Phi distribution as control histogram
81   TH1F* fRPdist;                        // RP distribution as control histogram
82   TH1F* fsubRPdist;
83   TH1F* frealpsi;                       // Psi distribution for real pairs as control histogram
84   TH1F* fmixedpsi;                      // Psi distribution for mixed pairs as control histogram
85
86 #ifdef __ROOT__
87   ClassDef(AliFemtoAnalysisAzimuthalPbPb, 0)
88 #endif
89     
90 };
91
92 #endif