CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SiHitDigitizer.h
Go to the documentation of this file.
1 #ifndef _TRACKER_SiHitDigitizer_H_
2 #define _TRACKER_SiHitDigitizer_H_
3 
5 
11 #include "SiChargeDivider.h"
12 #include "SiInduceChargeOnStrips.h"
14 
16 
17 #include <map>
18 #include <memory>
19 
20 class TrackerTopology;
21 
22 namespace CLHEP {
23  class HepRandomEngine;
24 }
25 
26 class SiStripDetType;
31  public:
32 
33  SiHitDigitizer(const edm::ParameterSet& conf,CLHEP::HepRandomEngine&);
34 
36 
38  theSiChargeDivider.reset(cd);
39  }
40 
43  }
44 
46  theSiInduceChargeOnStrips.reset(cd);
47  }
48 
50  theSiChargeDivider->setParticleDataTable(pdt);
51  }
52 
53  void processHit(const PSimHit*, const StripGeomDetUnit&, GlobalVector,float,
54  std::vector<float>&, size_t&, size_t&,
55  const TrackerTopology *tTopo);
56 
57  private:
58  const double depletionVoltage;
59  const double chargeMobility;
60  std::unique_ptr<SiChargeDivider> theSiChargeDivider;
61  std::unique_ptr<SiChargeCollectionDrifter> theSiChargeCollectionDrifter;
62  std::unique_ptr<const SiInduceChargeOnStrips> theSiInduceChargeOnStrips;
63 
65 
66  LocalVector DriftDirection(const StripGeomDetUnit* _detp, GlobalVector _bfield, float langle) {
67  LocalVector Bfield=Frame(_detp->surface().position(),_detp->surface().rotation()).toLocal(_bfield);
68  return LocalVector(-langle * Bfield.y(),langle * Bfield.x(),1.);
69  }
70 
71 };
72 
73 #endif
void processHit(const PSimHit *, const StripGeomDetUnit &, GlobalVector, float, std::vector< float > &, size_t &, size_t &, const TrackerTopology *tTopo)
Local3DVector LocalVector
Definition: LocalVector.h:12
LocalVector DriftDirection(const StripGeomDetUnit *_detp, GlobalVector _bfield, float langle)
HepPDT::ParticleDataTable ParticleDataTable
const double chargeMobility
T y() const
Definition: PV3DBase.h:63
const double depletionVoltage
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
void setParticleDataTable(const ParticleDataTable *pdt)
tuple conf
Definition: dbtoconf.py:185
std::unique_ptr< const SiInduceChargeOnStrips > theSiInduceChargeOnStrips
std::unique_ptr< SiChargeCollectionDrifter > theSiChargeCollectionDrifter
void setInduceChargeOnStrips(SiInduceChargeOnStrips *cd)
const RotationType & rotation() const
SiHitDigitizer(const edm::ParameterSet &conf, CLHEP::HepRandomEngine &)
T x() const
Definition: PV3DBase.h:62
const PositionType & position() const
void setChargeDivider(SiChargeDivider *cd)
GloballyPositioned< double > Frame
void setChargeCollectionDrifter(SiChargeCollectionDrifter *cd)
std::unique_ptr< SiChargeDivider > theSiChargeDivider