]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/ConvCorrelations/AliConversionTrackCuts.h
Coverity fix
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / ConvCorrelations / AliConversionTrackCuts.h
1 #ifndef ALICONVERSIONTRACKCUTS_H
2 #define ALICONVERSIONTRACKCUTS_H
3
4 // Class handling all kinds of selection cuts for Gamma Conversion analysis
5 // Authors: (this code is mostly copied from AliRsnTrackQuality) adapted by Svein Lindal        *
6
7 class AliAODEvent;
8 class TH2F;
9 class TList;
10 #include "AliAODTrack.h"
11 #include "AliESDtrack.h"
12 #include "AliAnalysisCuts.h"
13
14 using namespace std;
15
16 class AliConversionTrackCuts : public AliAnalysisCuts {
17         
18 public:
19
20   Bool_t IsSelected(TObject * object, AliAODEvent * event) { return AcceptTrack(dynamic_cast<AliAODTrack*>(object), event); }
21   Bool_t IsSelected(TList * list) { return kFALSE; }
22   Bool_t AcceptTrack(AliAODTrack * track, AliAODEvent* event);
23
24   AliConversionTrackCuts();
25   AliConversionTrackCuts(TString name, TString title);
26   ~AliConversionTrackCuts();
27
28   void      AddStatusFlag(ULong_t f, Bool_t on)       {if (on) fFlagsOn = fFlagsOn | f; else fFlagsOff = fFlagsOff | f;}
29   void      SetStatusFlags(ULong_t f, Bool_t on)      {if (on) fFlagsOn = f; else fFlagsOff = f;}
30   void      SetPtRange(Double_t a, Double_t b)        {fPt[0] = TMath::Min(a, b); fPt[1] = TMath::Max(a, b);}
31   void      SetEtaRange(Double_t a, Double_t b)       {fEta[0] = TMath::Min(a, b); fEta[1] = TMath::Max(a, b);}
32   
33   void      SetDCARPtFormula(const char *formula)     {fDCARptFormula = formula; fDCARfixed = kFALSE;}
34   void      SetDCARmax(Double_t value)                {fDCARmax = value; fDCARptFormula = ""; fDCARfixed = kTRUE;}
35   void      SetDCAZPtFormula(const char *formula)     {fDCAZptFormula = formula; fDCAZfixed = kFALSE;}
36   void      SetDCAZmax(Double_t value)                {fDCAZmax = value; fDCAZptFormula = ""; fDCAZfixed = kTRUE;}
37   void      SetDCAXYmax(Double_t value)                {fDCAXYmax = value*value;}
38   
39   void      SetSPDminNClusters(Int_t value)           {fSPDminNClusters = value;}
40   void      SetITSminNClusters(Int_t value)           {fITSminNClusters = value;}
41   void      SetITSmaxChi2(Double_t value)             {fITSmaxChi2 = value;}
42   
43   void      SetTPCminNClusters(Int_t value)           {fTPCminNClusters = value;}
44   void      SetTPCmaxChi2(Double_t value)             {fTPCmaxChi2 = value;}
45   
46   void      SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}  
47   void      SetAODTestFilterBit(Int_t value)          {fAODTestFilterBit = value;}
48   void      SetDefaults2010();
49   
50   TList * CreateHistograms();
51   void FillHistograms(Int_t cutIndex, AliVTrack * track);
52   virtual void   Print(const Option_t *option = "") const;
53
54 protected :
55
56    ULong_t    fFlagsOn;                // status flags which must be ON (used AliESDtrack ones, connected with '|')
57    ULong_t    fFlagsOff;               // status flags which must be OFF (used AliESDtrack ones, connected with '|')
58    Double_t   fPt[2];                  // pt range
59    Double_t   fEta[2];                 // eta range
60    Bool_t     fRejectKinkDaughters;    // switch to kTRUE if daughters of kinks must be rejected
61
62    Bool_t     fDCARfixed;              // flag to switch between fixed and pt-dependent DCA cut
63    TString    fDCARptFormula;          // expression to compute transverse DCA sigma w.r. to pt
64    Double_t   fDCARmax;                // maximum value for transverse DCA
65
66    Bool_t     fDCAZfixed;              // flag to switch between fixed and pt-dependent DCA cut
67    TString    fDCAZptFormula;          // expression to compute longitudinal DCA sigma w.r. to pt
68    Double_t   fDCAZmax;                // maximum value for longitudinal DCA
69
70   Double_t fDCAXYmax;
71
72    Int_t      fSPDminNClusters;        // minimum number of required clusters in SPD
73    Int_t      fITSminNClusters;        // minimum number of required clusters in ITS
74    Double_t   fITSmaxChi2;             // maximum chi2 / number of clusters in ITS
75
76    Int_t      fTPCminNClusters;        // minimum number of required clusters in TPC
77    Double_t   fTPCmaxChi2;             // maximum chi2 / number of clusters in TPC
78    Int_t      fAODTestFilterBit;       // test filter bit for AOD tracks
79
80   TH2F * fhPhi;
81   TH2F * fhPhiPt;
82   TList * fHistograms;
83
84   AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented
85   AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented
86
87   ClassDef(AliConversionTrackCuts,1)
88
89
90 };
91
92
93 //__________________________________________________________________________________________________
94 inline void AliConversionTrackCuts::SetDefaults2010()
95 {
96 //
97 // Default settings for cuts used in 2010
98 //
99
100    SetDCAZmax(3.0);
101    SetDCAXYmax(2.5);
102    SetTPCminNClusters(70);
103    SetTPCmaxChi2(2.0);
104    SetRejectKinkDaughters();
105 }
106
107 #endif