]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TRD/AliTRDpidRefMaker.h
move general OCDB services to the level of AliTRDinfoGen
[u/mrichter/AliRoot.git] / PWG1 / TRD / AliTRDpidRefMaker.h
CommitLineData
1ee39b3a 1#ifndef ALITRDPIDREFMAKER_H
2#define ALITRDPIDREFMAKER_H
3
4////////////////////////////////////////////////////////////
5//
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)
10//
11// Authors: Alex Bercuci <A.Bercuci@gsi.de>
12// Alex Wilk <wilka@uni-muenster.de>
13//
14/////////////////////////////////////////////////////////////
15
16#ifndef ALITRDRECOTASK_H
17#include "AliTRDrecoTask.h"
18#endif
19#ifndef ALIPID_H
20#include "AliPID.h"
21#endif
22#ifndef ALITRDCALPID_H
da27d983 23#include "Cal/AliTRDCalPID.h"
1ee39b3a 24#endif
25#ifndef ALITRDGEOMETRY_H
da27d983 26#include "AliTRDgeometry.h"
1ee39b3a 27#endif
28
29class TTree;
30class TObjArray;
1ee39b3a 31class AliTRDseedV1;
3d19c1b0 32class AliTRDtrackInfo;
a5a3321d 33class AliTRDpidInfo;
1ee39b3a 34class AliTRDpidRefMaker : public AliTRDrecoTask
35{
36public:
37 enum ETRDpidRefMakerPBins {
38 k006 = 0
39 ,k008 = 1
40 ,k010 = 2
41 ,k015 = 3
42 ,k020 = 4
43 ,k030 = 5
44 ,k040 = 6
45 ,k050 = 7
46 ,k060 = 8
47 ,k080 = 9
48 ,k100 = 10
49 ,kAll = 11
50 };
51 enum ETRDpidRefMakerSource {
52 kV0 = 0 // use V0 as reference
53 ,kMC = 1 // use MC as reference
54 ,kRec= 2 // use Reconstructed PID as reference
55 };
56
705f8b0a 57 AliTRDpidRefMaker();
58 AliTRDpidRefMaker(const char *name, const char *title);
1ee39b3a 59
60 virtual ~AliTRDpidRefMaker();
61
f8f46e4d 62 void UserCreateOutputObjects();
63 void UserExec(Option_t *option);
1ee39b3a 64 Float_t GetPthreshold() const { return fPthreshold;}
65
66 void SetAbundance(Float_t train);
67 void SetPthreshold(Float_t t) { fPthreshold = t;}
d80a6a00 68 void SetRefPID(ETRDpidRefMakerSource select, AliTRDtrackInfo *t, const AliTRDtrackInfo::AliESDinfo *infoESD, Float_t *pid);
1ee39b3a 69 void SetSource(ETRDpidRefMakerSource pid, ETRDpidRefMakerSource momentum) {fRefPID = pid; fRefP = momentum;}
70
71
72protected:
73 virtual Bool_t CheckQuality(AliTRDseedV1* trklt);
74 virtual Float_t* CookdEdx(AliTRDseedV1* trklt);
75 virtual void LinkPIDdata();
76 virtual void Fill();
77
1ee39b3a 78 TObjArray *fV0s; //! v0 array
79 TTree *fData; //! dEdx-P data
b91fdd71 80 TObjArray *fInfo; //! list of PID info
a5a3321d 81 AliTRDpidInfo *fPIDdataArray; //! pid data array
1ee39b3a 82 ETRDpidRefMakerSource fRefPID; // reference PID source
83 ETRDpidRefMakerSource fRefP; // reference momentum source
5935a6da 84 Float_t fFreq; // training sample relative abundance
85 Float_t fP; // momentum
86 Float_t fdEdx[8]; // dEdx array
87 Float_t fPID[AliPID::kSPECIES]; // pid from v0s
1ee39b3a 88
89private:
90 AliTRDpidRefMaker(const AliTRDpidRefMaker&); // not implemented
91 AliTRDpidRefMaker& operator=(const AliTRDpidRefMaker&); // not implemented
92
93 Float_t fPthreshold; // momentum threshold [GeV/c]
94
fd7ffd88 95 ClassDef(AliTRDpidRefMaker, 4); // TRD PID reference maker base class
1ee39b3a 96};
97
98#endif