#include "AliTrackPointArray.h"
#include "AliESDfriendTrack.h"
#include "TObjArray.h"
#include "TClonesArray.h"
#include "AliKalmanTrack.h"
#include "AliVTPCseed.h"
ClassImp(AliESDfriendTrack)
AliESDfriendTrack::AliESDfriendTrack():
AliVfriendTrack(),
f1P(0),
fnMaxITScluster(0),
fnMaxTPCcluster(0),
fnMaxTRDcluster(0),
fITSindex(0x0),
fTPCindex(0x0),
fTRDindex(0x0),
fPoints(0),
fCalibContainer(0),
fITStrack(0),
fTRDtrack(0),
fTPCOut(0),
fITSOut(0),
fTRDIn(0)
{
}
AliESDfriendTrack::AliESDfriendTrack(const AliESDfriendTrack &t):
AliVfriendTrack(t),
f1P(t.f1P),
fnMaxITScluster(t.fnMaxITScluster),
fnMaxTPCcluster(t.fnMaxTPCcluster),
fnMaxTRDcluster(t.fnMaxTRDcluster),
fITSindex(0x0),
fTPCindex(0x0),
fTRDindex(0x0),
fPoints(0),
fCalibContainer(0),
fITStrack(0),
fTRDtrack(0),
fTPCOut(0),
fITSOut(0),
fTRDIn(0)
{
AliDebug(2,"Calling copy constructor");
Int_t i;
if (fnMaxITScluster != 0){
fITSindex = new Int_t[fnMaxITScluster];
for (i=0; i<fnMaxITScluster; i++) fITSindex[i]=t.fITSindex[i];
}
if (fnMaxTPCcluster != 0){
fTPCindex = new Int_t[fnMaxTPCcluster];
for (i=0; i<fnMaxTPCcluster; i++) fTPCindex[i]=t.fTPCindex[i];
}
if (fnMaxTRDcluster != 0){
fTRDindex = new Int_t[fnMaxTRDcluster];
for (i=0; i<fnMaxTRDcluster; i++) fTRDindex[i]=t.fTRDindex[i];
}
AliDebug(2,Form("fnMaxITScluster = %d",fnMaxITScluster));
AliDebug(2,Form("fnMaxTPCcluster = %d",fnMaxTPCcluster));
AliDebug(2,Form("fnMaxTRDcluster = %d",fnMaxTRDcluster));
if (t.fPoints) fPoints=new AliTrackPointArray(*t.fPoints);
if (t.fCalibContainer) {
fCalibContainer = new TObjArray(5);
Int_t no=t.fCalibContainer->GetEntriesFast();
for (i=0; i<no; i++) {
TObject *o=t.fCalibContainer->At(i);
if (o) fCalibContainer->AddLast(o->Clone());
}
}
if (t.fTPCOut) fTPCOut = new AliExternalTrackParam(*(t.fTPCOut));
if (t.fITSOut) fITSOut = new AliExternalTrackParam(*(t.fITSOut));
if (t.fTRDIn) fTRDIn = new AliExternalTrackParam(*(t.fTRDIn));
}
AliESDfriendTrack::~AliESDfriendTrack() {
delete fPoints;
if (fCalibContainer) fCalibContainer->Delete();
delete fCalibContainer;
delete fITStrack;
delete fTRDtrack;
delete fTPCOut;
delete fITSOut;
delete fTRDIn;
delete[] fITSindex;
delete[] fTPCindex;
delete[] fTRDindex;
}
void AliESDfriendTrack::AddCalibObject(TObject * calibObject){
if (!fCalibContainer) fCalibContainer = new TObjArray(5);
fCalibContainer->AddLast(calibObject);
}
TObject * AliESDfriendTrack::GetCalibObject(Int_t index) const {
if (!fCalibContainer) return 0;
if (index>=fCalibContainer->GetEntriesFast()) return 0;
return fCalibContainer->At(index);
}
Int_t AliESDfriendTrack::GetTPCseed( AliTPCseed &seed) const {
TObject* calibObject = NULL;
AliVTPCseed* seedP = NULL;
for (Int_t idx = 0; (calibObject = GetCalibObject(idx)); ++idx) {
if ((seedP = dynamic_cast<AliVTPCseed*>(calibObject))) {
seedP->CopyToTPCseed( seed );
return 0;
}
}
return -1;
}
void AliESDfriendTrack::SetTPCOut(const AliExternalTrackParam ¶m) {
delete fTPCOut;
fTPCOut=new AliExternalTrackParam(param);
}
void AliESDfriendTrack::SetITSOut(const AliExternalTrackParam ¶m) {
delete fITSOut;
fITSOut=new AliExternalTrackParam(param);
}
void AliESDfriendTrack::SetTRDIn(const AliExternalTrackParam ¶m) {
delete fTRDIn;
fTRDIn=new AliExternalTrackParam(param);
}
void AliESDfriendTrack::SetITSIndices(Int_t* indices, Int_t n){
fnMaxITScluster = n;
AliDebug(2,Form("fnMaxITScluster = %d",fnMaxITScluster));
if (fITSindex == 0x0){
fITSindex = new Int_t[fnMaxITScluster];
}
for (Int_t i = 0; i < fnMaxITScluster; i++){
fITSindex[i] = indices[i];
}
}
void AliESDfriendTrack::SetTPCIndices(Int_t* indices, Int_t n){
fnMaxTPCcluster = n;
AliDebug(2,Form("fnMaxTPCcluster = %d",fnMaxTPCcluster));
if (fTPCindex == 0x0){
fTPCindex = new Int_t[fnMaxTPCcluster];
}
for (Int_t i = 0; i < fnMaxTPCcluster; i++){
fTPCindex[i] = indices[i];
}
}
void AliESDfriendTrack::SetTRDIndices(Int_t* indices, Int_t n){
fnMaxTRDcluster = n;
AliDebug(2,Form("fnMaxTRDcluster = %d",fnMaxTRDcluster));
if (fTRDindex == 0x0){
fTRDindex = new Int_t[fnMaxTRDcluster];
}
for (Int_t i = 0; i < fnMaxTRDcluster; i++){
fTRDindex[i] = indices[i];
}
}
AliESDfriendTrack.cxx:100 AliESDfriendTrack.cxx:101 AliESDfriendTrack.cxx:102 AliESDfriendTrack.cxx:103 AliESDfriendTrack.cxx:104 AliESDfriendTrack.cxx:105 AliESDfriendTrack.cxx:106 AliESDfriendTrack.cxx:107 AliESDfriendTrack.cxx:108 AliESDfriendTrack.cxx:109 AliESDfriendTrack.cxx:110 AliESDfriendTrack.cxx:111 AliESDfriendTrack.cxx:112 AliESDfriendTrack.cxx:113 AliESDfriendTrack.cxx:114 AliESDfriendTrack.cxx:115 AliESDfriendTrack.cxx:116 AliESDfriendTrack.cxx:117 AliESDfriendTrack.cxx:118 AliESDfriendTrack.cxx:119 AliESDfriendTrack.cxx:120 AliESDfriendTrack.cxx:121 AliESDfriendTrack.cxx:122 AliESDfriendTrack.cxx:123 AliESDfriendTrack.cxx:124 AliESDfriendTrack.cxx:125 AliESDfriendTrack.cxx:126 AliESDfriendTrack.cxx:127 AliESDfriendTrack.cxx:128 AliESDfriendTrack.cxx:129 AliESDfriendTrack.cxx:130 AliESDfriendTrack.cxx:131 AliESDfriendTrack.cxx:132 AliESDfriendTrack.cxx:133 AliESDfriendTrack.cxx:134 AliESDfriendTrack.cxx:135 AliESDfriendTrack.cxx:136 AliESDfriendTrack.cxx:137 AliESDfriendTrack.cxx:138 AliESDfriendTrack.cxx:139 AliESDfriendTrack.cxx:140 AliESDfriendTrack.cxx:141 AliESDfriendTrack.cxx:142 AliESDfriendTrack.cxx:143 AliESDfriendTrack.cxx:144 AliESDfriendTrack.cxx:145 AliESDfriendTrack.cxx:146 AliESDfriendTrack.cxx:147 AliESDfriendTrack.cxx:148 AliESDfriendTrack.cxx:149 AliESDfriendTrack.cxx:150 AliESDfriendTrack.cxx:151 AliESDfriendTrack.cxx:152 AliESDfriendTrack.cxx:153 AliESDfriendTrack.cxx:154 AliESDfriendTrack.cxx:155 AliESDfriendTrack.cxx:156 AliESDfriendTrack.cxx:157 AliESDfriendTrack.cxx:158 AliESDfriendTrack.cxx:159 AliESDfriendTrack.cxx:160 AliESDfriendTrack.cxx:161 AliESDfriendTrack.cxx:162 AliESDfriendTrack.cxx:163 AliESDfriendTrack.cxx:164 AliESDfriendTrack.cxx:165 AliESDfriendTrack.cxx:166 AliESDfriendTrack.cxx:167 AliESDfriendTrack.cxx:168 AliESDfriendTrack.cxx:169 AliESDfriendTrack.cxx:170 AliESDfriendTrack.cxx:171 AliESDfriendTrack.cxx:172 AliESDfriendTrack.cxx:173 AliESDfriendTrack.cxx:174 AliESDfriendTrack.cxx:175 AliESDfriendTrack.cxx:176 AliESDfriendTrack.cxx:177 AliESDfriendTrack.cxx:178 AliESDfriendTrack.cxx:179 AliESDfriendTrack.cxx:180 AliESDfriendTrack.cxx:181 AliESDfriendTrack.cxx:182 AliESDfriendTrack.cxx:183 AliESDfriendTrack.cxx:184 AliESDfriendTrack.cxx:185 AliESDfriendTrack.cxx:186 AliESDfriendTrack.cxx:187 AliESDfriendTrack.cxx:188 AliESDfriendTrack.cxx:189 AliESDfriendTrack.cxx:190 AliESDfriendTrack.cxx:191 AliESDfriendTrack.cxx:192 AliESDfriendTrack.cxx:193 AliESDfriendTrack.cxx:194 AliESDfriendTrack.cxx:195 AliESDfriendTrack.cxx:196 AliESDfriendTrack.cxx:197 AliESDfriendTrack.cxx:198 AliESDfriendTrack.cxx:199 AliESDfriendTrack.cxx:200 AliESDfriendTrack.cxx:201 AliESDfriendTrack.cxx:202 AliESDfriendTrack.cxx:203 AliESDfriendTrack.cxx:204 AliESDfriendTrack.cxx:205 AliESDfriendTrack.cxx:206 AliESDfriendTrack.cxx:207 AliESDfriendTrack.cxx:208 AliESDfriendTrack.cxx:209 AliESDfriendTrack.cxx:210 AliESDfriendTrack.cxx:211 AliESDfriendTrack.cxx:212 AliESDfriendTrack.cxx:213 AliESDfriendTrack.cxx:214 AliESDfriendTrack.cxx:215 AliESDfriendTrack.cxx:216 AliESDfriendTrack.cxx:217 AliESDfriendTrack.cxx:218 AliESDfriendTrack.cxx:219 AliESDfriendTrack.cxx:220 AliESDfriendTrack.cxx:221 AliESDfriendTrack.cxx:222 AliESDfriendTrack.cxx:223 AliESDfriendTrack.cxx:224 AliESDfriendTrack.cxx:225 AliESDfriendTrack.cxx:226 AliESDfriendTrack.cxx:227 AliESDfriendTrack.cxx:228 AliESDfriendTrack.cxx:229 AliESDfriendTrack.cxx:230 AliESDfriendTrack.cxx:231 AliESDfriendTrack.cxx:232 AliESDfriendTrack.cxx:233 AliESDfriendTrack.cxx:234 AliESDfriendTrack.cxx:235 AliESDfriendTrack.cxx:236