]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/AliNeutralMesonSelection.h
New more general analysis implemention for particle identification and correlation...
[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 // 2 main selections, invariant mass around pi0 (also any other mass),
21 // apperture angle to distinguish from combinatorial.
22 // There is a 3rd cut based on the gamma correlation on phi or pt.
23 //-- Author: Gustavo Conesa (INFN-LNF)
24
25 // --- ROOT system ---
26 #include<TObject.h>
27 #include<TArrayD.h>
28
29 class TLorentzVector ;
30 class TList ;
31 class TH2F ;
32 class Riostream ;
33
34 //--- ANALYSIS system ---
35 class AliLog ;
36
37 class AliNeutralMesonSelection : public TObject {
38
39  public: 
40   
41   AliNeutralMesonSelection() ; // default ctor
42   AliNeutralMesonSelection(const AliNeutralMesonSelection & g) ; // cpy ctor
43   AliNeutralMesonSelection & operator = (const AliNeutralMesonSelection & g) ;//cpy assignment
44   virtual ~AliNeutralMesonSelection() ; //virtual dtor
45
46   TList * GetCreateOutputObjects();
47   
48   Double_t GetAngleMaxParam(Int_t i) const {return fAngleMaxParam.At(i) ; }
49   void SetAngleMaxParam(Int_t i, Double_t par){fAngleMaxParam.AddAt(par,i) ; }
50   
51   Double_t GetInvMassMaxCut() const {return fInvMassMaxCut ; }
52   Double_t GetInvMassMinCut() const {return fInvMassMinCut ; }
53   void SetInvMassCutRange(Double_t invmassmin, Double_t invmassmax)
54   {fInvMassMaxCut =invmassmax;  fInvMassMinCut =invmassmin;}    
55
56   Double_t GetMass() const {return fM ; }
57   void SetMass(Double_t m) { fM =m ; }
58
59   Bool_t AreNeutralMesonSelectionHistosKept() const { return fKeepNeutralMesonHistos ; }
60   void KeepNeutralMesonSelectionHistos(Bool_t keep) { fKeepNeutralMesonHistos = keep ; }
61
62   void InitParameters();        
63   Bool_t IsAngleInWindow(const Float_t angle, const Float_t e) const ;
64   void Print(const Option_t * opt) const;
65
66   Bool_t  SelectPair(TLorentzVector particlei,  TLorentzVector particlej)  ;
67   
68   private:
69   Double_t fM ; //mass of the neutral meson
70   Double_t   fInvMassMaxCut ;  // Invariant Mass cut maximum
71   Double_t   fInvMassMinCut ;  // Invariant Masscut minimun
72   TArrayD    fAngleMaxParam ; //Max opening angle selection parameters
73   Double_t   fMinPt;       // Minimum pt 
74   Bool_t  fKeepNeutralMesonHistos ; // Keep neutral meson selection histograms
75
76   //Histograms
77   TH2F * fhAnglePairNoCut  ;  //Aperture angle of decay photons, no cuts
78   TH2F * fhAnglePairOpeningAngleCut   ;  //Aperture angle of decay photons, cut on opening angle
79   TH2F * fhAnglePairAllCut   ;  //Aperture angle of decay photons, all cuts
80   TH2F * fhInvMassPairNoCut    ;  //Invariant mass of decay photons, no cuts
81   TH2F * fhInvMassPairOpeningAngleCut  ;  //Invariant mass of decay photons, cut on opening angle
82   TH2F * fhInvMassPairAllCut   ;  //Invariant mass of decay photons, all cuts
83   
84   ClassDef(AliNeutralMesonSelection,1)
85     
86     } ;
87
88
89 #endif //ALINEUTRALMESONSELECTION_H
90
91
92