22 {
23 MsgStream log(
msgSvc(),
"RawDataTofMcHitCnv" );
24
25
27 pObj = tofMcHitCol;
28
30 if ( evt == NULL )
31 {
32
33 return StatusCode::FAILURE;
34 }
35
37
38 TofTruth_t m_TofTruth;
39 TofMcHit* tofMcHit;
40
41 std::vector<uint32_t>::const_iterator
iter = evt->
getTofTruth().begin();
42 std::vector<uint32_t>::const_iterator eiter = evt->
getTofTruth().end();
43
44 for (
int tofMcHitId = 0;
iter != eiter; tofMcHitId++ )
45 {
46
47 m_tofMcHitBuilder.unPack(
iter, eiter, m_TofTruth );
48
49 Identifier ident;
50 unsigned int barrel_ec = m_TofTruth.
partId;
51
52 if ( barrel_ec >= 0 && barrel_ec <= 2 )
53 {
54 unsigned int layer = 0;
56 {
57 layer = 1;
59 }
61 }
62
63 else if ( barrel_ec >= 3 )
64 {
65 unsigned int endcap = 0;
66 if ( barrel_ec == 4 ) { endcap = 1; }
68 }
69 else
70 { log << MSG::ERROR << "barrel_ec is not correct! barrel_ec=" << barrel_ec << endmsg; }
71
72
73 tofMcHit = new TofMcHit(
74 ident, m_TofTruth.
trackIndex, m_TofTruth.
x / ( m_tofMcHitBuilder.m_xCoeff * 1.0 ),
75 m_TofTruth.
y / ( m_tofMcHitBuilder.m_yCoeff * 1.0 ),
76 m_TofTruth.
z / ( m_tofMcHitBuilder.m_zCoeff * 1.0 ),
77 m_TofTruth.
px / ( m_tofMcHitBuilder.m_pxCoeff * 1.0 ),
78 m_TofTruth.
py / ( m_tofMcHitBuilder.m_pyCoeff * 1.0 ),
79 m_TofTruth.
pz / ( m_tofMcHitBuilder.m_pzCoeff * 1.0 ),
80 m_TofTruth.
trackLength / ( m_tofMcHitBuilder.m_trackLengthCoeff * 1.0 ),
81 m_TofTruth.
time / ( m_tofMcHitBuilder.m_timeCoeff * 1.0 ) );
82
83 tofMcHitCol->push_back( tofMcHit );
84 }
85
86 return StatusCode::SUCCESS;
87 }
ObjectVector< TofMcHit > TofMcHitCol
const int_vector & getTofTruth() const
IRawDataInputSvc * m_inputSvc
static Identifier cell_id(int barrel_ec, int layer, int phi_module, int end)
For a single crystal.
static value_type getPHI_BARREL_MAX()