1 #ifndef ALITRDPIDREFMAKER_H
2 #define ALITRDPIDREFMAKER_H
4 ////////////////////////////////////////////////////////////
6 // Base class for the Task to build TRD-PID reference data
7 // For the actual implementation please check the classes
8 // - AliTRDpidRefMakerNN (Neural Networks)
9 // - AliTRDpidRefMakerLQ (Multidimensional Likelihood)
11 // Authors: Alex Bercuci <A.Bercuci@gsi.de>
12 // Alex Wilk <wilka@uni-muenster.de>
14 /////////////////////////////////////////////////////////////
16 #ifndef ALITRDRECOTASK_H
17 #include "AliTRDrecoTask.h"
22 #ifndef ALITRDCALPID_H
23 #include "Cal/AliTRDCalPID.h"
25 #ifndef ALITRDGEOMETRY_H
26 #include "AliTRDgeometry.h"
31 class AliTRDReconstructor;
33 class AliTRDtrackInfo;
35 class AliTRDpidRefMaker : public AliTRDrecoTask
38 enum ETRDpidRefMakerPBins {
52 enum ETRDpidRefMakerSource {
53 kV0 = 0 // use V0 as reference
54 ,kMC = 1 // use MC as reference
55 ,kRec= 2 // use Reconstructed PID as reference
59 AliTRDpidRefMaker(const char *name, const char *title);
61 virtual ~AliTRDpidRefMaker();
63 void UserCreateOutputObjects();
64 void UserExec(Option_t *option);
65 Float_t GetPthreshold() const { return fPthreshold;}
67 void SetAbundance(Float_t train);
68 void SetPthreshold(Float_t t) { fPthreshold = t;}
69 void SetRefPID(ETRDpidRefMakerSource select, AliTRDtrackInfo *t, const AliTRDtrackInfo::AliESDinfo *infoESD, Float_t *pid);
70 void SetSource(ETRDpidRefMakerSource pid, ETRDpidRefMakerSource momentum) {fRefPID = pid; fRefP = momentum;}
74 virtual Bool_t CheckQuality(AliTRDseedV1* trklt);
75 virtual Float_t* CookdEdx(AliTRDseedV1* trklt);
76 virtual void LinkPIDdata();
79 AliTRDReconstructor *fReconstructor; // reconstructor needed for recalculation the PID
80 TObjArray *fV0s; //! v0 array
81 TTree *fData; //! dEdx-P data
82 TObjArray *fInfo; //! list of PID info
83 AliTRDpidInfo *fPIDdataArray; //! pid data array
84 ETRDpidRefMakerSource fRefPID; // reference PID source
85 ETRDpidRefMakerSource fRefP; // reference momentum source
86 Float_t fFreq; // training sample relative abundance
87 Float_t fP; // momentum
88 Float_t fdEdx[8]; // dEdx array
89 Float_t fPID[AliPID::kSPECIES]; // pid from v0s
92 AliTRDpidRefMaker(const AliTRDpidRefMaker&); // not implemented
93 AliTRDpidRefMaker& operator=(const AliTRDpidRefMaker&); // not implemented
95 Float_t fPthreshold; // momentum threshold [GeV/c]
97 ClassDef(AliTRDpidRefMaker, 3); // TRD PID reference maker base class