13 MinP(pset.getParameter<double>(
"MinP")),
14 MinP_CMS(pset.getParameter<double>(
"MinP_CMS")),
15 MaxP(pset.getParameter<double>(
"MaxP")),
16 MinT(pset.getParameter<double>(
"MinTheta")),
17 MaxT(pset.getParameter<double>(
"MaxTheta")),
18 MinPh(pset.getParameter<double>(
"MinPhi")),
19 MaxPh(pset.getParameter<double>(
"MaxPhi")),
20 MinS(pset.getParameter<double>(
"MinT0")),
21 MaxS(pset.getParameter<double>(
"MaxT0")),
22 ELSF(pset.getParameter<double>(
"ElossScaleFactor")),
23 RTarget(pset.getParameter<double>(
"RadiusOfTarget")),
24 ZTarget(pset.getParameter<double>(
"ZDistOfTarget")),
25 ZCTarget(pset.getParameter<double>(
"ZCentrOfTarget")),
26 TrackerOnly(pset.getParameter<
bool>(
"TrackerOnly")),
27 MultiMuon(pset.getParameter<
bool>(
"MultiMuon")),
28 MultiMuonFileName(pset.getParameter<
std::
string>(
"MultiMuonFileName")),
29 MultiMuonFileFirstEvent(pset.getParameter<
int>(
"MultiMuonFileFirstEvent")),
30 MultiMuonNmin(pset.getParameter<
int>(
"MultiMuonNmin")),
31 TIFOnly_constant(pset.getParameter<
bool>(
"TIFOnly_constant")),
32 TIFOnly_linear(pset.getParameter<
bool>(
"TIFOnly_linear")),
33 MTCCHalf(pset.getParameter<
bool>(
"MTCCHalf")),
34 PlugVtx(pset.getParameter<double>(
"PlugVx")),
35 PlugVtz(pset.getParameter<double>(
"PlugVz")),
36 VarRhoAir(pset.getParameter<double>(
"RhoAir")),
37 VarRhoWall(pset.getParameter<double>(
"RhoWall")),
38 VarRhoRock(pset.getParameter<double>(
"RhoRock")),
39 VarRhoClay(pset.getParameter<double>(
"RhoClay")),
40 VarRhoPlug(pset.getParameter<double>(
"RhoPlug")),
41 ClayLayerWidth(pset.getParameter<double>(
"ClayWidth")),
42 MinEn(pset.getParameter<double>(
"MinEnu")),
43 MaxEn(pset.getParameter<double>(
"MaxEnu")),
44 NuPrdAlt(pset.getParameter<double>(
"NuProdAlt")),
45 AllMu(pset.getParameter<
bool>(
"AcptAllMu")),
46 extCrossSect(pset.getUntrackedParameter<double>(
"crossSection", -1.)),
47 extFilterEff(pset.getUntrackedParameter<double>(
"filterEfficiency", -1.)),
48 cmVerbosity_(pset.getParameter<
bool>(
"Verbosity")),
94 produces<HepMCProduct>(
"unsmeared");
95 produces<GenEventInfoProduct>();
96 produces<GenRunInfoProduct, edm::Transition::EndRun>();
120 if (
MultiMuon) genRunInfo->setInternalXSec(0.);
121 else genRunInfo->setInternalXSec(cs);
142 if (!success)
std::cout <<
"CosMuoGenProducer.cc: CosMuoGen->nextMultiEvent() failed!" 180 fEvt =
new HepMC::GenEvent();
182 HepMC::GenVertex* Vtx_at =
new HepMC::GenVertex(HepMC::FourVector(
CosMuoGen->
Vx_at,
190 Vtx_at->add_particle_in(Part_at);
199 Vtx_at->add_particle_out(Part_sf_in);
205 Vtx_sf->add_particle_in(Part_sf_in);
206 Vtx_sf->add_particle_out(Part_sf_out);
208 fEvt->add_vertex(Vtx_sf);
216 Vtx_ug->add_particle_in(Part_sf_out);
217 Vtx_ug->add_particle_out(Part_ug);
219 fEvt->add_vertex(Vtx_ug);
223 fEvt->add_vertex(Vtx_at);
224 fEvt->set_signal_process_vertex(Vtx_at);
227 fEvt->set_signal_process_id(13);
235 std::unique_ptr<HepMCProduct> CMProduct(
new HepMCProduct());
236 CMProduct->addHepMCData(
fEvt );
void setZDistOfTarget(double Z)
EventNumber_t event() const
void endRunProduce(Run &r, const EventSetup &es) override
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void setMinEnu(double MinEn)
auto_ptr< ClusterSequence > cs
void setTIFOnly_constant(bool TIF)
std::vector< double > Px_ug
std::string MultiMuonFileName
void setNuProdAlt(double NuPrdAlt)
void setZCentrOfTarget(double Z)
LuminosityBlockIndex index() const
void setRhoAir(double VarRhoAir)
CosMuoGenProducer(const ParameterSet &)
void setRadiusOfTarget(double R)
void setNumberOfEvents(unsigned int N)
std::vector< double > Py_sf
std::vector< double > E_sf
void initialize(CLHEP::HepRandomEngine *rng=nullptr)
std::vector< double > E_ug
int32_t MultiMuonFileFirstEvent
void setMultiMuonFileFirstEvent(int MultiMuFile1stEvt)
void setRhoPlug(double VarRhoPlug)
std::vector< double > Vz_ug
void setMinPhi(double Phi)
void setMaxPhi(double Phi)
std::vector< double > Vz_sf
std::vector< double > Vx_sf
void setMultiMuonNmin(int MultiMuNmin)
std::vector< double > Vy_sf
void setMinTheta(double Theta)
void setMaxEnu(double MaxEn)
void produce(Event &e, const EventSetup &es) override
void beginLuminosityBlock(LuminosityBlock const &, EventSetup const &) override
void setMultiMuon(bool MultiMu)
CosmicMuonGenerator * CosMuoGen
void setClayWidth(double ClayLaeyrWidth)
~CosMuoGenProducer() override
std::vector< double > T0_sf
std::vector< double > Px_sf
std::vector< double > Vy_ug
void setAcptAllMu(bool AllMu)
void setPlugVz(double PlugVtz)
void setTIFOnly_linear(bool TIF)
void put(std::unique_ptr< PROD > product)
Put a new product.
std::vector< double > Pz_ug
void setMultiMuonFileName(std::string MultiMuonFileName)
void setMTCCHalf(bool MTCC)
StreamID streamID() const
void setMinP_CMS(double P)
void setElossScaleFactor(double ElossScaleFact)
void setMaxTheta(double Theta)
void setRhoWall(double VarRhoSWall)
void setPlugVx(double PlugVtx)
void setRhoRock(double VarRhoRock)
std::vector< double > Vx_ug
std::vector< double > Py_ug
std::vector< double > T0_ug
void setRhoClay(double VarRhoClay)
std::vector< double > Pz_sf
void setTrackerOnly(bool Tracker)