]>
Commit | Line | Data |
---|---|---|
d679dd6c | 1 | #include "AliHLTTRDTrack.h" |
2 | #include "AliHLTTRDTracklet.h" | |
3 | ||
4 | ||
5 | /** | |
6 | * Default Constructor | |
7 | */ | |
8 | //============================================================================ | |
9 | AliHLTTRDTrack::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 | 30 | AliHLTTRDTrack::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 | //============================================================================ | |
50 | AliHLTTRDTrack::~AliHLTTRDTrack() | |
51 | { | |
52 | ||
53 | } | |
54 | ||
d679dd6c | 55 | /** |
56 | * Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack. | |
57 | */ | |
58 | //============================================================================ | |
93ce7d1b | 59 | void 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 | 102 | void 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 | //============================================================================ | |
146 | void 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 | 175 | void 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 |