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