]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/hfe/AliHFEpidTRD.h
Adding Id to PWG3 classes for better tracking of the coverity defect fixes (Ivana)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEpidTRD.h
index 1e9ac5da637940d7115c6f180540526e2f935e30..b3c64e62d2e49af7c1227979131e0ee3b3067520 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef ALIHFEPIDTRD_H
+#define ALIHFEPIDTRD_H
+
 /**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
-#ifndef ALIHFEPIDTRD_H
-#define ALIHFEPIDTRD_H
 
+/* $Id$ */ 
+
+//
+// TRD PID Class
+// Does PID either on a x% electron efficiency basis or on dE/dx
+// For more information please check the implementation file
+//
  #ifndef ALIHFEPIDBASE_H
  #include "AliHFEpidBase.h"
  #endif
 
+class AliAODTrack;
+class AliAODMCParticle;
 class AliESDtrack;
+class AliHFEcollection;
+class AliMCParticle;
 class AliVParticle;
 class TList;
 class TH2F;
@@ -34,38 +46,55 @@ class AliHFEpidTRD : public AliHFEpidBase{
       kThreshParams = 24
     };
     enum{
-      kHistTRDSigV1 = 0,
-      kHistTRDSigV2 = 1,
-      kHistOverallSpecies = 2
+      kHistTRDlikeBefore = 0,
+      kHistTRDlikeAfter = 1,
+      kHistTRDthresholds = 2,
+      kHistTRDSigV1 = 3,
+      kHistTRDSigV2 = 4,
+      kHistOverallSpecies = 5
     };
+    AliHFEpidTRD();
     AliHFEpidTRD(const Char_t *name);
     AliHFEpidTRD(const AliHFEpidTRD &ref);
     AliHFEpidTRD& operator=(const AliHFEpidTRD &ref);
     virtual ~AliHFEpidTRD();
-    
+
     virtual Bool_t InitializePID();
-    virtual Int_t IsSelected(AliVParticle *track);
-    virtual Bool_t HasQAhistos() const { return kTRUE; };
+    virtual Int_t IsSelected(const AliHFEpidObject *track, AliHFEpidQAmanager *pidqa) const;
 
-    Double_t GetTRDSignalV1(AliESDtrack *track);
-    Double_t GetTRDSignalV2(AliESDtrack *track);
+    Double_t GetTRDSignalV1(const AliESDtrack *track, Float_t truncation = 0.7) const;
+    Double_t GetTRDSignalV2(const AliESDtrack *track, Float_t trucation = 0.7) const;
 
+    Bool_t IsCalculateTRDSignals() const { return TestBit(kTRDsignals); }
     void SetPIDMethod(PIDMethodTRD_t method) { fPIDMethod = method; };
+    void SetElectronEfficiency(Double_t electronEfficiency) { fElectronEfficiency = electronEfficiency; }
+    void SetThresholdParameters(Double_t electronEff, Double_t *params);
+    void SetMinP(Double_t p) { fMinP = p; }
+    void CalculateTRDSignals(Bool_t docalc) { SetBit(kTRDsignals, docalc); } 
+
+    Double_t GetElectronLikelihood(const AliVParticle *track, AliHFEpidObject::AnalysisType_t anaType) const;
+    void     GetTRDmomenta(const AliVParticle *track, AliHFEpidObject::AnalysisType_t anaType, Double_t *mom) const;
+    Double_t GetP(const AliVParticle *track, AliHFEpidObject::AnalysisType_t anaType) const;
+    Double_t GetTRDthresholds(Double_t electronEff, Double_t p) const;
+    Double_t GetChargeLayer(const AliVParticle *track, UInt_t layer, AliHFEpidObject::AnalysisType_t anatype) const;
   protected:
+    enum{
+      kTRDsignals = BIT(16),
+      kTRDdefaultThresholds = BIT(17)
+    };
     void Copy(TObject &ref) const;
-    Double_t GetTRDthresholds(Double_t electronEff, Double_t p);
-    Int_t GetMCpid(AliESDtrack *track);
     void InitParameters();
-    virtual void AddQAhistograms(TList *l);
-    void GetParameters(Double_t electronEff, Double_t *parameters);
+    void InitParameters1DLQ();
+    void GetParameters(Double_t electronEff, Double_t *parameters) const;
+    void SetUseDefaultParameters(Bool_t useDefault = kTRUE) { SetBit(kTRDdefaultThresholds, useDefault); }
+    Bool_t UseDefaultParameters() const { return TestBit(kTRDdefaultThresholds); }
 
-    void FillHistogramsTRDSignalV1(Double_t signal, Double_t p, Int_t species);
-    void FillHistogramsTRDSignalV2(Double_t signal, Double_t p, Int_t species);
   private:
     static const Double_t fgkVerySmall;                       // Check for 0
+    Double_t fMinP;                                         // Minimum momentum above which TRD PID is applied
+    Double_t fElectronEfficiency;                           // Cut on electron efficiency
     PIDMethodTRD_t fPIDMethod;                              // PID Method: 2D Likelihood or Neural Network
     Double_t fThreshParams[kThreshParams];                  // Threshold parametrisation
-    TList *fContainer;                                      // QA  Histogram Container
   ClassDef(AliHFEpidTRD, 1)     // TRD electron ID class
 };