105 {
106
107
108
109 MsgStream log(
msgSvc(), name() );
110
111
112 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(), "/Event/EventHeader" );
113 if ( !eventHeader )
114 {
115 log << MSG::FATAL << "Could not find Event Header" << endmsg;
116 return ( StatusCode::FAILURE );
117 }
118 log << MSG::INFO << "eventNo-->" << eventHeader->eventNumber() << endmsg;
119
120
121 SmartDataPtr<MdcDigiCol> mdcDigiCol( eventSvc(), "/Event/Digi/MdcDigiCol" );
122 if ( !mdcDigiCol )
123 {
124 log << MSG::FATAL << "Could not find Mdc digi!!" << endmsg;
125 return ( StatusCode::FAILURE );
126 }
127
128 SmartDataPtr<TofDigiCol> tofDigiCol( eventSvc(), "/Event/Digi/TofDigiCol" );
129 if ( !tofDigiCol )
130 {
131 log << MSG::FATAL << "Could not find Tof digi!!" << endmsg;
132 return ( StatusCode::FAILURE );
133 }
134 SmartDataPtr<EmcDigiCol> emcDigiCol( eventSvc(), "/Event/Digi/EmcDigiCol" );
135 if ( !emcDigiCol )
136 {
137 log << MSG::FATAL << "Could not find Emc digi!!" << endmsg;
138 return ( StatusCode::FAILURE );
139 }
141 {
143 {
147 }
148 }
149
150 SmartDataPtr<MucDigiCol> mucDigiCol( eventSvc(), "/Event/Digi/MucDigiCol" );
151 if ( !mucDigiCol )
152 {
153 log << MSG::FATAL << "Could not find Muc digi!!" << endmsg;
154 return ( StatusCode::FAILURE );
155 }
156
157
158 unsigned int nhitsMdc = mdcDigiCol->size();
160 {
162 { nhitsMdc =
m_rawDigiSvc->getMdcDigiVec( 0x38000 ).size(); }
163 }
164 unsigned int nhitsEmc = emcDigiCol->size();
165 unsigned int nhitsMuc = mucDigiCol->size();
166 unsigned int nhitsTof = tofDigiCol->size();
167
168 double rndm = CLHEP::RandFlat::shoot();
169
170 log << MSG::INFO << " Number of hits in MDC:EMC:MUC:TOF is " << nhitsMdc << ":" << nhitsEmc
171 << ":" << nhitsMuc << ":" << nhitsTof << "; "
172 << "random number:" << rndm << endmsg;
173
174
175 m_nmdc->setValue( nhitsMdc );
176 m_nmuc->setValue( nhitsMuc );
177 m_ntof->setValue( nhitsTof );
178 m_nemc->setValue( nhitsEmc );
179
180 m_rndm->setValue( rndm );
181
182 m_ef->addToEFVec( nhitsMdc, 5 );
183 m_ef->addToEFVec( nhitsTof, 25 );
184 m_ef->addToEFVec( nhitsEmc, 30 );
185 m_ef->addToEFVec( nhitsMuc, 52 );
186
187 m_ef->addToEFVec( 0xFFFFFFF7, 37 );
188
189 m_ef->setVecBit(
true, 0, 0 );
190 m_ef->addToEFVec( 1, 1 );
191 m_ef->addToEFVec( 1 << 8, 1 );
192 m_ef->addToEFVec( 1 << 16, 1 );
193 m_ef->addToEFVec( 1 << 24, 1 );
194
196
197 return StatusCode::SUCCESS;
198}
IRawDataProviderSvc * m_rawDigiSvc