]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoAnalysisAzimuthalPbPb.h
Add ReactionPland dependent analysis code
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoAnalysisAzimuthalPbPb.h
CommitLineData
45eb0b7a 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
26class TVector2;
27class AliFemtoPicoEventRP;
28
29class AliFemtoAnalysisAzimuthalPbPb : public AliFemtoSimpleAnalysis {
30
31public:
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
50 // Get the particle cuts
51 virtual AliFemtoParticleCut* FirstParticleCut() {return fFirstParticleCut;}
52 virtual AliFemtoParticleCut* SecondParticleCut() {return fSecondParticleCut;}
53 // Set the cuts
54 void SetFirstParticleCut(AliFemtoParticleCut* x) {fFirstParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
55 void SetSecondParticleCut(AliFemtoParticleCut* x) {fSecondParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
56 void SetEventCut(AliFemtoEventCut* x) {fEventCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
57 void SetPairCut(AliFemtoPairCut* x) {fPairCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
58 void SetPairCutRD(AliFemtoPairCutRadialDistanceLM* x) {fPairCutRD = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
59 void SetEPhistname(char* histname);
60
61protected:
62
63 AliFemtoParticleCut* fFirstParticleCut; // select particles of type #1
64 AliFemtoParticleCut* fSecondParticleCut; // select particles of type #2
65 AliFemtoPairCutRadialDistanceLM* fPairCutRD;
66 AliFemtoPicoEventRP* fPicoEventRP;
67
68 double fVertexZ[2]; /* min/max z-vertex position allowed to be processed */
69 unsigned int fVertexZBins; /* number of VERTEX mixing bins in z-vertex in EventMixing Buffer */
70 unsigned int fOverFlowVertexZ; /* number of events encountered which had too large z-vertex */
71 unsigned int fUnderFlowVertexZ; /* number of events encountered which had too small z-vertex */
72 double fMult[2]; /* min/max multiplicity allowed for event to be processed */
73 unsigned int fMultBins; /* number of MULTIPLICITY mixing bins in z-vertex in EventMixing Buffer */
74 unsigned int fOverFlowMult; /* number of events encountered which had too large multiplicity */
75 unsigned int fUnderFlowMult; /* number of events encountered which had too small multiplicity */
76 unsigned short fRPBins; // Number of reaction plane angle orientation bins
77 double fRP; // Reaction plane angle of the current event
78 TH1F* fphidist; // Phi distribution as control histogram
79 TH1F* fpairphi; // Phi distribution as control histogram
80 TH1F* fRPdist; // RP distribution as control histogram
81 TH1F* fsubRPdist;
82 TH1F* frealpsi; // Psi distribution for real pairs as control histogram
83 TH1F* fmixedpsi; // Psi distribution for mixed pairs as control histogram
84
85#ifdef __ROOT__
86 ClassDef(AliFemtoAnalysisAzimuthalPbPb, 0)
87#endif
88
89};
90
91#endif