CMS 3D CMS Logo

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 
28 namespace CLHEP {
29  class HepRandomEngine;
30 }
31 
32 class CSCDriftSim {
33 public:
34  CSCDriftSim();
35 
36  ~CSCDriftSim();
37 
41  CSCDetectorHit getWireHit(const Local3DPoint &ionClusterPosition,
42  const CSCLayer *,
43  int wire,
44  const PSimHit &simHit,
45  CLHEP::HepRandomEngine *);
46 
47  void setMagneticField(const MagneticField *field) { theMagneticField = field; }
48 
49 private:
50  // helper functions
51  double avgPathLengthLowB();
52  double pathSigmaLowB();
53  double avgDriftTimeLowB();
54  double driftTimeSigmaLowB();
55  double avgPathLengthHighB();
56  double pathSigmaHighB();
57  double avgDriftTimeHighB();
58  double driftTimeSigmaHighB();
59  double avgDrift() const;
60  double driftSigma() const;
61  double avalancheCharge(CLHEP::HepRandomEngine *);
62  double gasGain(const CSCDetId &id) const;
63 
64  // local magnetic field
65  float bz;
66  // distances from wire
67  double ycell, zcell;
68  // dN/dE for the avalanche sim.
69  std::vector<double> dNdEIntegral;
70  const double STEP_SIZE;
71 
73 
75 };
76 
77 #endif
double zcell
Definition: CSCDriftSim.h:67
const MagneticField * theMagneticField
Definition: CSCDriftSim.h:74
const double STEP_SIZE
Definition: CSCDriftSim.h:70
void setMagneticField(const MagneticField *field)
Definition: CSCDriftSim.h:47
const double ELECTRON_DIFFUSION_COEFF
Definition: CSCDriftSim.h:72
std::vector< double > dNdEIntegral
Definition: CSCDriftSim.h:69