CMS 3D CMS Logo

CosMuoGenProducer.h
Go to the documentation of this file.
1 #ifndef CosMuoGenProducer_h
2 #define CosMuoGenProducer_h
3 //
4 // CosmicMuonProducer by droll (01/FEB/2006)
5 //
6 #include "HepMC/GenEvent.h"
7 
15 
17 
18 #include <memory>
19 
20 namespace edm {
21  class CosMuoGenProducer : public one::EDProducer<EndRunProducer, one::WatchLuminosityBlocks> {
22  public:
24  ~CosMuoGenProducer() override;
25 
26  private:
27  void beginLuminosityBlock(LuminosityBlock const&, EventSetup const&) override;
28  void endLuminosityBlock(LuminosityBlock const&, EventSetup const&) override {}
29 
30  void produce(Event& e, const EventSetup& es) override;
31 
32  void endRunProduce(Run& r, const EventSetup& es) override;
33 
34  void clear();
35  // define the configurable generator parameters
36  int32_t RanS; // seed of random number generator (from Framework)
37  double MinP; // min. P [GeV]
38  double MinP_CMS; // min. P at CMS surface [GeV]; default is MinP_CMS=MinP, thus no bias from access-shaft
39  double MaxP; // max. P [GeV]
40  double MinT; // min. theta [deg]
41  double MaxT; // max. theta [deg]
42  double MinPh; // min. phi [deg]
43  double MaxPh; // max. phi [deg]
44  double MinS; // min. t0 [ns]
45  double MaxS; // max. t0 [ns]
46  double ELSF; // scale factor for energy loss
47  double RTarget; // Radius of target-cylinder which cosmics HAVE to hit [mm], default is CMS-dimensions
48  double ZTarget; // z-length of target-cylinder which cosmics HAVE to hit [mm], default is CMS-dimensions
49  double
50  ZCTarget; // z-position of centre of target-cylinder which cosmics HAVE to hit [mm], default is Nominal Interaction Point
51  bool TrackerOnly; //if set to "true" detector with tracker-only setup is used, so no material or B-field outside is considerd
52  bool MultiMuon; //read in multi-muon events from file instead of generating single muon events
53  std::string MultiMuonFileName; //file containing multi muon events, to be read in
55  int32_t MultiMuonNmin;
56  bool TIFOnly_constant; //if set to "true" cosmics can also be generated below 2GeV with unphysical constant energy dependence
57  bool TIFOnly_linear; //if set to "true" cosmics can also be generated below 2GeV with unphysical linear energy dependence
58  bool MTCCHalf; //if set to "true" muons are sure to hit half of CMS important for MTCC,
59  //still material and B-field of whole CMS is considered
60 
61  //Plug position (default = on shaft)
62  double PlugVtx;
63  double PlugVtz;
64 
65  //material densities in g/cm^3
66  double VarRhoAir;
67  double VarRhoWall;
68  double VarRhoRock;
69  double VarRhoClay;
70  double VarRhoPlug;
71  double ClayLayerWidth; //[mm]
72 
73  //For upgoing muon generation: Neutrino energy limits
74  double MinEn;
75  double MaxEn;
76  double NuPrdAlt;
77 
78  bool AllMu; //Accepting All Muons regardeless of direction
79 
80  // external cross section and filter efficiency
81  double extCrossSect;
82  double extFilterEff;
83 
84  std::unique_ptr<CosmicMuonGenerator> CosMuoGen;
85  // the event format itself
87 
89  };
90 } // namespace edm
91 
92 #endif
edm::CosMuoGenProducer::VarRhoClay
double VarRhoClay
Definition: CosMuoGenProducer.h:69
edm::CosMuoGenProducer::VarRhoAir
double VarRhoAir
Definition: CosMuoGenProducer.h:66
EDProducer.h
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
edm::CosMuoGenProducer::TIFOnly_constant
bool TIFOnly_constant
Definition: CosMuoGenProducer.h:56
edm::Run
Definition: Run.h:45
LuminosityBlock.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::CosMuoGenProducer::MaxPh
double MaxPh
Definition: CosMuoGenProducer.h:43
edm::one::EDProducer
Definition: EDProducer.h:30
edm::CosMuoGenProducer::MultiMuonFileName
std::string MultiMuonFileName
Definition: CosMuoGenProducer.h:53
edm::CosMuoGenProducer::MaxT
double MaxT
Definition: CosMuoGenProducer.h:41
edm::CosMuoGenProducer::~CosMuoGenProducer
~CosMuoGenProducer() override
Definition: CosMuoGenProducer.cc:99
edm::CosMuoGenProducer::endLuminosityBlock
void endLuminosityBlock(LuminosityBlock const &, EventSetup const &) override
Definition: CosMuoGenProducer.h:28
edm::CosMuoGenProducer::MinP_CMS
double MinP_CMS
Definition: CosMuoGenProducer.h:38
edm::CosMuoGenProducer::PlugVtz
double PlugVtz
Definition: CosMuoGenProducer.h:63
edm::CosMuoGenProducer::MinEn
double MinEn
Definition: CosMuoGenProducer.h:74
edm::CosMuoGenProducer::VarRhoPlug
double VarRhoPlug
Definition: CosMuoGenProducer.h:70
edm::CosMuoGenProducer::cmVerbosity_
bool cmVerbosity_
Definition: CosMuoGenProducer.h:86
edm::CosMuoGenProducer::ZCTarget
double ZCTarget
Definition: CosMuoGenProducer.h:50
edm::CosMuoGenProducer::MaxP
double MaxP
Definition: CosMuoGenProducer.h:39
edm::CosMuoGenProducer::ZTarget
double ZTarget
Definition: CosMuoGenProducer.h:48
edm::CosMuoGenProducer::MinP
double MinP
Definition: CosMuoGenProducer.h:37
edm::CosMuoGenProducer::TIFOnly_linear
bool TIFOnly_linear
Definition: CosMuoGenProducer.h:57
edm::CosMuoGenProducer::VarRhoWall
double VarRhoWall
Definition: CosMuoGenProducer.h:67
Run.h
edm::CosMuoGenProducer::AllMu
bool AllMu
Definition: CosMuoGenProducer.h:78
edm::CosMuoGenProducer::RTarget
double RTarget
Definition: CosMuoGenProducer.h:47
edm::CosMuoGenProducer::clear
void clear()
Definition: CosMuoGenProducer.cc:125
edm::CosMuoGenProducer::VarRhoRock
double VarRhoRock
Definition: CosMuoGenProducer.h:68
edm::ParameterSet
Definition: ParameterSet.h:47
edm::CosMuoGenProducer::endRunProduce
void endRunProduce(Run &r, const EventSetup &es) override
Definition: CosMuoGenProducer.cc:109
Event.h
edm::CosMuoGenProducer::NuPrdAlt
double NuPrdAlt
Definition: CosMuoGenProducer.h:76
edm::CosMuoGenProducer::MinT
double MinT
Definition: CosMuoGenProducer.h:40
edm::CosMuoGenProducer::ELSF
double ELSF
Definition: CosMuoGenProducer.h:46
edm::CosMuoGenProducer::RanS
int32_t RanS
Definition: CosMuoGenProducer.h:36
edm::CosMuoGenProducer::CosMuoGen
std::unique_ptr< CosmicMuonGenerator > CosMuoGen
Definition: CosMuoGenProducer.h:84
edm::CosMuoGenProducer::isInitialized_
bool isInitialized_
Definition: CosMuoGenProducer.h:88
edm::CosMuoGenProducer::PlugVtx
double PlugVtx
Definition: CosMuoGenProducer.h:62
edm::CosMuoGenProducer::ClayLayerWidth
double ClayLayerWidth
Definition: CosMuoGenProducer.h:71
edm::EventSetup
Definition: EventSetup.h:58
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::CosMuoGenProducer::MaxEn
double MaxEn
Definition: CosMuoGenProducer.h:75
alignCSCRings.r
r
Definition: alignCSCRings.py:93
edm::CosMuoGenProducer::MultiMuonNmin
int32_t MultiMuonNmin
Definition: CosMuoGenProducer.h:55
edm::CosMuoGenProducer::MinS
double MinS
Definition: CosMuoGenProducer.h:44
edm::CosMuoGenProducer
Definition: CosMuoGenProducer.h:21
edm::CosMuoGenProducer::extFilterEff
double extFilterEff
Definition: CosMuoGenProducer.h:82
edm::CosMuoGenProducer::CosMuoGenProducer
CosMuoGenProducer(const ParameterSet &)
Definition: CosMuoGenProducer.cc:11
edm::CosMuoGenProducer::TrackerOnly
bool TrackerOnly
Definition: CosMuoGenProducer.h:51
EventSetup.h
CosmicMuonGenerator.h
Exception.h
edm::CosMuoGenProducer::MTCCHalf
bool MTCCHalf
Definition: CosMuoGenProducer.h:58
edm::CosMuoGenProducer::MinPh
double MinPh
Definition: CosMuoGenProducer.h:42
edm::CosMuoGenProducer::beginLuminosityBlock
void beginLuminosityBlock(LuminosityBlock const &, EventSetup const &) override
Definition: CosMuoGenProducer.cc:101
ParameterSet.h
edm::CosMuoGenProducer::produce
void produce(Event &e, const EventSetup &es) override
Definition: CosMuoGenProducer.cc:127
edm::Event
Definition: Event.h:73
edm::CosMuoGenProducer::MaxS
double MaxS
Definition: CosMuoGenProducer.h:45
edm::CosMuoGenProducer::extCrossSect
double extCrossSect
Definition: CosMuoGenProducer.h:81
edm::CosMuoGenProducer::MultiMuon
bool MultiMuon
Definition: CosMuoGenProducer.h:52
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
edm::CosMuoGenProducer::MultiMuonFileFirstEvent
int32_t MultiMuonFileFirstEvent
Definition: CosMuoGenProducer.h:54