CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CSCDriftSim.h
Go to the documentation of this file.
1 #ifndef MU_END_DRIFT_SIM_H
2 #define MU_END_DRIFT_SIM_H
3 
20 #include <vector>
21 class CSCLayer;
22 class CSCDetectorHit;
23 class PSimHit;
24 class MagneticField;
27 #include "CLHEP/Random/RandFlat.h"
28 #include "CLHEP/Random/RandGaussQ.h"
29 
31 {
32 public:
33  CSCDriftSim();
34 
35  ~CSCDriftSim();
36 
40  CSCDetectorHit getWireHit(const Local3DPoint & ionClusterPosition,
41  const CSCLayer *, int wire, const PSimHit & simHit);
42 
43  void setMagneticField(const MagneticField * field) {theMagneticField = field;}
44 
45  void setRandomEngine(CLHEP::HepRandomEngine& engine);
46 
47 private:
48  // helper functions
49  double avgPathLengthLowB();
50  double pathSigmaLowB();
51  double avgDriftTimeLowB();
52  double driftTimeSigmaLowB();
53  double avgPathLengthHighB();
54  double pathSigmaHighB();
55  double avgDriftTimeHighB();
56  double driftTimeSigmaHighB();
57  double avgDrift() const;
58  double driftSigma() const;
59  double avalancheCharge();
60  double gasGain(const CSCDetId & id) const;
61 
62  // local magnetic field
63  float bz;
64  // distances from wire
65  double ycell, zcell;
66  // dN/dE for the avalanche sim.
67  std::vector<double> dNdEIntegral;
68  const double STEP_SIZE;
69 
71 
73 
74  CLHEP::RandGaussQ * theRandGaussQ;
75  CLHEP::RandFlat * theRandFlat;
76 };
77 
78 #endif
double avgDrift() const
Definition: CSCDriftParam.cc:8
double zcell
Definition: CSCDriftSim.h:65
double pathSigmaHighB()
CLHEP::RandFlat * theRandFlat
Definition: CSCDriftSim.h:75
const MagneticField * theMagneticField
Definition: CSCDriftSim.h:72
double avgPathLengthHighB()
const double STEP_SIZE
Definition: CSCDriftSim.h:68
double driftTimeSigmaLowB()
double driftTimeSigmaHighB()
void setMagneticField(const MagneticField *field)
Definition: CSCDriftSim.h:43
double avgDriftTimeHighB()
double avgDriftTimeLowB()
const double ELECTRON_DIFFUSION_COEFF
Definition: CSCDriftSim.h:70
double pathSigmaLowB()
double avalancheCharge()
Definition: CSCDriftSim.cc:144
double ycell
Definition: CSCDriftSim.h:65
CLHEP::RandGaussQ * theRandGaussQ
Definition: CSCDriftSim.h:74
void setRandomEngine(CLHEP::HepRandomEngine &engine)
Definition: CSCDriftSim.cc:60
double avgPathLengthLowB()
double driftSigma() const
std::vector< double > dNdEIntegral
Definition: CSCDriftSim.h:67
double gasGain(const CSCDetId &id) const
Definition: CSCDriftSim.cc:177
CSCDetectorHit getWireHit(const Local3DPoint &ionClusterPosition, const CSCLayer *, int wire, const PSimHit &simHit)
Definition: CSCDriftSim.cc:68