CMS 3D CMS Logo

SiHitDigitizer.h

Go to the documentation of this file.
00001 #ifndef _TRACKER_SiHitDigitizer_H_
00002 #define _TRACKER_SiHitDigitizer_H_
00003  
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 
00006 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
00007 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00008 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
00009 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
00010 #include "SimTracker/SiStripDigitizer/interface/SiChargeCollectionDrifter.h"
00011 #include "SimTracker/SiStripDigitizer/interface/SiChargeDivider.h"
00012 #include "SimTracker/SiStripDigitizer/interface/SiInduceChargeOnStrips.h"
00013 #include "SimTracker/SiStripDigitizer/interface/SiPileUpSignals.h"
00014 
00015 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
00016 
00017 #include <map>
00018 
00019 namespace CLHEP {
00020   class HepRandomEngine;
00021 }
00022 
00023 class SiStripDetType;
00027 class SiHitDigitizer{
00028  public:
00029 
00030   SiHitDigitizer(const edm::ParameterSet& conf,CLHEP::HepRandomEngine&);
00031 
00032   ~SiHitDigitizer();
00033 
00034   void setChargeDivider(SiChargeDivider* cd){
00035     if (theSiChargeDivider) delete theSiChargeDivider;
00036     theSiChargeDivider = cd;
00037   }
00038   void setChargeCollectionDrifter(SiChargeCollectionDrifter* cd){
00039     if (theSiChargeCollectionDrifter) delete theSiChargeCollectionDrifter;
00040     theSiChargeCollectionDrifter = cd;
00041   }
00042   void setInduceChargeOnStrips(SiInduceChargeOnStrips* cd){
00043     if (theSiInduceChargeOnStrips) delete theSiInduceChargeOnStrips;
00044     theSiInduceChargeOnStrips = cd;
00045   }
00046   
00047   void setParticleDataTable(const ParticleDataTable * pdt);
00048 
00049   void processHit(const PSimHit&, const StripGeomDetUnit&, GlobalVector,float,
00050                   std::vector<double>&, unsigned int&, unsigned int&);
00051   
00052  private:
00053   SiChargeDivider* theSiChargeDivider;
00054   SiChargeCollectionDrifter* theSiChargeCollectionDrifter;
00055   SiInduceChargeOnStrips* theSiInduceChargeOnStrips;
00056 
00057   edm::ParameterSet conf_;
00058   CLHEP::HepRandomEngine& rndEngine;
00059   double depletionVoltage;
00060   double appliedVoltage;
00061   double chargeMobility;
00062   double temperature;
00063   bool noDiffusion;
00064   double chargeDistributionRMS;
00065   double gevperelectron;
00066   LocalVector DriftDirection(const StripGeomDetUnit*,GlobalVector,float);
00067   typedef GloballyPositioned<double>      Frame;
00068 
00069 };
00070 
00071 #endif

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