]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliESDpidCuts.h
Be sure to load mapping when needed
[u/mrichter/AliRoot.git] / ANALYSIS / AliESDpidCuts.h
CommitLineData
979d80f1 1#ifndef ALIESDPIDCUTS_H\r
2#define ALIESDPIDCUTS_H\r
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
4 * See cxx source for full Copyright notice */\r
5//\r
6// Class for PID cuts\r
7// Cuts the track based on numbers of sigmas in the detectors TPC and TOF\r
8// The sigma cuts can be applied symmetrically or assymetrically\r
9//\r
10\r
11#ifndef ALIANALYSISCUTS_H\r
12#include "AliAnalysisCuts.h"\r
13#endif\r
14\r
15#ifndef ALIPID_H\r
16#include "AliPID.h"\r
17#endif\r
18\r
19class TCollection;\r
20class TH1F;\r
21class TH1I;\r
22class TH2I;\r
23class TList;\r
24class AliESDtrack;\r
25class AliESDEvent;\r
26class AliESDpid;\r
27\r
28class AliESDpidCuts : public AliAnalysisCuts{\r
29 enum{\r
30 kHasHistograms = BIT(17)\r
31 };\r
32 public: \r
33 AliESDpidCuts(const Char_t *name = "AliESDpidCuts", const Char_t *title = "");\r
34 AliESDpidCuts(const AliESDpidCuts &ref); // Copy constructor\r
35 AliESDpidCuts &operator=(const AliESDpidCuts &ref);\r
36 virtual ~AliESDpidCuts();\r
37\r
38 virtual void Copy(TObject &c) const;\r
39 virtual Long64_t Merge(TCollection *coll);\r
40\r
41 Bool_t HasHistograms() const { return TestBit(kHasHistograms); }\r
42 void DefineHistograms(Color_t color = kRed);\r
43 void DrawHistograms();\r
44 void SaveHistograms(const Char_t *location = NULL);\r
45 virtual Bool_t IsSelected(TObject *);\r
46 virtual Bool_t IsSelected(TList * /*lst*/) {return kTRUE; }\r
47 virtual Bool_t AcceptTrack(const AliESDtrack *track, const AliESDEvent *event);\r
48\r
49 AliESDpid *GetESDpid() { return fESDpid; };\r
50 \r
51 void SetTPCclusterRatioCut(Float_t clr) { fCutTPCclusterRatio = clr; }\r
52 inline void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma);\r
53 inline void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma);\r
54 inline void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma);\r
55 inline void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma);\r
56 void SetMinMomentumTOF(Float_t mom) { fMinMomentumTOF = mom; }\r
57 \r
58 protected:\r
59 static const Int_t kNcuts; // Number of Cuts\r
60 AliESDpid *fESDpid; //! PID helper (n-sigma-cut)\r
61 Char_t fTPCsigmaCutRequired; // Sigma cut Requirement for TPC and Particle Species\r
62 Char_t fTOFsigmaCutRequired; // Sigma cut Requirement for TOF and Particle Species\r
63 Float_t fCutTPCnSigma[AliPID::kSPECIES * 2]; // Species dependent cut on the distance to the TPC dE/dx line\r
61cfa442 64 Float_t fCutTOFnSigma[AliPID::kSPECIES * 2]; // Species dependent cut on the distance to the TOF calculated time of flight line\r
979d80f1 65 Float_t fCutTPCclusterRatio; // Cut on Ratio of found clusters with repect to findable clusters in the TPC\r
66 Float_t fMinMomentumTOF; // Apply TOF PID only above a certain momentum\r
67\r
68 //------------------------------------------\r
69 // QA histograms\r
70 TH1I *fHcutStatistics; // Cut Statistics\r
71 TH2I *fHcutCorrelation; // Cut Correlation\r
72 TH1F *fHclusterRatio[2]; // TPC cluster Ratio\r
73 TH1F *fHnSigmaTPC[AliPID::kSPECIES][2]; // TPC n-sigma cut\r
74 TH1F *fHnSigmaTOF[AliPID::kSPECIES][2]; // TOF n-sigma cut\r
75 //------------------------------------------\r
76 \r
61cfa442 77 ClassDef(AliESDpidCuts, 3)\r
979d80f1 78};\r
79\r
80//_____________________________________________________________________\r
81void AliESDpidCuts::SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){ \r
82 //\r
83 // symmetric sigma cut for TPC PID\r
84 //\r
85 fCutTPCnSigma[itype * 2] = -nSigma;\r
86 fCutTPCnSigma[itype * 2 + 1] = nSigma; \r
87 fTPCsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
88} \r
89\r
90//_____________________________________________________________________\r
91void AliESDpidCuts::SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma){\r
92 //\r
93 // assymetric sigma cut for TPC PID\r
94 //\r
95 fCutTPCnSigma[itype * 2] = negSigma;\r
96 fCutTPCnSigma[itype * 2 + 1] = posSigma;\r
97 fTPCsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
98} \r
99\r
100//_____________________________________________________________________\r
101void AliESDpidCuts::SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){ \r
102 //\r
103 // symmetric sigma cut for TOF PID\r
104 //\r
105 fCutTOFnSigma[itype * 2] = -nSigma;\r
106 fCutTOFnSigma[itype * 2 + 1] = nSigma; \r
107 fTOFsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
108} \r
109\r
110//_____________________________________________________________________\r
111void AliESDpidCuts::SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma){\r
112 //\r
113 // assymetric sigma cut for TOF PID\r
114 //\r
115 fCutTOFnSigma[itype * 2] = negSigma;\r
116 fCutTOFnSigma[itype * 2 + 1] = posSigma;\r
117 fTOFsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
118}\r
119#endif\r