Go to the documentation of this file.00001 #ifndef FastSimulation_MuonSimHitProducer_MuonSimHitProducer_h
00002 #define FastSimulation_MuonSimHitProducer_MuonSimHitProducer_h
00003
00004
00005
00006
00007
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <memory>
00024
00025
00026 #include "FWCore/Framework/interface/EDProducer.h"
00027 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
00028
00029
00030 class RandomEngine;
00031 class MagneticField;
00032 class TrackerGeometry;
00033 class DTGeometry;
00034 class CSCGeometry;
00035 class RPCGeometry;
00036 class MuonServiceProxy;
00037 class MaterialEffects;
00038 class TrajectoryStateOnSurface;
00039 class Propagator;
00040
00041
00042
00043
00044
00045
00046
00047 namespace edm {
00048 class ParameterSet;
00049 class Event;
00050 class EventSetup;
00051 }
00052
00053
00054
00055
00056
00057 class MuonSimHitProducer : public edm::EDProducer {
00058 public:
00059
00060 explicit MuonSimHitProducer(const edm::ParameterSet&);
00061 ~MuonSimHitProducer();
00062
00063 private:
00064
00065 const RandomEngine * random;
00066 MuonServiceProxy *theService;
00067 Chi2MeasurementEstimator theEstimator;
00068
00069 const MagneticField* magfield;
00070 const DTGeometry* dtGeom;
00071 const CSCGeometry* cscGeom;
00072 const RPCGeometry* rpcGeom;
00073 const Propagator* propagatorWithMaterial;
00074 Propagator* propagatorWithoutMaterial;
00075
00076 MaterialEffects* theMaterialEffects;
00077
00078 virtual void beginRun(edm::Run & run, const edm::EventSetup & es);
00079 virtual void produce(edm::Event&, const edm::EventSetup&);
00080 virtual void endJob() ;
00081 void readParameters(const edm::ParameterSet&,
00082 const edm::ParameterSet&,
00083 const edm::ParameterSet& );
00084
00085
00086 double kDT;
00087 double fDT;
00088 double kCSC;
00089 double fCSC;
00090
00092 void applyMaterialEffects(TrajectoryStateOnSurface& tsosWithdEdx,
00093 TrajectoryStateOnSurface& tsos,
00094 double radPath);
00095
00096
00097
00098 bool fullPattern_;
00099 bool doL1_ , doL3_ , doGL_;
00100 std::string theSimModuleLabel_ , theSimModuleProcess_, theTrkModuleLabel_ ;
00101 };
00102
00103 #endif