#ifndef ALIDIELECTRONTRDPIDCUT_H
#define ALIDIELECTRONTRDPIDCUT_H
#include <AliAnalysisCuts.h>
class AliESDtrack;
class AliVParticle;
class AliDielectronTRDpidCut : public AliAnalysisCuts{
public:
typedef enum{
kLQ = 0,
kNN = 1
} PIDMethodTRD_t;
enum{
kThreshParams = 24
};
enum{
kHistTRDlikeBefore = 0,
kHistTRDlikeAfter = 1,
kHistTRDthresholds = 2,
kHistTRDSigV1 = 3,
kHistTRDSigV2 = 4,
kHistOverallSpecies = 5
};
enum PIDbitType {kIgnore=0, kRequire, kIfAvailable};
AliDielectronTRDpidCut();
AliDielectronTRDpidCut(const Char_t *name);
AliDielectronTRDpidCut(const AliDielectronTRDpidCut &ref);
AliDielectronTRDpidCut& operator=(const AliDielectronTRDpidCut &ref);
virtual ~AliDielectronTRDpidCut();
virtual Bool_t InitializePID();
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); }
Bool_t IsRenormalizeElPi() const { return TestBit(kTRDrenormalize); }
void SetPIDBitType(UInt_t pidBitType=AliDielectronTRDpidCut::kRequire) { fRequirePIDbit = pidBitType; };
void SetPIDMethod(PIDMethodTRD_t method) { fPIDMethod = method; };
void SetRenormalizeElPi(Bool_t doRenorm = kTRUE) { if(doRenorm) SetBit(kTRDrenormalize, kTRUE); else SetBit(kTRDrenormalize, kFALSE);}
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) const;
void GetTRDmomenta(const AliVParticle *track, Double_t *mom) const;
Double_t GetP(const AliVParticle *track) const;
Double_t GetTRDthresholds(Double_t electronEff, Double_t p) const;
Double_t GetChargeLayer(const AliVParticle *track, UInt_t layer) const;
virtual Bool_t IsSelected(TObject* track);
virtual Bool_t IsSelected(TList* ) {return kFALSE;}
protected:
enum{
kTRDsignals = BIT(16),
kTRDdefaultThresholds = BIT(17),
kTRDrenormalize = BIT(18)
};
void Copy(TObject &ref) const;
void InitParameters();
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 RenormalizeElPi(const Double_t *likein, Double_t *likeout) const;
private:
static const Double_t fgkVerySmall;
Double_t fMinP;
Double_t fElectronEfficiency;
PIDMethodTRD_t fPIDMethod;
UChar_t fRequirePIDbit;
Double_t fThreshParams[kThreshParams];
ClassDef(AliDielectronTRDpidCut, 1)
};
#endif
AliDielectronTRDpidCut.h:1 AliDielectronTRDpidCut.h:2 AliDielectronTRDpidCut.h:3 AliDielectronTRDpidCut.h:4 AliDielectronTRDpidCut.h:5 AliDielectronTRDpidCut.h:6 AliDielectronTRDpidCut.h:7 AliDielectronTRDpidCut.h:8 AliDielectronTRDpidCut.h:9 AliDielectronTRDpidCut.h:10 AliDielectronTRDpidCut.h:11 AliDielectronTRDpidCut.h:12 AliDielectronTRDpidCut.h:13 AliDielectronTRDpidCut.h:14 AliDielectronTRDpidCut.h:15 AliDielectronTRDpidCut.h:16 AliDielectronTRDpidCut.h:17 AliDielectronTRDpidCut.h:18 AliDielectronTRDpidCut.h:19 AliDielectronTRDpidCut.h:20 AliDielectronTRDpidCut.h:21 AliDielectronTRDpidCut.h:22 AliDielectronTRDpidCut.h:23 AliDielectronTRDpidCut.h:24 AliDielectronTRDpidCut.h:25 AliDielectronTRDpidCut.h:26 AliDielectronTRDpidCut.h:27 AliDielectronTRDpidCut.h:28 AliDielectronTRDpidCut.h:29 AliDielectronTRDpidCut.h:30 AliDielectronTRDpidCut.h:31 AliDielectronTRDpidCut.h:32 AliDielectronTRDpidCut.h:33 AliDielectronTRDpidCut.h:34 AliDielectronTRDpidCut.h:35 AliDielectronTRDpidCut.h:36 AliDielectronTRDpidCut.h:37 AliDielectronTRDpidCut.h:38 AliDielectronTRDpidCut.h:39 AliDielectronTRDpidCut.h:40 AliDielectronTRDpidCut.h:41 AliDielectronTRDpidCut.h:42 AliDielectronTRDpidCut.h:43 AliDielectronTRDpidCut.h:44 AliDielectronTRDpidCut.h:45 AliDielectronTRDpidCut.h:46 AliDielectronTRDpidCut.h:47 AliDielectronTRDpidCut.h:48 AliDielectronTRDpidCut.h:49 AliDielectronTRDpidCut.h:50 AliDielectronTRDpidCut.h:51 AliDielectronTRDpidCut.h:52 AliDielectronTRDpidCut.h:53 AliDielectronTRDpidCut.h:54 AliDielectronTRDpidCut.h:55 AliDielectronTRDpidCut.h:56 AliDielectronTRDpidCut.h:57 AliDielectronTRDpidCut.h:58 AliDielectronTRDpidCut.h:59 AliDielectronTRDpidCut.h:60 AliDielectronTRDpidCut.h:61 AliDielectronTRDpidCut.h:62 AliDielectronTRDpidCut.h:63 AliDielectronTRDpidCut.h:64 AliDielectronTRDpidCut.h:65 AliDielectronTRDpidCut.h:66 AliDielectronTRDpidCut.h:67 AliDielectronTRDpidCut.h:68 AliDielectronTRDpidCut.h:69 AliDielectronTRDpidCut.h:70 AliDielectronTRDpidCut.h:71 AliDielectronTRDpidCut.h:72 AliDielectronTRDpidCut.h:73 AliDielectronTRDpidCut.h:74 AliDielectronTRDpidCut.h:75 AliDielectronTRDpidCut.h:76 AliDielectronTRDpidCut.h:77 AliDielectronTRDpidCut.h:78 AliDielectronTRDpidCut.h:79 AliDielectronTRDpidCut.h:80 AliDielectronTRDpidCut.h:81 AliDielectronTRDpidCut.h:82 AliDielectronTRDpidCut.h:83 AliDielectronTRDpidCut.h:84 AliDielectronTRDpidCut.h:85 AliDielectronTRDpidCut.h:86 AliDielectronTRDpidCut.h:87 AliDielectronTRDpidCut.h:88 AliDielectronTRDpidCut.h:89 AliDielectronTRDpidCut.h:90 AliDielectronTRDpidCut.h:91 AliDielectronTRDpidCut.h:92 AliDielectronTRDpidCut.h:93 AliDielectronTRDpidCut.h:94 AliDielectronTRDpidCut.h:95 AliDielectronTRDpidCut.h:96 AliDielectronTRDpidCut.h:97 AliDielectronTRDpidCut.h:98 AliDielectronTRDpidCut.h:99 AliDielectronTRDpidCut.h:100 AliDielectronTRDpidCut.h:101 AliDielectronTRDpidCut.h:102 AliDielectronTRDpidCut.h:103