-#ifndef ALIESDPIDCUTS_H
-#define ALIESDPIDCUTS_H
-
-#ifndef ALIANALYSISCUTS_H
-#include "AliAnalysisCuts.h"
-#endif
-
-#ifndef ALIPID_H
-#include "AliPID.h"
-#endif
-
-class TCollection;
-class TH1F;
-class TH1I;
-class TH2I;
-class TList;
-class AliESDtrack;
-class AliTPCpidESD;
-class AliTOFpidESD;
-
-class AliESDpidCuts : public AliAnalysisCuts{
- enum{
- kHasHistograms = BIT(17)
- };
- public:
- AliESDpidCuts(const Char_t *name = "AliESDpidCuts", const Char_t *title = "");
- AliESDpidCuts(const AliESDpidCuts &ref); // Copy constructor
- AliESDpidCuts &operator=(const AliESDpidCuts &ref);
- virtual ~AliESDpidCuts();
-
- virtual void Copy(TObject &c) const;
- virtual Long64_t Merge(TCollection *coll);
-
- Bool_t HasHistograms() const { return TestBit(kHasHistograms); }
- void DefineHistograms(Color_t color = kRed);
- void DrawHistograms();
- void SaveHistograms(const Char_t *location = NULL);
- virtual Bool_t IsSelected(TObject *o);
- virtual Bool_t IsSelected(TList *) { return kTRUE; }
- virtual Bool_t AcceptTrack(const AliESDtrack *track);
-
- void SetTPCclusterRatioCut(Float_t clr) { fCutTPCclusterRatio = clr; }
- inline void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma);
- inline void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma);
- inline void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma);
- inline void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma);
- void SetMinMomentumTOF(Float_t mom) { fMinMomentumTOF = mom; }
-
- protected:
- static const Int_t kNcuts; // Number of Cuts
- AliTPCpidESD *fTPCpid; //! TPC PID (n-sigma cut)
- AliTOFpidESD *fTOFpid; //! TOF PID (n-sigma-cut)
- Char_t fTPCsigmaCutRequired; // Sigma cut Requirement for TPC and Particle Species
- Char_t fTOFsigmaCutRequired; // Sigma cut Requirement for TOF and Particle Species
- Float_t fCutTPCnSigma[AliPID::kSPECIES * 2]; // Species dependent cut on the distance to the TPC dE/dx line
- Float_t fCutTOFnSigma[AliPID::kSPECIES]; // Species dependent cut on the distance to the TOF calculated time of flight line
- Float_t fCutTPCclusterRatio; // Cut on Ratio of found clusters with repect to findable clusters in the TPC
- Float_t fMinMomentumTOF; // Apply TOF PID only above a certain momentum
-
- //------------------------------------------
- // QA histograms
- TH1I *fHcutStatistics; // Cut Statistics
- TH2I *fHcutCorrelation; // Cut Correlation
- TH1F *fHclusterRatio[2]; // TPC cluster Ratio
- TH1F *fHnSigmaTPC[AliPID::kSPECIES][2]; // TPC n-sigma cut
- TH1F *fHnSigmaTOF[AliPID::kSPECIES][2]; // TOF n-sigma cut
- //------------------------------------------
-
- ClassDef(AliESDpidCuts, 1)
-};
-
-//_____________________________________________________________________
-void AliESDpidCuts::SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){
- //
- // symmetric sigma cut for TPC PID
- //
- fCutTPCnSigma[itype * 2] = -nSigma;
- fCutTPCnSigma[itype * 2 + 1] = nSigma;
- fTPCsigmaCutRequired |= 1 << static_cast<Int_t >(itype);
-}
-
-//_____________________________________________________________________
-void AliESDpidCuts::SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma){
- //
- // assymetric sigma cut for TPC PID
- //
- fCutTPCnSigma[itype * 2] = negSigma;
- fCutTPCnSigma[itype * 2 + 1] = posSigma;
- fTPCsigmaCutRequired |= 1 << static_cast<Int_t >(itype);
-}
-
-//_____________________________________________________________________
-void AliESDpidCuts::SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){
- //
- // symmetric sigma cut for TOF PID
- //
- fCutTOFnSigma[itype * 2] = -nSigma;
- fCutTOFnSigma[itype * 2 + 1] = nSigma;
- fTOFsigmaCutRequired |= 1 << static_cast<Int_t >(itype);
-}
-
-//_____________________________________________________________________
-void AliESDpidCuts::SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma){
- //
- // assymetric sigma cut for TOF PID
- //
- fCutTOFnSigma[itype * 2] = negSigma;
- fCutTOFnSigma[itype * 2 + 1] = posSigma;
- fTOFsigmaCutRequired |= 1 << static_cast<Int_t >(itype);
-}
-#endif
+#ifndef ALIESDPIDCUTS_H\r
+#define ALIESDPIDCUTS_H\r
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
+ * See cxx source for full Copyright notice */\r
+//\r
+// Class for PID cuts\r
+// Cuts the track based on numbers of sigmas in the detectors TPC and TOF\r
+// The sigma cuts can be applied symmetrically or assymetrically\r
+//\r
+\r
+#ifndef ALIANALYSISCUTS_H\r
+#include "AliAnalysisCuts.h"\r
+#endif\r
+\r
+#ifndef ALIPID_H\r
+#include "AliPID.h"\r
+#endif\r
+\r
+class TCollection;\r
+class TH1F;\r
+class TH1I;\r
+class TH2I;\r
+class TList;\r
+class AliESDtrack;\r
+class AliESDEvent;\r
+class AliESDpid;\r
+\r
+class AliESDpidCuts : public AliAnalysisCuts{\r
+ enum{\r
+ kHasHistograms = BIT(17)\r
+ };\r
+ public: \r
+ AliESDpidCuts(const Char_t *name = "AliESDpidCuts", const Char_t *title = "");\r
+ AliESDpidCuts(const AliESDpidCuts &ref); // Copy constructor\r
+ AliESDpidCuts &operator=(const AliESDpidCuts &ref);\r
+ virtual ~AliESDpidCuts();\r
+\r
+ virtual void Copy(TObject &c) const;\r
+ virtual Long64_t Merge(TCollection *coll);\r
+\r
+ Bool_t HasHistograms() const { return TestBit(kHasHistograms); }\r
+ void DefineHistograms(Color_t color = kRed);\r
+ void DrawHistograms();\r
+ void SaveHistograms(const Char_t *location = NULL);\r
+ virtual Bool_t IsSelected(TObject *);\r
+ virtual Bool_t IsSelected(TList * /*lst*/) {return kTRUE; }\r
+ virtual Bool_t AcceptTrack(const AliESDtrack *track, const AliESDEvent *event);\r
+\r
+ AliESDpid *GetESDpid() { return fESDpid; };\r
+ \r
+ void SetTPCclusterRatioCut(Float_t clr) { fCutTPCclusterRatio = clr; }\r
+ inline void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma);\r
+ inline void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma);\r
+ inline void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma);\r
+ inline void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma);\r
+ void SetMinMomentumTOF(Float_t mom) { fMinMomentumTOF = mom; }\r
+ \r
+ protected:\r
+ static const Int_t kNcuts; // Number of Cuts\r
+ AliESDpid *fESDpid; //! PID helper (n-sigma-cut)\r
+ Char_t fTPCsigmaCutRequired; // Sigma cut Requirement for TPC and Particle Species\r
+ Char_t fTOFsigmaCutRequired; // Sigma cut Requirement for TOF and Particle Species\r
+ Float_t fCutTPCnSigma[AliPID::kSPECIES * 2]; // Species dependent cut on the distance to the TPC dE/dx line\r
+ Float_t fCutTOFnSigma[AliPID::kSPECIES * 2]; // Species dependent cut on the distance to the TOF calculated time of flight line\r
+ Float_t fCutTPCclusterRatio; // Cut on Ratio of found clusters with repect to findable clusters in the TPC\r
+ Float_t fMinMomentumTOF; // Apply TOF PID only above a certain momentum\r
+\r
+ //------------------------------------------\r
+ // QA histograms\r
+ TH1I *fHcutStatistics; // Cut Statistics\r
+ TH2I *fHcutCorrelation; // Cut Correlation\r
+ TH1F *fHclusterRatio[2]; // TPC cluster Ratio\r
+ TH1F *fHnSigmaTPC[AliPID::kSPECIES][2]; // TPC n-sigma cut\r
+ TH1F *fHnSigmaTOF[AliPID::kSPECIES][2]; // TOF n-sigma cut\r
+ //------------------------------------------\r
+ \r
+ ClassDef(AliESDpidCuts, 3)\r
+};\r
+\r
+//_____________________________________________________________________\r
+void AliESDpidCuts::SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){ \r
+ //\r
+ // symmetric sigma cut for TPC PID\r
+ //\r
+ fCutTPCnSigma[itype * 2] = -nSigma;\r
+ fCutTPCnSigma[itype * 2 + 1] = nSigma; \r
+ fTPCsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
+} \r
+\r
+//_____________________________________________________________________\r
+void AliESDpidCuts::SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma){\r
+ //\r
+ // assymetric sigma cut for TPC PID\r
+ //\r
+ fCutTPCnSigma[itype * 2] = negSigma;\r
+ fCutTPCnSigma[itype * 2 + 1] = posSigma;\r
+ fTPCsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
+} \r
+\r
+//_____________________________________________________________________\r
+void AliESDpidCuts::SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){ \r
+ //\r
+ // symmetric sigma cut for TOF PID\r
+ //\r
+ fCutTOFnSigma[itype * 2] = -nSigma;\r
+ fCutTOFnSigma[itype * 2 + 1] = nSigma; \r
+ fTOFsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
+} \r
+\r
+//_____________________________________________________________________\r
+void AliESDpidCuts::SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t negSigma, Float_t posSigma){\r
+ //\r
+ // assymetric sigma cut for TOF PID\r
+ //\r
+ fCutTOFnSigma[itype * 2] = negSigma;\r
+ fCutTOFnSigma[itype * 2 + 1] = posSigma;\r
+ fTOFsigmaCutRequired |= 1 << static_cast<Int_t >(itype);\r
+}\r
+#endif\r