]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/hfe/AliHFEpid.h
Excluding lowest pt point for K and p, ratios fit/data are now shown in 3 canvases
[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
e3fc062d 23#ifndef ROOT_TNamed
24#include <TNamed.h>
809a4336 25#endif
26
722347d8 27#ifndef ALIHFEPIDBASE_H
28#include "AliHFEpidBase.h"
29#endif
30
e3fc062d 31#include <climits>
32
faee3b18 33class AliESDpid;
809a4336 34class AliESDtrack;
faee3b18 35class AliHFEpidBase;
809a4336 36class AliVParticle;
722347d8 37class AliMCParticle;
809a4336 38
39class TList;
40
e3fc062d 41class AliHFEpid : public TNamed{
50685501 42 public:
e3fc062d 43 enum{
44 kUndefined = UINT_MAX
45 };
46 enum DETtype_t {
47 kMCpid = 0,
48 kESDpid = 1,
49 kITSpid = 2,
50 kTPCpid = 3,
51 kTRDpid = 4,
52 kTOFpid = 5,
53 kNdetectorPID = 6
54 };
809a4336 55 AliHFEpid();
e3fc062d 56 AliHFEpid(const Char_t *name);
809a4336 57 AliHFEpid(const AliHFEpid &c);
58 AliHFEpid &operator=(const AliHFEpid &c);
e3fc062d 59 void Copy(TObject &o) const;
809a4336 60 ~AliHFEpid();
61
0792aa82 62 Bool_t InitializePID(TString argument);
722347d8 63 Bool_t IsSelected(AliHFEpidObject *track);
809a4336 64
65 Bool_t IsQAOn() const { return TestBit(kIsQAOn); };
66 Bool_t HasMCData() const { return TestBit(kHasMCData); };
faee3b18 67 void SetESDpid(AliESDpid *pid);
78ea5ef4 68 void SetDebugLevel(Int_t debugLevel) { fDebugLevel = debugLevel; }
809a4336 69 void SetQAOn();
70 void SetHasMCData(Bool_t hasMCdata = kTRUE) { SetBit(kHasMCData, hasMCdata); };
71 TList *GetQAhistograms() const { return fQAlist; };
e3fc062d 72 AliHFEpidBase *GetDetPID(DETtype_t det) const { return det < kNdetectorPID ? fDetectorPID[det] : NULL; }
73 void PrintStatus() const;
809a4336 74
75 protected:
722347d8 76 Bool_t MakePidTpcTof(AliHFEpidObject *track);
77 Bool_t MakePidTpcTrd(AliHFEpidObject *track);
78 void MakePlotsItsTpc(AliHFEpidObject *track);
0792aa82 79
80 // Stratgies
81 void InitStrategy1();
82 void InitStrategy2();
83 void InitStrategy3();
84 void InitStrategy4();
85 void InitStrategy5();
9bcfd1ab 86 void InitStrategy6();
faee3b18 87 void InitStrategy7();
e3fc062d 88 void InitStrategy8();
faee3b18 89 Bool_t IdentifyStrategy0(AliHFEpidObject *track);
0792aa82 90 Bool_t IdentifyStrategy1(AliHFEpidObject *track);
91 Bool_t IdentifyStrategy2(AliHFEpidObject *track);
92 Bool_t IdentifyStrategy3(AliHFEpidObject *track);
93 Bool_t IdentifyStrategy4(AliHFEpidObject *track);
94 Bool_t IdentifyStrategy5(AliHFEpidObject *track);
9bcfd1ab 95 Bool_t IdentifyStrategy6(AliHFEpidObject *track);
faee3b18 96 Bool_t IdentifyStrategy7(AliHFEpidObject *track);
e3fc062d 97 Bool_t IdentifyStrategy8(AliHFEpidObject *track);
809a4336 98 private:
50685501 99 enum{
100 kIsQAOn = BIT(14),
101 kHasMCData = BIT(15)
102 };
50685501 103 enum{
104 kCombinedTPCTRD=0
105 };
106 enum{
107 kTRDSignal = 0,
108 kITSSignal = 1
109 };
faee3b18 110
111 void AddCommonObject(TObject * const o);
112 void ClearCommonObjects();
e3fc062d 113 //-----Switch on/off detectors in PID sequence------
114 void SwitchOnDetector(UInt_t det){
115 if(det < kNdetectorPID) SETBIT(fEnabledDetectors, det);
116 }
117 void SwitchOffDetector(UInt_t det){
118 if(det < kNdetectorPID) CLRBIT(fEnabledDetectors, det);
119 }
120 Bool_t IsDetectorOn(UInt_t det) const {
121 return det < kNdetectorPID ? TESTBIT(fEnabledDetectors, det): kFALSE;
122 }
123 //--------------------------------------------------
faee3b18 124
78ea5ef4 125 AliHFEpidBase *fDetectorPID[kNdetectorPID]; //! Detector PID classes
126 UInt_t fEnabledDetectors; // Enabled Detectors
0792aa82 127 UInt_t fPIDstrategy; // PID Strategy
78ea5ef4 128 TList *fQAlist; //! QA histograms
129 Int_t fDebugLevel; // Debug Level
faee3b18 130 TObjArray *fCommonObjects; // Garbage Collector
809a4336 131
132 ClassDef(AliHFEpid, 1) // Steering class for Electron ID
133};
134
135#endif