1#ifndef RecMdcKalTrackCnv_CXX
2#define RecMdcKalTrackCnv_CXX 1
4#include "GaudiKernel/MsgStream.h"
5#include "GaudiKernel/DataObject.h"
6#include "GaudiKernel/ObjectVector.h"
7#include "TClonesArray.h"
8#include "TClonesArray.h"
38 MsgStream log(
msgSvc(),
"RecMdcKalTrackCnv");
44 m_recMdcKalTrackCol = 0;
49 MsgStream log(
msgSvc(),
"RecMdcKalTrackCnv");
50 log << MSG::DEBUG <<
"RecMdcKalTrackCnv::TObjectToDataObject" << endreq;
51 StatusCode sc = StatusCode::SUCCESS;
55 refpObject = recMdcKalTrackCol;
58 if (!m_recMdcKalTrackCol)
return sc;
59 TIter recMdcKalTrackIter(m_recMdcKalTrackCol);
61 IDataProviderSvc* dataSvc = 0;
62 sc = serviceLocator()->getService (
"EventDataSvc",
63 IDataProviderSvc::interfaceID(), (IInterface*&)dataSvc);
64 if (!sc.isSuccess()) {
65 log << MSG::FATAL <<
"Could not get EventDataSvc in RecMdcTrackCnv" << endreq;
66 return( StatusCode::FAILURE);
68 SmartDataPtr<RecMdcKalHelixSegCol> recMdcKalHelixSegCol(dataSvc,
"/Event/Recon/RecMdcKalHelixSegCol");
69 if (!recMdcKalHelixSegCol) {
70 log << MSG::FATAL <<
"Could not find RecMdcKalHelixSegCol" << endreq;
71 return( StatusCode::FAILURE);
75 while ((recMdcKalTrackRoot = (
TRecMdcKalTrack*)recMdcKalTrackIter.Next())) {
77 std::vector<HepVector> zhelixs;
78 std::vector<HepSymMatrix> zerrors;
79 std::vector<HepVector> fhelixs;
80 std::vector<HepSymMatrix> ferrors;
81 std::vector<HepVector> lhelixs;
82 std::vector<HepSymMatrix> lerrors;
83 std::vector<HepPoint3D> pocas;
84 std::vector<HepPoint3D> lpivots;
85 std::vector<HepPoint3D> lpoints;
89 HepSymMatrix zerror(5);
91 HepSymMatrix ferror(5);
93 HepSymMatrix lerror(5);
95 HepSymMatrix terror(5);
101 HepVector zhelix_e(5);
102 HepSymMatrix zerror_e(5);
103 HepVector fhelix_e(5);
104 HepSymMatrix ferror_e(5);
105 HepVector lhelix_e(5);
106 HepSymMatrix lerror_e(5);
112 HepVector zhelix_mu(5);
113 HepSymMatrix zerror_mu(5);
114 HepVector fhelix_mu(5);
115 HepSymMatrix ferror_mu(5);
116 HepVector lhelix_mu(5);
117 HepSymMatrix lerror_mu(5);
123 HepVector zhelix_k(5);
124 HepSymMatrix zerror_k(5);
125 HepVector fhelix_k(5);
126 HepSymMatrix ferror_k(5);
127 HepVector lhelix_k(5);
128 HepSymMatrix lerror_k(5);
134 HepVector zhelix_p(5);
135 HepSymMatrix zerror_p(5);
136 HepVector fhelix_p(5);
137 HepSymMatrix ferror_p(5);
138 HepVector lhelix_p(5);
139 HepSymMatrix lerror_p(5);
168 for (
int u=0; u<5; u++){
170 length[u] = recMdcKalTrackRoot->
getLength(u);
171 tof[u] = recMdcKalTrackRoot->
getTof(u);
173 fiTerm[u]=recMdcKalTrackRoot->
getfiTerm(u);
174 pathSM[u]=recMdcKalTrackRoot->
getPathSM(u);
175 nlayer[u]=recMdcKalTrackRoot->
getNlayer(u);
178 recMdcKalTrackTds->
setLength(length[u],u);
179 recMdcKalTrackTds->
setTof(tof[u],u);
181 recMdcKalTrackTds->
setFiTerm(fiTerm[u],u);
182 recMdcKalTrackTds->
setPathSM(pathSM[u],u);
183 recMdcKalTrackTds->
setNlayer(nlayer[u],u);
187 for(
int v=0;
v<3;
v++){
190 poca[
v] = recMdcKalTrackRoot->
getPoca(
v);
209 for (
int i=0, k=0; i<5; i++){
210 zhelix[i] = recMdcKalTrackRoot->
getZHelix(i);
211 zhelix_e[i] = recMdcKalTrackRoot->
getZHelixE(i);
213 zhelix_k[i] = recMdcKalTrackRoot->
getZHelixK(i);
214 zhelix_p[i] = recMdcKalTrackRoot->
getZHelixP(i);
217 fhelix[i] = recMdcKalTrackRoot->
getFHelix(i);
218 fhelix_e[i] = recMdcKalTrackRoot->
getFHelixE(i);
220 fhelix_k[i] = recMdcKalTrackRoot->
getFHelixK(i);
221 fhelix_p[i] = recMdcKalTrackRoot->
getFHelixP(i);
223 lhelix[i] = recMdcKalTrackRoot->
getLHelix(i);
224 lhelix_e[i] = recMdcKalTrackRoot->
getLHelixE(i);
226 lhelix_k[i] = recMdcKalTrackRoot->
getLHelixK(i);
227 lhelix_p[i] = recMdcKalTrackRoot->
getLHelixP(i);
229 thelix[i] = recMdcKalTrackRoot->
getTHelix(i);
231 for (
int j=0; j<=i; j++){
233 zerror[i][j] = recMdcKalTrackRoot->
getZError(i,j);
234 zerror_e[i][j] = recMdcKalTrackRoot->
getZErrorE(i,j);
235 zerror_mu[i][j] = recMdcKalTrackRoot->
getZErrorMu(i,j);
236 zerror_k[i][j] = recMdcKalTrackRoot->
getZErrorK(i,j);
237 zerror_p[i][j] = recMdcKalTrackRoot->
getZErrorP(i,j);
238 zerror[j][i] = zerror[i][j];
239 zerror_e[j][i] = zerror_e[i][j];
240 zerror_mu[j][i] = zerror_mu[i][j];
241 zerror_k[j][i] = zerror_k[i][j];
242 zerror_p[j][i] = zerror_p[i][j];
244 ferror[i][j] = recMdcKalTrackRoot->
getFError(i,j);
245 ferror_e[i][j] = recMdcKalTrackRoot->
getFErrorE(i,j);
246 ferror_mu[i][j] = recMdcKalTrackRoot->
getFErrorMu(i,j);
247 ferror_k[i][j] = recMdcKalTrackRoot->
getFErrorK(i,j);
248 ferror_p[i][j] = recMdcKalTrackRoot->
getFErrorP(i,j);
249 ferror[j][i] = ferror[i][j];
250 ferror_e[j][i] = ferror_e[i][j];
251 ferror_mu[j][i] = ferror_mu[i][j];
252 ferror_k[j][i] = ferror_k[i][j];
253 ferror_p[j][i] = ferror_p[i][j];
255 lerror[i][j] = recMdcKalTrackRoot->
getLError(i,j);
256 lerror_e[i][j] = recMdcKalTrackRoot->
getLErrorE(i,j);
257 lerror_mu[i][j] = recMdcKalTrackRoot->
getLErrorMu(i,j);
258 lerror_k[i][j] = recMdcKalTrackRoot->
getLErrorK(i,j);
259 lerror_p[i][j] = recMdcKalTrackRoot->
getLErrorP(i,j);
260 lerror[j][i] = lerror[i][j];
261 lerror_e[j][i] = lerror_e[i][j];
262 lerror_mu[j][i] = lerror_mu[i][j];
263 lerror_k[j][i] = lerror_k[i][j];
264 lerror_p[j][i] = lerror_p[i][j];
266 terror[i][j] = recMdcKalTrackRoot->
getTError(k++);
267 terror[j][i] = terror[i][j];
278 zhelixs.push_back(zhelix_e);
279 zhelixs.push_back(zhelix_mu);
280 zhelixs.push_back(zhelix);
281 zhelixs.push_back(zhelix_k);
282 zhelixs.push_back(zhelix_p);
283 zerrors.push_back(zerror_e);
284 zerrors.push_back(zerror_mu);
285 zerrors.push_back(zerror);
286 zerrors.push_back(zerror_k);
287 zerrors.push_back(zerror_p);
289 fhelixs.push_back(fhelix_e);
290 fhelixs.push_back(fhelix_mu);
291 fhelixs.push_back(fhelix);
292 fhelixs.push_back(fhelix_k);
293 fhelixs.push_back(fhelix_p);
294 ferrors.push_back(ferror_e);
295 ferrors.push_back(ferror_mu);
296 ferrors.push_back(ferror);
297 ferrors.push_back(ferror_k);
298 ferrors.push_back(ferror_p);
300 lhelixs.push_back(lhelix_e);
301 lhelixs.push_back(lhelix_mu);
302 lhelixs.push_back(lhelix);
303 lhelixs.push_back(lhelix_k);
304 lhelixs.push_back(lhelix_p);
305 lerrors.push_back(lerror_e);
306 lerrors.push_back(lerror_mu);
307 lerrors.push_back(lerror);
308 lerrors.push_back(lerror_k);
309 lerrors.push_back(lerror_p);
312 pocas.push_back(poca_e);
313 pocas.push_back(poca_mu);
314 pocas.push_back(poca);
315 pocas.push_back(poca_k);
316 pocas.push_back(poca_p);
317 lpivots.push_back(lpivot_e);
318 lpivots.push_back(lpivot_mu);
319 lpivots.push_back(lpivot);
320 lpivots.push_back(lpivot_k);
321 lpivots.push_back(lpivot_p);
322 lpoints.push_back(lpoint_e);
323 lpoints.push_back(lpoint_mu);
324 lpoints.push_back(lpoint);
325 lpoints.push_back(lpoint_k);
326 lpoints.push_back(lpoint_p);
328 for(
int m=0; m<5; m++){
330 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.);
332 phi0 = zhelixs[m][1];
333 kappa = zhelixs[m][2];
335 tanl = zhelixs[m][4];
345 if (kappa > 0.0000000001)
347 else if (kappa < -0.0000000001)
352 if(kappa!=0) pxy = 1.0/fabs(kappa);
355 px = pxy * (-
sin(phi0));
356 py = pxy *
cos(phi0);
358 ptot = sqrt(px*px+py*py+pz*pz);
361 recMdcKalTrackTds->
setPxy(pxy,m);
362 recMdcKalTrackTds->
setPx(px,m);
363 recMdcKalTrackTds->
setPy(py,m);
364 recMdcKalTrackTds->
setPz(pz,m);
365 recMdcKalTrackTds->
setP(ptot,m);
366 recMdcKalTrackTds->
setTheta(acos(pz/ptot),m);
367 recMdcKalTrackTds->
setPhi(atan2(py,px),m);
368 recMdcKalTrackTds->
setX(
x,m);
369 recMdcKalTrackTds->
setY(
y,m);
370 recMdcKalTrackTds->
setZ(z,m);
371 recMdcKalTrackTds->
setR(sqrt(
x*
x+
y*
y),m);
374 for(
int n=0;
n<2;
n++){
375 int stat = recMdcKalTrackRoot->
getStat(
n,m);
376 int chisq = recMdcKalTrackRoot->
getChisq(
n,m);
377 int ndf = recMdcKalTrackRoot->
getNdf(
n,m);
378 recMdcKalTrackTds->
setStat(stat,
n,m);
380 recMdcKalTrackTds->
setNdf(ndf,
n,m);
388 for(
int jj=0; jj<5; jj++){
392 recMdcKalTrackTds->
setZHelix(zhelixs[jj],jj);
395 recMdcKalTrackTds->
setZError(zerrors[jj],jj);
396 recMdcKalTrackTds->
setFHelix(fhelixs[jj],jj);
397 recMdcKalTrackTds->
setFError(ferrors[jj],jj);
400 recMdcKalTrackTds->
setLHelix(lhelixs[jj],jj);
401 recMdcKalTrackTds->
setLError(lerrors[jj],jj);
402 recMdcKalTrackTds->
setPoca(pocas[jj],jj);
405 recMdcKalTrackTds->
setLPoint(lpoints[jj],jj);
406 recMdcKalTrackTds->
setLPivot(lpivots[jj],jj);
414 log<<MSG::DEBUG<<
"T to REC TDS, zhelix: "<<zhelix<<endreq;
415 log<<MSG::DEBUG<<
"T to REC TDS, zerror: "<<zerror<<endreq;
420 for(
int i=0; i<5; i++) {
423 int nSeg=recMdcKalTrackRoot->
getNseg(i);
425 RecMdcKalHelixSegCol::iterator
iter = recMdcKalHelixSegCol->begin();
426 for (;
iter != recMdcKalHelixSegCol->end();
iter++){
429 if((*iter)->getTrackId() == trackId){
430 if(iSeg>=nSegTot&&iSeg<nSeg+nSegTot) {
431 SmartRef<RecMdcKalHelixSeg> refhit(*
iter);
432 theKalHelixSegRefVec.push_back(refhit);
446 for(
int ii=0; ii <nhelixsegs ; ii++){
456 recMdcKalTrackCol->push_back(recMdcKalTrackTds);
460 delete m_recMdcKalTrackCol;
462 m_recMdcKalTrackCol = 0;
464 return StatusCode::SUCCESS;
471 MsgStream log(
msgSvc(),
"RecMdcKalTrackCnv");
472 log << MSG::DEBUG <<
"RecMdcKalTrackCnv::DataObjectToTObject" << endreq;
473 StatusCode sc=StatusCode::SUCCESS;
476 if (!mdcKalTrackColTds) {
477 log << MSG::ERROR <<
"Could not downcast to RecMdcKalTrackCol" << endreq;
478 return StatusCode::FAILURE;
484 log << MSG::ERROR <<
"Could not get ReconEvent in TDS " << endreq;
485 return StatusCode::FAILURE;
490 log << MSG::ERROR <<
"MdcKalTrackCnv:Could not downcast to TDS Recon Event" << endreq;
492 IOpaqueAddress *addr;
499 if (!m_recMdcKalTrackCol)
return sc;
502 RecMdcKalTrackCol::const_iterator mdcKalTrackTds;
504 for (mdcKalTrackTds = mdcKalTrackColTds->begin(); mdcKalTrackTds != mdcKalTrackColTds->end(); mdcKalTrackTds++) {
515 Double_t chisq[2][5];
528 Double_t zerror[5][5];
529 Double_t zhelix_e[5];
530 Double_t zerror_e[5][5];
531 Double_t zhelix_mu[5];
532 Double_t zerror_mu[5][5];
533 Double_t zhelix_k[5];
534 Double_t zerror_k[5][5];
535 Double_t zhelix_p[5];
536 Double_t zerror_p[5][5];
539 Double_t ferror[5][5];
540 Double_t fhelix_e[5];
541 Double_t ferror_e[5][5];
542 Double_t fhelix_mu[5];
543 Double_t ferror_mu[5][5];
544 Double_t fhelix_k[5];
545 Double_t ferror_k[5][5];
546 Double_t fhelix_p[5];
547 Double_t ferror_p[5][5];
550 Double_t lerror[5][5];
551 Double_t lhelix_e[5];
552 Double_t lerror_e[5][5];
553 Double_t lhelix_mu[5];
554 Double_t lerror_mu[5][5];
555 Double_t lhelix_k[5];
556 Double_t lerror_k[5][5];
557 Double_t lhelix_p[5];
558 Double_t lerror_p[5][5];
563 Double_t lpoint_e[3];
564 Double_t lpoint_mu[3];
566 Double_t lpoint_k[3];
567 Double_t lpoint_p[3];
569 Double_t lpivot_e[3];
570 Double_t lpivot_mu[3];
572 Double_t lpivot_k[3];
573 Double_t lpivot_p[3];
577 trackId = (*mdcKalTrackTds)->getTrackId();
578 for (Int_t i = 0 ; i < 5 ; i++){
579 mass[i] = (*mdcKalTrackTds)->getMass(i);
580 length[i] = (*mdcKalTrackTds)->getLength(i);
581 tof[i] = (*mdcKalTrackTds)->getTof(i);
582 nhits[i] = (*mdcKalTrackTds)->getNhits(i);
583 nlayer[i] = (*mdcKalTrackTds)->getNlayer(i);
584 fiTerm[i]=(*mdcKalTrackTds)->getFiTerm(i);
585 pathSM[i]=(*mdcKalTrackTds)->getPathSM(i);
587 nSeg[i]=((*mdcKalTrackTds)->getVecHelixSegs(i)).size();
588 mdcKalTrackRoot->
setNseg(nSeg[i],i);
590 for (Int_t j = 0 ; j< 2 ; j++){
591 stat[j][i] = (*mdcKalTrackTds)->getStat(j,i);
592 chisq[j][i] = (*mdcKalTrackTds)->getChisq(j,i);
593 ndf[j][i] = (*mdcKalTrackTds)->getNdf(j,i);
594 mdcKalTrackRoot->
setStat(stat[j][i],j,i);
595 mdcKalTrackRoot->
setChisq(chisq[j][i],j,i);
596 mdcKalTrackRoot->
setNdf(ndf[j][i],j,i);
599 for(Int_t i=0;i<5;i++){
600 log<<MSG::INFO<<
" recMdcKalTrack.helix("<<i<<
"): "<<(*mdcKalTrackTds)->getTHelix(i)<<endreq;
601 thelix[i] = (*mdcKalTrackTds)->getTHelix(i);
603 for(Int_t i=0; i<15; i++){
604 terror[i] = (*mdcKalTrackTds)->getTError(i);
606 HepPoint3D h_poca_e = (*mdcKalTrackTds)->getPocaE();
607 HepPoint3D h_poca_mu = (*mdcKalTrackTds)->getPocaMu();
608 HepPoint3D h_poca = (*mdcKalTrackTds)->getPoca();
609 HepPoint3D h_poca_k = (*mdcKalTrackTds)->getPocaK();
610 HepPoint3D h_poca_p = (*mdcKalTrackTds)->getPocaP();
611 HepPoint3D h_lpoint_e = (*mdcKalTrackTds)->getLPointE();
612 HepPoint3D h_lpoint_mu = (*mdcKalTrackTds)->getLPointMu();
613 HepPoint3D h_lpoint = (*mdcKalTrackTds)->getLPoint();
614 HepPoint3D h_lpoint_k = (*mdcKalTrackTds)->getLPointK();
615 HepPoint3D h_lpoint_p = (*mdcKalTrackTds)->getLPointP();
616 HepPoint3D h_lpivot_e = (*mdcKalTrackTds)->getLPivotE();
617 HepPoint3D h_lpivot_mu = (*mdcKalTrackTds)->getLPivotMu();
618 HepPoint3D h_lpivot = (*mdcKalTrackTds)->getLPivot();
619 HepPoint3D h_lpivot_k = (*mdcKalTrackTds)->getLPivotK();
620 HepPoint3D h_lpivot_p = (*mdcKalTrackTds)->getLPivotP();
628 HepVector h_zhelix = (*mdcKalTrackTds)->getZHelix();
629 HepSymMatrix h_zerror = (*mdcKalTrackTds)->getZError();
630 HepVector h_zhelix_e = (*mdcKalTrackTds)->getZHelixE();
631 HepSymMatrix h_zerror_e = (*mdcKalTrackTds)->getZErrorE();
632 HepVector h_zhelix_mu = (*mdcKalTrackTds)->getZHelixMu();
633 HepSymMatrix h_zerror_mu= (*mdcKalTrackTds)->getZErrorMu();
634 HepVector h_zhelix_k = (*mdcKalTrackTds)->getZHelixK();
635 HepSymMatrix h_zerror_k = (*mdcKalTrackTds)->getZErrorK();
636 HepVector h_zhelix_p = (*mdcKalTrackTds)->getZHelixP();
637 HepSymMatrix h_zerror_p = (*mdcKalTrackTds)->getZErrorP();
639 HepVector h_fhelix = (*mdcKalTrackTds)->getFHelix();
640 HepSymMatrix h_ferror = (*mdcKalTrackTds)->getFError();
641 HepVector h_fhelix_e = (*mdcKalTrackTds)->getFHelixE();
642 HepSymMatrix h_ferror_e = (*mdcKalTrackTds)->getFErrorE();
643 HepVector h_fhelix_mu = (*mdcKalTrackTds)->getFHelixMu();
644 HepSymMatrix h_ferror_mu= (*mdcKalTrackTds)->getFErrorMu();
645 HepVector h_fhelix_k = (*mdcKalTrackTds)->getFHelixK();
646 HepSymMatrix h_ferror_k = (*mdcKalTrackTds)->getFErrorK();
647 HepVector h_fhelix_p = (*mdcKalTrackTds)->getFHelixP();
648 HepSymMatrix h_ferror_p = (*mdcKalTrackTds)->getFErrorP();
650 HepVector h_lhelix = (*mdcKalTrackTds)->getLHelix();
651 HepSymMatrix h_lerror = (*mdcKalTrackTds)->getLError();
652 HepVector h_lhelix_e = (*mdcKalTrackTds)->getLHelixE();
653 HepSymMatrix h_lerror_e = (*mdcKalTrackTds)->getLErrorE();
654 HepVector h_lhelix_mu = (*mdcKalTrackTds)->getLHelixMu();
655 HepSymMatrix h_lerror_mu= (*mdcKalTrackTds)->getLErrorMu();
656 HepVector h_lhelix_k = (*mdcKalTrackTds)->getLHelixK();
657 HepSymMatrix h_lerror_k = (*mdcKalTrackTds)->getLErrorK();
658 HepVector h_lhelix_p = (*mdcKalTrackTds)->getLHelixP();
659 HepSymMatrix h_lerror_p = (*mdcKalTrackTds)->getLErrorP();
664 mdcKalTrackRoot->
setTof(tof);
670 for(
int s=0;
s<3;
s++){
671 poca_e[
s] = h_poca_e[
s];
672 poca_mu[
s] = h_poca_mu[
s];
674 poca_k[
s] = h_poca_k[
s];
675 poca_p[
s] = h_poca_p[
s];
676 lpoint_e[
s] = h_lpoint_e[
s];
677 lpoint_mu[
s] = h_lpoint_mu[
s];
678 lpoint[
s] = h_lpoint[
s];
679 lpoint_k[
s] = h_lpoint_k[
s];
680 lpoint_p[
s] = h_lpoint_p[
s];
681 lpivot_e[
s] = h_lpivot_e[
s];
682 lpivot_mu[
s] = h_lpivot_mu[
s];
683 lpivot[
s] = h_lpivot[
s];
684 lpivot_k[
s] = h_lpivot_k[
s];
685 lpivot_p[
s] = h_lpivot_p[
s];
688 for (
int i=0; i<5; i++){
689 zhelix[i] = h_zhelix[i];
690 zhelix_e[i] = h_zhelix_e[i];
691 zhelix_mu[i] = h_zhelix_mu[i];
692 zhelix_p[i] = h_zhelix_p[i];
693 zhelix_k[i] = h_zhelix_k[i];
695 fhelix[i] = h_fhelix[i];
696 fhelix_e[i] = h_fhelix_e[i];
697 fhelix_mu[i] = h_fhelix_mu[i];
698 fhelix_p[i] = h_fhelix_p[i];
699 fhelix_k[i] = h_fhelix_k[i];
701 lhelix[i] = h_lhelix[i];
702 lhelix_e[i] = h_lhelix_e[i];
703 lhelix_mu[i] = h_lhelix_mu[i];
704 lhelix_p[i] = h_lhelix_p[i];
705 lhelix_k[i] = h_lhelix_k[i];
707 for (
int j=0; j<=i; j++){
708 zerror[i][j] = h_zerror[i][j];
709 zerror_e[i][j] = h_zerror_e[i][j];
710 zerror_mu[i][j] = h_zerror_mu[i][j];
711 zerror_p[i][j] = h_zerror_p[i][j];
712 zerror_k[i][j] = h_zerror_k[i][j];
715 ferror[i][j] = h_ferror[i][j];
716 ferror_e[i][j] = h_ferror_e[i][j];
717 ferror_mu[i][j] = h_ferror_mu[i][j];
718 ferror_p[i][j] = h_ferror_p[i][j];
719 ferror_k[i][j] = h_ferror_k[i][j];
722 lerror[i][j] = h_lerror[i][j];
723 lerror_e[i][j] = h_lerror_e[i][j];
724 lerror_mu[i][j] = h_lerror_mu[i][j];
725 lerror_p[i][j] = h_lerror_p[i][j];
726 lerror_k[i][j] = h_lerror_k[i][j];
728 zerror[j][i] = h_zerror[i][j];
729 zerror_e[j][i] = h_zerror_e[i][j];
730 zerror_mu[j][i] = h_zerror_mu[i][j];
731 zerror_p[j][i] = h_zerror_p[i][j];
732 zerror_k[j][i] = h_zerror_k[i][j];
735 ferror[j][i] = h_ferror[i][j];
736 ferror_e[j][i] = h_ferror_e[i][j];
737 ferror_mu[j][i] = h_ferror_mu[i][j];
738 ferror_p[j][i] = h_ferror_p[i][j];
739 ferror_k[j][i] = h_ferror_k[i][j];
742 lerror[j][i] = h_lerror[i][j];
743 lerror_e[j][i] = h_lerror_e[i][j];
744 lerror_mu[j][i] = h_lerror_mu[i][j];
745 lerror_p[j][i] = h_lerror_p[i][j];
746 lerror_k[j][i] = h_lerror_k[i][j];
753 for(
int k=0; k<5; k++){
754 log<<MSG::INFO<<
" RecMdcKalTrackRoot.ZHelix "<<
"["<<k<<
"]"
792 mdcKalTrackRoot->
setPoca(poca);
813 return StatusCode::SUCCESS;
double sin(const BesAngle a)
double cos(const BesAngle a)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
SmartRefVector< RecMdcKalHelixSeg > HelixSegRefVec
ObjectVector< RecMdcKalTrack > RecMdcKalTrackCol
void setFHelix(const HepVector &fhelix, const int pid)
void setPhi(const double phi, const int pid)
void setStat(int stat, int i, int pid)
void setY(const double y, const int pid)
void setPz(const double pz, const int pid)
void setChisq(double chisq, int i, int pid)
void setZError(const HepSymMatrix &error, const int pid)
void setX(const double x, const int pid)
void setP(const double p, const int pid)
void setPoca(const HepPoint3D &poca, const int pid)
void setPx(const double px, const int pid)
void setZ(const double z, const int pid)
void setTheta(const double theta, const int pid)
void setR(const double r, const int pid)
void setPxy(const double pxy, const int pid)
void setPy(const double py, const int pid)
void setFError(const HepSymMatrix &ferror, const int pid)
void setTrackId(int trackId)
void setZHelix(const HepVector &helix, const int pid)
void setCharge(const int charge, const int pid)
void setNdf(int ndf, int i, int pid)
void setNlayer(int nlayer, int pid)
static int layer(const Identifier &id)
Values of different levels (failure returns 0)
static int wire(const Identifier &id)
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
RecMdcKalTrackCnv(ISvcLocator *svc)
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
void setLHelix(const HepVector &helix, const int pid)
void setFiTerm(double fi, const int pid)
void setPathSM(double length, int pid)
void setLength(double length, int pid)
void setTError(const HepSymMatrix &error)
void setMass(double mass, int pid)
HelixSegRefVec getVecHelixSegs(int pid=-1) const
void setTHelix(const HepVector &helix)
void setVecHelixSegs(const HelixSegRefVec &vechelixsegs, int pid=-1)
void setLError(const HepSymMatrix &error, const int pid)
void setLPoint(const HepPoint3D &point, const int pid)
void setLPivot(const HepPoint3D &pivot, const int pid)
void setTof(double tof, int pid)
void setNhits(int nhits, int pid)
static TRecTrackEvent * getWriteObject()
returns object to be written (maintained here for all DIGI-converters)
Definition of a Root address, derived from IOpaqueAddress.
RecTrackCnv * getRecTrackCnv()
Base class for all Root Converters.
std::vector< void * > m_adresses
each converter knows the corresponding adresses
IDataProviderSvc * m_eds
pointer to eventdataservice
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 setTHelix(const Double_t thelix[5])
const Double_t getFError(Int_t i, Int_t j) const
const Double_t getLHelix(Int_t i) const
void setLPivotE(const Double_t lpivot_e[3])
const Double_t getFErrorK(Int_t i, Int_t j) const
void setPathSM(const Double_t pathSM[5])
void setPocaP(const Double_t poca_p[3])
const Double_t getTof(Int_t pid) const
void setZHelixP(const Double_t zhelix_p[5])
const Double_t getLHelixMu(Int_t i) const
void setFHelixK(const Double_t fhelix_k[5])
const Double_t getZHelixE(Int_t i) const
const Double_t getPoca(Int_t i) const
void setNseg(const Int_t nSeg, Int_t pid)
void setZHelix(const Double_t zhelix[5])
void setChisq(const Double_t chisq, Int_t i, Int_t pid)
const Double_t getFErrorP(Int_t i, Int_t j) const
void setFErrorMu(const Double_t ferror_mu[5][5])
const Double_t getZErrorP(Int_t i, Int_t j) const
void setTrackId(const Int_t trackId)
void setNlayer(const Int_t nlayer, Int_t pid)
const Int_t getNdf(Int_t i, Int_t pid) const
void setZErrorP(const Double_t zerror_p[5][5])
void setFHelixP(const Double_t fhelix_p[5])
void setLError(const Double_t lerror[5][5])
void setLPointK(const Double_t lpoint_k[3])
const Double_t getFHelixMu(Int_t i) const
const Int_t getTrackId() const
void setLErrorP(const Double_t lerror_p[5][5])
const Double_t getLPivotE(Int_t i) const
const Double_t getLPivotP(Int_t i) const
void setLPoint(const Double_t lpoint[3])
const Double_t getFHelix(Int_t i) const
const Double_t getZError(Int_t i, Int_t j) const
const Double_t getLength(Int_t pid) const
const Double_t getFErrorMu(Int_t i, Int_t j) const
const Double_t getZHelix(Int_t i) const
void setLErrorK(const Double_t lerror_k[5][5])
void setFErrorK(const Double_t ferror_k[5][5])
void setZErrorK(const Double_t zerror_k[5][5])
const Double_t getFErrorE(Int_t i, Int_t j) const
void setFErrorE(const Double_t ferror_e[5][5])
const Double_t getLPointK(Int_t i) const
void setZHelixE(const Double_t zhelix_e[5])
void setLErrorE(const Double_t lerror_e[5][5])
void setNdf(const Int_t ndf, Int_t i, Int_t pid)
void setStat(const Int_t stat, Int_t i, Int_t pid)
const Double_t getChisq(Int_t i, Int_t pid) const
void setMass(const Double_t mass[5])
void setLHelixK(const Double_t lhelix_k[5])
void setPocaK(const Double_t poca_k[3])
void setFHelixMu(const Double_t fhelix_mu[5])
void setLength(const Double_t length[5])
void setFHelixE(const Double_t fhelix_e[5])
const Double_t getMass(Int_t pid) const
const Double_t getPocaMu(Int_t i) const
const Double_t getLHelixK(Int_t i) const
const Double_t getTError(Int_t i) const
void setLHelixE(const Double_t lhelix_e[5])
const Double_t getLPointMu(Int_t i) const
const Double_t getZErrorMu(Int_t i, Int_t j) const
void setLPivot(const Double_t lpivot[3])
void setFiTerm(const Double_t fiTerm[5])
void setNhits(const Int_t nhits[5])
void setLPivotMu(const Double_t lpivot_mu[3])
const Double_t getFHelixK(Int_t i) const
void setZHelixK(const Double_t zhelix_k[5])
void setLErrorMu(const Double_t lerror_mu[5][5])
const Double_t getLError(Int_t i, Int_t j) const
const Double_t getLHelixE(Int_t i) const
void setFErrorP(const Double_t ferror_p[5][5])
void setTof(const Double_t tof[5])
void setLHelix(const Double_t lhelix[5])
const Double_t getLErrorP(Int_t i, Int_t j) const
const Double_t getLErrorMu(Int_t i, Int_t j) const
const Int_t getNhits(Int_t pid) const
const Double_t getFHelixE(Int_t i) const
void setLPointMu(const Double_t lpoint_mu[3])
void setLPointP(const Double_t lpoint_p[3])
void setLHelixP(const Double_t lhelix_p[5])
void setPocaMu(const Double_t poca_mu[3])
const Double_t getLPointE(Int_t i) const
const Double_t getZHelixK(Int_t i) const
const Double_t getfiTerm(Int_t pid) const
void setPocaE(const Double_t poca_e[3])
void setLPivotP(const Double_t lpivot_p[3])
void setPoca(const Double_t poca[3])
const Double_t getTHelix(Int_t i) const
const Double_t getLErrorE(Int_t i, Int_t j) const
const Double_t getLPivot(Int_t i) const
const Double_t getPocaK(Int_t i) const
const Double_t getLHelixP(Int_t i) const
void setZErrorMu(const Double_t zerror_mu[5][5])
void setFError(const Double_t ferror[5][5])
const Int_t getStat(Int_t i, Int_t pid) const
const Double_t getLPoint(Int_t i) const
void setTError(const Double_t terror[15])
const Double_t getZErrorK(Int_t i, Int_t j) const
void setFHelix(const Double_t fhelix[5])
const Double_t getZHelixMu(Int_t i) const
void setLPointE(const Double_t lpoint_e[3])
void setLPivotK(const Double_t lpivot_k[3])
const Double_t getLPivotK(Int_t i) const
void setZHelixMu(const Double_t zhelix_mu[5])
const Int_t getNseg(Int_t pid) const
const Double_t getPathSM(Int_t pid) const
const Int_t getNlayer(Int_t pid) const
const Double_t getZHelixP(Int_t i) const
void setLHelixMu(const Double_t lhelix_mu[5])
void setZError(const Double_t zerror[5][5])
const Double_t getPocaE(Int_t i) const
const Double_t getPocaP(Int_t i) const
const Double_t getZErrorE(Int_t i, Int_t j) const
const Double_t getLPivotMu(Int_t i) const
const Double_t getFHelixP(Int_t i) const
void setZErrorE(const Double_t zerror_e[5][5])
const Double_t getLErrorK(Int_t i, Int_t j) const
const Double_t getLPointP(Int_t i) const
void addRecMdcKalTrack(TRecMdcKalTrack *Track)
const TObjArray * getRecMdcKalTrackCol() const
void clearRecMdcKalTrackCol()
static std::map< const TObject *, const RecMdcKalTrack * > m_rootRecMdcKalTrackMap
_EXTERN_ std::string Event