1 #include "AliHLTTRDTrack.h"
2 #include "AliHLTTRDTracklet.h"
8 //============================================================================
9 AliHLTTRDTrack::AliHLTTRDTrack():
15 fIntegratedLength(-1),
18 fSize(sizeof(AliHLTTRDTrack)),
27 * Creates hltTrack from TRDtrackV1
29 //============================================================================
30 AliHLTTRDTrack::AliHLTTRDTrack(const AliTRDtrackV1* const inTrack):
32 fFakeRatio(inTrack->fFakeRatio),
33 fChi2(inTrack->fChi2),
34 // fMass(inTrack->fMass),
36 fIntegratedLength(inTrack->GetIntegratedLength()),
38 fAlpha(inTrack->GetAlpha()),
39 fSize(sizeof(AliHLTTRDTrack)),
42 CopyDataMembers(inTrack);
47 * In principle should not be empty, but... we do not use it
49 //============================================================================
50 AliHLTTRDTrack::~AliHLTTRDTrack()
56 * Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack.
58 //============================================================================
59 void AliHLTTRDTrack::CopyDataMembers(const AliTRDtrackV1* const inTrack)
61 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
63 fPID[i] = inTrack->fPID[i];
66 for (Int_t i = 0; i < 3; i++)
68 fBudget[i] = inTrack->fBudget[i];
71 const Double_t* const Ptemp = inTrack->GetParameter();
72 for (Int_t i = 0; i < 5; i++)
77 const Double_t* const Ctemp = inTrack->GetCovariance();
78 for (Int_t i = 0; i < 15; i++)
83 UInt_t mask = inTrack->TestBits(-1);
86 for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++)
88 AliTRDseedV1* trdTracklet = inTrack->GetTracklet(iTracklet);
90 AliHLTTRDTracklet* hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
91 fSize += hltTracklet->GetSize();
92 fTrackletAtPlane[iTracklet] = kTRUE;
94 else fTrackletAtPlane[iTracklet] = kFALSE;
99 * Copy data to the output TRDtrackV1
101 //============================================================================
102 void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1* const outTrack) const
104 //outTrack->Reset(); we always use a new fresh trdtrack as input, so this is useless
105 outTrack->SetBit(AliTRDtrackV1::kOwner);
108 outTrack->fFakeRatio=fFakeRatio;
109 outTrack->fChi2=fChi2;
110 // outTrack->fMass=fMass;
112 outTrack->SetIntegratedLength(fIntegratedLength);
113 outTrack->Set(fX, fAlpha, fP, fC);
115 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
117 outTrack->fPID[i] = fPID[i];
119 for (Int_t i = 0; i < 3; i++)
121 outTrack->fBudget[i]=fBudget[i];
124 outTrack->SetBit(UInt_t(fBits)<<14);
126 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
127 AliHLTTRDTracklet* hltTracklet;
129 for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
130 if (fTrackletAtPlane[iTracklet]){
131 AliTRDseedV1* trdTracklet = new AliTRDseedV1();
132 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
133 hltTracklet->ExportTRDTracklet(trdTracklet);
134 outTrack->SetTracklet(trdTracklet,iTracklet);
135 iterPtr += hltTracklet->GetSize();
145 //============================================================================
146 void AliHLTTRDTrack::InitArrays()
148 for(Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
149 fTrackletAtPlane[i]=kFALSE;
152 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
157 for (Int_t i = 0; i < 3; i++)
161 for (Int_t i = 0; i < 5; i++)
165 for (Int_t i = 0; i < 15; i++)
172 * Print main values for HLTTrack
174 //============================================================================
175 void AliHLTTRDTrack::Print(Bool_t printTracklets) const
177 printf("--hltTrack-- addr %p; fSize %i\n", this, fSize);
178 printf(" fX = %f; fAlpha = %f\n", fX, fAlpha);
181 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
183 printf("fPID[%i] = %f; ",i, fPID[i]);
187 for (Int_t i = 0; i < 3; i++)
189 printf("fBudget[%i] = %f; ",i, fBudget[i]);
195 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
196 AliHLTTRDTracklet* hltTracklet;
198 for (Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
199 if (fTrackletAtPlane[i]){
201 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
202 hltTracklet->Print();
203 iterPtr += hltTracklet->GetSize();
214 * Read tracklets from the memory.
215 * Number of tracklets should be already known
217 //============================================================================
218 // void AliHLTTRDTrack::ReadTrackletsFromMemory(void* input)
220 // AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
221 // AliHLTTRDTracklet* hltTracklet = NULL;
223 // for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
224 // if (fTracklet[iTracklet]){
225 // hltTracklet = (AliHLTTRDTracklet*) iterPtr;
226 // //hltTracklet->ReadClustersFromMemory(iterPtr+sizeof(AliHLTTRDTracklet));
227 // fTracklet[iTracklet] = hltTracklet;
228 // iterPtr += hltTracklet->GetSize();
229 // //hltTracklet->Print(kFALSE);