]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliNeutralMesonSelection.h
add calibration histograms for vzero centroids
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliNeutralMesonSelection.h
CommitLineData
1c5acb87 1#ifndef ALINEUTRALMESONSELECTION_H
2#define ALINEUTRALMESONSELECTION_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id: AliNeutralMesonSelection.h 27413 2008-07-18 13:28:12Z gconesab $ */
6
7//_________________________________________________________________________
8// Class that contains methods to select candidate pairs to neutral meson
9// 2 main selections, invariant mass around pi0 (also any other mass),
10// apperture angle to distinguish from combinatorial.
11// There is a 3rd cut based on the gamma correlation on phi or pt.
12//-- Author: Gustavo Conesa (INFN-LNF)
13
14// --- ROOT system ---
15#include<TObject.h>
16#include<TArrayD.h>
17
18class TLorentzVector ;
19class TList ;
20class TH2F ;
21
22//--- ANALYSIS system ---
1c5acb87 23
24class AliNeutralMesonSelection : public TObject {
477d6cee 25
26 public:
477d6cee 27 AliNeutralMesonSelection() ; // default ctor
78219bac 28 virtual ~AliNeutralMesonSelection() ; //virtual dtor
29 private:
477d6cee 30 AliNeutralMesonSelection(const AliNeutralMesonSelection & g) ; // cpy ctor
31 AliNeutralMesonSelection & operator = (const AliNeutralMesonSelection & g) ;//cpy assignment
477d6cee 32
78219bac 33 public:
a5fb4114 34 // General
35 TList * GetCreateOutputObjects();
36 void InitParameters();
37 void Print(const Option_t * opt) const;
78219bac 38
a5fb4114 39 //Opening angle selection
40 Double_t GetAngleMaxParam(Int_t i) const { return fAngleMaxParam.At(i) ; }
41 void SetAngleMaxParam(Int_t i, Double_t par) { fAngleMaxParam.AddAt(par,i) ; }
477d6cee 42
a5fb4114 43 Float_t GetShiftMinAngleCut() const{ return fShiftMinAngle ; }
44 void SetShiftMinAngleCut(Float_t shift) { fShiftMinAngle = shift ; }
45
46 void SwitchOnAngleSelection() { fUseAngleCut = kTRUE ; }
47 void SwitchOffAngleSelection() { fUseAngleCut = kFALSE ; }
48
49 //Invariant mass selection
50 Double_t GetInvMassMaxCut() const { return fInvMassMaxCut ; }
51 Double_t GetInvMassMinCut() const { return fInvMassMinCut ; }
477d6cee 52
b6991fc4 53 void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
a5fb4114 54 {fInvMassMaxCut =invmassmax; fInvMassMinCut =invmassmin ; }
477d6cee 55
a5fb4114 56 Double_t GetMass() const { return fM ; }
57 void SetMass(Double_t m) { fM = m ; }
477d6cee 58
a5fb4114 59 Bool_t AreNeutralMesonSelectionHistosKept() const { return fKeepNeutralMesonHistos ; }
60 void KeepNeutralMesonSelectionHistos(Bool_t keep) { fKeepNeutralMesonHistos = keep ; }
477d6cee 61
a5fb4114 62 Bool_t IsAngleInWindow(const Float_t angle, const Float_t e) const ;
477d6cee 63
a5fb4114 64 Bool_t SelectPair(TLorentzVector particlei, TLorentzVector particlej) ;
b6991fc4 65
b6991fc4 66
477d6cee 67 //Histogrammes setters and getters
68
69 virtual void SetHistoERangeAndNBins(Float_t min, Float_t max, Int_t n) {
70 fHistoNEBins = n ;
71 fHistoEMax = max ;
72 fHistoEMin = min ;
73 }
74
a5fb4114 75 Int_t GetHistoNEBins() const { return fHistoNEBins ; }
76 Float_t GetHistoEMin() const { return fHistoEMin ; }
77 Float_t GetHistoEMax() const { return fHistoEMax ; }
477d6cee 78
79 virtual void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n) {
80 fHistoNPtBins = n ;
81 fHistoPtMax = max ;
82 fHistoPtMin = min ;
83 }
84
a5fb4114 85 Int_t GetHistoNPtBins() const { return fHistoNPtBins ; }
86 Float_t GetHistoPtMin() const { return fHistoPtMin ; }
87 Float_t GetHistoPtMax() const { return fHistoPtMax ; }
477d6cee 88
89 virtual void SetHistoAngleRangeAndNBins(Float_t min, Float_t max, Int_t n) {
90 fHistoNAngleBins = n ;
91 fHistoAngleMax = max ;
92 fHistoAngleMin = min ;
93 }
94
95 Int_t GetHistoNAngleBins() const { return fHistoNAngleBins ; }
a5fb4114 96 Float_t GetHistoAngleMin() const { return fHistoAngleMin ; }
97 Float_t GetHistoAngleMax() const { return fHistoAngleMax ; }
477d6cee 98
99 virtual void SetHistoIMRangeAndNBins(Float_t min, Float_t max, Int_t n) {
100 fHistoNIMBins = n ;
101 fHistoIMMax = max ;
102 fHistoIMMin = min ;
103 }
104
a5fb4114 105 Int_t GetHistoNIMBins() const { return fHistoNIMBins ; }
106 Float_t GetHistoIMMin() const { return fHistoIMMin ; }
107 Float_t GetHistoIMMax() const { return fHistoIMMax ; }
477d6cee 108
109
110 private:
a5fb4114 111 Double_t fM ; // Mass of the neutral meson
112 Double_t fInvMassMaxCut ; // Invariant Mass cut maximum
113 Double_t fInvMassMinCut ; // Invariant Masscut minimun
114 TArrayD fAngleMaxParam ; // Max opening angle selection parameters
115 Bool_t fUseAngleCut ; // Select pairs depending on their opening angle
116 Float_t fShiftMinAngle ; // Correction shift for min angle from true kinematic limit, resolution effects
b6991fc4 117 Bool_t fKeepNeutralMesonHistos ; // Keep neutral meson selection histograms
477d6cee 118
119 //Histograms
fad7739b 120 TH2F * fhAnglePairNoCut ; //! Aperture angle of decay photons, no cuts
121 TH2F * fhAnglePairOpeningAngleCut ; //! Aperture angle of decay photons, cut on opening angle
122 TH2F * fhAnglePairAllCut ; //! Aperture angle of decay photons, all cuts
123 TH2F * fhInvMassPairNoCut ; //! Invariant mass of decay photons, no cuts
124 TH2F * fhInvMassPairOpeningAngleCut ; //! Invariant mass of decay photons, cut on opening angle
125 TH2F * fhInvMassPairAllCut ; //! Invariant mass of decay photons, all cuts
477d6cee 126
127 //Histograms binning and range
fad7739b 128 Int_t fHistoNEBins ; // Number of bins in pi0 E axis
129 Float_t fHistoEMax ; // Maximum value of pi0 E histogram range
130 Float_t fHistoEMin ; // Minimum value of pi0 E histogram range
131 Int_t fHistoNPtBins ; // Number of bins in Pt trigger axis
132 Float_t fHistoPtMax ; // Maximum value of Pt trigger histogram range
133 Float_t fHistoPtMin ; // Minimum value of Pt trigger histogram range
134 Int_t fHistoNAngleBins ; // Number of bins in angle axis
135 Float_t fHistoAngleMax ; // Maximum value of angle histogram range
136 Float_t fHistoAngleMin ; // Minimum value of angle histogram range
137 Int_t fHistoNIMBins ; // Number of bins in Invariant Mass axis
138 Float_t fHistoIMMax ; // Maximum value of Invariant Mass histogram range
139 Float_t fHistoIMMin ; // Minimum value of Invariant Mass histogram range
477d6cee 140
a5fb4114 141 ClassDef(AliNeutralMesonSelection,4)
1c5acb87 142
477d6cee 143 } ;
1c5acb87 144
145
146#endif //ALINEUTRALMESONSELECTION_H
147
148
149