Fixing bugs in FMD reconstruction. Everything should work now
[u/mrichter/AliRoot.git] / ANALYSIS / AliESDpidCuts.h
index c4992c6..7c64353 100644 (file)
@@ -40,15 +40,19 @@ class AliESDpidCuts : public AliAnalysisCuts{
     virtual Bool_t AcceptTrack(const AliESDtrack *track);
     
     void SetTPCclusterRatioCut(Float_t clr) { fCutTPCclusterRatio = clr; }
-    void SetTPCnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){ fCutTPCnSigma[itype] = nSigma; }
-    void SetTOFnSigmaCut(AliPID::EParticleType itype, Float_t nSigma){ fCutTOFnSigma[itype] = nSigma; }
+    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)
-    Float_t fCutTPCnSigma[AliPID::kSPECIES];        // Species dependent cut on the distance to the TPC dE/dx line
+    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
@@ -64,4 +68,44 @@ class AliESDpidCuts : public AliAnalysisCuts{
     
     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