CMS 3D CMS Logo

CosMuoGenSource.h

Go to the documentation of this file.
00001 #ifndef CosMuoGenSource_h
00002 #define CosMuoGenSource_h
00003 //
00004 // CosmicMuonGenerator by droll (01/FEB/2006)
00005 //
00006 #include "GeneratorInterface/CosmicMuonGenerator/interface/CosmicMuonGenerator.h"
00007 #include "HepMC/GenEvent.h"
00008 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00009 #include "FWCore/Framework/interface/EventPrincipal.h"
00010 #include "FWCore/Framework/interface/GeneratedInputSource.h"
00011 #include "FWCore/Framework/interface/InputSourceDescription.h"
00012 #include "FWCore/Framework/interface/Event.h"
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 //#include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include "FWCore/Utilities/interface/Exception.h"
00016 
00017 
00018 namespace edm
00019 {
00020   class CosMuoGenSource : public GeneratedInputSource{
00021   public:
00022     CosMuoGenSource(const ParameterSet&, const InputSourceDescription& );
00023     virtual ~CosMuoGenSource();
00024 
00025   private: 
00026     virtual bool produce(Event & e);
00027     
00028     void clear();
00029     // define the configurable generator parameters
00030     int32_t      RanS; // seed of random number generator (from Framework)
00031     double       MinP; // min. P     [GeV]
00032     double       MinP_CMS; // min. P at CMS surface    [GeV]; default is MinP_CMS=MinP, thus no bias from access-shaft
00033     double       MaxP; // max. P     [GeV]
00034     double       MinT; // min. theta [deg]
00035     double       MaxT; // max. theta [deg]
00036     double       MinPh; // min. phi   [deg]
00037     double       MaxPh; // max. phi   [deg]
00038     double       MinS; // min. t0    [ns]
00039     double       MaxS; // max. t0    [ns]
00040     double       ELSF; // scale factor for energy loss
00041     double       RTarget; // Radius of target-cylinder which cosmics HAVE to hit [mm], default is CMS-dimensions
00042     double       ZTarget; // z-length of target-cylinder which cosmics HAVE to hit [mm], default is CMS-dimensions
00043     double       ZCTarget; // z-position of centre of target-cylinder which cosmics HAVE to hit [mm], default is Nominal Interaction Point
00044     bool         TrackerOnly; //if set to "true" detector with tracker-only setup is used, so no material or B-field outside is considerd
00045     bool         TIFOnly_constant; //if set to "true" cosmics can also be generated below 2GeV with unphysical constant energy dependence
00046     bool         TIFOnly_linear; //if set to "true" cosmics can also be generated below 2GeV with unphysical linear energy dependence
00047     bool         MTCCHalf; //if set to "true" muons are sure to hit half of CMS important for MTCC, 
00048                            //still material and B-field of whole CMS is considered
00049 
00050     //Plug position (default = on shaft)
00051     double PlugVtx;
00052     double PlugVtz;
00053 
00054     CosmicMuonGenerator* CosMuoGen;
00055     // the event format itself
00056     HepMC::GenEvent* fEvt;
00057     bool cmVerbosity_;
00058   };
00059 } 
00060 
00061 #endif

Generated on Tue Jun 9 17:36:53 2009 for CMSSW by  doxygen 1.5.4