#include <ElectronLimiter.h>
Definition at line 23 of file ElectronLimiter.h.
◆ ElectronLimiter()
ElectronLimiter::ElectronLimiter |
( |
const edm::ParameterSet & |
p, |
|
|
const G4ParticleDefinition * |
part |
|
) |
| |
|
explicit |
◆ ~ElectronLimiter()
ElectronLimiter::~ElectronLimiter |
( |
| ) |
|
|
override |
◆ InitialiseProcess()
void ElectronLimiter::InitialiseProcess |
( |
const G4ParticleDefinition * |
| ) |
|
|
override |
Definition at line 35 of file ElectronLimiter.cc.
References fieldCheckFlag_, ionisation_, nRegions_, particle_, and rangeCheckFlag_.
36 G4LossTableManager *lManager = G4LossTableManager::Instance();
43 AddEmModel(0,
new G4DummyModel());
45 if (lManager->IsMaster()) {
47 <<
"ElectronLimiter::BuildPhysicsTable for " <<
particle_->GetParticleName() <<
" ioni: " <<
ionisation_ 49 <<
" regions for tracking cuts\n";
Log< level::Info, true > LogVerbatim
const G4ParticleDefinition * particle_
G4VEnergyLossProcess * ionisation_
◆ IsApplicable()
G4bool ElectronLimiter::IsApplicable |
( |
const G4ParticleDefinition & |
| ) |
|
|
override |
◆ PostStepDoIt()
G4VParticleChange * ElectronLimiter::PostStepDoIt |
( |
const G4Track & |
aTrack, |
|
|
const G4Step & |
|
|
) |
| |
|
override |
Definition at line 96 of file ElectronLimiter.cc.
References killTrack_, CMSTrackingCutModel::SampleEnergyDepositEcal(), and trcut_.
97 fParticleChange.Initialize(aTrack);
99 fParticleChange.ProposeTrackStatus(fStopAndKill);
101 fParticleChange.ProposeLocalEnergyDeposit(edep);
102 fParticleChange.SetProposedKineticEnergy(0.0);
104 return &fParticleChange;
CMSTrackingCutModel * trcut_
virtual G4double SampleEnergyDepositEcal(G4double kinEnergy)
◆ PostStepGetPhysicalInteractionLength()
G4double ElectronLimiter::PostStepGetPhysicalInteractionLength |
( |
const G4Track & |
track, |
|
|
G4double |
previousStepSize, |
|
|
G4ForceCondition * |
condition |
|
) |
| |
|
override |
Definition at line 53 of file ElectronLimiter.cc.
References energyLimits_, factors_, fieldCheckFlag_, mps_fire::i, CMSTrackingCutModel::InitialiseForStep(), ionisation_, killTrack_, remoteMonitoring_LASER_era2018_cfg::limit, SiStripPI::min, minStepLimit_, nRegions_, FastTimerService_cff::range, rangeCheckFlag_, regions_, rms_, and trcut_.
56 *condition = NotForced;
57 G4double
limit = DBL_MAX;
60 G4double kinEnergy = aTrack.GetKineticEnergy();
69 const G4Region *reg = aTrack.GetVolume()->GetLogicalVolume()->GetRegion();
81 G4double safety = aTrack.GetStep()->GetPreStepPoint()->GetSafety();
83 G4double
range =
ionisation_->GetRange(kinEnergy, aTrack.GetMaterialCutsCouple());
84 if (safety >=
range) {
CMSTrackingCutModel * trcut_
std::vector< G4double > rms_
void InitialiseForStep(G4double fac, G4double rms)
G4VEnergyLossProcess * ionisation_
std::vector< const G4Region * > regions_
std::vector< G4double > energyLimits_
std::vector< G4double > factors_
◆ SetFieldCheckFlag()
void ElectronLimiter::SetFieldCheckFlag |
( |
G4bool |
val | ) |
|
|
inline |
◆ SetRangeCheckFlag()
void ElectronLimiter::SetRangeCheckFlag |
( |
G4bool |
val | ) |
|
|
inline |
◆ SetTrackingCutPerRegion()
void ElectronLimiter::SetTrackingCutPerRegion |
( |
std::vector< const G4Region *> & |
reg, |
|
|
std::vector< G4double > & |
cut, |
|
|
std::vector< G4double > & |
fac, |
|
|
std::vector< G4double > & |
rms |
|
) |
| |
◆ StartTracking()
void ElectronLimiter::StartTracking |
( |
G4Track * |
| ) |
|
|
override |
◆ energyLimits_
std::vector<G4double> ElectronLimiter::energyLimits_ |
|
private |
◆ factors_
std::vector<G4double> ElectronLimiter::factors_ |
|
private |
◆ fieldCheckFlag_
G4bool ElectronLimiter::fieldCheckFlag_ |
|
private |
◆ ionisation_
G4VEnergyLossProcess* ElectronLimiter::ionisation_ |
|
private |
◆ killTrack_
G4bool ElectronLimiter::killTrack_ |
|
private |
◆ minStepLimit_
G4double ElectronLimiter::minStepLimit_ |
|
private |
◆ nRegions_
G4int ElectronLimiter::nRegions_ |
|
private |
◆ particle_
const G4ParticleDefinition* ElectronLimiter::particle_ |
|
private |
◆ rangeCheckFlag_
G4bool ElectronLimiter::rangeCheckFlag_ |
|
private |
◆ regions_
std::vector<const G4Region *> ElectronLimiter::regions_ |
|
private |
◆ rms_
std::vector<G4double> ElectronLimiter::rms_ |
|
private |
◆ trcut_