don't lie in the log!
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliTPCPIDEtaTree.h
CommitLineData
88b71b9f 1#ifndef ALITPCPIDETATREE_H
2#define ALITPCPIDETATREE_H
3
4/*
5This task determines the eta dependence of the TPC signal.
6For this purpose, only tracks fulfilling some standard quality cuts are taken into account.
7The obtained data can be used to derive the functional behaviour of the eta dependence.
8Such a function can be plugged into this task to correct for the eta dependence and to see
9if there is then really no eta dependence left.
10
11Class written by Benjamin Hess.
12Contact: bhess@cern.ch
13*/
14
15class TTree;
16class TObjArray;
17class THnSparse;
18class TH2I;
19
20#include "AliTPCPIDBase.h"
21
22class 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