148 const int evtnum(eventInfo->eventNumber());
151 if (evtStore()->retrieve(mcCollection,
m_key).isSuccess()) {
154 if (currentGenEventIter!=mcCollection->
end() ) {
158 if (!vtx && (*currentGenEventIter)->vertices().size()>0) vtx=((*currentGenEventIter)->vertices()).front();
160 if (!vtx && (*currentGenEventIter)->vertices_size()>0) vtx=*((*currentGenEventIter)->vertices_begin());
164 m_x_vert->Fill( vtx->position().x() );
165 m_y_vert->Fill( vtx->position().y() );
166 m_z_vert->Fill( vtx->position().z() );
172 float mx=0.,my=0.,mz=0.;
174 for (
const auto& vtx: (*currentGenEventIter)->vertices()) {
176 for (HepMC::GenEvent::vertex_const_iterator vtxit=(*currentGenEventIter)->vertices_begin();
177 vtxit!=(*currentGenEventIter)->vertices_end();++vtxit) {
181 double x = vtx->position().x();
182 double y = vtx->position().y();
183 double z = vtx->position().z();
184 double r = std::sqrt(
x*
x+
y*
y);
212 for (;currentGenEventIter!=mcCollection->
end(); ++currentGenEventIter) {
215 sprintf(fname,
"%s.event%d.txt",
m_key.c_str(),evtnum);
216 std::ofstream of(fname);
221 int npart_prim=0, npart_sec=0;
222 for (
const auto& currentGenParticle: *(*currentGenEventIter)) {
224 const HepMC::FourVector mom = currentGenParticle->momentum();
235 if(std::abs(currentGenParticle->pdg_id())==211) {
242 int pdg = currentGenParticle->pdg_id();
244 switch ( abs(pdg) ) {
278 if ( !is_simulation ) {
279 double momentum=std::sqrt(mom.x()*mom.x()+mom.y()*mom.y()+mom.z()*mom.z());
293 m_n_part->Fill(npart_prim+npart_sec);
297 return StatusCode::SUCCESS;
#define _TH2D(var, name, nbinx, xmin, xmax, nbiny, ymin, ymax)