]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEpidQA.h
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//
c2690925 21#ifndef ALIHFEPIDQA_H
22#define ALIHFEPIDQA_H
23
70da6c5a 24#ifndef ROOT_TObject
25#include <TObject.h>
26#endif
27
28class TList;
29class TObjArray;
faee3b18 30class TPDGCode;
31class TParticle;
32class TFile;
33class TMultiLayerPerceptron;
70da6c5a 34
35class AliAODTrack;
36class AliESDtrack;
70da6c5a 37class AliMCEvent;
70da6c5a 38class AliVEvent;
8c1c76e9 39class AliPIDResponse;
faee3b18 40class AliExternalTrackParam;
41class AliLog;
42
70da6c5a 43class AliHFEV0pidMC;
faee3b18 44class AliHFEcollection;
45class AliHFEtrdPIDqa;
46class AliHFEV0pid;
47class AliHFEpidTRD;
48
70da6c5a 49
50class AliHFEpidQA : public TObject{
51 public:
52 AliHFEpidQA();
53 ~AliHFEpidQA();
faee3b18 54 AliHFEpidQA(const AliHFEpidQA &ref);
55 AliHFEpidQA &operator=(const AliHFEpidQA &ref);
56 virtual void Copy(TObject &o) const;
70da6c5a 57
58 void Init();
faee3b18 59 void Process();
70da6c5a 60
61 TList *GetOutput();
62 TList *GetV0pidQA();
63 TList *GetV0pidMC();
64
65 Bool_t HasV0pidQA() const { return TestBit(kV0pidQA); };
66 Bool_t HasRecalculateTRDpid() const { return TestBit(kRecalculateTRDpid); };
67
faee3b18 68 void SetEvent(AliVEvent* const ev) { fEvent = ev; };
70da6c5a 69 void SetMCEvent(AliMCEvent * const mc) { fMC = mc; };
70 void SetV0pidQA(Bool_t v0pidQA = kTRUE) { SetBit(kV0pidQA, v0pidQA); };
71 void SetRecalculateTRDpid(Bool_t recal = kTRUE) { SetBit(kRecalculateTRDpid, recal); };
e156c3bb 72 void SetTRDTotalChargeInSlice0() { fTRDTotalChargeInSlice0 = kTRUE; }
70da6c5a 73
8c1c76e9 74 void SetPIDResponse(AliPIDResponse* const pid) { fESDpid = pid; }
e156c3bb 75 Float_t TOFbeta(const AliESDtrack* const track) const;
faee3b18 76
77 void CheckEvent();
78 void SetNNref(TFile *f) { fNNref = f; };
79
80 AliHFEtrdPIDqa *GetTRDQA() const { return fTRDpidQA; }
70da6c5a 81
82 protected:
83 enum{
84 kV0pidQA = BIT(14),
85 kRecalculateTRDpid = BIT(15)
86 };
87 enum{ // detectors for histogram names
88 kITS = 0,
89 kTPC = 1,
90 kTRD = 2,
faee3b18 91 kTOF = 3
70da6c5a 92 };
93
3a72645a 94 TObjArray *MakeTrackList(const TObjArray *tracks) const;
95 TObjArray *MakeCleanListElectrons(const TObjArray *tracks) const;
96
97 void MakePurity(const TObjArray *tracks, Int_t species);
98 TObjArray *MakeCleanListForTRD(const TObjArray * const track, Int_t species);
99 void FillElectronLikelihoods(const TObjArray * const particles, Int_t species);
100 void FillPIDresponse(const TObjArray * const particles, Int_t species);
101 void FillIllumination(const TObjArray *const particles, Int_t species);
faee3b18 102 void FillTPCinfo(AliESDtrack * const track, Int_t species);
8c1c76e9 103 void TestTRDResponse(const TObjArray * const tracks, Int_t species);
70da6c5a 104 void RecalculateTRDpid(AliESDtrack *track, Double_t *pidProbs) const;
105 void RecalculateTRDpid(AliAODTrack *track, Double_t *pidProbs) const;
3a72645a 106 void CheckTenderV0pid(const TObjArray * const particles, Int_t species);
faee3b18 107 Int_t GetTenderV0pid(AliESDtrack * const track);
108
109 Double_t TRDlikeTracklet(Int_t layer, AliESDtrack * const track, Double_t *likelihood);
6555e2ad 110 Int_t TRDmomBin(Double_t p) const;
70da6c5a 111
faee3b18 112 protected:
3a72645a 113 Int_t GetMaxPID(const Double_t *pidProbs) const;
faee3b18 114 Int_t GetPDG(Int_t index);
115
70da6c5a 116 private:
faee3b18 117 AliVEvent *fEvent; // event pointer
70da6c5a 118 AliMCEvent *fMC; // MC Event
119 AliHFEV0pid *fV0pid; // V0 PID
120 AliHFEV0pidMC *fV0pidMC; // V0 MC PID
faee3b18 121 AliHFEtrdPIDqa *fTRDpidQA; //! TRD PID QA object
70da6c5a 122 AliHFEcollection *fOutput; // Output container
8c1c76e9 123 AliPIDResponse *fESDpid; // ESD PID object
faee3b18 124 private:
125 TFile *fNNref; // reference file for NN pid
126 TMultiLayerPerceptron *fNet[11]; // reference networks
e156c3bb 127 Bool_t fTRDTotalChargeInSlice0; // Fix for Foreward/Backward compatibility
70da6c5a 128
129 ClassDef(AliHFEpidQA, 1) // PID QA tool
130};
131#endif