Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:25:42

0001 #ifndef Tracker_SiLinearChargeCollectionDrifter_H
0002 #define Tracker_SiLinearChargeCollectionDrifter_H
0003 
0004 #include "SiChargeCollectionDrifter.h"
0005 #include "EnergyDepositUnit.h"
0006 /**
0007  * Concrete implementation of SiChargeCollectionDrifter. Drifts the charges linearly.
0008  * Drift each energy deposits in the bulk to the surface.                                                              
0009  * The resulting position depends on the Lorentz angle, and a sigma is computed                                        
0010  * that describes the diffusion.               
0011  */
0012 class SiLinearChargeCollectionDrifter : public SiChargeCollectionDrifter {
0013 public:
0014   SiLinearChargeCollectionDrifter(double, double, double, double);
0015   SiChargeCollectionDrifter::collection_type drift(const SiChargeCollectionDrifter::ionization_type&,
0016                                                    const LocalVector&,
0017                                                    double,
0018                                                    double) override;
0019 
0020 private:
0021   SignalPoint drift(const EnergyDepositUnit&, const LocalVector&, double, double);
0022 
0023 private:
0024   const double diffusionConstant;
0025   const double chargeDistributionRMS;
0026   const double depletionVoltage;
0027   const double appliedVoltage;
0028 };
0029 #endif