16 #include "HepPDT/ParticleDataTable.hh" 25 verbosity_ (iConfig.getUntrackedParameter<unsigned
int>(
"verbosity", 0)),
26 particleId_ (iConfig.getParameter<unsigned
int>(
"particleId")),
27 energy_ (iConfig.getParameter<double>(
"energy")),
28 xi_min_ (iConfig.getParameter<double>(
"xi_min")),
29 xi_max_ (iConfig.getParameter<double>(
"xi_max")),
30 theta_x_mean_ (iConfig.getParameter<double>(
"theta_x_mean")),
31 theta_x_sigma_ (iConfig.getParameter<double>(
"theta_x_sigma")),
32 theta_y_mean_ (iConfig.getParameter<double>(
"theta_y_mean")),
33 theta_y_sigma_ (iConfig.getParameter<double>(
"theta_y_sigma")),
34 nParticlesSector45_(iConfig.getParameter<unsigned
int>(
"nParticlesSector45")),
35 nParticlesSector56_(iConfig.getParameter<unsigned
int>(
"nParticlesSector56")),
38 produces<HepMCProduct>(
"unsmeared");
54 fEvt->set_event_number(e.
id().
event());
56 HepMC::GenVertex *
vtx =
new HepMC::GenVertex(HepMC::FourVector(0., 0., 0., 0.));
57 fEvt->add_vertex(vtx);
60 double mass = pData->mass().value();
63 unsigned int barcode = 0;
73 output->addHepMCData(fEvt);
80 HepMC::GenVertex *
vtx)
const 87 LogInfo(
"RandomXiThetaGunProducer") <<
"xi = " << xi <<
", theta_x = " << theta_x
88 <<
", theta_y" << theta_y <<
", z_sign = " << z_sign;
90 const double cos_theta =
sqrt(1. - theta_x*theta_x - theta_y*theta_y);
93 const double p = p_nom * (1. -
xi);
94 const double e =
sqrt(p*p + mass*mass);
96 HepMC::FourVector momentum(
99 z_sign * p * cos_theta,
104 particle->suggest_barcode(barcode);
105 vtx->add_particle_out(particle);
EventNumber_t event() const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
bool getData(T &iHolder) const
unsigned int nParticlesSector56_
void generateParticle(double z_sign, double mass, unsigned int barcode, HepMC::GenVertex *vtx) const
HepPDT::ParticleData ParticleData
CLHEP::HepRandomEngine * engine_
unsigned int nParticlesSector45_
RandomXiThetaGunProducer(const ParameterSet &)
StreamID streamID() const
void produce(Event &, const EventSetup &) override