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 */
7 /* History of cvs commits:
10 * Revision 1.2 2007/08/17 12:40:04 schutz
11 * New analysis classes by Gustavo Conesa
13 * Revision 1.1.2.1 2007/07/26 10:32:09 schutz
14 * new analysis classes in the the new analysis framework
18 //_________________________________________________________________________
19 // Class that contains methods to select candidate pairs to neutral meson
20 //-- Author: Gustavo Conesa (INFN-LNF)
22 // --- ROOT system ---
26 class TLorentzVector ;
31 class AliNeutralMesonSelection : public TObject {
35 AliNeutralMesonSelection() ; // default ctor
36 AliNeutralMesonSelection(const AliNeutralMesonSelection & g) ; // cpy ctor
37 AliNeutralMesonSelection & operator = (const AliNeutralMesonSelection & g) ;//cpy assignment
38 virtual ~AliNeutralMesonSelection() ; //virtual dtor
40 enum type_t {kSelectPhiMinPt, kSelectPhiPtRatio, kNoSelectPhiPt};
42 TList * GetCreateOutputObjects();
44 Double_t GetAngleMaxParam(Int_t i) const {return fAngleMaxParam.At(i) ; }
45 void SetAngleMaxParam(Int_t i, Double_t par){fAngleMaxParam.AddAt(par,i) ; }
47 Double_t GetInvMassMaxCut() const {return fInvMassMaxCut ; }
48 Double_t GetInvMassMinCut() const {return fInvMassMinCut ; }
49 void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
50 {fInvMassMaxCut =invmassmax; fInvMassMinCut =invmassmin;}
52 Double_t GetDeltaPhiMaxCut() const {return fDeltaPhiMaxCut ; }
53 Double_t GetDeltaPhiMinCut() const {return fDeltaPhiMinCut ; }
54 void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
55 {fDeltaPhiMaxCut =phimax; fDeltaPhiMinCut =phimin;}
57 Double_t GetRatioMaxCut() const {return fRatioMaxCut ; }
58 Double_t GetRatioMinCut() const {return fRatioMinCut ; }
59 void SetRatioCutRange(Double_t ratiomin, Double_t ratiomax)
60 {fRatioMaxCut = ratiomax; fRatioMinCut = ratiomin;}
62 Float_t GetMinPt() const {return fMinPt ; }
63 void SetMinPt(Float_t pt){fMinPt = pt; };
65 Double_t GetMass() const {return fM ; }
66 void SetMass(Double_t m) { fM =m ; }
68 Int_t GetPhiPtSelection(){ return fSelect ; }
69 void SetPhiPtSelection(Int_t ana ){ fSelect = ana ; }
71 Bool_t AreNeutralMesonSelectionHistosKept() { return fKeepNeutralMesonHistos ; }
72 void KeepNeutralMesonSelectionHistos(Bool_t keep) { fKeepNeutralMesonHistos = keep ; }
74 void InitParameters();
75 Bool_t IsAngleInWindow(const Float_t angle, const Float_t e);
76 void Print(const Option_t * opt) const;
78 Bool_t CutPtPhi(Double_t ptg, Double_t phig, Double_t pt, Double_t phi) ;
79 Bool_t SelectPair(TParticle * photon, TLorentzVector particlei, TLorentzVector particlej) ;
82 Int_t fSelect; //Pair selection depends on analysis
83 Double_t fM ; //mass of the neutral meson
84 Double_t fInvMassMaxCut ; // Invariant Mass cut maximum
85 Double_t fInvMassMinCut ; // Invariant Masscut minimun
86 TArrayD fAngleMaxParam ; //Max opening angle selection parameters
87 Double_t fMinPt; // Minimum pt
88 Double_t fDeltaPhiMaxCut ; //
89 Double_t fDeltaPhiMinCut ; //
90 Double_t fRatioMaxCut ; // Leading particle/gamma Ratio cut maximum
91 Double_t fRatioMinCut ; // Leading particle/gamma Ratio cut minimum
92 Bool_t fKeepNeutralMesonHistos ; // Keep neutral meson selection histograms
95 TH2F * fhAnglePairNoCut ;
96 TH2F * fhAnglePairCorrelationCut ;
97 TH2F * fhAnglePairOpeningAngleCut ;
98 TH2F * fhAnglePairAllCut ;
99 TH2F * fhInvMassPairNoCut ;
100 TH2F * fhInvMassPairCorrelationCut ;
101 TH2F * fhInvMassPairOpeningAngleCut ;
102 TH2F * fhInvMassPairAllCut ;
104 ClassDef(AliNeutralMesonSelection,1)
109 #endif //ALINEUTRALMESONSELECTION_H