]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/AliNeutralMesonSelection.h
Made ready for the analysis train
[u/mrichter/AliRoot.git] / PWG4 / AliNeutralMesonSelection.h
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$ */
6
7 /* History of cvs commits:
8  *
9  * $Log$
10  * Revision 1.2  2007/08/17 12:40:04  schutz
11  * New analysis classes by Gustavo Conesa
12  *
13  * Revision 1.1.2.1  2007/07/26 10:32:09  schutz
14  * new analysis classes in the the new analysis framework
15  *
16  *
17  */
18 //_________________________________________________________________________
19 // Class that contains methods to select candidate pairs to neutral meson 
20 //-- Author: Gustavo Conesa (INFN-LNF)
21
22 // --- ROOT system ---
23 #include<TObject.h>
24 #include <TArrayD.h>
25
26 class TLorentzVector ;
27 class TParticle ;
28 class TList ;
29 class TH2F ;
30
31 class AliNeutralMesonSelection : public TObject {
32
33  public: 
34   
35   AliNeutralMesonSelection() ; // default ctor
36   AliNeutralMesonSelection(const AliNeutralMesonSelection & g) ; // cpy ctor
37   AliNeutralMesonSelection & operator = (const AliNeutralMesonSelection & g) ;//cpy assignment
38   virtual ~AliNeutralMesonSelection() ; //virtual dtor
39
40   enum type_t {kSelectPhiMinPt, kSelectPhiPtRatio, kNoSelectPhiPt};
41
42   TList * GetCreateOutputObjects();
43   
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) ; }
46   
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;}    
51   
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;}
56
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;}
61
62   Float_t    GetMinPt() const {return fMinPt ; }
63   void SetMinPt(Float_t pt){fMinPt = pt; };
64
65   Double_t GetMass() const {return fM ; }
66   void SetMass(Double_t m) { fM =m ; }
67   
68   Int_t GetPhiPtSelection(){  return fSelect ; }
69   void SetPhiPtSelection(Int_t ana ){  fSelect = ana ; }
70
71   Bool_t AreNeutralMesonSelectionHistosKept() { return fKeepNeutralMesonHistos ; }
72   void KeepNeutralMesonSelectionHistos(Bool_t keep) { fKeepNeutralMesonHistos = keep ; }
73
74   void InitParameters();        
75   Bool_t IsAngleInWindow(const Float_t angle, const Float_t e);
76   void Print(const Option_t * opt) const;
77
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)  ;
80   
81   private:
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
93
94   //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   ; 
103   
104   ClassDef(AliNeutralMesonSelection,1)
105     
106     } ;
107
108
109 #endif //ALINEUTRALMESONSELECTION_H
110
111
112