BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EventDisplay/BesVisLib/include/BesVisLib/DstConvert.h
Go to the documentation of this file.
1/*
2 * 2018/5/30 Long Peixun IHEP
3 * Convert DST tracks to REC tracks
4 */
5
6#ifndef DST_CONVERT
7#define DST_CONVERT
8
9#include "RootEventData/TEmcTrack.h"
10#include "RootEventData/TMdcTrack.h"
11#include "RootEventData/TMucTrack.h"
12#include "RootEventData/TRecEmcShower.h"
13#include "RootEventData/TRecMdcTrack.h"
14#include "RootEventData/TRecMucTrack.h"
15#include "RootEventData/TRecTofTrack.h"
16#include "RootEventData/TTofTrack.h"
17
18// Convert TMdcTrack to TRecMdcTrack
19void cvtMdcDst2MdcRec( TRecMdcTrack* dist, const TMdcTrack* src ) {
20 dist->setTrackId( src->trackId() );
21 dist->setStat( src->stat() );
22 dist->setChi2( src->chi2() );
23 dist->setNdof( src->ndof() );
24 dist->setNster( src->nster() );
25 dist->setNlayer( src->nlayer() );
26
27 Double_t tmpHelix[5];
28 for ( int i = 0; i < 5; ++i ) tmpHelix[i] = src->helix( i );
29 dist->setHelix( tmpHelix );
30 Double_t tmpErr[15];
31 for ( int i = 0; i < 15; ++i ) tmpErr[i] = src->err( i );
32 dist->setErr( tmpErr );
33}
34
35// Convert TTofTrack to TRecTofTrack
36void cvtTofDst2TofRec( TRecTofTrack* dist, const TTofTrack* src ) {
37 dist->setTofTrackID( src->tofTrackID() );
38 dist->setTrackID( src->trackID() );
39 dist->setTofID( src->tofID() );
40 dist->setStatus( src->status() );
41 dist->setPath( src->path() );
42 dist->setZrHit( src->zrhit() );
43 dist->setPh( src->ph() );
44 dist->setTof( src->tof() );
45 dist->setErrTof( src->errtof() );
46 dist->setBeta( src->beta() );
47 dist->setQuality( src->quality() );
48 dist->setT0( src->t0() );
49 dist->setErrT0( src->errt0() );
50 dist->setErrZ( src->errz() );
51 dist->setPhi( src->phi() );
52 dist->setErrPhi( src->errphi() );
53 dist->setEnergy( src->energy() );
54 dist->setErrEnergy( src->errenergy() );
55
56 Double_t tmpTexp[5];
57 for ( int i = 0; i < 5; ++i ) tmpTexp[i] = src->texp( i );
58 dist->setTexp( tmpTexp );
59 Double_t tmpToffset[6];
60 for ( int i = 0; i < 6; ++i ) tmpToffset[i] = src->toffset( i );
61 dist->setTexp( tmpToffset );
62 Double_t tmpSigma[6];
63 for ( int i = 0; i < 6; ++i ) tmpSigma[i] = src->sigma( i );
64 dist->setTexp( tmpSigma );
65}
66
67// Convert TEmcTrack to TRecEmcShower
68void cvtEmcDst2EmcRec( TRecEmcShower* dist, const TEmcTrack* src ) {
69 dist->setTrackId( src->trackId() );
70 dist->setNumHits( src->numHits() );
71 dist->setStatus( src->status() );
72 dist->setCellId( src->cellId() );
73 dist->setModule( src->module() );
74 dist->setX( src->x() );
75 dist->setY( src->y() );
76 dist->setZ( src->z() );
77 dist->setTheta( src->theta() );
78 dist->setPhi( src->phi() );
79 dist->setDtheta( src->dtheta() );
80 dist->setDphi( src->dphi() );
81 dist->setEnergy( src->energy() );
82 dist->setDE( src->dE() );
83 dist->setESeed( src->eSeed() );
84 dist->setE3x3( src->e3x3() );
85 dist->setE5x5( src->e5x5() );
86 dist->setTime( src->time() );
87 dist->setSecondMoment( src->secondMoment() );
88 dist->setLatMoment( src->latMoment() );
89 dist->setA20Moment( src->a20Moment() );
90 dist->setA42Moment( src->a42Moment() );
91
92 Double_t tmpErr[6];
93 for ( int i = 0; i < 6; ++i ) tmpErr[i] = src->err( i );
94 dist->setErr( tmpErr );
95}
96
97// Convert TMucTrack to TRecMucTrack
98void cvtMucDst2MucRec( TRecMucTrack* dist, const TMucTrack* src ) {
99 dist->setTrackId( src->trackId() );
100 dist->setId( src->id() );
101 dist->setStatus( src->status() );
102 dist->setType( src->type() );
103 dist->setStartPart( src->startPart() );
104 dist->setEndPart( src->endPart() );
105 dist->setBrLastLayer( src->brLastLayer() );
106 dist->setEcLastLayer( src->ecLastLayer() );
107 dist->setNumHits( src->numHits() );
108 dist->setNumLayers( src->numLayers() );
109 dist->setMaxHitsInLayer( src->maxHitsInLayer() );
110 dist->setDepth( src->depth() );
111 dist->setChi2( src->chi2() );
112 dist->setDof( src->dof() );
113 dist->setRms( src->rms() );
114 dist->setDistance( src->distance() );
115 dist->setDeltaPhi( src->deltaPhi() );
116 dist->setXPos( src->xPos() );
117 dist->setYPos( src->yPos() );
118 dist->setZPos( src->zPos() );
119 dist->setXPosSigma( src->xPosSigma() );
120 dist->setYPosSigma( src->yPosSigma() );
121 dist->setZPosSigma( src->zPosSigma() );
122 dist->setPx( src->px() );
123 dist->setPy( src->py() );
124 dist->setPz( src->pz() );
125 dist->setkalRechi2( src->kalRechi2() );
126 dist->setkalDof( src->kaldof() );
127 dist->setkalDepth( src->kaldepth() );
128 dist->setkalbrLastLayer( src->kalbrLastLayer() );
129 dist->setkalecLastLayer( src->kalecLastLayer() );
130}
131
132#endif
void cvtMucDst2MucRec(TRecMucTrack *dist, const TMucTrack *src)
void cvtMdcDst2MdcRec(TRecMdcTrack *dist, const TMdcTrack *src)
void cvtEmcDst2EmcRec(TRecEmcShower *dist, const TEmcTrack *src)
void cvtTofDst2TofRec(TRecTofTrack *dist, const TTofTrack *src)
void setSecondMoment(const Double_t secondMoment)
void setErr(const Double_t err[6])