![]() |
|
|||
File indexing completed on 2023-03-17 11:00:46
0001 #ifndef MULTIPLESCATTERINGSIMULATOR_H 0002 #define MULTIPLESCATTERINGSIMULATOR_H 0003 0004 #include "FastSimulation/MaterialEffects/interface/MaterialEffectsSimulator.h" 0005 0006 /** 0007 * This class computes the direction change by multiple scattering 0008 * of a charged particle (under the form of a ParticlePropagator, 0009 * i.e., a RawParticle) in the tracker layer, and returns the 0010 * RawParticle with the modified momentum direction. The tracker 0011 * material is assumed to be 100% Si and the Tracker layers are 0012 * assumed infinitely thin. The fraction of radiation lengths 0013 * traversed by the particle in this tracker layer is determined 0014 * in MaterialEffectsSimulator. 0015 * 0016 * This version (a la PDG) of a multiple scattering simulator replaces 0017 * the buggy GEANT3 Fortran -> C++ former version (up to FAMOS_0_8_0_pre7). 0018 * 0019 * \author Patrick Janot 0020 * $Date: 8-Jan-2004 0021 */ 0022 0023 class ParticlePropagator; 0024 class RandomEngineAndDistribution; 0025 0026 class MultipleScatteringSimulator : public MaterialEffectsSimulator { 0027 public: 0028 /// Default Constructor 0029 MultipleScatteringSimulator(double A, double Z, double density, double radLen); 0030 0031 /// Default Destructor 0032 ~MultipleScatteringSimulator() override{}; 0033 0034 private: 0035 /// The real dE/dx generation and particle update 0036 void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override; 0037 0038 private: 0039 /// Save (a tiny bit of) time 0040 double sqr12; 0041 }; 0042 0043 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |