Line data Source code
1 : #ifndef ALIVCLUSTER_H
2 : #define ALIVCLUSTER_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : //-------------------------------------------------------------------------
7 : /// \class AliVCluster
8 : /// \brief Virtual class for calorimeter cluster data handling
9 : ///
10 : /// Virtual class to access calorimeter
11 : /// (EMCAL, PHOS, PMD, FMD) cluster data
12 : ///
13 : /// \author Gustavo Conesa Balbastre, <Gustavo.Conesa.Balbastre@cern.ch>, LPSC-Grenoble
14 : //
15 : //-------------------------------------------------------------------------
16 :
17 : #include <TObject.h>
18 : #include <TLorentzVector.h>
19 :
20 : class AliVCluster : public TObject
21 : {
22 :
23 : public:
24 :
25 646 : AliVCluster() { ; }
26 732 : virtual ~AliVCluster() { ; }
27 : AliVCluster(const AliVCluster& clus);
28 : AliVCluster & operator=(const AliVCluster& source);
29 0 : void Clear(const Option_t*) {;}
30 :
31 : /// Define the type of clusters for the different calorimeters
32 : enum VClu_t {
33 : kUndef = -2,
34 : kPHOSNeutral,
35 : kPHOSCharged,
36 : kEMCALClusterv1,
37 : kPMDNeutral,
38 : kPMDCharged};
39 :
40 : /// Define the PID types
41 : enum VCluPID_t {
42 : kElectron = 0,
43 : kMuon = 1,
44 : kPion = 2,
45 : kKaon = 3,
46 : kProton = 4,
47 : kPhoton = 5,
48 : kPi0 = 6,
49 : kNeutron = 7,
50 : kKaon0 = 8,
51 : kEleCon = 9,
52 : kUnknown = 10,
53 : kCharged = 11,//For PMD?
54 : kNeutral = 12 //For PMD?
55 : };
56 :
57 : /// Define the correction types
58 : enum VCluUserDefEnergy_t {
59 : kNonLinCorr = 0,
60 : kHadCorr = 1,
61 : kUserDefEnergy1 = 2,
62 : kUserDefEnergy2 = 3,
63 : kLastUserDefEnergy = 4
64 : };
65 :
66 : // Common EMCAL/PHOS/FMD/PMD
67 :
68 0 : virtual void SetID(Int_t ) { ; }
69 0 : virtual Int_t GetID() const {return 0 ; }
70 :
71 0 : virtual void SetType(Char_t ) { ; }
72 0 : virtual Char_t GetType() const {return kUndef ; }
73 :
74 0 : virtual void SetE(Double_t ) { ; }
75 0 : virtual Double_t E() const {return 0. ; }
76 :
77 0 : virtual void SetChi2(Double_t ) { ; }
78 0 : virtual Double_t Chi2() const {return 0. ; }
79 :
80 0 : virtual void SetPositionAt(Float_t,Int_t) { ; }
81 0 : virtual void SetPosition(Float_t *) { ; }
82 0 : virtual void GetPosition(Float_t *) const { ; }
83 :
84 0 : virtual void SetPIDAt(Float_t , Int_t) { ; }
85 0 : virtual void SetPID(const Float_t *) { ; }
86 0 : virtual const Double_t *GetPID() const { return 0 ; }
87 :
88 : // CaloClusters, PHOS/EMCAL
89 :
90 0 : virtual Bool_t IsEMCAL() const {return kFALSE ; }
91 0 : virtual Bool_t IsPHOS() const {return kFALSE ; }
92 :
93 0 : virtual void SetDispersion(Double_t ) { ; }
94 0 : virtual Double_t GetDispersion() const {return 0. ;}
95 :
96 0 : virtual void SetM20(Double_t) { ; }
97 0 : virtual Double_t GetM20() const {return 0. ; }
98 :
99 0 : virtual void SetM02(Double_t) { ; }
100 0 : virtual Double_t GetM02() const {return 0. ; }
101 :
102 0 : virtual void SetNExMax(UChar_t) { ; }
103 0 : virtual UChar_t GetNExMax() const {return 0 ; }
104 :
105 0 : virtual void SetTOF(Double_t) { ; }
106 0 : virtual Double_t GetTOF() const {return 0. ; }
107 :
108 0 : virtual void SetEmcCpvDistance(Double_t) { ; }
109 0 : virtual Double_t GetEmcCpvDistance() const {return 0. ; }
110 0 : virtual void SetTrackDistance(Double_t, Double_t ){ ; }
111 0 : virtual Double_t GetTrackDx(void)const {return 0. ; }
112 0 : virtual Double_t GetTrackDz(void)const {return 0. ; }
113 :
114 0 : virtual void SetDistanceToBadChannel(Double_t) { ; }
115 0 : virtual Double_t GetDistanceToBadChannel() const {return 0. ; }
116 :
117 0 : virtual void SetNCells(Int_t) { ; }
118 0 : virtual Int_t GetNCells() const {return 0 ; }
119 0 : virtual void SetCellsAbsId(UShort_t */*array*/) {;}
120 0 : virtual UShort_t *GetCellsAbsId() {return 0 ; }
121 0 : virtual void SetCellsAmplitudeFraction(Double32_t */*array*/) {;}
122 0 : virtual Double_t *GetCellsAmplitudeFraction() {return 0 ; }
123 0 : virtual Int_t GetCellAbsId(Int_t) const {return 0 ; }
124 0 : virtual Double_t GetCellAmplitudeFraction(Int_t) const {return 0. ; }
125 :
126 0 : virtual Int_t GetLabel() const {return -1 ;}
127 0 : virtual Int_t GetLabelAt(UInt_t) const {return -1 ;}
128 0 : virtual Int_t *GetLabels() const {return 0 ; }
129 0 : virtual UInt_t GetNLabels() const {return 0 ; }
130 0 : virtual void SetLabel(Int_t *, UInt_t ) { ; }
131 :
132 0 : virtual void SetCellsMCEdepFractionMap(UInt_t * /*array*/) {;}
133 0 : virtual UInt_t *GetCellsMCEdepFractionMap() const {return 0 ; }
134 0 : virtual void GetCellMCEdepFractionArray(Int_t, Float_t * /*eDepFraction[4]*/) const {;}
135 0 : virtual UInt_t PackMCEdepFraction(Float_t * /*eDepFraction[4]*/) const {return 0 ; }
136 :
137 0 : virtual void SetClusterMCEdepFractionFromEdepArray(Float_t */*array*/) {;}
138 0 : virtual void SetClusterMCEdepFraction (UShort_t */*array*/) {;}
139 0 : virtual UShort_t *GetClusterMCEdepFraction() const {return 0 ; }
140 0 : virtual Float_t GetClusterMCEdepFraction(Int_t) const {return 0 ; }
141 :
142 0 : virtual Int_t GetNTracksMatched() const {return 0 ; }
143 :
144 : /// Only for AODs
145 0 : virtual TObject *GetTrackMatched(Int_t) const {return 0 ; }
146 :
147 : /// Only for ESDs
148 0 : virtual Int_t GetTrackMatchedIndex(Int_t=0) const {return -1; }
149 :
150 0 : virtual Double_t GetCoreEnergy() const {return 0 ; }
151 0 : virtual void SetCoreEnergy(Double_t) { ; }
152 :
153 0 : virtual Double_t GetMCEnergyFraction() const { return 0 ; }
154 0 : virtual void SetMCEnergyFraction(Double_t) { ; }
155 :
156 0 : virtual Bool_t GetIsExotic() const { return kFALSE; }
157 0 : virtual void SetIsExotic(Bool_t /*b*/) { ; }
158 :
159 0 : virtual Double_t GetUserDefEnergy(VCluUserDefEnergy_t) const { return 0. ; }
160 0 : virtual void SetUserDefEnergy(VCluUserDefEnergy_t, Double_t) { ; }
161 :
162 0 : virtual Double_t GetUserDefEnergy(Int_t i) const { return i >= 0 && i <= kLastUserDefEnergy ? GetUserDefEnergy((VCluUserDefEnergy_t)i) : 0. ; }
163 0 : virtual void SetUserDefEnergy(Int_t i, Double_t v) { if (i >= 0 && i <= kLastUserDefEnergy) SetUserDefEnergy((VCluUserDefEnergy_t)i, v) ; }
164 :
165 0 : Double_t GetNonLinCorrEnergy() const { return GetUserDefEnergy(kNonLinCorr) ; }
166 0 : void SetNonLinCorrEnergy(Double_t e) { SetUserDefEnergy(kNonLinCorr, e) ; }
167 :
168 0 : Double_t GetHadCorrEnergy() const { return GetUserDefEnergy(kHadCorr) ; }
169 0 : void SetHadCorrEnergy(Double_t e) { SetUserDefEnergy(kHadCorr, e) ; }
170 :
171 0 : virtual void GetMomentum(TLorentzVector &/*tl*/, const Double_t * /*v*/) const { ; }
172 0 : virtual void GetMomentum(TLorentzVector &/*tl*/, const Double_t * /*v*/, VCluUserDefEnergy_t /*t*/) const { ; }
173 :
174 : /// \cond CLASSIMP
175 208 : ClassDef(AliVCluster,0) ; //VCluster
176 : /// \endcond
177 :
178 : };
179 :
180 : #endif //ALIVCLUSTER_H
181 :
|