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"
28 ClassImp(AliJetCalTrkTrack)
30 //////////////////////////////////////////////////////////////////
32 AliJetCalTrkTrack::AliJetCalTrkTrack():
35 fCalTrkCutFlag(kFALSE),
36 fCalTrkSignalFlag(kFALSE),
39 // Default constructor
42 //------------------------------------------------------------------------
43 AliJetCalTrkTrack::AliJetCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr):
45 fCalTrkTrackRef(track),
46 fCalTrkCutFlag(cutFlag),
47 fCalTrkSignalFlag(signalFlag),
53 //------------------------------------------------------------------------
54 AliJetCalTrkTrack::AliJetCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr):
56 fCalTrkTrackRef(track),
57 fCalTrkCutFlag(cutFlag),
58 fCalTrkSignalFlag(signalFlag),
64 //------------------------------------------------------------------------
65 AliJetCalTrkTrack::AliJetCalTrkTrack(const AliJetCalTrkTrack& rCalTrk):
67 fCalTrkTrackRef(rCalTrk.fCalTrkTrackRef),
68 fCalTrkCutFlag(rCalTrk.fCalTrkCutFlag),
69 fCalTrkSignalFlag(rCalTrk.fCalTrkSignalFlag),
70 fCalTrkPtCorr(rCalTrk.fCalTrkPtCorr)
75 //------------------------------------------------------------------------
76 AliJetCalTrkTrack& AliJetCalTrkTrack::operator=(const AliJetCalTrkTrack& rhs)
80 TObject::operator=(rhs);
81 fCalTrkTrackRef = rhs.fCalTrkTrackRef;
82 fCalTrkCutFlag = rhs.fCalTrkCutFlag;
83 fCalTrkSignalFlag = rhs.fCalTrkSignalFlag;
84 fCalTrkPtCorr = rhs.fCalTrkPtCorr;
90 //------------------------------------------------------------------------
91 void AliJetCalTrkTrack::Clear(Option_t* /*option*/)
96 fCalTrkSignalFlag = 0;
101 //-----------------------------------------------------------------------
102 void AliJetCalTrkTrack::Print(const Option_t* option) const
104 cout << "Track: " << option << ", Pt: " << GetPt() << ", Eta: " << GetEta() << ", Phi: " << GetPhi() << endl;
108 //...........................................................................
109 //***************************************************************************
110 ClassImp(AliJetCalTrkTrackKine)
112 AliJetCalTrkTrackKine::AliJetCalTrkTrackKine():
115 fCalTrkTrackE(-999.),
116 fCalTrkTrackPt(-999.),
117 fCalTrkTrackP(-999.),
118 fCalTrkTrackPx(-999.),
119 fCalTrkTrackPy(-999.),
120 fCalTrkTrackPz(-999.)
122 // Default constructor
125 //------------------------------------------------------------------------
126 AliJetCalTrkTrackKine::AliJetCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso) :
127 AliJetCalTrkTrack(track,cutFlag,signalFlag),
128 fCalTrkPtReso(ptReso),
129 fCalTrkTrackE(-999.),
130 fCalTrkTrackPt(-999.),
131 fCalTrkTrackP(-999.),
132 fCalTrkTrackPx(-999.),
133 fCalTrkTrackPy(-999.),
134 fCalTrkTrackPz(-999.)
137 CalcPx(); CalcPy(); CalcPz(); CalcP(); CalcPt(); CalcE();
141 //------------------------------------------------------------------------
142 void AliJetCalTrkTrackKine::Clear(Option_t* option)
146 fCalTrkTrackE = -999;
147 fCalTrkTrackPt = -999;
148 fCalTrkTrackP = -999;
149 fCalTrkTrackPx = -999;
150 fCalTrkTrackPy = -999;
151 fCalTrkTrackPz = -999;
152 AliJetCalTrkTrack::Clear(option);
156 //------------------------------------------------------------------------
157 Float_t AliJetCalTrkTrackKine::CalcE()
160 if(fCalTrkTrackE==-999){
161 if ( fCalTrkPtReso != 1 ){
162 fCalTrkTrackE = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy()+GetPz()*GetPz()+GetM()*GetM());
164 else {fCalTrkTrackE = GetParticle()->E(); }
167 return fCalTrkTrackE;
171 //------------------------------------------------------------------------
172 Float_t AliJetCalTrkTrackKine::CalcPt()
174 // Particle transverse momentum
175 if(fCalTrkTrackPt==-999){
176 if ( fCalTrkPtReso != 1 ){
177 fCalTrkTrackPt = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy());
179 else {fCalTrkTrackPt = GetParticle()->Pt();}
182 return fCalTrkTrackPt;
186 //------------------------------------------------------------------------
187 Float_t AliJetCalTrkTrackKine::CalcP()
190 if(fCalTrkTrackP==-999){
191 if ( fCalTrkPtReso != 1 ){
192 fCalTrkTrackP = TMath::Sqrt(GetPx()*GetPx()+GetPy()*GetPy()+GetPz()*GetPz());
194 else {fCalTrkTrackP = GetParticle()->P(); }
197 return fCalTrkTrackP;
201 //...........................................................................
202 //***************************************************************************
204 ClassImp(AliJetCalTrkEvent)
206 AliJetCalTrkEvent::AliJetCalTrkEvent():
208 fJetCalTrkTrack(0x0),
212 // Default constructor
215 //----------------------------------------------------------------
216 AliJetCalTrkEvent::AliJetCalTrkEvent(Short_t opt,Bool_t kine,Bool_t kIsHighMult):
218 fJetCalTrkTrack(0x0),
224 // Tracks (real or MC)
225 if(opt%2==!0 || opt==0){
226 fJetCalTrkTrack = new TClonesArray("AliJetCalTrkTrack", kIsHighMult*3800+200);
230 fJetCalTrkTrack = new TClonesArray("AliJetCalTrkTrackKine", kIsHighMult*3800+200);
235 //----------------------------------------------------------------
236 AliJetCalTrkEvent::~AliJetCalTrkEvent()
239 if (fJetCalTrkTrack) delete fJetCalTrkTrack;
240 if (fJetCalTrkCell) delete fJetCalTrkCell;
243 //----------------------------------------------------------------
244 AliJetCalTrkEvent::AliJetCalTrkEvent(const AliJetCalTrkEvent& rCalTrkEvent):
246 fJetCalTrkTrack(rCalTrkEvent.fJetCalTrkTrack),
247 fJetCalTrkCell(rCalTrkEvent.fJetCalTrkCell),
248 fNJetCalTrkTrack(rCalTrkEvent.fNJetCalTrkTrack)
253 //----------------------------------------------------------------
254 AliJetCalTrkEvent& AliJetCalTrkEvent::operator=(const AliJetCalTrkEvent& rhs)
258 TObject::operator=(rhs);
259 if (fJetCalTrkTrack) delete fJetCalTrkTrack;
260 if (fJetCalTrkCell) delete fJetCalTrkCell;
261 fJetCalTrkTrack = rhs.fJetCalTrkTrack;
262 fJetCalTrkCell = rhs.fJetCalTrkCell;
263 fNJetCalTrkTrack = rhs.fNJetCalTrkTrack;
270 //----------------------------------------------------------------
271 AliJetCalTrkTrack* AliJetCalTrkEvent::AddCalTrkTrack(AliVTrack* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr)
273 // Add a track to the CalTrkEvent
274 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
275 AliJetCalTrkTrack *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrack(track, cutFlag, signalFlag, ptCorr) ;
280 //----------------------------------------------------------------
281 AliJetCalTrkTrack* AliJetCalTrkEvent::AddCalTrkTrack(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptCorr)
283 // Add a track to the CalTrkEvent
284 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
285 AliJetCalTrkTrack *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrack(track, cutFlag, signalFlag, ptCorr) ;
290 //_________________________________________________________________
291 AliJetCalTrkTrackKine* AliJetCalTrkEvent::AddCalTrkTrackKine(AliVParticle* track, Bool_t cutFlag, Bool_t signalFlag, Float_t ptReso)
293 // Add a track to the CalTrkEvent
294 TClonesArray &tJetCalTrkTrack = *fJetCalTrkTrack ;
295 AliJetCalTrkTrackKine *n = new(tJetCalTrkTrack[fNJetCalTrkTrack++]) AliJetCalTrkTrackKine(track, cutFlag, signalFlag, ptReso) ;
301 //----------------------------------------------------------------
302 AliJetCalTrkTrack* AliJetCalTrkEvent::GetCalTrkTrack(Int_t i)
305 return (AliJetCalTrkTrack*) fJetCalTrkTrack->At(i);
309 //-----------------------------------------------------------------
310 void AliJetCalTrkEvent::Clear(Option_t* /*option*/)
314 if(fJetCalTrkTrack) fJetCalTrkTrack->Clear("C"); // array of Tracks
315 fNJetCalTrkTrack = 0; // Number of tracks
318 //________________________________________________________________
319 void AliJetCalTrkEvent::Print(const Option_t* /*option*/) const
321 // prints event information
322 cout<< "Number of tracks:" << fNJetCalTrkTrack << endl;