BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcAliRecHit.cxx
Go to the documentation of this file.
1#include "MdcAlignAlg/MdcAliRecHit.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 MdcAliRecHit::m_df = 10.0;
14const double MdcAliRecHit::m_qf = 1.0;
15
16void MdcAliRecHit::setRecHit(HitRefVec::iterator it_hit){
17 IMessageSvc *msgSvc;
18 Gaudi::svcLocator()->service("MessageSvc", msgSvc);
19 MsgStream log(msgSvc, "MdcAliRecHit");
20 log << MSG::DEBUG << "MdcAliRecHit::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_rawtime = (*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;//for recon of pat
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 MdcAliRecHit::setKalHit(HelixSegRefVec::iterator it_hit){
76 IMessageSvc *msgSvc;
77 Gaudi::svcLocator()->service("MessageSvc", msgSvc);
78 MsgStream log(msgSvc, "MdcAliRecHit");
79 log << MSG::DEBUG << "MdcAliRecHit::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
95 if(1 == m_lr){
96 m_docaInc *= -1.0;
97 m_docaExc *= -1.0;
98 }
99
100 m_dmeas = (*it_hit) -> getDD();
101 m_errdmeas = 0.013;
102
103 m_rawtime = (*it_hit) -> getTdc();
104 m_tdrift = (*it_hit) -> getDT();
105
106 m_qhit = (*it_hit) -> getAdc();
107 m_zhit = (*it_hit) -> getZhit();
108 m_entra = (*it_hit) -> getEntra();
109 m_chisqadd = 0.0;
110 m_tof = (*it_hit) -> getTof();
111
112 m_Dr = (*it_hit) -> getDrExcl();
113 m_Fi0 = (*it_hit) -> getFi0Excl();
114 m_Cpa = (*it_hit) -> getCpaExcl();
115 m_Dz = (*it_hit) -> getDzExcl();
116 m_Tanl = (*it_hit) -> getTanlExcl();
117
118 // the following is for cm to mm
119 m_docaInc *= m_df;
120 m_docaExc *= m_df;
121 m_dmeas *= m_df;
122 m_errdmeas *= m_df;
123 m_zhit *= m_df;
124 m_qhit *= m_qf;
125
126 m_resiInc = fabs(m_dmeas) - fabs(m_docaInc);
127 if( 0 == m_lr ) m_resilrInc = -1.0 * m_resiInc;
128 else m_resilrInc = m_resiInc;
129
130 m_resiExc = fabs(m_dmeas) - fabs(m_docaExc);
131 if( 0 == m_lr ) m_resilrExc = -1.0 * m_resiExc;
132 else m_resilrExc = m_resiExc;
133
134}
135
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