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