Update of the HFE package
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEpidQA.h
CommitLineData
70da6c5a 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15//
16// Class for PID QA
17// Several studies done on clean samples of electrons, pions and kaons
18// coming from V0 PID
19// More information can be found in the implementation file
20//
21#ifndef ALIHFEPIDQA_H
22#define ALIHFEPIDQA_H
23
24#ifndef ROOT_TObject
25#include <TObject.h>
26#endif
27
28class TList;
29class TObjArray;
30
31class AliAODTrack;
32class AliESDtrack;
33class AliHFEcollection;
34class AliHFEV0pid;
35class AliMCEvent;
36//class AliTRDPIDResponseLQ1D;
37class AliVEvent;
38class AliESDpid;
39class AliHFEV0pidMC;
40
41class AliHFEpidQA : public TObject{
42 public:
43 AliHFEpidQA();
44 ~AliHFEpidQA();
45
46 void Init();
47 void Process(AliVEvent *inputEvent);
48
49 TList *GetOutput();
50 TList *GetV0pidQA();
51 TList *GetV0pidMC();
52
53 Bool_t HasV0pidQA() const { return TestBit(kV0pidQA); };
54 Bool_t HasRecalculateTRDpid() const { return TestBit(kRecalculateTRDpid); };
55
56 void SetMCEvent(AliMCEvent * const mc) { fMC = mc; };
57 void SetV0pidQA(Bool_t v0pidQA = kTRUE) { SetBit(kV0pidQA, v0pidQA); };
58 void SetRecalculateTRDpid(Bool_t recal = kTRUE) { SetBit(kRecalculateTRDpid, recal); };
59
60 void SetRun(Int_t run) { fRun = run; };
61 // temporary solutions for correction the T0 for pass4 & pass5
62 void CorrectT0();
63 void SetT0(Float_t t0) { fT0 = t0; };
64 Float_t TOFbeta(AliESDtrack *const track) const;
65
66 protected:
67 enum{
68 kV0pidQA = BIT(14),
69 kRecalculateTRDpid = BIT(15)
70 };
71 enum{ // detectors for histogram names
72 kITS = 0,
73 kTPC = 1,
74 kTRD = 2,
75 kTOF = 4
76 };
77
78 void MakePurity(TObjArray *tracks, Int_t species);
79 void FillTRDelectronLikelihoods(TObjArray * const particles, Int_t species);
80 void FillPIDresponse(TObjArray * const particles, Int_t species);
81 void RecalculateTRDpid(AliESDtrack *track, Double_t *pidProbs) const;
82 void RecalculateTRDpid(AliAODTrack *track, Double_t *pidProbs) const;
83
84 private:
85 AliHFEpidQA(const AliHFEpidQA &ref);
86 AliHFEpidQA &operator=(const AliHFEpidQA &ref);
87
88 AliMCEvent *fMC; // MC Event
89 AliHFEV0pid *fV0pid; // V0 PID
90 AliHFEV0pidMC *fV0pidMC; // V0 MC PID
91 //AliTRDPIDResponseLQ1D *fTRDpidResponse; // TRD PID
92 AliHFEcollection *fOutput; // Output container
93 Float_t fT0; // corrected T0 for pass4 & pass5
94 Int_t fRun; // Run Number
95 AliESDpid *fESDpid; // ESD PID object
96
97 ClassDef(AliHFEpidQA, 1) // PID QA tool
98};
99#endif