]>
Commit | Line | Data |
---|---|---|
9dc4f671 | 1 | /* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
4 | // Short comment describing what this class does needed! | |
5 | ||
37dde34e | 6 | // $Id: AliJPhoton.h,v 1.5 2008/05/08 15:19:52 djkim Exp $ |
7 | ||
8 | //////////////////////////////////////////////////// | |
9 | /*! | |
10 | \file AliJPhoton.h | |
11 | \brief | |
12 | \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla) | |
13 | \email: djkim@jyu.fi | |
14 | \version $Revision: 1.5 $ | |
15 | \date $Date: 2008/05/08 15:19:52 $ | |
16 | */ | |
17 | //////////////////////////////////////////////////// | |
18 | ||
19 | #ifndef ALIJPHOTON_H | |
20 | #define ALIJPHOTON_H | |
21 | ||
22 | #ifndef ROOT_TObject | |
23 | #include <TObject.h> | |
24 | #endif | |
25 | ||
26 | #include "AliJBaseTrack.h" | |
27 | ||
28 | class AliJPhoton : public AliJBaseTrack { | |
29 | ||
30 | public: | |
31 | enum AliJCaloType { | |
32 | kUndef = -1, | |
9dc4f671 | 33 | kPHOSCalo, |
34 | kEMCALCalo | |
37dde34e | 35 | }; |
36 | ||
37 | enum AliJCaloPID{ | |
38 | kElectronAli = 0, | |
39 | kMuonAli = 1, | |
40 | kPionAli = 2, | |
41 | kKaonAli = 3, | |
42 | kProtonAli = 4, | |
9dc4f671 | 43 | kDeuteronAli = 5, |
44 | kTritonAli = 6, | |
45 | kHe3Ali = 7, | |
46 | kAlpha = 8, | |
47 | kPhotonAli = 9, | |
48 | kPi0Ali = 10, | |
49 | kNeutronAli = 11, | |
50 | kKaon0Ali = 12, | |
51 | kEleConAli = 13, | |
52 | kUnknownAli = 14 | |
37dde34e | 53 | }; |
54 | ||
9dc4f671 | 55 | enum { kIsConversion=AliJBaseTrack::kNFlag, kNFlag }; |
37dde34e | 56 | |
57 | ||
9dc4f671 | 58 | AliJPhoton(); //default constructor |
37dde34e | 59 | AliJPhoton(const AliJPhoton& a); //copy constructor |
9dc4f671 | 60 | virtual ~AliJPhoton(); //destructor |
61 | ||
62 | void Clear( Option_t * /* option */ ); // cleaner | |
37dde34e | 63 | |
9dc4f671 | 64 | Double32_t GetChi2() const {return fChi2;} |
65 | Double32_t GetTof() const {return fTof;} | |
66 | Double32_t GetX() const {return fX;} | |
67 | Double32_t GetY() const {return fY;} | |
68 | Double32_t GetZ() const {return fZ;} | |
69 | Double32_t GetProbPhot() const {return fProbPhot;} | |
37dde34e | 70 | |
9dc4f671 | 71 | void SetChi2(Double32_t chi2) {fChi2=chi2;} |
72 | void SetTof(Double32_t tof) {fTof=tof;} | |
73 | void SetPositionX(Double32_t x) {fX=x;} | |
74 | void SetPositionY(Double32_t y) {fY=y;} | |
75 | void SetPositionZ(Double32_t z) {fZ=z;} | |
76 | void SetProbPhot(Double32_t prob) {fProbPhot=prob;} | |
37dde34e | 77 | |
78 | AliJPhoton& operator=(const AliJPhoton& photon); | |
79 | ||
80 | //TODO | |
9dc4f671 | 81 | Bool_t IsPHOS() const {return fCaloType==kPHOSCalo ? kTRUE:kFALSE ;} |
82 | Bool_t IsEMCAL() const {return fCaloType==kEMCALCalo ? kTRUE:kFALSE ;} | |
37dde34e | 83 | // getters |
84 | void GetPID(Double_t *pid) const { | |
85 | for(Int_t i=0; i<kUnknownAli+1; ++i) pid[i]=fCaloPID[i]; | |
86 | } | |
9dc4f671 | 87 | Double32_t GetDistToBadChannel() const {return fDistToBadChannel;} |
88 | Double32_t GetDispersion() const {return fDispersion;} | |
89 | Double32_t GetM20() const {return fM20;} | |
90 | Double32_t GetM02() const {return fM02;} | |
91 | Double32_t GetEmcCpvDist() const {return fEmcCpvDist;} | |
92 | Int_t GetNCells() const { return fNCells;} | |
93 | Int_t GetNTracksMatched() const { return fNTracksMatched;} | |
37dde34e | 94 | UShort_t *GetCellsAbsId() const {return fCellsAbsId;} |
9dc4f671 | 95 | UShort_t GetCellAbsId(Int_t i) const { |
37dde34e | 96 | if (fCellsAbsId && i >=0 && i < fNCells ) return fCellsAbsId[i]; |
97 | else return -1;} | |
98 | Double32_t *GetCellsAmplitudeFraction() const {return fCellsAmpFraction;} | |
9dc4f671 | 99 | Double32_t GetCellAmplitudeFraction(Int_t i) const { |
37dde34e | 100 | if (fCellsAmpFraction && i >=0 && i < fNCells ) return fCellsAmpFraction[i]; |
101 | else return -1;} | |
9dc4f671 | 102 | Int_t GetNEMCLabel() const {return fNEMCLabel;} |
103 | Int_t GetEMCLabel( Int_t pos = 0 ) const { | |
104 | if( fEMCLabel && pos >= 0 && pos < fNEMCLabel ) return fEMCLabel[pos]; | |
105 | else return -1;} | |
106 | // Double32_t *GetCellsAmplitude() const {return fCellsAmp;} | |
107 | // Double32_t GetCellAmplitude(Int_t i) const { | |
108 | // if (fCellsAmp && i >=0 && i < fNCells ) return fCellsAmp[i]; | |
109 | // else return -1;} | |
110 | particleType GetParticleType(); | |
37dde34e | 111 | Int_t GetSuperModuleID() const { return fSuperModuleId; } |
112 | void SetSuperModuleID(Int_t id) { fSuperModuleId = id; } | |
113 | Double32_t GetTrackDx() const {return fTrackDx;} | |
114 | Double32_t GetTrackDz() const {return fTrackDz;} | |
9dc4f671 | 115 | Double32_t GetEMax() const {return fEMax;} |
116 | Double32_t GetECross() const {return fECross;} | |
117 | Double32_t GetECore() const {return fECore;} | |
118 | Int_t GetNLM() const {return fNLM;} | |
119 | Int_t *GetCellsIndex() const {return fCellsIndex; } | |
120 | Int_t GetCellIndex(Int_t i) const { | |
121 | if (fCellsIndex && i >=0 && i < fNCells ) return fCellsIndex[i]; | |
122 | else return -1;} | |
37dde34e | 123 | |
124 | //setters | |
125 | void SetCaloType(AliJCaloType calo) {fCaloType = calo;} | |
9dc4f671 | 126 | void SetDistToBadChannel(Double32_t dist) {fDistToBadChannel = dist;} |
127 | void SetDispersion(Double32_t disp) {fDispersion = disp;} | |
128 | void SetM20(Double32_t m20) {fM20 = m20;} | |
129 | void SetM02(Double32_t m02) {fM02 = m02;} | |
130 | void SetEmcCpvDist(Double32_t dist) {fEmcCpvDist = dist;} | |
131 | void SetPID(const Double32_t *pid); | |
37dde34e | 132 | void SetNCells(Int_t n) { fNCells = n;} |
9dc4f671 | 133 | void SetNTracksMatched( Int_t n ) { fNTracksMatched = n;} |
37dde34e | 134 | void SetCellsAbsId(const UShort_t *array); |
135 | void SetCellsAmplitudeFraction(const Double32_t *array); | |
9dc4f671 | 136 | void SetNEMCLabel(Int_t n) { fNEMCLabel = n;} |
137 | void SetEMCLabel(const Int_t *array); | |
138 | void SetEMCLabel(const Int_t pos, const Int_t lab) { | |
139 | if( fEMCLabel && pos >= 0 && pos < fNEMCLabel ) | |
140 | fEMCLabel[pos] = lab; } | |
141 | // void SetCellsAmplitude(const Double32_t *array); | |
142 | void SetTrackDx(Double32_t trackDx) {fTrackDx = trackDx;} | |
143 | void SetTrackDz(Double32_t trackDz) {fTrackDz = trackDz;} | |
144 | void SetEMax(Double32_t e) {fEMax = e; } | |
145 | void SetECross(Double32_t e) {fECross = e; } | |
146 | void SetECore(Double32_t e) {fECore = e; } | |
147 | void SetNLM( Int_t n ) {fNLM = n;} | |
148 | void SetCellIndex( const Int_t pos, const Int_t ind ); | |
149 | void SetCellsIndex(const Int_t *array); | |
150 | ||
151 | void ClearCellsIndex(); | |
37dde34e | 152 | |
153 | private: | |
154 | ||
155 | Double32_t fChi2; //chi2 | |
156 | Double32_t fTof; //time of flight | |
157 | Double32_t fX, fY, fZ; // x,y,z coordinates | |
158 | Double32_t fProbPhot; //probability to be a photon | |
159 | Double32_t fTrackDx, fTrackDz; // Distance to closest track in phi and z | |
160 | ||
161 | //TODO | |
162 | AliJCaloType fCaloType; // PHOS or EMCAL photon | |
9dc4f671 | 163 | Double32_t fCaloPID[kUnknownAli+1]; // [0.,1.,8] pointer to PID object |
164 | Double32_t fDistToBadChannel; // Distance to nearest bad channel | |
165 | Double32_t fDispersion; // cluster dispersion, for shape analysis | |
166 | Double32_t fM20; // 2-nd moment along the main eigen axis | |
167 | Double32_t fM02; // 2-nd moment along the second eigen axis | |
168 | Double32_t fEmcCpvDist; // the distance from PHOS EMC rec.point to the closest CPV rec.point | |
37dde34e | 169 | |
170 | Int_t fNCells ; //number of cells | |
9dc4f671 | 171 | Int_t fNTracksMatched; // number of tracks matched |
37dde34e | 172 | Int_t fSuperModuleId ; //super module id |
173 | UShort_t *fCellsAbsId; //[fNCells] array of cell absId numbers | |
9dc4f671 | 174 | Double32_t *fCellsAmpFraction; //[fNCells][0.,1.,16] array with cell amplitudes fraction (elements are 0 if unfolding off) |
175 | // Double32_t *fCellsAmp; //[fNCells] array amplitudes of cluster cellsz | |
176 | Int_t fNEMCLabel; // number of MC labels | |
177 | Int_t *fEMCLabel; //[fNEMCLabel] MC labels | |
178 | ||
179 | // analysis time variables | |
180 | Double32_t fEMax; //! maximum cell energy | |
181 | Double32_t fECross; //! energy of cells in cross around max | |
182 | Double32_t fECore; //! central cells energies | |
183 | Int_t fNLM; //! number of local maxima | |
184 | Int_t *fCellsIndex; //! cell indices in cell list | |
185 | ||
186 | ClassDef(AliJPhoton,2) | |
37dde34e | 187 | |
188 | }; | |
189 | ||
190 | #endif | |
191 |