AliRoot Core  3dc7879 (3dc7879)
AliESDv0Cuts.h
Go to the documentation of this file.
1 
4 #ifndef ALIESDV0CUTS_H
5 #define ALIESDV0CUTS_H
6 
7 #include <TF1.h>
8 #include <TH2.h>
9 #include "AliAnalysisCuts.h"
10 
11 class AliESD;
12 class AliESDEvent;
13 class AliESDVertex;
14 class AliESDtrack;
15 class AliESDv0;
16 class AliLog;
17 class TTree;
18 
20 {
21 public:
22  AliESDv0Cuts(const Char_t* name = "AliESDv0Cuts", const Char_t* title = "");
23  virtual ~AliESDv0Cuts();
24 
25  Bool_t IsSelected(TObject* /*obj*/) {return kTRUE;}
26  Bool_t IsSelected(TList* listObj);
27  Bool_t IsSelected(TObject* const obj1, TObject* const obj2, TObject* const obj3, TObject* const obj4)
28  {return AcceptV0((AliESDv0*) obj1, (AliESDtrack*) obj2, (AliESDtrack*) obj3, (const AliESDVertex*) obj4);}
29  Bool_t AcceptV0(AliESDv0* const esdV0, AliESDtrack* const trackPos, AliESDtrack* const trackNeg, const AliESDVertex* esdVertex);
30  TObjArray* GetAcceptedV0s(const AliESD* esd);
31  Int_t CountAcceptedV0s(const AliESD* esd);
33  Int_t CountAcceptedV0s(const AliESDEvent* esd);
34 
35  virtual Long64_t Merge(TCollection* list);
36  virtual void Copy(TObject &c) const;
37  AliESDv0Cuts(const AliESDv0Cuts& pd); // Copy Constructor
39 
40  //######################################################
41  // v0 quality cut setters
42  void SetMinDcaPosToVertex(Float_t min=-1) {fCutMinDcaPosToVertex=min;}
43  void SetMinDcaNegToVertex(Float_t min=-1) {fCutMinDcaNegToVertex=min;}
44  void SetMaxChi2(Float_t max=1e10) {fCutMaxChi2=max;}
45  void SetMaxDcaV0Daughters(Float_t max=1e10) {fCutMaxDcaV0Daughters=max;}
46  void SetMinRadius(Float_t min=-1) {fCutMinRadius=min;}
47  void SetMaxRadius(Float_t max=1e10) {fCutMaxRadius=max;}
50  void SetMaxDcaV0ToVertex(Float_t max=1e10) {fCutMaxDcaV0ToVertex=max;}
51 
52  // v0 kinematic cut setters
53  void SetPRange(Float_t r1=0, Float_t r2=1e10) {fPMin=r1; fPMax=r2;}
54  void SetPtRange(Float_t r1=0, Float_t r2=1e10) {fPtMin=r1; fPtMax=r2;}
55  void SetPxRange(Float_t r1=-1e10, Float_t r2=1e10) {fPxMin=r1; fPxMax=r2;}
56  void SetPyRange(Float_t r1=-1e10, Float_t r2=1e10) {fPyMin=r1; fPyMax=r2;}
57  void SetPzRange(Float_t r1=-1e10, Float_t r2=1e10) {fPzMin=r1; fPzMax=r2;}
58 
59  //######################################################
60  void SetHistogramsOn(Bool_t b=kFALSE) {fHistogramsOn = b;}
61  void DefineHistograms(Int_t color=1);
62  virtual Bool_t LoadHistograms(const Char_t* dir = 0);
63  void SaveHistograms(const Char_t* dir = 0);
64  void DrawHistograms();
65 
66  static void EnableNeededBranches(TTree* tree);
67 
68  // void SaveQualityCuts(Char_t* file)
69  // void LoadQualityCuts(Char_t* file)
70 
71 protected:
72  void Init(); // sets everything to 0
73 
74  enum { kNCuts = 14 };
75 
76  //######################################################
77  // esd v0 quality cuts
78  static const Char_t* fgkCutNames[kNCuts];
79 
82  Float_t fCutMaxChi2;
84  Float_t fCutMinRadius;
85  Float_t fCutMaxRadius;
89 
90  // v0 kinematics cuts
91  Float_t fPMin, fPMax;
92  Float_t fPtMin, fPtMax;
93  Float_t fPxMin, fPxMax;
94  Float_t fPyMin, fPyMax;
95  Float_t fPzMin, fPzMax;
96 
97  //######################################################
98  // diagnostics histograms
99  Bool_t fHistogramsOn;
100 
102  TH1F* fhDcaPosToVertex[2]; //->
104  TH1F* fhDcaNegToVertex[2]; //->
106  TH1F* fhChi2[2]; //->
108  TH1F* fhDcaV0Daughters[2]; //->
110  TH1F* fhRadius[2]; //->
112  TH1F* fhCosinePointingAngle[2]; //->
114  TH1F* fhOnFlyStatus[2]; //->
116  TH1F* fhDcaV0ToVertex[2]; //->
117 
119  TH1F* fhPt[2]; //->
120 
122  TH1F* fhCutStatistics; //->
124  TH2F* fhCutCorrelation; //->
125 
126  ClassDef(AliESDv0Cuts, 1)
127 };
128 
129 
130 #endif
TBrowser b
Definition: RunAnaESD.C:12
static void EnableNeededBranches(TTree *tree)
void DefineHistograms(Int_t color=1)
TH1F * fhOnFlyStatus[2]
Definition: AliESDv0Cuts.h:114
void SetPRange(Float_t r1=0, Float_t r2=1e10)
Definition: AliESDv0Cuts.h:53
TH1F * fhDcaNegToVertex[2]
Definition: AliESDv0Cuts.h:104
void SetPtRange(Float_t r1=0, Float_t r2=1e10)
Definition: AliESDv0Cuts.h:54
Bool_t fCutRequireOnFlyStatus
require on fly status
Definition: AliESDv0Cuts.h:87
#define TObjArray
void SetPxRange(Float_t r1=-1e10, Float_t r2=1e10)
Definition: AliESDv0Cuts.h:55
TObjArray * GetAcceptedV0s(const AliESD *esd)
void SetRequireOnFlyStatus(Bool_t b=kFALSE)
Definition: AliESDv0Cuts.h:49
virtual Long64_t Merge(TCollection *list)
void SetMaxDcaV0Daughters(Float_t max=1e10)
Definition: AliESDv0Cuts.h:45
TH1F * fhChi2[2]
Definition: AliESDv0Cuts.h:106
Float_t fCutMinRadius
min reconstruction radius (fiducial volume)
Definition: AliESDv0Cuts.h:84
void SaveHistograms(const Char_t *dir=0)
Float_t fPyMin
Definition: AliESDv0Cuts.h:94
Float_t fCutMinCosinePointingAngle
min cosine of pointing angle
Definition: AliESDv0Cuts.h:86
TH1F * fhDcaV0Daughters[2]
Definition: AliESDv0Cuts.h:108
Float_t fPxMax
definition of the range of the Px
Definition: AliESDv0Cuts.h:93
Bool_t fHistogramsOn
histograms on/off
Definition: AliESDv0Cuts.h:99
Float_t fCutMaxDcaV0Daughters
max dca between the two v0 daughters
Definition: AliESDv0Cuts.h:83
Bool_t IsSelected(TObject *const obj1, TObject *const obj2, TObject *const obj3, TObject *const obj4)
Definition: AliESDv0Cuts.h:27
TH1F * fhPt[2]
pt of esd v0s
Definition: AliESDv0Cuts.h:119
Float_t fPMax
definition of the range of the P
Definition: AliESDv0Cuts.h:91
Bool_t AcceptV0(AliESDv0 *const esdV0, AliESDtrack *const trackPos, AliESDtrack *const trackNeg, const AliESDVertex *esdVertex)
void SetMaxRadius(Float_t max=1e10)
Definition: AliESDv0Cuts.h:47
virtual ~AliESDv0Cuts()
TTree * tree
TH2F * fhCutCorrelation
2d statistics plot
Definition: AliESDv0Cuts.h:124
void SetMinRadius(Float_t min=-1)
Definition: AliESDv0Cuts.h:46
Float_t fPxMin
Definition: AliESDv0Cuts.h:93
Float_t fCutMaxRadius
max reconstruction radius (fiducial volume)
Definition: AliESDv0Cuts.h:85
AliESDv0Cuts(const Char_t *name="AliESDv0Cuts", const Char_t *title="")
Definition: AliLog.h:27
TH1F * fhRadius[2]
Definition: AliESDv0Cuts.h:110
TH1F * fhCosinePointingAngle[2]
Definition: AliESDv0Cuts.h:112
Base class for analysis cuts.
Float_t fPzMin
Definition: AliESDv0Cuts.h:95
void SetPzRange(Float_t r1=-1e10, Float_t r2=1e10)
Definition: AliESDv0Cuts.h:57
Float_t fPzMax
definition of the range of the Pz
Definition: AliESDv0Cuts.h:95
void SetMinDcaNegToVertex(Float_t min=-1)
Definition: AliESDv0Cuts.h:43
void SetMinCosinePointingAngle(Float_t min=-1)
Definition: AliESDv0Cuts.h:48
void SetMinDcaPosToVertex(Float_t min=-1)
Definition: AliESDv0Cuts.h:42
virtual Bool_t LoadHistograms(const Char_t *dir=0)
virtual void Copy(TObject &c) const
void DrawHistograms()
void SetMaxDcaV0ToVertex(Float_t max=1e10)
Definition: AliESDv0Cuts.h:50
void SetPyRange(Float_t r1=-1e10, Float_t r2=1e10)
Definition: AliESDv0Cuts.h:56
void SetHistogramsOn(Bool_t b=kFALSE)
Definition: AliESDv0Cuts.h:60
Float_t fCutMinDcaPosToVertex
min dca of the positive daughter to the primary vertex
Definition: AliESDv0Cuts.h:80
Float_t fCutMinDcaNegToVertex
min dca of the negative daughter to the primary vertex
Definition: AliESDv0Cuts.h:81
Class for handling of ESD v0 cuts.
Definition: AliESDv0Cuts.h:19
Float_t fCutMaxChi2
max chi2
Definition: AliESDv0Cuts.h:82
TH1F * fhDcaPosToVertex[2]
Definition: AliESDv0Cuts.h:102
Float_t fPyMax
definition of the range of the Py
Definition: AliESDv0Cuts.h:94
Float_t fPtMin
Definition: AliESDv0Cuts.h:92
Float_t fPtMax
definition of the range of the Pt
Definition: AliESDv0Cuts.h:92
Definition: AliESD.h:40
static const Char_t * fgkCutNames[kNCuts]
! names of cuts (for internal use)
Definition: AliESDv0Cuts.h:78
Bool_t IsSelected(TObject *)
Definition: AliESDv0Cuts.h:25
AliESDv0Cuts & operator=(const AliESDv0Cuts &c)
TH1F * fhDcaV0ToVertex[2]
Definition: AliESDv0Cuts.h:116
TH1F * fhCutStatistics
statistics of what cuts the v0s did not survive
Definition: AliESDv0Cuts.h:122
void SetMaxChi2(Float_t max=1e10)
Definition: AliESDv0Cuts.h:44
Int_t CountAcceptedV0s(const AliESD *esd)
Float_t fPMin
Definition: AliESDv0Cuts.h:91
Float_t fCutMaxDcaV0ToVertex
max dca of the v0 to the primary vertex
Definition: AliESDv0Cuts.h:88