add new mergeable classes for chamber status and trigger statistics
[u/mrichter/AliRoot.git] / PWGPP / 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
61cfa442 19#ifndef ALITRDPIDUTIL_H
20#include "AliTRDpidUtil.h"
1ee39b3a 21#endif
1ee39b3a 22
23class TTree;
24class TObjArray;
1ee39b3a 25class AliTRDseedV1;
3d19c1b0 26class AliTRDtrackInfo;
a5a3321d 27class AliTRDpidInfo;
1ee39b3a 28class AliTRDpidRefMaker : public AliTRDrecoTask
29{
30public:
31 enum ETRDpidRefMakerPBins {
32 k006 = 0
33 ,k008 = 1
34 ,k010 = 2
35 ,k015 = 3
36 ,k020 = 4
37 ,k030 = 5
38 ,k040 = 6
39 ,k050 = 7
40 ,k060 = 8
41 ,k080 = 9
42 ,k100 = 10
43 ,kAll = 11
44 };
45 enum ETRDpidRefMakerSource {
46 kV0 = 0 // use V0 as reference
47 ,kMC = 1 // use MC as reference
48 ,kRec= 2 // use Reconstructed PID as reference
49 };
50
705f8b0a 51 AliTRDpidRefMaker();
52 AliTRDpidRefMaker(const char *name, const char *title);
1ee39b3a 53
54 virtual ~AliTRDpidRefMaker();
55
f8f46e4d 56 void UserCreateOutputObjects();
57 void UserExec(Option_t *option);
1ee39b3a 58 Float_t GetPthreshold() const { return fPthreshold;}
59
60 void SetAbundance(Float_t train);
61 void SetPthreshold(Float_t t) { fPthreshold = t;}
d80a6a00 62 void SetRefPID(ETRDpidRefMakerSource select, AliTRDtrackInfo *t, const AliTRDtrackInfo::AliESDinfo *infoESD, Float_t *pid);
1ee39b3a 63 void SetSource(ETRDpidRefMakerSource pid, ETRDpidRefMakerSource momentum) {fRefPID = pid; fRefP = momentum;}
64
65
66protected:
67 virtual Bool_t CheckQuality(AliTRDseedV1* trklt);
68 virtual Float_t* CookdEdx(AliTRDseedV1* trklt);
69 virtual void LinkPIDdata();
70 virtual void Fill();
71
1ee39b3a 72 TObjArray *fV0s; //! v0 array
73 TTree *fData; //! dEdx-P data
b91fdd71 74 TObjArray *fInfo; //! list of PID info
a5a3321d 75 AliTRDpidInfo *fPIDdataArray; //! pid data array
1ee39b3a 76 ETRDpidRefMakerSource fRefPID; // reference PID source
77 ETRDpidRefMakerSource fRefP; // reference momentum source
5935a6da 78 Float_t fFreq; // training sample relative abundance
79 Float_t fP; // momentum
61cfa442 80 Float_t fdEdx[AliTRDpidUtil::kNNslices];// dEdx array
5935a6da 81 Float_t fPID[AliPID::kSPECIES]; // pid from v0s
1ee39b3a 82
83private:
84 AliTRDpidRefMaker(const AliTRDpidRefMaker&); // not implemented
85 AliTRDpidRefMaker& operator=(const AliTRDpidRefMaker&); // not implemented
86
87 Float_t fPthreshold; // momentum threshold [GeV/c]
88
fd7ffd88 89 ClassDef(AliTRDpidRefMaker, 4); // TRD PID reference maker base class
1ee39b3a 90};
91
92#endif