BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcCalRecHit.cxx
Go to the documentation of this file.
2
3#include "GaudiKernel/Bootstrap.h"
4#include "GaudiKernel/IDataProviderSvc.h"
5#include "GaudiKernel/IMessageSvc.h"
6#include "GaudiKernel/ISvcLocator.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/SmartDataPtr.h"
9#include "GaudiKernel/StatusCode.h"
10
11#include <iostream>
12
13const double MdcCalRecHit::m_df = 10.0;
14const double MdcCalRecHit::m_qf = 1.0;
15
16void MdcCalRecHit::setRecHit( HitRefVec::iterator it_hit ) {
17 IMessageSvc* msgSvc;
18 Gaudi::svcLocator()->service( "MessageSvc", msgSvc );
19 MsgStream log( msgSvc, "MdcCalRecHit" );
20 log << MSG::DEBUG << "MdcCalRecHit::setRecHit()" << endmsg;
21
22 Identifier identifier;
23 MdcID mdcid;
24
25 // log << MSG::DEBUG << "hit Id: " << (*it_hit)->getId()
26 // << " hits drift time " << (*it_hit)->getDriftT()
27 // << " hits doca " << (*it_hit)->getDoca()
28 // << endmsg;
29
30 identifier = ( *it_hit )->getMdcId();
31 m_layid = mdcid.layer( identifier );
32 m_cellid = mdcid.wire( identifier );
33 m_lr = ( *it_hit )->getFlagLR();
34 m_stat = ( *it_hit )->getStat();
35
36 m_docaInc = ( *it_hit )->getDoca();
37 m_docaExc = m_docaInc;
38
39 if ( 0 == m_lr )
40 {
41 m_dmeas = ( *it_hit )->getDriftDistLeft();
42 m_errdmeas = ( *it_hit )->getErrDriftDistLeft();
43 }
44 else
45 {
46 m_dmeas = ( *it_hit )->getDriftDistRight();
47 m_errdmeas = ( *it_hit )->getErrDriftDistRight();
48 }
49
50 m_tdc = ( *it_hit )->getTdc();
51 m_tdrift = ( *it_hit )->getDriftT();
52
53 m_qhit = ( *it_hit )->getAdc();
54 m_zhit = ( *it_hit )->getZhit();
55 m_entra = ( *it_hit )->getEntra();
56 m_chisqadd = ( *it_hit )->getChisqAdd();
57
58 double flen = ( *it_hit )->getFltLen(); // cm
59 m_tof = flen / 30.0;
60
61 // the following is for cm to mm
62 m_docaInc *= m_df;
63 m_docaExc *= m_df;
64 m_dmeas *= m_df;
65 m_errdmeas *= m_df;
66 m_zhit *= m_df;
67 m_qhit *= m_qf;
68
69 m_resiInc = fabs( m_dmeas ) - fabs( m_docaInc );
70 if ( 0 == m_lr ) m_resilrInc = -1.0 * m_resiInc;
71 else m_resilrInc = m_resiInc;
72
73 m_resiExc = fabs( m_dmeas ) - fabs( m_docaExc );
74 if ( 0 == m_lr ) m_resilrExc = -1.0 * m_resiExc;
75 else m_resilrExc = m_resiExc;
76}
77
78void MdcCalRecHit::setKalHit( HelixSegRefVec::iterator it_hit ) {
79 IMessageSvc* msgSvc;
80 Gaudi::svcLocator()->service( "MessageSvc", msgSvc );
81 MsgStream log( msgSvc, "MdcCalRecHit" );
82 log << MSG::DEBUG << "MdcCalRecHit::setKalHit()" << endmsg;
83
84 Identifier identifier;
85 MdcID mdcid;
86
87 identifier = ( *it_hit )->getMdcId();
88 m_layid = mdcid.layer( identifier );
89 m_cellid = mdcid.wire( identifier );
90 m_stat = 1;
91
92 m_lr = ( *it_hit )->getFlagLR();
93 if ( -1 == m_lr ) m_lr = 0; // definition not same as MdcRecHit
94
95 m_docaInc = ( *it_hit )->getDocaIncl();
96 m_docaExc = ( *it_hit )->getDocaExcl();
97 if ( 1 == m_lr )
98 {
99 m_docaInc *= -1.0;
100 m_docaExc *= -1.0;
101 }
102
103 m_dmeas = ( *it_hit )->getDD();
104 m_errdmeas = 0.013;
105
106 m_tdc = ( *it_hit )->getTdc();
107 m_tdrift = ( *it_hit )->getDT();
108
109 m_qhit = ( *it_hit )->getAdc();
110 m_zhit = ( *it_hit )->getZhit();
111 m_entra = ( *it_hit )->getEntra();
112 m_chisqadd = 0.0;
113 m_tof = ( *it_hit )->getTof();
114
115 m_Dr = ( *it_hit )->getDrExcl();
116 m_Fi0 = ( *it_hit )->getFi0Excl();
117 m_Cpa = ( *it_hit )->getCpaExcl();
118 m_Dz = ( *it_hit )->getDzExcl();
119 m_Tanl = ( *it_hit )->getTanlExcl();
120 m_helix = ( *it_hit )->getHelixExcl();
121 m_helixerr = ( *it_hit )->getErrorExcl();
122
123 // the following is for cm to mm
124 m_docaInc *= m_df;
125 m_docaExc *= m_df;
126 m_dmeas *= m_df;
127 m_errdmeas *= m_df;
128 m_zhit *= m_df;
129 m_qhit *= m_qf;
130
131 m_resiInc = fabs( m_dmeas ) - fabs( m_docaInc );
132 if ( 0 == m_lr ) m_resilrInc = -1.0 * m_resiInc;
133 else m_resilrInc = m_resiInc;
134
135 m_resiExc = fabs( m_dmeas ) - fabs( m_docaExc );
136 if ( 0 == m_lr ) m_resilrExc = -1.0 * m_resiExc;
137 else m_resilrExc = m_resiExc;
138}
IMessageSvc * msgSvc()
void setKalHit(HelixSegRefVec::iterator it_hit)
void setRecHit(HitRefVec::iterator it_hit)
static int layer(const Identifier &id)
Values of different levels (failure returns 0).
Definition MdcID.cxx:47
static int wire(const Identifier &id)
Definition MdcID.cxx:52