]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEpid.h
Update of the HFE package
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEpid.h
CommitLineData
809a4336 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**************************************************************************/
50685501 15//
16// Steering class for electron identification
17// Combines detector PID objects
18// For more information please check the implementation file
19//
75d81601 20#ifndef ALIHFEPID_H
21#define ALIHFEPID_H
809a4336 22
23#ifndef ROOT_TObject
24#include <TObject.h>
25#endif
26
722347d8 27#ifndef ALIHFEPIDBASE_H
28#include "AliHFEpidBase.h"
29#endif
30
faee3b18 31class AliESDpid;
809a4336 32class AliESDtrack;
faee3b18 33class AliHFEpidBase;
809a4336 34class AliVParticle;
722347d8 35class AliMCParticle;
809a4336 36
37class TList;
38
39class AliHFEpid : public TObject{
50685501 40 public:
809a4336 41 AliHFEpid();
42 AliHFEpid(const AliHFEpid &c);
43 AliHFEpid &operator=(const AliHFEpid &c);
44 ~AliHFEpid();
45
0792aa82 46 Bool_t InitializePID(TString argument);
722347d8 47 Bool_t IsSelected(AliHFEpidObject *track);
809a4336 48
49 Bool_t IsQAOn() const { return TestBit(kIsQAOn); };
50 Bool_t HasMCData() const { return TestBit(kHasMCData); };
faee3b18 51 void SetESDpid(AliESDpid *pid);
78ea5ef4 52 void SetDebugLevel(Int_t debugLevel) { fDebugLevel = debugLevel; }
809a4336 53 void SetQAOn();
54 void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData, hasMCdata); };
55 TList *GetQAhistograms() const { return fQAlist; };
56
57 protected:
722347d8 58 Bool_t MakePidTpcTof(AliHFEpidObject *track);
59 Bool_t MakePidTpcTrd(AliHFEpidObject *track);
60 void MakePlotsItsTpc(AliHFEpidObject *track);
0792aa82 61
62 // Stratgies
63 void InitStrategy1();
64 void InitStrategy2();
65 void InitStrategy3();
66 void InitStrategy4();
67 void InitStrategy5();
9bcfd1ab 68 void InitStrategy6();
faee3b18 69 void InitStrategy7();
70 Bool_t IdentifyStrategy0(AliHFEpidObject *track);
0792aa82 71 Bool_t IdentifyStrategy1(AliHFEpidObject *track);
72 Bool_t IdentifyStrategy2(AliHFEpidObject *track);
73 Bool_t IdentifyStrategy3(AliHFEpidObject *track);
74 Bool_t IdentifyStrategy4(AliHFEpidObject *track);
75 Bool_t IdentifyStrategy5(AliHFEpidObject *track);
9bcfd1ab 76 Bool_t IdentifyStrategy6(AliHFEpidObject *track);
faee3b18 77 Bool_t IdentifyStrategy7(AliHFEpidObject *track);
809a4336 78 private:
50685501 79 enum{
80 kIsQAOn = BIT(14),
81 kHasMCData = BIT(15)
82 };
83 enum{
84 kMCpid = 0,
85 kESDpid = 1,
86 kITSpid = 2,
87 kTPCpid = 3,
88 kTRDpid = 4,
89 kTOFpid = 5,
90 kNdetectorPID = 6
91 };
92 enum{
93 kCombinedTPCTRD=0
94 };
95 enum{
96 kTRDSignal = 0,
97 kITSSignal = 1
98 };
faee3b18 99
100 void AddCommonObject(TObject * const o);
101 void ClearCommonObjects();
102
78ea5ef4 103 AliHFEpidBase *fDetectorPID[kNdetectorPID]; //! Detector PID classes
104 UInt_t fEnabledDetectors; // Enabled Detectors
0792aa82 105 UInt_t fPIDstrategy; // PID Strategy
78ea5ef4 106 TList *fQAlist; //! QA histograms
107 Int_t fDebugLevel; // Debug Level
faee3b18 108 TObjArray *fCommonObjects; // Garbage Collector
809a4336 109
110 ClassDef(AliHFEpid, 1) // Steering class for Electron ID
111};
112
113#endif