|
| CosMuoGenProducer (const ParameterSet &) |
|
| ~CosMuoGenProducer () override |
|
| EDProducer ()=default |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () final |
|
bool | hasAbilityToProduceInLumis () const final |
|
bool | hasAbilityToProduceInRuns () const final |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDProducerBase () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef EDProducerBase | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >> |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &descriptions) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
Definition at line 22 of file CosMuoGenProducer.h.
edm::CosMuoGenProducer::CosMuoGenProducer |
( |
const ParameterSet & |
pset | ) |
|
Definition at line 11 of file CosMuoGenProducer.cc.
References AllMu, ClayLayerWidth, CosMuoGen, ELSF, MaxEn, MaxP, MaxPh, MaxS, MaxT, MinEn, MinP, MinP_CMS, MinPh, MinS, MinT, MTCCHalf, MultiMuon, MultiMuonFileFirstEvent, MultiMuonFileName, MultiMuonNmin, NuPrdAlt, PlugVtx, PlugVtz, RanS, RTarget, TIFOnly_constant, TIFOnly_linear, TrackerOnly, VarRhoAir, VarRhoClay, VarRhoPlug, VarRhoRock, VarRhoWall, ZCTarget, and ZTarget.
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")),
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")),
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.)),
55 CosMuoGen = std::make_unique<CosmicMuonGenerator>();
94 produces<HepMCProduct>(
"unsmeared");
95 produces<GenEventInfoProduct>();
96 produces<GenRunInfoProduct, edm::Transition::EndRun>();
std::string MultiMuonFileName
std::unique_ptr< CosmicMuonGenerator > CosMuoGen
int32_t MultiMuonFileFirstEvent
Definition at line 129 of file CosMuoGenProducer.cc.
References cmVerbosity_, CosMuoGen, gather_cfg::cout, Debug, edm::EventID::event(), particlelevel_cff::genEventInfo, GenParticle::GenParticle, mps_fire::i, edm::EventBase::id(), eostools::move(), MultiMuon, edm::Event::put(), edm::Event::streamID(), and summarizeEdmComparisonLogfiles::success.
Referenced by endLuminosityBlock().
131 RandomEngineSentry<CosmicMuonGenerator> randomEngineSentry(
CosMuoGen.get(), e.streamID());
139 if (!success)
std::cout <<
"CosMuoGenProducer.cc: CosMuoGen->nextMultiEvent() failed!" 144 std::cout <<
"CosMuoGenProducer.cc: CosMuoGen->EventWeight=" <<
CosMuoGen->EventWeight
145 <<
" CosMuoGen: Nmuons=" <<
CosMuoGen->Id_sf.size() << std::endl;
147 <<
" CosMuoGen->Vx_at=" <<
CosMuoGen->Vx_at
148 <<
" CosMuoGen->Vy_at=" <<
CosMuoGen->Vy_at
149 <<
" CosMuoGen->Vz_at=" <<
CosMuoGen->Vz_at
150 <<
" CosMuoGen->T0_at=" <<
CosMuoGen->T0_at << std::endl;
153 <<
" Pz=" <<
CosMuoGen->Pz_at << std::endl;
154 for (
unsigned int i=0;
i<
CosMuoGen->Id_sf.size(); ++
i) {
162 <<
" Pz_sf=" <<
CosMuoGen->Pz_sf[
i] << std::endl;
171 <<
" Pz_ug=" <<
CosMuoGen->Pz_ug[
i] << std::endl;
177 auto fEvt = std::make_unique<HepMC::GenEvent>();
179 HepMC::GenVertex* Vtx_at =
new HepMC::GenVertex(HepMC::FourVector(
CosMuoGen->Vx_at,
187 Vtx_at->add_particle_in(Part_at);
191 for (
unsigned int i=0;
i<
CosMuoGen->Id_sf.size(); ++
i) {
196 Vtx_at->add_particle_out(Part_sf_in);
202 Vtx_sf->add_particle_in(Part_sf_in);
203 Vtx_sf->add_particle_out(Part_sf_out);
205 fEvt->add_vertex(Vtx_sf);
213 Vtx_ug->add_particle_in(Part_sf_out);
214 Vtx_ug->add_particle_out(Part_ug);
216 fEvt->add_vertex(Vtx_ug);
220 fEvt->add_vertex(Vtx_at);
221 fEvt->set_signal_process_vertex(Vtx_at);
223 fEvt->set_event_number(e.id().event());
224 fEvt->set_signal_process_id(13);
226 fEvt->weights().push_back(
CosMuoGen->EventWeight );
227 fEvt->weights().push_back(
CosMuoGen->Trials );
236 std::unique_ptr<HepMCProduct> CMProduct(
new HepMCProduct());
237 CMProduct->addHepMCData( fEvt.release() );
238 e.put(
std::move(CMProduct),
"unsmeared");
std::unique_ptr< CosmicMuonGenerator > CosMuoGen