1 #include "AliHLTTRDTrack.h"
2 #include "AliHLTTRDTracklet.h"
8 //============================================================================
9 AliHLTTRDTrack::AliHLTTRDTrack():
10 fSize(sizeof(AliHLTTRDTrack)),
19 fIntegratedLength(-1),
29 * Creates hltTrack from TRDtrackV1
31 //============================================================================
32 AliHLTTRDTrack::AliHLTTRDTrack(AliTRDtrackV1 * inTrack):
33 fSize(sizeof(AliHLTTRDTrack)),
42 fIntegratedLength(-1),
58 * In principle should not be empty, but... we do not use it
60 //============================================================================
61 AliHLTTRDTrack::~AliHLTTRDTrack()
67 * Copy tracklets to the HLTTRDTrack
69 //============================================================================
70 void AliHLTTRDTrack::AddTracklets()
72 for (Int_t iTracklet = 0; iTracklet < kNplane; iTracklet++)
74 // if (fTracklet[iTracklet])
75 // HLTWarning("Trying to rewrite tracklets in the Track. Not good.");
76 AliTRDseedV1 * trdTracklet = fTRDtrack->GetTracklet(iTracklet);
78 AliHLTTRDTracklet * hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
79 fSize += hltTracklet->GetSize();
80 //HLTDebug("tracklet %i; adr 0x%x; endPointer 0x%x; fSize %i", iTracklet, hltTracklet, hltTracklet->GetEndPointer(), fSize);
81 fTracklet[iTracklet] = hltTracklet;
84 fTracklet[iTracklet] = NULL;
90 * Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack.
92 //============================================================================
93 void AliHLTTRDTrack::CopyDataMembers()
96 fPIDquality = fTRDtrack->GetNumberOfTrackletsPID();
98 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
100 fPID[i] = fTRDtrack->GetPID(i);
103 for (Int_t i = 0; i < 3; i++)
105 fBudget[i] = fTRDtrack->GetBudget(i);
107 fDE = fTRDtrack->GetEdep();
108 fFakeRatio = fTRDtrack->GetFakeRatio();
109 fChi2 = fTRDtrack->GetChi2();
110 fMass = fTRDtrack->GetMass();
111 fLab = fTRDtrack->GetLabel();
112 fN = fTRDtrack->GetNumberOfClusters();
113 fIntegratedLength = fTRDtrack->GetIntegratedLength();
115 fX = fTRDtrack->GetX();
116 fAlpha = fTRDtrack->GetAlpha();
117 const Double_t *Ptemp = fTRDtrack->GetParameter();
118 for (Int_t i = 0; i < 5; i++)
122 const Double_t *Ctemp = fTRDtrack->GetCovariance();
123 for (Int_t i = 0; i < 15; i++)
131 * Copy data to the output TRDtrackV1
133 //============================================================================
134 void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1 *outTrack)
138 //Set members from AliTRDtrackV1
139 outTrack->SetPIDquality(fPIDquality);
140 outTrack->SetEdep(fDE);
141 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
143 outTrack->SetPID(i,fPID[i]);
145 for (Int_t i = 0; i < 3; i++)
147 outTrack->SetBudget(i, fBudget[i]);
149 for (Int_t iTracklet = 0; iTracklet < kNplane; iTracklet++){
150 if (fTracklet[iTracklet]){
151 AliTRDseedV1* trdTracklet = new AliTRDseedV1();
152 fTracklet[iTracklet]->ExportTRDTracklet(trdTracklet);
153 outTrack->SetTracklet(trdTracklet,iTracklet);
157 //Set members from AliKalmanTrack
158 outTrack->SetFakeRatio(fFakeRatio);
159 //outTrack->SetChi2(fChi2);
160 outTrack->SetMass(fMass);
161 outTrack->SetLabel(fLab);
162 (dynamic_cast<AliKalmanTrack*>(outTrack))->SetNumberOfClusters(fN);
163 outTrack->SetIntegratedLength(fIntegratedLength);
165 //Set members from AliExternalTrackParam
166 outTrack->Set(fX, fAlpha, fP, fC);
173 //============================================================================
174 void AliHLTTRDTrack::InitArrays()
176 for(Int_t i = 0; i < kNplane; i++){
180 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
185 for (Int_t i = 0; i < 3; i++)
189 for (Int_t i = 0; i < 5; i++)
193 for (Int_t i = 0; i < 15; i++)
200 * Print main values for HLTTrack
202 //============================================================================
203 void AliHLTTRDTrack::Print(Bool_t printTracklets)
205 //printf("--hltTrack-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize);
206 //printf(" fPIDquality = %s; fX = %f; fAlpha = %f\n", fPIDquality, fX, fAlpha);
209 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
211 printf("fPID[%i] = %f; ",i, fPID[i]);
215 for (Int_t i = 0; i < 3; i++)
217 printf("fBudget[%i] = %f; ",i, fBudget[i]);
223 for (Int_t i = 0; i < kNplane; i++){
226 fTracklet[i]->Print();
237 * Read tracklets from the memory.
238 * Number of tracklets should be already known
240 //============================================================================
241 void AliHLTTRDTrack::ReadTrackletsFromMemory(void* input)
243 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
244 AliHLTTRDTracklet* hltTracklet = NULL;
246 for (Int_t iTracklet = 0; iTracklet < kNplane; iTracklet++){
247 if (fTracklet[iTracklet]){
248 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
249 hltTracklet->ReadClustersFromMemory(iterPtr+sizeof(AliHLTTRDTracklet));
250 fTracklet[iTracklet] = hltTracklet;
251 iterPtr += hltTracklet->GetSize();
252 //hltTracklet->Print(kFALSE);