]>
Commit | Line | Data |
---|---|---|
88b71b9f | 1 | #ifndef ALITPCPIDETATREE_H |
2 | #define ALITPCPIDETATREE_H | |
3 | ||
4 | /* | |
5 | This task determines the eta dependence of the TPC signal. | |
6 | For this purpose, only tracks fulfilling some standard quality cuts are taken into account. | |
7 | The obtained data can be used to derive the functional behaviour of the eta dependence. | |
8 | Such a function can be plugged into this task to correct for the eta dependence and to see | |
9 | if there is then really no eta dependence left. | |
10 | ||
11 | Class written by Benjamin Hess. | |
12 | Contact: bhess@cern.ch | |
13 | */ | |
14 | ||
15 | class TTree; | |
16 | class TObjArray; | |
17 | class THnSparse; | |
18 | class TH2I; | |
19 | ||
20 | #include "AliTPCPIDBase.h" | |
21 | ||
22 | class AliTPCPIDEtaTree : public AliTPCPIDBase { | |
23 | public: | |
24 | enum PIDtype { kMCid = 0, kTPCid = 1, kV0idNoTOF = 2, kTPCandTOFid = 3, kV0idPlusTOFaccepted = 4, kV0idPlusTOFrejected = 5 }; | |
25 | ||
26 | AliTPCPIDEtaTree(); | |
27 | AliTPCPIDEtaTree(const char *name); | |
28 | virtual ~AliTPCPIDEtaTree(); | |
29 | ||
30 | virtual void UserCreateOutputObjects(); | |
31 | virtual void UserExec(Option_t *option); | |
32 | virtual void Terminate(const Option_t*); | |
33 | ||
34 | Bool_t GetCorrectdEdxEtaDependence() const { return fCorrectdEdxEtaDependence; }; | |
35 | void SetCorrectdEdxEtaDependence(Bool_t flag) { fCorrectdEdxEtaDependence = flag; }; | |
36 | ||
37 | Bool_t GetCorrectdEdxMultiplicityDependence() const { return fCorrectdEdxMultiplicityDependence; }; | |
38 | void SetCorrectdEdxMultiplicityDependence(Bool_t flag) { fCorrectdEdxMultiplicityDependence = flag; }; | |
39 | ||
40 | Bool_t GetDoAdditionalQA() const { return fDoAdditionalQA; }; | |
41 | void SetDoAdditionalQA(Bool_t doAdditionalQA = kTRUE) { fDoAdditionalQA = doAdditionalQA; }; | |
42 | ||
43 | Bool_t GetStoreMultiplicity() const { return fStoreMultiplicity; }; | |
44 | void SetStoreMultiplicity(Bool_t storeMultiplicity = kTRUE) { fStoreMultiplicity = storeMultiplicity; }; | |
45 | ||
46 | Bool_t GetStoreNumOfSubthresholdclusters() const { return fStoreNumOfSubthresholdclusters; }; | |
47 | void SetStoreNumOfSubthresholdclusters(Bool_t storeNumOfSubthresholdclusters = kTRUE) | |
48 | { fStoreNumOfSubthresholdclusters = storeNumOfSubthresholdclusters; }; | |
49 | ||
50 | Bool_t GetStoreNumClustersInActiveVolume() const { return fStoreNumClustersInActiveVolume; }; | |
51 | void SetStoreNumClustersInActiveVolume(Bool_t storeNumClustersInActiveVolume = kTRUE) | |
52 | { fStoreNumClustersInActiveVolume = storeNumClustersInActiveVolume; }; | |
53 | ||
54 | Double_t GetPtpcPionCut() const { return fPtpcPionCut; }; | |
55 | void SetPtpcPionCut(Double_t pTPCpionCut) { fPtpcPionCut = pTPCpionCut; }; | |
56 | ||
57 | private: | |
f310f95e | 58 | Short_t fNumEtaCorrReqErrorsIssued; // Number of times the error about eta correction issues have been displayed |
59 | Short_t fNumMultCorrReqErrorsIssued; // Number of times the error about multiplicity correction issues have been displayed | |
60 | ||
88b71b9f | 61 | Bool_t fStoreMultiplicity; // Store multiplicity in tree? |
62 | Bool_t fStoreNumOfSubthresholdclusters; // Store number of subthreshold clusters in tree? | |
63 | Bool_t fStoreNumClustersInActiveVolume; // Store number of clusters in active volume in tree? | |
64 | Bool_t fDoAdditionalQA; // Save output for additional QA, like TOF QA? | |
65 | Double_t fPtpcPionCut; // Cut on pions with lower tpc momentum | |
66 | ||
67 | Double_t fPtpc; // TPC momentum | |
68 | Double_t fPt; // Transverse momentum | |
69 | Double_t fDeDx; // Measured dE/dx | |
70 | Double_t fDeDxExpected; // Expected dE/dx according to parametrisation | |
71 | Double_t fTanTheta; // Tangens of (local) theta at TPC inner wall | |
72 | //Double_t fSinAlpha; // Sine of (local) phi at TPC inner wall | |
73 | //Double_t fY; // Local Y at TPC inner wall | |
74 | Double_t fPhiPrime; // Phi prime | |
75 | UShort_t fTPCsignalN; // Number of TPC clusters for PID | |
76 | UShort_t fTPCsignalNsubthreshold; // Number of TPC subthreshold clusters for PID | |
77 | Double_t fNumTPCClustersInActiveVolume; // Number of TPC clusters in active volume | |
78 | UChar_t fPIDtype; // Type of identification (TPC dEdx, V0, ...) | |
79 | ||
80 | // In case of PbpB | |
81 | Int_t fMultiplicity; // Multiplicity in case of PbPb | |
82 | ||
83 | Bool_t fCorrectdEdxEtaDependence; // Correct eta dependence for dEdxExpected | |
84 | Bool_t fCorrectdEdxMultiplicityDependence; // Correct multiplicity dependence for dEdxExpected | |
85 | ||
86 | TTree* fTree; //! data tree | |
87 | TTree* fTreePions; //! data tree pions | |
88 | ||
89 | TObjArray* fOutputContainer; //! Output data container for TOF qa | |
90 | THnSparseI* fhTOFqa; //! THnSparse with TOF qa data | |
91 | TH2I* fhMultiplicityQA; //! QA histo for multiplicity | |
92 | ||
93 | AliTPCPIDEtaTree(const AliTPCPIDEtaTree&); // not implemented | |
94 | AliTPCPIDEtaTree& operator=(const AliTPCPIDEtaTree&); // not implemented | |
95 | ||
96 | ClassDef(AliTPCPIDEtaTree, 3); | |
97 | }; | |
98 | ||
99 | #endif |