CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MaterialEffects.h
Go to the documentation of this file.
1 
2 #ifndef MaterialEffects_h
3 #define MaterialEffects_h
4 
28 //Framework Headers
29 //#include "FWCore/ParameterSet/interface/ParameterSet.h"
30 
31 // Geometry Headers
33 
34 #include <vector>
35 class FSimEvent;
36 class TrackerLayer;
37 class ParticlePropagator;
42 class RandomEngine;
45 
46 namespace edm {
47  class ParameterSet;
48 }
49 
51 {
52 
53  public:
54 
56  MaterialEffects(const edm::ParameterSet& matEff,
57  const RandomEngine* engine);
58 
61 
64  void interact(FSimEvent& simEvent,
65  const TrackerLayer& layer,
67  unsigned i);
68 
70  void save();
71 
73  inline double thickness() const { return theThickness; }
74 
76  inline double energyLoss() const { return theEnergyLoss; }
77 
80  return MultipleScattering;
81  }
82 
85  return EnergyLoss;
86  }
87 
90  return MuonBremsstrahlung;
91  }
92 
93  private:
94 
96  double radLengths(const TrackerLayer& layer,
97  ParticlePropagator& myTrack);
98 
101  ParticlePropagator& myTrack ) const;
102 
103  private:
104 
112 
113  // Cuts for material effects
114  double pTmin;
116  double theThickness;
119 
120  // debugging
121  // double myEta;
122 
123  // The random engine
125 
126 };
127 
128 #endif
int i
Definition: DBlmapReader.cc:9
MaterialEffects(const edm::ParameterSet &matEff, const RandomEngine *engine)
Constructor.
~MaterialEffects()
Default destructor.
PairProductionSimulator * PairProduction
MultipleScatteringSimulator * multipleScatteringSimulator() const
Return the Multiple Scattering engine.
const RandomEngine * random
GlobalVector normalVector(const TrackerLayer &layer, ParticlePropagator &myTrack) const
The vector normal to the surface traversed.
MuonBremsstrahlungSimulator * MuonBremsstrahlung
MuonBremsstrahlungSimulator * muonBremsstrahlungSimulator() const
Return the Muon Bremsstrahlung engine.
void save()
Save nuclear interaction information.
double energyLoss() const
Return the energy loss by ionization in the current layer.
double radLengths(const TrackerLayer &layer, ParticlePropagator &myTrack)
The number of radiation lengths traversed.
double thickness() const
Return the thickness of the current layer.
BremsstrahlungSimulator * Bremsstrahlung
void interact(FSimEvent &simEvent, const TrackerLayer &layer, ParticlePropagator &PP, unsigned i)
GlobalVector theNormalVector
EnergyLossSimulator * EnergyLoss
EnergyLossSimulator * energyLossSimulator() const
Return the Energy Loss engine.
NuclearInteractionSimulator * NuclearInteraction
MultipleScatteringSimulator * MultipleScattering