CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
bak_RootCnvSvc-04-01-14/src/Dst/CgemKalTrackCnv.cxx
Go to the documentation of this file.
1#ifndef CgemKalTrackCnv_CXX
2#define CgemKalTrackCnv_CXX 1
3
4#include "GaudiKernel/MsgStream.h"
5#include "GaudiKernel/DataObject.h"
6#include "GaudiKernel/ObjectVector.h"
7
8#include "TClonesArray.h"
9
10#include "EventModel/EventModel.h"
11#include "DstEvent/DstEvent.h" //TDS object
12#include "DstEvent/DstCgemKalTrack.h" //TDS object
13#include "CgemRecEvent/RecCgemKalTrack.h"
14#include "RootEventData/TCgemKalTrack.h" // standard root object
15#include "RootEventData/TDstEvent.h"
16
17#include "RootCnvSvc/Dst/DstCnv.h"
18#include "RootCnvSvc/Dst/CgemKalTrackCnv.h"
19#include "RootCnvSvc/RootAddress.h"
20
21#include "CLHEP/Matrix/Vector.h"
22#include "CLHEP/Matrix/SymMatrix.h"
23#include "CLHEP/Vector/ThreeVector.h"
24#include "CLHEP/Geometry/Point3D.h"
25#include <vector>
26#include "string.h"
27#include <cmath>
28
29using CLHEP::HepVector;
30using CLHEP::HepSymMatrix;
31
32
34: RootEventBaseCnv(classID(), svc)
35{
36 // Here we associate this converter with the /Event path on the TDS.
37 MsgStream log(msgSvc(), "CgemKalTrackCnv");
38 m_rootBranchname ="m_cgemKalTrackCol";
39 m_adresses.push_back(&m_cgemKalTrackCol);
40 m_cgemKalTrackCol=0;
41}
42
43StatusCode CgemKalTrackCnv::TObjectToDataObject(DataObject*& refpObject) {
44 // creation of TDS object from root object
45
46 MsgStream log(msgSvc(), "CgemKalTrackCnv");
47 log << MSG::DEBUG << "CgemKalTrackCnv::TObjectToDataObject" << endreq;
48 StatusCode sc=StatusCode::SUCCESS;
49
50 // create the TDS location for the CgemKalTrack Collection
51 DstCgemKalTrackCol* cgemKalTrackTdsCol = new DstCgemKalTrackCol;
52 refpObject=cgemKalTrackTdsCol;
53
54 // now convert
55 if (!m_cgemKalTrackCol) return sc;
56 TIter cgemKalTrackIter(m_cgemKalTrackCol);
57 TCgemKalTrack *cgemKalTrackRoot = 0;
58 while ((cgemKalTrackRoot = (TCgemKalTrack*)cgemKalTrackIter.Next())) {
59 std::vector<HepVector> zhelixs;
60 std::vector<HepSymMatrix> zerrors;
61 std::vector<HepPoint3D> pocas;
62 std::vector<HepVector> fhelixs;
63 std::vector<HepSymMatrix> ferrors;
64
65 HepVector zhelix(5);
66 HepSymMatrix zerror(5);
67 HepPoint3D poca(0,0,0);
68
69 HepVector zhelix_e(5);
70 HepSymMatrix zerror_e(5);
71 HepPoint3D poca_e(0,0,0);
72
73 HepVector zhelix_mu(5);
74 HepSymMatrix zerror_mu(5);
75 HepPoint3D poca_mu(0,0,0);
76
77 HepVector zhelix_k(5);
78 HepSymMatrix zerror_k(5);
79 HepPoint3D poca_k(0,0,0);
80
81 HepVector zhelix_p(5);
82 HepSymMatrix zerror_p(5);
83 HepPoint3D poca_p(0,0,0);
84
85 HepVector fhelix(5);
86 HepSymMatrix ferror(5);
87
88 HepVector fhelix_e(5);
89 HepSymMatrix ferror_e(5);
90
91 HepVector fhelix_mu(5);
92 HepSymMatrix ferror_mu(5);
93
94 HepVector fhelix_k(5);
95 HepSymMatrix ferror_k(5);
96
97 HepVector fhelix_p(5);
98 HepSymMatrix ferror_p(5);
99
100
101 DstCgemKalTrack *cgemKalTrackTds = new DstCgemKalTrack();
102 m_common.m_rootCgemKalTrackMap[cgemKalTrackRoot] = cgemKalTrackTds;
103
104 /*
105 for(int ii=0; ii<3; ii++){
106 poca_e[ii] = cgemKalTrackRoot->getPocaE(ii);
107 poca_mu[ii] = cgemKalTrackRoot->getPocaMu(ii);
108 poca[ii] = cgemKalTrackRoot->getPoca(ii);
109 poca_k[ii] = cgemKalTrackRoot->getPocaK(ii);
110 poca_p[ii] = cgemKalTrackRoot->getPocaP(ii);
111 }
112 */
113
114 log<<MSG::DEBUG<<"T to DST, poca: "<<poca<<endreq;
115
116 for (int i=0; i<5; i++){
117 zhelix[i] = cgemKalTrackRoot->getZHelix(i);
118 zhelix_e[i] = cgemKalTrackRoot->getZHelixE(i);
119 zhelix_mu[i] = cgemKalTrackRoot->getZHelixMu(i);
120 zhelix_k[i] = cgemKalTrackRoot->getZHelixK(i);
121 zhelix_p[i] = cgemKalTrackRoot->getZHelixP(i);
122
123 fhelix[i] = cgemKalTrackRoot->getFHelix(i);
124 fhelix_e[i] = cgemKalTrackRoot->getFHelixE(i);
125 fhelix_mu[i] = cgemKalTrackRoot->getFHelixMu(i);
126 fhelix_k[i] = cgemKalTrackRoot->getFHelixK(i);
127 fhelix_p[i] = cgemKalTrackRoot->getFHelixP(i);
128
129 for (int j=0; j<=i; j++){
130 zerror[i][j] = cgemKalTrackRoot->getZError(i,j);
131 zerror_e[i][j] = cgemKalTrackRoot->getZErrorE(i,j);
132 zerror_mu[i][j] = cgemKalTrackRoot->getZErrorMu(i,j);
133 zerror_k[i][j] = cgemKalTrackRoot->getZErrorK(i,j);
134 zerror_p[i][j] = cgemKalTrackRoot->getZErrorP(i,j);
135
136 zerror[j][i] = zerror[i][j];
137 zerror_e[j][i] = zerror_e[i][j];
138 zerror_mu[j][i] = zerror_mu[i][j];
139 zerror_k[j][i] = zerror_k[i][j];
140 zerror_p[j][i] = zerror_p[i][j];
141
142 ferror[i][j] = cgemKalTrackRoot->getFError(i,j);
143 ferror_e[i][j] = cgemKalTrackRoot->getFErrorE(i,j);
144 ferror_mu[i][j] = cgemKalTrackRoot->getFErrorMu(i,j);
145 ferror_k[i][j] = cgemKalTrackRoot->getFErrorK(i,j);
146 ferror_p[i][j] = cgemKalTrackRoot->getFErrorP(i,j);
147
148 ferror[j][i] = ferror[i][j];
149 ferror_e[j][i] = ferror_e[i][j];
150 ferror_mu[j][i] = ferror_mu[i][j];
151 ferror_k[j][i] = ferror_k[i][j];
152 ferror_p[j][i] = ferror_p[i][j];
153 }
154 }
155
156
157 double dr = zhelix[0];
158 double phi0 = zhelix[1];
159 double kappa = zhelix[2];
160 double dz = zhelix[3];
161 double tanl = zhelix[4];
162 poca[0]=dr*cos(phi0);
163 poca[1]=dr*sin(phi0);
164 poca[2]=dz;
165
166 dr = zhelix_e[0];
167 phi0 = zhelix_e[1];
168 kappa = zhelix_e[2];
169 dz = zhelix_e[3];
170 tanl = zhelix_e[4];
171 poca_e[0]=dr*cos(phi0);
172 poca_e[1]=dr*sin(phi0);
173 poca_e[2]=dz;
174
175 dr = zhelix_mu[0];
176 phi0 = zhelix_mu[1];
177 kappa = zhelix_mu[2];
178 dz = zhelix_mu[3];
179 tanl = zhelix_mu[4];
180 poca_mu[0]=dr*cos(phi0);
181 poca_mu[1]=dr*sin(phi0);
182 poca_mu[2]=dz;
183
184 dr = zhelix_k[0];
185 phi0 = zhelix_k[1];
186 kappa = zhelix_k[2];
187 dz = zhelix_k[3];
188 tanl = zhelix_k[4];
189 poca_k[0]=dr*cos(phi0);
190 poca_k[1]=dr*sin(phi0);
191 poca_k[2]=dz;
192
193 dr = zhelix_p[0];
194 phi0 = zhelix_p[1];
195 kappa = zhelix_p[2];
196 dz = zhelix_p[3];
197 tanl = zhelix_p[4];
198 poca_p[0]=dr*cos(phi0);
199 poca_p[1]=dr*sin(phi0);
200 poca_p[2]=dz;
201
202
203 log<<MSG::DEBUG<<"T to DST, zhelix: "<<zhelix<<endreq;
204 log<<MSG::DEBUG<<"T to DST, zerror: "<<zerror<<endreq;
205
206 zhelixs.push_back(zhelix_e);
207 zhelixs.push_back(zhelix_mu);
208 zhelixs.push_back(zhelix);
209 zhelixs.push_back(zhelix_k);
210 zhelixs.push_back(zhelix_p);
211 zerrors.push_back(zerror_e);
212 zerrors.push_back(zerror_mu);
213 zerrors.push_back(zerror);
214 zerrors.push_back(zerror_k);
215 zerrors.push_back(zerror_p);
216
217 fhelixs.push_back(fhelix_e);
218 fhelixs.push_back(fhelix_mu);
219 fhelixs.push_back(fhelix);
220 fhelixs.push_back(fhelix_k);
221 fhelixs.push_back(fhelix_p);
222 ferrors.push_back(ferror_e);
223 ferrors.push_back(ferror_mu);
224 ferrors.push_back(ferror);
225 ferrors.push_back(ferror_k);
226 ferrors.push_back(ferror_p);
227
228 pocas.push_back(poca_e);
229 pocas.push_back(poca_mu);
230 pocas.push_back(poca);
231 pocas.push_back(poca_k);
232 pocas.push_back(poca_p);
233
234 for(int m=0; m<5; m++){
235 int charge;
236 double pxy(0.),px(0.),py(0.),pz(0.),ptot(0.),dr(0.),phi0(0.),kappa(0.),dz(0.),tanl(0.),x(0.),y(0.),z(0.),vx0(0.),vy0(0.),vz0(0.);
237 dr = zhelixs[m][0];
238 phi0 = zhelixs[m][1];
239 kappa = zhelixs[m][2];
240 dz = zhelixs[m][3];
241 tanl = zhelixs[m][4];
242
243// x = pocas[m][0];
244// y = pocas[m][1];
245// z = pocas[m][2];
246
247 x = dr * cos(phi0);
248 y = dr * sin(phi0);
249 z = dz;
250
251 // std::cout<<"x: "<<x<<"y: "<<y<<"z: "<<z<<std::endl;
252
253 if (kappa > 0.0000000001)
254 charge = 1;
255 else if (kappa < -0.0000000001)
256 charge = -1;
257 else
258 charge = 0;
259
260 if(kappa!=0) pxy = 1.0/fabs(kappa);
261 else pxy = 0;
262
263 px = pxy * (-sin(phi0));
264 py = pxy * cos(phi0);
265 pz = pxy * tanl;
266 ptot = sqrt(px*px+py*py+pz*pz);
267
268 cgemKalTrackTds->setCharge(charge,m);
269 cgemKalTrackTds->setPxy(pxy,m);
270 cgemKalTrackTds->setPx(px,m);
271 cgemKalTrackTds->setPy(py,m);
272 cgemKalTrackTds->setPz(pz,m);
273 cgemKalTrackTds->setP(ptot,m);
274 cgemKalTrackTds->setTheta(acos(pz/ptot),m);
275 cgemKalTrackTds->setPhi(atan2(py,px),m);
276 cgemKalTrackTds->setX(x,m);
277 cgemKalTrackTds->setY(y,m);
278 cgemKalTrackTds->setZ(z,m);
279 cgemKalTrackTds->setR(sqrt(x*x+y*y),m);
280
281 cgemKalTrackTds->setStat(cgemKalTrackRoot->getStat(m),0,m);
282 cgemKalTrackTds->setStat(cgemKalTrackRoot->getStat2(m),1,m);
283 cgemKalTrackTds->setChisq(cgemKalTrackRoot->getChisq(m),0,m);
284 cgemKalTrackTds->setNdf(cgemKalTrackRoot->getNdf(m),0,m);
285 }
286
287 cgemKalTrackTds->setTrackId(cgemKalTrackRoot->getTrackId());
288
289 for(int jj=0; jj<5; jj++){
290 cgemKalTrackTds->setZHelix(zhelixs[jj],jj);
291 cgemKalTrackTds->setZError(zerrors[jj],jj);
292 cgemKalTrackTds->setFHelix(fhelixs[jj],jj);
293 cgemKalTrackTds->setFError(ferrors[jj],jj);
294 cgemKalTrackTds->setPoca(pocas[jj],jj);
295 }
296
297 cgemKalTrackTdsCol->push_back(cgemKalTrackTds);
298 }
299 // m_cgemKalTrackCol->Delete(); // wensp add 2005/12/30
300 delete m_cgemKalTrackCol;
301 m_cgemKalTrackCol = 0;
302 return StatusCode::SUCCESS;
303}
304
305StatusCode CgemKalTrackCnv::DataObjectToTObject(DataObject* obj,RootAddress* rootaddr) {
306
307 MsgStream log(msgSvc(), "CgemKalTrackCnv");
308 log << MSG::DEBUG << "CgemKalTrackCnv::DataObjectToTObject" << endreq;
309 StatusCode sc=StatusCode::SUCCESS;
310
311 DstCgemKalTrackCol * cgemKalTrackColTds=dynamic_cast<DstCgemKalTrackCol *> (obj);
312 //RecCgemKalTrackCol * cgemKalTrackColTds=dynamic_cast<RecCgemKalTrackCol *> (obj);
313 if (!cgemKalTrackColTds) {
314 log << MSG::ERROR << "Could not downcast to DstCgemKalTrackCol" << endreq;
315 return StatusCode::FAILURE;
316 }
317
318 DataObject *evt;
319 m_eds->findObject(EventModel::Dst::Event,evt);
320 if (evt==NULL) {
321 log << MSG::ERROR << "Could not get ReconEvent in TDS " << endreq;
322 return StatusCode::FAILURE;
323 }
324
325 DstEvent * devtTds=dynamic_cast<DstEvent *> (evt);
326 if (!devtTds) {
327 log << MSG::ERROR << "CgemKalTrackCnv:Could not downcast to TDS Dst Event" << endreq;
328 }
329 IOpaqueAddress *addr;
330
331 m_cnvSvc->getDstCnv()->createRep(evt,addr);
333
334 const TObjArray *m_cgemKalTrackCol = recEvt->getCgemKalTrackCol();
335
336 if (!m_cgemKalTrackCol) return sc;
337
338 recEvt->clearCgemKalTrackCol(); //necessary in case there is I/O at the same time since array is static
339 DstCgemKalTrackCol::const_iterator cgemKalTrackTds;
340
341 for (cgemKalTrackTds = cgemKalTrackColTds->begin(); cgemKalTrackTds != cgemKalTrackColTds->end(); cgemKalTrackTds++) {
342
343 // Get Data from DST
344
345 //Double_t poca[3];
346 Double_t zhelix[5];
347 Double_t zerror[5][5];
348
349 //Double_t poca_e[3];
350 Double_t zhelix_e[5];
351 Double_t zerror_e[5][5];
352
353 //Double_t poca_mu[3];
354 Double_t zhelix_mu[5];
355 Double_t zerror_mu[5][5];
356
357 //Double_t poca_k[3];
358 Double_t zhelix_k[5];
359 Double_t zerror_k[5][5];
360
361 //Double_t poca_p[3];
362 Double_t zhelix_p[5];
363 Double_t zerror_p[5][5];
364
365 Double_t fhelix[5];
366 Double_t ferror[5][5];
367 Double_t fhelix_e[5];
368 Double_t ferror_e[5][5];
369 Double_t fhelix_mu[5];
370 Double_t ferror_mu[5][5];
371 Double_t fhelix_k[5];
372 Double_t ferror_k[5][5];
373 Double_t fhelix_p[5];
374 Double_t ferror_p[5][5];
375
376 TCgemKalTrack *cgemKalTrackRoot = new TCgemKalTrack();
377 //m_common.m_cgemKalTrackMap[(*cgemKalTrackTds)] = cgemKalTrackRoot;
378 RecCgemKalTrack* recCgemKalTrackTds=(RecCgemKalTrack*) (*cgemKalTrackTds);
379
380 for(int k=0; k<5; k++){
381 cgemKalTrackRoot->setStat((*cgemKalTrackTds)->getStat(k),k);
382 cgemKalTrackRoot->setStat2(recCgemKalTrackTds->getStat(1,k),k);
383 cgemKalTrackRoot->setChisq((*cgemKalTrackTds)->getChisq(k),k);
384 cgemKalTrackRoot->setNdf((*cgemKalTrackTds)->getNdf(k),k);
385 cgemKalTrackRoot->setFirstLayer((*cgemKalTrackTds)->getFirstLayer(k),k);
386 cgemKalTrackRoot->setLastLayer((*cgemKalTrackTds)->getLastLayer(k),k);
387 }
388
389 //HepPoint3D h_poca = (*cgemKalTrackTds)->getPoca(2);
390 HepVector h_zhelix = (*cgemKalTrackTds)->getZHelix(2);
391 HepSymMatrix h_zerror = (*cgemKalTrackTds)->getZError(2);
392
393 //HepPoint3D h_poca_e = (*cgemKalTrackTds)->getPoca(0);
394 HepVector h_zhelix_e = (*cgemKalTrackTds)->getZHelix(0);
395 HepSymMatrix h_zerror_e = (*cgemKalTrackTds)->getZError(0);
396
397 //HepPoint3D h_poca_mu = (*cgemKalTrackTds)->getPoca(1);
398 HepVector h_zhelix_mu = (*cgemKalTrackTds)->getZHelix(1);
399 HepSymMatrix h_zerror_mu = (*cgemKalTrackTds)->getZError(1);
400
401 //HepPoint3D h_poca_k = (*cgemKalTrackTds)->getPoca(3);
402 HepVector h_zhelix_k = (*cgemKalTrackTds)->getZHelix(3);
403 HepSymMatrix h_zerror_k = (*cgemKalTrackTds)->getZError(3);
404
405 //HepPoint3D h_poca_p = (*cgemKalTrackTds)->getPoca(4);
406 HepVector h_zhelix_p = (*cgemKalTrackTds)->getZHelix(4);
407 HepSymMatrix h_zerror_p = (*cgemKalTrackTds)->getZError(4);
408
409 HepVector h_fhelix = (*cgemKalTrackTds)->getFHelix(2);
410 HepSymMatrix h_ferror = (*cgemKalTrackTds)->getFError(2);
411 HepVector h_fhelix_e = (*cgemKalTrackTds)->getFHelix(0);
412 HepSymMatrix h_ferror_e = (*cgemKalTrackTds)->getFError(0);
413 HepVector h_fhelix_mu = (*cgemKalTrackTds)->getFHelix(1);
414 HepSymMatrix h_ferror_mu = (*cgemKalTrackTds)->getFError(1);
415 HepVector h_fhelix_k = (*cgemKalTrackTds)->getFHelix(3);
416 HepSymMatrix h_ferror_k = (*cgemKalTrackTds)->getFError(3);
417 HepVector h_fhelix_p = (*cgemKalTrackTds)->getFHelix(4);
418 HepSymMatrix h_ferror_p = (*cgemKalTrackTds)->getFError(4);
419
420 cgemKalTrackRoot->setTrackId((*cgemKalTrackTds)->getTrackId());
421
422 /*
423 for(int k=0; k<3; k++){
424 poca[k] = h_poca[k];
425 poca_e[k] = h_poca_e[k];
426 poca_mu[k] = h_poca_mu[k];
427 poca_k[k] = h_poca_k[k];
428 poca_p[k] = h_poca_p[k];
429 }
430 */
431
432 for (int i=0; i<5; i++){
433 zhelix[i] = h_zhelix[i];
434 zhelix_e[i] = h_zhelix_e[i];
435 zhelix_mu[i] = h_zhelix_mu[i];
436 zhelix_p[i] = h_zhelix_p[i];
437 zhelix_k[i] = h_zhelix_k[i];
438 fhelix[i] = h_fhelix[i];
439 fhelix_e[i] = h_fhelix_e[i];
440 fhelix_mu[i] = h_fhelix_mu[i];
441 fhelix_p[i] = h_fhelix_p[i];
442 fhelix_k[i] = h_fhelix_k[i];
443 for (int j=0; j<=i; j++){
444 zerror[i][j] = h_zerror[i][j];
445 zerror_e[i][j] = h_zerror_e[i][j];
446 zerror_mu[i][j] = h_zerror_mu[i][j];
447 zerror_p[i][j] = h_zerror_p[i][j];
448 zerror_k[i][j] = h_zerror_k[i][j];
449 zerror[j][i] = h_zerror[i][j];
450 zerror_e[j][i] = h_zerror_e[i][j];
451 zerror_mu[j][i] = h_zerror_mu[i][j];
452 zerror_p[j][i] = h_zerror_p[i][j];
453 zerror_k[j][i] = h_zerror_k[i][j];
454 ferror[i][j] = h_ferror[i][j];
455 ferror_e[i][j] = h_ferror_e[i][j];
456 ferror_mu[i][j] = h_ferror_mu[i][j];
457 ferror_p[i][j] = h_ferror_p[i][j];
458 ferror_k[i][j] = h_ferror_k[i][j];
459 ferror[j][i] = h_ferror[i][j];
460 ferror_e[j][i] = h_ferror_e[i][j];
461 ferror_mu[j][i] = h_ferror_mu[i][j];
462 ferror_p[j][i] = h_ferror_p[i][j];
463 ferror_k[j][i] = h_ferror_k[i][j];
464 }
465 }
466
467 //cgemKalTrackRoot->setPoca(poca);
468 cgemKalTrackRoot->setZHelix(zhelix);
469 cgemKalTrackRoot->setZError(zerror);
470
471 //cgemKalTrackRoot->setPocaE(poca_e);
472 cgemKalTrackRoot->setZHelixE(zhelix_e);
473 cgemKalTrackRoot->setZErrorE(zerror_e);
474
475 //cgemKalTrackRoot->setPocaMu(poca_mu);
476 cgemKalTrackRoot->setZHelixMu(zhelix_mu);
477 cgemKalTrackRoot->setZErrorMu(zerror_mu);
478
479 //cgemKalTrackRoot->setPocaK(poca_k);
480 cgemKalTrackRoot->setZHelixK(zhelix_k);
481 cgemKalTrackRoot->setZErrorK(zerror_k);
482
483 //cgemKalTrackRoot->setPocaP(poca_p);
484 cgemKalTrackRoot->setZHelixP(zhelix_p);
485 cgemKalTrackRoot->setZErrorP(zerror_p);
486
487 cgemKalTrackRoot->setFHelix(fhelix);
488 cgemKalTrackRoot->setFError(ferror);
489
490 cgemKalTrackRoot->setFHelixE(fhelix_e);
491 cgemKalTrackRoot->setFErrorE(ferror_e);
492
493 cgemKalTrackRoot->setFHelixMu(fhelix_mu);
494 cgemKalTrackRoot->setFErrorMu(ferror_mu);
495
496 cgemKalTrackRoot->setFHelixK(fhelix_k);
497 cgemKalTrackRoot->setFErrorK(ferror_k);
498
499 cgemKalTrackRoot->setFHelixP(fhelix_p);
500 cgemKalTrackRoot->setFErrorP(ferror_p);
501
502 recEvt->addCgemKalTrack(cgemKalTrackRoot);
503 }
504
505 return StatusCode::SUCCESS;
506}
507#endif
Double_t x[10]
ObjectVector< DstCgemKalTrack > DstCgemKalTrackCol
double sin(const BesAngle a)
double cos(const BesAngle a)
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
void setPoca(const HepPoint3D &poca, const int pid)
void setZHelix(const HepVector &helix, const int pid)
void setTheta(const double theta, const int pid)
void setZError(const HepSymMatrix &error, const int pid)
void setFError(const HepSymMatrix &ferror, const int pid)
void setFHelix(const HepVector &fhelix, const int pid)
static TDstEvent * getWriteObject()
returns object to be written (maintained here for all DIGI-converters)
Definition of a Root address, derived from IOpaqueAddress.
std::vector< void * > m_adresses
each converter knows the corresponding adresses
std::string m_rootBranchname
root branchname (may be concatenated of severals)
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)
Convert the transient object to the requested representation.
void addCgemKalTrack(TCgemKalTrack *Track)
static std::map< const TObject *, const DstCgemKalTrack * > m_rootCgemKalTrackMap