1 #include "AliHLTTRDTracklet.h"
2 #include "AliHLTTRDCluster.h"
7 //============================================================================
8 AliHLTTRDTracklet::AliHLTTRDTracklet():
10 fSize(sizeof(AliHLTTRDTracklet)),
38 //============================================================================
39 AliHLTTRDTracklet::AliHLTTRDTracklet(AliTRDseedV1 * inTracklet):
41 fSize(sizeof(AliHLTTRDTracklet)),
65 fTRDtracklet = inTracklet;
72 * Add clusters to the HLTTRDTracklet
74 //============================================================================
75 void AliHLTTRDTracklet::AddClusters()
77 for (Int_t iTimeBin = 0; iTimeBin < AliTRDseedV1::kNclusters; iTimeBin++)
79 // if (fClusters[iTimeBin])
80 // HLTWarning("Trying to rewrite cluster in tracklet. Not good.");
81 AliTRDcluster* trdCluster = fTRDtracklet->GetClusters(iTimeBin);
83 AliHLTTRDCluster * hltCluster = new (GetEndPointer()) AliHLTTRDCluster(trdCluster);
84 fSize += hltCluster->GetSize();
85 //HLTInfo("cluster %i; adr 0x%x; endPointer 0x%x; fSize %i", iTimeBin, hltCluster, GetEndPointer(), fSize);
86 fClusters[iTimeBin] = hltCluster;
89 fClusters[iTimeBin] = NULL;
95 * Copy simple (non-pointer) data members from TRDTracklet to HLTTRDTracklet
97 //============================================================================
98 void AliHLTTRDTracklet::CopyDataMembers()
100 for (Int_t i=0; i < 2; i++){
101 fYref[i] = fTRDtracklet->GetYref(i);
102 fZref[i] = fTRDtracklet->GetZref(i);
104 //fSigmaY = fTRDtracklet->GetSigmaY();
105 fSigmaY2 = fTRDtracklet->GetS2Y();
106 fTilt = fTRDtracklet->GetTilt();
107 fPadLength = fTRDtracklet->GetPadLength();
109 fX0 = fTRDtracklet->GetX0();
110 for (Int_t i = 0; i < AliTRDseedV1::kNclusters; i++){
111 // fX[i] = fTRDtracklet->GetX(i);
112 // fY[i] = fTRDtracklet->GetY(i);
113 // fZ[i] = fTRDtracklet->GetZ(i);
114 fIndexes[i] = fTRDtracklet->GetIndexes(i);
117 for (Int_t i=0; i < 2; i++){
118 fYfit[i] = fTRDtracklet->GetYfit(i);
119 fZfit[i] = fTRDtracklet->GetZfit(i);
120 fLabels[i] = fTRDtracklet->GetLabels(i);
122 fLabels[2] = fTRDtracklet->GetLabels(2);
123 fN2 = fTRDtracklet->GetN2();
124 fNUsed = fTRDtracklet->GetNUsed();
126 fC = fTRDtracklet->GetC();
127 fChi2 = fTRDtracklet->GetChi2();
128 //fChi2Z = fTRDtracklet->GetChi2Z();
130 fDet = fTRDtracklet->GetDetector();
131 fPt = fTRDtracklet->GetPt();
132 fdX = fTRDtracklet->GetdX();
136 * Copy data to the output TRDseedV1
138 //============================================================================
139 void AliHLTTRDTracklet::ExportTRDTracklet(AliTRDseedV1 *outTracklet)
141 outTracklet->Reset();
142 /* ======= From AliTRDseedV1 ======== */
143 outTracklet->SetDetector(fDet);
144 outTracklet->SetPt(fPt);
145 outTracklet->SetDX(fdX);
147 /* ======= From AliTRDseed ======== */
148 for (Int_t i=0; i < 2; i++){
149 outTracklet->SetYref(i, fYref[i]);
150 outTracklet->SetZref(i, fZref[i]);
153 //outTracklet->SetSigmaY(fSigmaY);
154 //outTracklet->SetSigmaY2(fSigmaY2);
155 outTracklet->SetTilt(fTilt);
156 outTracklet->SetPadLength(fPadLength);
157 outTracklet->SetX0(fX0);
159 for (Int_t i=0; i < AliTRDseedV1::kNclusters; i++){
160 // outTracklet->SetX(i,fX[i]);
161 // outTracklet->SetX(i,fY[i]);
162 // outTracklet->SetX(i,fZ[i]);
163 outTracklet->SetIndexes(i, fIndexes[i]);
166 // for (Int_t i=0; i < 2; i++){
167 // outTracklet->SetYfit(i,fYfit[i]);
168 // outTracklet->SetZfit(i,fZfit[i]);
170 outTracklet->SetLabels(fLabels);
172 //outTracklet->SetN2(fN2);
173 //outTracklet->SetNUsed(fNUsed);
174 outTracklet->SetC(fC);
175 outTracklet->SetChi2(fChi2);
177 for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){
178 if (fClusters[iCluster]){
179 AliTRDcluster *trdCluster = new AliTRDcluster();
180 fClusters[iCluster]->ExportTRDCluster(trdCluster);
181 //outTracklet->SetClusters(iCluster, trdCluster);
190 //============================================================================
191 void AliHLTTRDTracklet::InitArrays()
193 for (Int_t i=0; i < AliTRDseedV1::kNclusters; i++){
197 for (Int_t i=0; i < 2; i++){
201 for (Int_t i = 0; i < AliTRDseedV1::kNclusters; i++){
208 for (Int_t i=0; i < 2; i++){
219 * Prints main info about tracklet
221 //============================================================================
222 void AliHLTTRDTracklet::Print(Bool_t printClusters)
224 //printf("--hltTracklet-- addr 0x%p(%i); fSize %i\n", this, (int)this, fSize);
225 printf(" fDet %i; fPt %f; fdX %f fN %i\n", fDet, fPt, fdX, fN2);
227 if(!printClusters) return;
228 for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){
229 printf(" [%i] ",iCluster);
230 if (fClusters[iCluster]) fClusters[iCluster]->Print();
231 else printf(" NULL\n");
236 * Read clusters to TRDtracklet from the memory
238 //============================================================================
239 void AliHLTTRDTracklet::ReadClustersFromMemory(void *input)
241 AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*) input;
242 AliHLTTRDCluster* hltCluster = NULL;
244 for (Int_t iCluster = 0; iCluster < AliTRDseedV1::kNclusters; iCluster++){
245 // if we had something in the fClusters[iCluster] before copying,
246 // then this entry in the array should not be empty. Fill it.
247 if (fClusters[iCluster]){
248 hltCluster = (AliHLTTRDCluster*) iterPtr;
249 fClusters[iCluster] = hltCluster;
250 iterPtr += hltCluster->GetSize();
251 //hltCluster->Print();