]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TPC/AliTPCPIDEtaTree.h
Updates for the centralized automatic QA (Ionut)
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliTPCPIDEtaTree.h
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:
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   
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