1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 //--------------------------------------------------
19 // CalTrk is used to store Tracks and CaloCells information
21 // Author: alexandre.shabetai@cern.ch & magali.estienne@subatech.in2p3.fr
22 //-------------------------------------------------
24 #include "AliJetCalTrk.h"
26 #include "AliVCaloCells.h"
30 ClassImp(AliJetCalTrkTrack)
32 //////////////////////////////////////////////////////////////////
34 AliJetCalTrkTrack::AliJetCalTrkTrack():
37 fCalTrkCutFlag(kFALSE),
38 fCalTrkSignalFlag(kFALSE),
41 // Default constructor
44 //------------------------------------------------------------------------
45 AliJetCalTrkTrack::AliJetCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr):
47 fCalTrkTrackRef(track),
48 fCalTrkCutFlag(cutFlag),
49 fCalTrkSignalFlag(signalFlag),
55 //------------------------------------------------------------------------
56 AliJetCalTrkTrack::AliJetCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr):
58 fCalTrkTrackRef(track),
59 fCalTrkCutFlag(cutFlag),
60 fCalTrkSignalFlag(signalFlag),
66 //------------------------------------------------------------------------
67 AliJetCalTrkTrack::AliJetCalTrkTrack(const AliJetCalTrkTrack& rCalTrk):
69 fCalTrkTrackRef(rCalTrk.fCalTrkTrackRef),
70 fCalTrkCutFlag(rCalTrk.fCalTrkCutFlag),
71 fCalTrkSignalFlag(rCalTrk.fCalTrkSignalFlag),
72 fCalTrkPtCorr(rCalTrk.fCalTrkPtCorr)
77 //------------------------------------------------------------------------
78 AliJetCalTrkTrack& AliJetCalTrkTrack::operator=(const AliJetCalTrkTrack& rhs)
82 TObject::operator=(rhs);
83 fCalTrkTrackRef = rhs.fCalTrkTrackRef;
84 fCalTrkCutFlag = rhs.fCalTrkCutFlag;
85 fCalTrkSignalFlag = rhs.fCalTrkSignalFlag;
86 fCalTrkPtCorr = rhs.fCalTrkPtCorr;
92 //------------------------------------------------------------------------
93 void AliJetCalTrkTrack::Clear(Option_t* /*option*/)
98 fCalTrkSignalFlag = 0;
103 //-----------------------------------------------------------------------
104 void AliJetCalTrkTrack::Print(const Option_t* option) const
106 cout << "Track: " << option << ", Pt: " << GetPt() << ", Eta: " << GetEta() << ", Phi: " << GetPhi() << endl;
110 //...........................................................................
111 //***************************************************************************
112 ClassImp(AliJetCalTrkTrackKine)
114 AliJetCalTrkTrackKine::AliJetCalTrkTrackKine():
117 fCalTrkTrackE(-999.),
118 fCalTrkTrackPt(-999.),
119 fCalTrkTrackP(-999.),
120 fCalTrkTrackPx(-999.),
121 fCalTrkTrackPy(-999.),
122 fCalTrkTrackPz(-999.)
124 // Default constructor
127 //------------------------------------------------------------------------
128 AliJetCalTrkTrackKine::AliJetCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso) :
129 AliJetCalTrkTrack(track,cutFlag,signalFlag),
130 fCalTrkPtReso(ptReso),
131 fCalTrkTrackE(-999.),
132 fCalTrkTrackPt(-999.),
133 fCalTrkTrackP(-999.),
134 fCalTrkTrackPx(-999.),
135 fCalTrkTrackPy(-999.),
136 fCalTrkTrackPz(-999.)
139 CalcPx(); CalcPy(); CalcPz(); CalcP(); CalcPt(); CalcE();
143 //------------------------------------------------------------------------
144 void AliJetCalTrkTrackKine::Clear(Option_t* option)
148 fCalTrkTrackE = -999;
149 fCalTrkTrackPt = -999;
150 fCalTrkTrackP = -999;
151 fCalTrkTrackPx = -999;
152 fCalTrkTrackPy = -999;
153 fCalTrkTrackPz = -999;
154 AliJetCalTrkTrack::Clear(option);
158 //------------------------------------------------------------------------
159 Float_t AliJetCalTrkTrackKine::CalcE()
162 if(fCalTrkTrackE==-999){
163 if ( fCalTrkPtReso != 1 ){
164 fCalTrkTrackE = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy()+GetPz()*GetPz()+GetM()*GetM());
166 else {fCalTrkTrackE = GetParticle()->E(); }
169 return fCalTrkTrackE;
173 //------------------------------------------------------------------------
174 Float_t AliJetCalTrkTrackKine::CalcPt()
176 // Particle transverse momentum
177 if(fCalTrkTrackPt==-999){
178 if ( fCalTrkPtReso != 1 ){
179 fCalTrkTrackPt = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy());
181 else {fCalTrkTrackPt = GetParticle()->Pt();}
184 return fCalTrkTrackPt;
188 //------------------------------------------------------------------------
189 Float_t AliJetCalTrkTrackKine::CalcP()
192 if(fCalTrkTrackP==-999){
193 if ( fCalTrkPtReso != 1 ){
194 fCalTrkTrackP = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy()+GetPz()*GetPz());
196 else {fCalTrkTrackP = GetParticle()->P(); }
199 return fCalTrkTrackP;
203 //...........................................................................
204 //***************************************************************************
206 ClassImp(AliJetCalTrkEvent)
208 AliJetCalTrkEvent::AliJetCalTrkEvent():
210 fJetCalTrkTrack(0x0),
214 // Default constructor
217 //----------------------------------------------------------------
218 AliJetCalTrkEvent::AliJetCalTrkEvent(Short_t opt,Bool_t kine,Bool_t kIsHighMult):
220 fJetCalTrkTrack(0x0),
226 // Tracks (real or MC)
227 if(opt%2==!0 || opt==0){
228 fJetCalTrkTrack = new TClonesArray("AliJetCalTrkTrack", kIsHighMult*3800+200);
232 fJetCalTrkTrack = new TClonesArray("AliJetCalTrkTrackKine", kIsHighMult*3800+200);
237 //----------------------------------------------------------------
238 AliJetCalTrkEvent::~AliJetCalTrkEvent()
241 if (fJetCalTrkTrack) delete fJetCalTrkTrack;
242 if (fJetCalTrkCell) delete fJetCalTrkCell;
245 //----------------------------------------------------------------
246 AliJetCalTrkEvent::AliJetCalTrkEvent(const AliJetCalTrkEvent& rCalTrkEvent):
248 fJetCalTrkTrack(rCalTrkEvent.fJetCalTrkTrack),
249 fJetCalTrkCell(rCalTrkEvent.fJetCalTrkCell),
250 fNJetCalTrkTrack(rCalTrkEvent.fNJetCalTrkTrack)
255 //----------------------------------------------------------------
256 AliJetCalTrkEvent& AliJetCalTrkEvent::operator=(const AliJetCalTrkEvent& rhs)
260 TObject::operator=(rhs);
261 if (fJetCalTrkTrack) delete fJetCalTrkTrack;
262 if (fJetCalTrkCell) delete fJetCalTrkCell;
263 fJetCalTrkTrack = rhs.fJetCalTrkTrack;
264 fJetCalTrkCell = rhs.fJetCalTrkCell;
265 fNJetCalTrkTrack = rhs.fNJetCalTrkTrack;
272 //----------------------------------------------------------------
273 AliJetCalTrkTrack* AliJetCalTrkEvent::AddCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr)
275 // Add a track to the CalTrkEvent
276 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
277 AliJetCalTrkTrack *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrack(track, cutFlag, signalFlag, ptCorr) ;
282 //----------------------------------------------------------------
283 AliJetCalTrkTrack* AliJetCalTrkEvent::AddCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr)
285 // Add a track to the CalTrkEvent
286 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
287 AliJetCalTrkTrack *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrack(track, cutFlag, signalFlag, ptCorr) ;
292 //_________________________________________________________________
293 AliJetCalTrkTrackKine* AliJetCalTrkEvent::AddCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso)
295 // Add a track to the CalTrkEvent
296 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
297 AliJetCalTrkTrackKine *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrackKine(track, cutFlag, signalFlag, ptReso) ;
303 //----------------------------------------------------------------
304 AliJetCalTrkTrack* AliJetCalTrkEvent::GetCalTrkTrack(Int_t i)
307 return (AliJetCalTrkTrack*) fJetCalTrkTrack->At(i);
311 //-----------------------------------------------------------------
312 void AliJetCalTrkEvent::Clear(Option_t* /*option*/)
316 if(fJetCalTrkTrack) fJetCalTrkTrack->Clear("C"); // array of Tracks
317 fNJetCalTrkTrack = 0; // Number of tracks
320 //________________________________________________________________
321 void AliJetCalTrkEvent::Print(const Option_t* /*option*/) const
323 // prints event information
324 cout<< "Number of tracks:" << fNJetCalTrkTrack << endl;