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 $ */
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)
14 // --- ROOT system ---
18 class TLorentzVector ;
22 //--- ANALYSIS system ---
24 class AliNeutralMesonSelection : public TObject {
27 AliNeutralMesonSelection() ; // default ctor
28 virtual ~AliNeutralMesonSelection() ; //virtual dtor
30 AliNeutralMesonSelection(const AliNeutralMesonSelection & g) ; // cpy ctor
31 AliNeutralMesonSelection & operator = (const AliNeutralMesonSelection & g) ;//cpy assignment
35 TList * GetCreateOutputObjects();
37 Double_t GetAngleMaxParam(Int_t i) const {return fAngleMaxParam.At(i) ; }
38 void SetAngleMaxParam(Int_t i, Double_t par){fAngleMaxParam.AddAt(par,i) ; }
40 Double_t GetInvMassMaxCut() const {return fInvMassMaxCut ; }
41 Double_t GetInvMassMinCut() const {return fInvMassMinCut ; }
42 void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
43 {fInvMassMaxCut =invmassmax; fInvMassMinCut =invmassmin;}
45 Double_t GetMass() const {return fM ; }
46 void SetMass(Double_t m) { fM =m ; }
48 Bool_t AreNeutralMesonSelectionHistosKept() const { return fKeepNeutralMesonHistos ; }
49 void KeepNeutralMesonSelectionHistos(Bool_t keep) { fKeepNeutralMesonHistos = keep ; }
51 void InitParameters();
52 Bool_t IsAngleInWindow(const Float_t angle, const Float_t e) const ;
53 void Print(const Option_t * opt) const;
55 Bool_t SelectPair(TLorentzVector particlei, TLorentzVector particlej) ;
57 void SwitchOnAngleSelection() {fUseAngleCut = kTRUE ; }
58 void SwitchOffAngleSelection() {fUseAngleCut = kFALSE ; }
60 //Histogrammes setters and getters
62 virtual void SetHistoERangeAndNBins(Float_t min, Float_t max, Int_t n) {
68 Int_t GetHistoNEBins() const { return fHistoNEBins ; }
69 Float_t GetHistoEMin() const { return fHistoEMin ; }
70 Float_t GetHistoEMax() const { return fHistoEMax ; }
72 virtual void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n) {
78 Int_t GetHistoNPtBins() const { return fHistoNPtBins ; }
79 Float_t GetHistoPtMin() const { return fHistoPtMin ; }
80 Float_t GetHistoPtMax() const { return fHistoPtMax ; }
82 virtual void SetHistoAngleRangeAndNBins(Float_t min, Float_t max, Int_t n) {
83 fHistoNAngleBins = n ;
84 fHistoAngleMax = max ;
85 fHistoAngleMin = min ;
88 Int_t GetHistoNAngleBins() const { return fHistoNAngleBins ; }
89 Float_t GetHistoAngleMin() const { return fHistoAngleMin ; }
90 Float_t GetHistoAngleMax() const { return fHistoAngleMax ; }
92 virtual void SetHistoIMRangeAndNBins(Float_t min, Float_t max, Int_t n) {
98 Int_t GetHistoNIMBins() const { return fHistoNIMBins ; }
99 Float_t GetHistoIMMin() const { return fHistoIMMin ; }
100 Float_t GetHistoIMMax() const { return fHistoIMMax ; }
104 Double_t fM ; // Mass of the neutral meson
105 Double_t fInvMassMaxCut ; // Invariant Mass cut maximum
106 Double_t fInvMassMinCut ; // Invariant Masscut minimun
107 TArrayD fAngleMaxParam ; // Max opening angle selection parameters
108 Bool_t fUseAngleCut ; // Select pairs depending on their opening angle
109 Bool_t fKeepNeutralMesonHistos ; // Keep neutral meson selection histograms
112 TH2F * fhAnglePairNoCut ; //! Aperture angle of decay photons, no cuts
113 TH2F * fhAnglePairOpeningAngleCut ; //! Aperture angle of decay photons, cut on opening angle
114 TH2F * fhAnglePairAllCut ; //! Aperture angle of decay photons, all cuts
115 TH2F * fhInvMassPairNoCut ; //! Invariant mass of decay photons, no cuts
116 TH2F * fhInvMassPairOpeningAngleCut ; //! Invariant mass of decay photons, cut on opening angle
117 TH2F * fhInvMassPairAllCut ; //! Invariant mass of decay photons, all cuts
119 //Histograms binning and range
120 Int_t fHistoNEBins ; // Number of bins in pi0 E axis
121 Float_t fHistoEMax ; // Maximum value of pi0 E histogram range
122 Float_t fHistoEMin ; // Minimum value of pi0 E histogram range
123 Int_t fHistoNPtBins ; // Number of bins in Pt trigger axis
124 Float_t fHistoPtMax ; // Maximum value of Pt trigger histogram range
125 Float_t fHistoPtMin ; // Minimum value of Pt trigger histogram range
126 Int_t fHistoNAngleBins ; // Number of bins in angle axis
127 Float_t fHistoAngleMax ; // Maximum value of angle histogram range
128 Float_t fHistoAngleMin ; // Minimum value of angle histogram range
129 Int_t fHistoNIMBins ; // Number of bins in Invariant Mass axis
130 Float_t fHistoIMMax ; // Maximum value of Invariant Mass histogram range
131 Float_t fHistoIMMin ; // Minimum value of Invariant Mass histogram range
133 ClassDef(AliNeutralMesonSelection,3)
138 #endif //ALINEUTRALMESONSELECTION_H