CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
CgemKalTrackCnv Class Reference

#include <CgemKalTrackCnv.h>

+ Inheritance diagram for CgemKalTrackCnv:

Public Member Functions

virtual ~CgemKalTrackCnv ()
 
virtual ~CgemKalTrackCnv ()
 
virtual ~CgemKalTrackCnv ()
 
- Public Member Functions inherited from RootEventBaseCnv
 RootEventBaseCnv (const CLID &clid, ISvcLocator *svc)
 
virtual ~RootEventBaseCnv ()
 
virtual long repSvcType () const
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname)
 Store TDS path to link a particular converter to an object on the TDS.
 
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
 Convert the persistent object to transient.
 
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
 
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
 
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
 
virtual StatusCode DataObjectToTObject (DataObject *dat, RootAddress *addr)=0
 Do the concrete conversion from TDS to ROOT.
 
virtual StatusCode TObjectToDataObject (DataObject *&dat)=0
 Do the concrete conversion from ROOT to TDS.
 
TObject * getReadObject () const
 get the object to be read
 
 RootEventBaseCnv (const CLID &clid, ISvcLocator *svc)
 
virtual ~RootEventBaseCnv ()
 
virtual long repSvcType () const
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname)
 Store TDS path to link a particular converter to an object on the TDS.
 
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
 Convert the persistent object to transient.
 
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
 
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
 
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
 
virtual StatusCode DataObjectToTObject (DataObject *dat, RootAddress *addr)=0
 Do the concrete conversion from TDS to ROOT.
 
virtual StatusCode TObjectToDataObject (DataObject *&dat)=0
 Do the concrete conversion from ROOT to TDS.
 
TObject * getReadObject () const
 get the object to be read
 
 RootEventBaseCnv (const CLID &clid, ISvcLocator *svc)
 
virtual ~RootEventBaseCnv ()
 
virtual long repSvcType () const
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname)
 Store TDS path to link a particular converter to an object on the TDS.
 
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
 Convert the persistent object to transient.
 
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
 
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
 
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
 
virtual StatusCode DataObjectToTObject (DataObject *dat, RootAddress *addr)=0
 Do the concrete conversion from TDS to ROOT.
 
virtual StatusCode TObjectToDataObject (DataObject *&dat)=0
 Do the concrete conversion from ROOT to TDS.
 
TObject * getReadObject () const
 get the object to be read
 
- Public Member Functions inherited from Converter< Ty1, Ty2 >
destinationoperator (const source &) const
 
destinationoperator (const source &) const
 

Static Public Member Functions

static const CLID & classID ()
 
static const CLID & classID ()
 
static const CLID & classID ()
 
- Static Public Member Functions inherited from RootEventBaseCnv
static const unsigned char storageType ()
 Storage type and class ID.
 
static const unsigned char storageType ()
 Storage type and class ID.
 
static const unsigned char storageType ()
 Storage type and class ID.
 

Protected Member Functions

 CgemKalTrackCnv (ISvcLocator *svc)
 
virtual StatusCode DataObjectToTObject (DataObject *obj, RootAddress *addr)
 transformation to root
 
virtual StatusCode TObjectToDataObject (DataObject *&obj)
 transformation from root
 
 CgemKalTrackCnv (ISvcLocator *svc)
 
virtual StatusCode DataObjectToTObject (DataObject *obj, RootAddress *addr)
 transformation to root
 
virtual StatusCode TObjectToDataObject (DataObject *&obj)
 transformation from root
 
 CgemKalTrackCnv (ISvcLocator *svc)
 
virtual StatusCode DataObjectToTObject (DataObject *obj, RootAddress *addr)
 transformation to root
 
virtual StatusCode TObjectToDataObject (DataObject *&obj)
 transformation from root
 
- Protected Member Functions inherited from Converter< Ty1, Ty2 >
virtual destinationconvert (const source &) const =0
 
virtual destinationconvert (const source &) const =0
 

Friends

class CnvFactory< CgemKalTrackCnv >
 

Additional Inherited Members

- Public Types inherited from Converter< Ty1, Ty2 >
typedef Ty1 source
 
typedef Ty2 destination
 
typedef Ty1 source
 
typedef Ty2 destination
 
- Protected Attributes inherited from RootEventBaseCnv
RootCnvSvcm_cnvSvc
 
std::vector< RootCnvSvc::Leafm_leaves
 
RootInterfacem_rootInterface
 pointer to the RootInterface
 
IDataProviderSvc * m_eds
 pointer to eventdataservice
 
int m_branchNr
 the branchNr of this converter for writing
 
int m_branchNrDst
 
int m_branchNrMc
 
int m_branchNrRecon
 
int m_branchNrEvtRec
 
int m_branchNrEvtHeader
 
int m_branchNrEvtNavigator
 
TObject * m_objRead
 the object that was read
 
CLID CLID_top
 the CLID of the upper converter if any
 
TArrayS * m_branchNumbers
 array with number of branches for reading
 
std::string m_rootBranchname
 root branchname (may be concatenated of severals)
 
std::string m_rootTreename
 each converter knows it's treename
 
std::string m_currentFileName
 
std::vector< void * > m_adresses
 each converter knows the corresponding adresses
 
RootEvtSelectorm_evtsel
 

Detailed Description

Constructor & Destructor Documentation

◆ ~CgemKalTrackCnv() [1/3]

virtual CgemKalTrackCnv::~CgemKalTrackCnv ( )
inlinevirtual

◆ CgemKalTrackCnv() [1/3]

CgemKalTrackCnv::CgemKalTrackCnv ( ISvcLocator *  svc)
protected

Definition at line 33 of file bak_RootCnvSvc-04-01-14/src/Dst/CgemKalTrackCnv.cxx.

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}
std::vector< void * > m_adresses
each converter knows the corresponding adresses
std::string m_rootBranchname
root branchname (may be concatenated of severals)

◆ ~CgemKalTrackCnv() [2/3]

virtual CgemKalTrackCnv::~CgemKalTrackCnv ( )
inlinevirtual

◆ CgemKalTrackCnv() [2/3]

CgemKalTrackCnv::CgemKalTrackCnv ( ISvcLocator *  svc)
protected

◆ ~CgemKalTrackCnv() [3/3]

virtual CgemKalTrackCnv::~CgemKalTrackCnv ( )
inlinevirtual

◆ CgemKalTrackCnv() [3/3]

CgemKalTrackCnv::CgemKalTrackCnv ( ISvcLocator *  svc)
protected

Member Function Documentation

◆ classID() [1/3]

static const CLID & CgemKalTrackCnv::classID ( )
inlinestatic

Definition at line 20 of file Event/RootCnvSvc/bak_RootCnvSvc-04-01-14/RootCnvSvc/Dst/CgemKalTrackCnv.h.

21 {
23 }
const CLID & CLID_DstCgemKalTrackCol
Definition: EventModel.cxx:315

◆ classID() [2/3]

static const CLID & CgemKalTrackCnv::classID ( )
inlinestatic

◆ classID() [3/3]

static const CLID & CgemKalTrackCnv::classID ( )
inlinestatic

◆ DataObjectToTObject() [1/3]

StatusCode CgemKalTrackCnv::DataObjectToTObject ( DataObject *  obj,
RootAddress addr 
)
protectedvirtual

transformation to root

Implements RootEventBaseCnv.

Definition at line 305 of file bak_RootCnvSvc-04-01-14/src/Dst/CgemKalTrackCnv.cxx.

305 {
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}
ObjectVector< DstCgemKalTrack > DstCgemKalTrackCol
static TDstEvent * getWriteObject()
returns object to be written (maintained here for all DIGI-converters)
virtual StatusCode createRep(DataObject *pObject, IOpaqueAddress *&refpAddress)
Convert the transient object to the requested representation.
void addCgemKalTrack(TCgemKalTrack *Track)

◆ DataObjectToTObject() [2/3]

virtual StatusCode CgemKalTrackCnv::DataObjectToTObject ( DataObject *  obj,
RootAddress addr 
)
protectedvirtual

transformation to root

Implements RootEventBaseCnv.

◆ DataObjectToTObject() [3/3]

virtual StatusCode CgemKalTrackCnv::DataObjectToTObject ( DataObject *  obj,
RootAddress addr 
)
protectedvirtual

transformation to root

Implements RootEventBaseCnv.

◆ TObjectToDataObject() [1/3]

StatusCode CgemKalTrackCnv::TObjectToDataObject ( DataObject *&  obj)
protectedvirtual

transformation from root

Implements RootEventBaseCnv.

Definition at line 43 of file bak_RootCnvSvc-04-01-14/src/Dst/CgemKalTrackCnv.cxx.

43 {
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}
Double_t x[10]
double sin(const BesAngle a)
double cos(const BesAngle a)
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 std::map< const TObject *, const DstCgemKalTrack * > m_rootCgemKalTrackMap

◆ TObjectToDataObject() [2/3]

virtual StatusCode CgemKalTrackCnv::TObjectToDataObject ( DataObject *&  obj)
protectedvirtual

transformation from root

Implements RootEventBaseCnv.

◆ TObjectToDataObject() [3/3]

virtual StatusCode CgemKalTrackCnv::TObjectToDataObject ( DataObject *&  obj)
protectedvirtual

transformation from root

Implements RootEventBaseCnv.

Friends And Related Function Documentation

◆ CnvFactory< CgemKalTrackCnv >


The documentation for this class was generated from the following files: