LCOV - code coverage report
Current view: top level - ANALYSIS/ANALYSISalice - AliESDpidCuts.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 23 4.3 %
Date: 2016-06-14 17:26:59 Functions: 1 15 6.7 %

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

Generated by: LCOV version 1.11