Jet and Particle identification tasks moved to different directories
[u/mrichter/AliRoot.git] / PWG4 / PartCorr / 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: 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
18 class TLorentzVector ;
19 class TList ;
20 class TH2F ;
21 class Riostream ;
22
23 //--- ANALYSIS system ---
24 class AliLog ;
25
26 class AliNeutralMesonSelection : public TObject {
27
28  public: 
29   
30   AliNeutralMesonSelection() ; // default ctor
31   AliNeutralMesonSelection(const AliNeutralMesonSelection & g) ; // cpy ctor
32   AliNeutralMesonSelection & operator = (const AliNeutralMesonSelection & g) ;//cpy assignment
33   virtual ~AliNeutralMesonSelection() ; //virtual dtor
34
35   TList * GetCreateOutputObjects();
36   
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) ; }
39   
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;}    
44
45   Double_t GetMass() const {return fM ; }
46   void SetMass(Double_t m) { fM =m ; }
47
48   Bool_t AreNeutralMesonSelectionHistosKept() const { return fKeepNeutralMesonHistos ; }
49   void KeepNeutralMesonSelectionHistos(Bool_t keep) { fKeepNeutralMesonHistos = keep ; }
50
51   void InitParameters();        
52   Bool_t IsAngleInWindow(const Float_t angle, const Float_t e) const ;
53   void Print(const Option_t * opt) const;
54
55   Bool_t  SelectPair(TLorentzVector particlei,  TLorentzVector particlej)  ;
56   
57   private:
58   Double_t fM ; //mass of the neutral meson
59   Double_t   fInvMassMaxCut ;  // Invariant Mass cut maximum
60   Double_t   fInvMassMinCut ;  // Invariant Masscut minimun
61   TArrayD    fAngleMaxParam ; //Max opening angle selection parameters
62
63   Bool_t  fKeepNeutralMesonHistos ; // Keep neutral meson selection histograms
64
65   //Histograms
66   TH2F * fhAnglePairNoCut  ;  //Aperture angle of decay photons, no cuts
67   TH2F * fhAnglePairOpeningAngleCut   ;  //Aperture angle of decay photons, cut on opening angle
68   TH2F * fhAnglePairAllCut   ;  //Aperture angle of decay photons, all cuts
69   TH2F * fhInvMassPairNoCut    ;  //Invariant mass of decay photons, no cuts
70   TH2F * fhInvMassPairOpeningAngleCut  ;  //Invariant mass of decay photons, cut on opening angle
71   TH2F * fhInvMassPairAllCut   ;  //Invariant mass of decay photons, all cuts
72   
73   ClassDef(AliNeutralMesonSelection,1)
74     
75     } ;
76
77
78 #endif //ALINEUTRALMESONSELECTION_H
79
80
81