CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
14 
16 
17 namespace edm
18 {
19  class CosMuoGenProducer : public EDProducer {
20  public:
22  virtual ~CosMuoGenProducer();
23 
24  private:
25  virtual void produce(Event & e, const EventSetup& es);
26 
27  virtual void endRun(Run & r, const EventSetup & es);
28 
29  void clear();
30  // define the configurable generator parameters
31  int32_t RanS; // seed of random number generator (from Framework)
32  double MinP; // min. P [GeV]
33  double MinP_CMS; // min. P at CMS surface [GeV]; default is MinP_CMS=MinP, thus no bias from access-shaft
34  double MaxP; // max. P [GeV]
35  double MinT; // min. theta [deg]
36  double MaxT; // max. theta [deg]
37  double MinPh; // min. phi [deg]
38  double MaxPh; // max. phi [deg]
39  double MinS; // min. t0 [ns]
40  double MaxS; // max. t0 [ns]
41  double ELSF; // scale factor for energy loss
42  double RTarget; // Radius of target-cylinder which cosmics HAVE to hit [mm], default is CMS-dimensions
43  double ZTarget; // z-length of target-cylinder which cosmics HAVE to hit [mm], default is CMS-dimensions
44  double ZCTarget; // z-position of centre of target-cylinder which cosmics HAVE to hit [mm], default is Nominal Interaction Point
45  bool TrackerOnly; //if set to "true" detector with tracker-only setup is used, so no material or B-field outside is considerd
46  bool MultiMuon; //read in multi-muon events from file instead of generating single muon events
47  std::string MultiMuonFileName; //file containing multi muon events, to be read in
49  int32_t MultiMuonNmin;
50  bool TIFOnly_constant; //if set to "true" cosmics can also be generated below 2GeV with unphysical constant energy dependence
51  bool TIFOnly_linear; //if set to "true" cosmics can also be generated below 2GeV with unphysical linear energy dependence
52  bool MTCCHalf; //if set to "true" muons are sure to hit half of CMS important for MTCC,
53  //still material and B-field of whole CMS is considered
54 
55  //Plug position (default = on shaft)
56  double PlugVtx;
57  double PlugVtz;
58 
59  //material densities in g/cm^3
60  double VarRhoAir;
61  double VarRhoWall;
62  double VarRhoRock;
63  double VarRhoClay;
64  double VarRhoPlug;
65  double ClayLayerWidth; //[mm]
66 
67 
68  //For upgoing muon generation: Neutrino energy limits
69  double MinEn;
70  double MaxEn;
71  double NuPrdAlt;
72 
73  bool AllMu; //Accepting All Muons regardeless of direction
74 
75  // external cross section and filter efficiency
76  double extCrossSect;
77  double extFilterEff;
78 
80  // the event format itself
81  HepMC::GenEvent* fEvt;
83  };
84 }
85 
86 #endif
virtual void produce(Event &e, const EventSetup &es)
virtual void endRun(Run &r, const EventSetup &es)
CosMuoGenProducer(const ParameterSet &)
CosmicMuonGenerator * CosMuoGen
HepMC::GenEvent * fEvt
Definition: Run.h:33