CMS 3D CMS Logo

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