43 #ifndef G4MicroElecInelasticModel_h
44 #define G4MicroElecInelasticModel_h 1
70 const G4String& nam =
"MicroElecInelasticModel");
108 std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
109 std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
116 typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
119 typedef std::map<G4String,G4MicroElecCrossSectionDataSet*,std::less<G4String> > MapData;
145 typedef std::map<double, std::map<double, double> > TriDimensionMap;
147 TriDimensionMap eDiffCrossSectionData[7];
148 TriDimensionMap eNrjTransfData[7];
150 TriDimensionMap pDiffCrossSectionData[7];
151 TriDimensionMap pNrjTransfData[7];
153 std::vector<double> eTdummyVec;
154 std::vector<double> pTdummyVec;
156 typedef std::map<double, std::vector<double> > VecMap;
161 VecMap eProbaShellMap[7];
162 VecMap pProbaShellMap[7];
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
G4MicroElecInelasticModel(const G4ParticleDefinition *p=0, const G4String &nam="MicroElecInelasticModel")
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
virtual ~G4MicroElecInelasticModel()
double DifferentialCrossSection(G4ParticleDefinition *aParticleDefinition, G4double k, G4double energyTransfer, G4int shell)
void SelectFasterComputation(G4bool input)
G4ParticleChangeForGamma * fParticleChangeForGamma
static const G4double emax
G4double energy(const ThreeVector &p, const G4double m)
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
G4double TransferedEnergy(G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4int shell, G4double random)