]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TRD/AliHLTTRDTrack.cxx
unify system of the input multiplier for clusterizer and tracker and
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTrack.cxx
CommitLineData
d679dd6c 1#include "AliHLTTRDTrack.h"
2#include "AliHLTTRDTracklet.h"
3
4
5/**
6 * Default Constructor
7 */
8//============================================================================
9AliHLTTRDTrack::AliHLTTRDTrack():
d679dd6c 10 fDE(-1),
11 fFakeRatio(-1),
12 fChi2(-1),
0fae33c8 13 // fMass(-1),
d679dd6c 14 fN(-1),
15 fIntegratedLength(-1),
16 fX(-1),
93ce7d1b 17 fAlpha(-1),
0fae33c8 18 fSize(sizeof(AliHLTTRDTrack)),
19 fBits(0)
d679dd6c 20{
21 InitArrays();
22 // not to be used
23}
24
25/**
26 * Constructor
27 * Creates hltTrack from TRDtrackV1
28 */
29//============================================================================
93ce7d1b 30AliHLTTRDTrack::AliHLTTRDTrack(const AliTRDtrackV1* const inTrack):
31 fDE(inTrack->fDE),
32 fFakeRatio(inTrack->fFakeRatio),
33 fChi2(inTrack->fChi2),
0fae33c8 34 // fMass(inTrack->fMass),
93ce7d1b 35 fN(inTrack->fN),
36 fIntegratedLength(inTrack->GetIntegratedLength()),
37 fX(inTrack->GetX()),
38 fAlpha(inTrack->GetAlpha()),
0fae33c8 39 fSize(sizeof(AliHLTTRDTrack)),
40 fBits(0)
d679dd6c 41{
93ce7d1b 42 CopyDataMembers(inTrack);
d679dd6c 43}
44
45/**
46 * Default Destructor
47 * In principle should not be empty, but... we do not use it
48 */
49//============================================================================
50AliHLTTRDTrack::~AliHLTTRDTrack()
51{
52
53}
54
d679dd6c 55/**
56 * Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack.
57 */
58//============================================================================
93ce7d1b 59void AliHLTTRDTrack::CopyDataMembers(const AliTRDtrackV1* const inTrack)
d679dd6c 60{
d679dd6c 61 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
62 {
93ce7d1b 63 fPID[i] = inTrack->fPID[i];
d679dd6c 64 }
65
66 for (Int_t i = 0; i < 3; i++)
67 {
0fae33c8 68 fBudget[i] = inTrack->fBudget[i];
d679dd6c 69 }
d679dd6c 70
93ce7d1b 71 const Double_t* const Ptemp = inTrack->GetParameter();
d679dd6c 72 for (Int_t i = 0; i < 5; i++)
73 {
74 fP[i] = Ptemp[i];
75 }
0fae33c8 76
93ce7d1b 77 const Double_t* const Ctemp = inTrack->GetCovariance();
d679dd6c 78 for (Int_t i = 0; i < 15; i++)
79 {
80 fC[i] = Ctemp[i];
81 }
93ce7d1b 82
0fae33c8 83 UInt_t mask = inTrack->TestBits(-1);
84 fBits = mask >> 14;
85
93ce7d1b 86 for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++)
87 {
88 AliTRDseedV1* trdTracklet = inTrack->GetTracklet(iTracklet);
89 if (trdTracklet){
90 AliHLTTRDTracklet* hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
91 fSize += hltTracklet->GetSize();
92 fTrackletAtPlane[iTracklet] = kTRUE;
93 }
94 else fTrackletAtPlane[iTracklet] = kFALSE;
95 }
d679dd6c 96}
97
98/**
99 * Copy data to the output TRDtrackV1
100 */
101//============================================================================
93ce7d1b 102void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1* const outTrack) const
d679dd6c 103{
93ce7d1b 104 //outTrack->Reset(); we always use a new fresh trdtrack as input, so this is useless
d8731936 105 outTrack->SetBit(AliTRDtrackV1::kOwner);
106
93ce7d1b 107 outTrack->fDE=fDE;
108 outTrack->fFakeRatio=fFakeRatio;
109 outTrack->fChi2=fChi2;
0fae33c8 110 // outTrack->fMass=fMass;
93ce7d1b 111 outTrack->fN=fN;
112 outTrack->SetIntegratedLength(fIntegratedLength);
113 outTrack->Set(fX, fAlpha, fP, fC);
114
d679dd6c 115 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
116 {
93ce7d1b 117 outTrack->fPID[i] = fPID[i];
d679dd6c 118 }
119 for (Int_t i = 0; i < 3; i++)
120 {
0fae33c8 121 outTrack->fBudget[i]=fBudget[i];
d679dd6c 122 }
93ce7d1b 123
0fae33c8 124 outTrack->SetBit(UInt_t(fBits)<<14);
125
93ce7d1b 126 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
127 AliHLTTRDTracklet* hltTracklet;
128
129 for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
130 if (fTrackletAtPlane[iTracklet]){
d679dd6c 131 AliTRDseedV1* trdTracklet = new AliTRDseedV1();
93ce7d1b 132 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
133 hltTracklet->ExportTRDTracklet(trdTracklet);
d679dd6c 134 outTrack->SetTracklet(trdTracklet,iTracklet);
93ce7d1b 135 iterPtr += hltTracklet->GetSize();
d679dd6c 136 }
137 }
138
d679dd6c 139}
140
141
142/**
143 * Init of arrays
144 */
145//============================================================================
146void AliHLTTRDTrack::InitArrays()
147{
93ce7d1b 148 for(Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
149 fTrackletAtPlane[i]=kFALSE;
d679dd6c 150 }
151
152 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
153 {
154 fPID[i] = -1;
155 }
156
157 for (Int_t i = 0; i < 3; i++)
158 {
159 fBudget[i] = -1;
160 }
161 for (Int_t i = 0; i < 5; i++)
162 {
163 fP[i] = -1;
164 }
165 for (Int_t i = 0; i < 15; i++)
166 {
167 fC[i] = -1;
168 }
169}
170
171/**
172 * Print main values for HLTTrack
173 */
174//============================================================================
93ce7d1b 175void AliHLTTRDTrack::Print(Bool_t printTracklets) const
d679dd6c 176{
e03c1166 177 printf("--hltTrack-- addr %p; fSize %i\n", this, fSize);
93ce7d1b 178 printf(" fX = %f; fAlpha = %f\n", fX, fAlpha);
d679dd6c 179 printf(" ");
180
181 for(Int_t i = 0; i < AliPID::kSPECIES; i++)
182 {
183 printf("fPID[%i] = %f; ",i, fPID[i]);
184 }
185 printf("\n ");
186
187 for (Int_t i = 0; i < 3; i++)
188 {
189 printf("fBudget[%i] = %f; ",i, fBudget[i]);
190 }
191 printf("\n");
192
193 if (printTracklets)
194 {
93ce7d1b 195 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
196 AliHLTTRDTracklet* hltTracklet;
197
198 for (Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
199 if (fTrackletAtPlane[i]){
d679dd6c 200 printf("[%i]",i);
93ce7d1b 201 hltTracklet = (AliHLTTRDTracklet*) iterPtr;
202 hltTracklet->Print();
203 iterPtr += hltTracklet->GetSize();
d679dd6c 204 }
205 else
206 printf(" NULL ");
207 }
208 }
209
210 printf("\n");
211}
212
213/**
214 * Read tracklets from the memory.
215 * Number of tracklets should be already known
216 */
217//============================================================================
93ce7d1b 218// void AliHLTTRDTrack::ReadTrackletsFromMemory(void* input)
219// {
220// AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
221// AliHLTTRDTracklet* hltTracklet = NULL;
d679dd6c 222
93ce7d1b 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);
230// }
231// }
232// }
d8731936 233