Import Geant4 10.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 11:51:14 +02:00
parent e2d2f9810a
commit 286caacf06
12421 changed files with 730077 additions and 502383 deletions
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/DetectorConstruction.cc
/// \brief Implementation of the DetectorConstruction class
//
// $Id$
// $Id: DetectorConstruction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -59,15 +59,19 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorConstruction::DetectorConstruction()
: G4VUserDetectorConstruction(),
fWorldMaterial(0),
fAbsorMaterial(0),
fMagField(0),
fMonFieldSetup(0),
fLogAbsor(0),
fDetectorMessenger(0)
{
// default parameter values
fAbsorSizeX = fAbsorSizeYZ = 10 * cm;
fWorldSizeX = fWorldSizeYZ = 1.2 * fAbsorSizeX;
fMaxStepSize = 5 * mm;
fAbsorMaterial = 0;
fMagField = 0;
fLogAbsor = 0;
fMonFieldSetup = G4MonopoleFieldSetup::GetMonopoleFieldSetup();
SetMaterial("G4_Al");
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/DetectorMessenger.cc
/// \brief Implementation of the DetectorMessenger class
//
// $Id$
// $Id: DetectorMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -43,7 +43,15 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
DetectorMessenger::DetectorMessenger(DetectorConstruction * det)
:fDetector(det)
:G4UImessenger(),
fDetector(det),
fDetDir(0),
fMaterCmd(0),
fSizeXCmd(0),
fSizeYZCmd(0),
fStepSizeCmd(0),
fMagFieldCmd(0)
{
fDetDir = new G4UIdirectory("/testex/det/");
fDetDir->SetGuidance("detector construction commands");
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/EventAction.cc
/// \brief Implementation of the EventAction class
//
// $Id$
// $Id: EventAction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -39,7 +39,10 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
EventAction::EventAction(): fPrintModulo(10000)
EventAction::EventAction()
: G4UserEventAction(),
fPrintModulo(10000),
fEventMessenger(0)
{
fEventMessenger = new EventActionMessenger(this);
}
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/EventActionMessenger.cc
/// \brief Implementation of the EventActionMessenger class
//
// $Id$
// $Id: EventActionMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -40,7 +40,10 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
EventActionMessenger::EventActionMessenger(EventAction* evAct)
:fEventAction(evAct)
: G4UImessenger(),
fEventAction(evAct),
fEventDir(0),
fPrintCmd(0)
{
fEventDir = new G4UIdirectory("/testex/event/");
fEventDir->SetGuidance("event control");
@@ -26,6 +26,8 @@
/// \file exoticphysics/monopole/src/G4Monopole.cc
/// \brief Implementation of the G4Monopole class
//
// $Id: G4Monopole.cc 66817 2013-01-12 16:16:08Z gcosmo $
//
//---------------------------------------------------------------------------
//
// ClassName: G4Monopole
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/G4MonopoleEquation.cc
/// \brief Implementation of the G4MonopoleEquation class
//
// $Id$
// $Id: G4MonopoleEquation.cc 69705 2013-05-13 09:09:52Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -74,10 +74,13 @@ G4MonopoleEquation::~G4MonopoleEquation()
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void
G4MonopoleEquation::SetChargeMomentumMass(G4double particleMagneticCharge,
G4double particleElectricCharge,
G4double particleMass)
G4MonopoleEquation::SetChargeMomentumMass( G4ChargeState particleChargeState,
G4double , // momentum,
G4double particleMass)
{
G4double particleMagneticCharge= particleChargeState.MagneticCharge();
G4double particleElectricCharge= particleChargeState.GetCharge();
// fElCharge = particleElectricCharge;
fElCharge =eplus* particleElectricCharge*c_light;
@@ -23,10 +23,11 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4MonopoleFieldMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
/// \file exoticphysics/monopole/src/G4MonopoleFieldMessenger.cc
/// \brief Implementation of the G4MonopoleFieldMessenger class
//
// GEANT4 tag $Name: not supported by cvs2svn $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -44,7 +45,11 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4MonopoleFieldMessenger::G4MonopoleFieldMessenger(G4MonopoleFieldSetup * fld)
:fField(fld)
:G4UImessenger(),
fField(fld),
fFieldDir(0),
fSetFieldCmd(0)
{
fFieldDir = new G4UIdirectory("/testex/fld/");
fFieldDir->SetGuidance("field setup commands");
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/G4MonopoleFieldSetup.cc
/// \brief Implementation of the G4MonopoleFieldSetup class
//
// $Id$
// $Id: G4MonopoleFieldSetup.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -72,17 +72,16 @@ G4MonopoleFieldSetup* G4MonopoleFieldSetup::fMonopoleFieldSetup=0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4MonopoleFieldSetup::G4MonopoleFieldSetup()
: fFieldManager(0),
fChordFinder(0),
fEquation(0),
fMonopoleEquation(0),
fMagneticField(0),
fStepper(0),
fMonopoleStepper(0),
fMinStep(0.0),
fMonopoleFieldMessenger(0)
{
fFieldManager = 0;
fChordFinder = 0;
fEquation = 0;
fMonopoleEquation = 0;
fMagneticField = 0;
fStepper = 0;
fMonopoleStepper = 0;
fMinStep = 0.0;
fMonopoleFieldMessenger = new G4MonopoleFieldMessenger(this);
}
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/G4MonopolePhysics.cc
/// \brief Implementation of the G4MonopolePhysics class
//
// $Id$
// $Id: G4MonopolePhysics.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -49,6 +49,7 @@
#include "G4Monopole.hh"
#include "G4ParticleDefinition.hh"
#include "G4ProcessManager.hh"
#include "G4ProcessVector.hh"
#include "G4StepLimiter.hh"
#include "G4Transportation.hh"
@@ -60,13 +61,15 @@
#include "G4hIonisation.hh"
#include "G4PhysicsListHelper.hh"
#include "G4BuilderType.hh"
#include "G4SystemOfUnits.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4MonopolePhysics::G4MonopolePhysics(const G4String& nam)
: G4VPhysicsConstructor(nam)
: G4VPhysicsConstructor(nam),
fMessenger(0), fMpl(0)
{
fMagCharge = 1.0;
// fMagCharge = -1.0;
@@ -74,7 +77,6 @@ G4MonopolePhysics::G4MonopolePhysics(const G4String& nam)
fElCharge = 0.0;
fMonopoleMass = 100.*GeV;
fMessenger = new G4MonopolePhysicsMessenger(this);
fMpl = 0;
SetPhysicsType(bUnknown);
}
@@ -101,8 +103,7 @@ void G4MonopolePhysics::ConstructProcess()
}
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
G4ProcessManager* pmanager = new G4ProcessManager(fMpl);
fMpl->SetProcessManager(pmanager);
G4ProcessManager* pmanager = fMpl->GetProcessManager();
// defined monopole parameters and binning
@@ -112,10 +113,10 @@ void G4MonopolePhysics::ConstructProcess()
G4double emax = std::max(10.*TeV, fMonopoleMass*100);
G4int nbin = G4lrint(10*std::log10(emax/emin));
if(magn == 0.0) {
ph->RegisterProcess(new G4Transportation(), fMpl);
} else {
ph->RegisterProcess(new G4MonopoleTransportation(fMpl), fMpl);
// dedicated trasporation
if(magn != 0.0) {
pmanager->RemoveProcess(0);
pmanager->AddProcess(new G4MonopoleTransportation(fMpl),-1, 0, 0);
}
if(fMpl->GetPDGCharge() != 0.0) {
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/G4MonopolePhysicsMessenger.cc
/// \brief Implementation of the G4MonopolePhysicsMessenger class
//
// $Id$
// $Id: G4MonopolePhysicsMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
// 12.07.10 S.Burdin (changed the magnetic and electric charge variables from integer to double)
//
@@ -46,7 +46,13 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4MonopolePhysicsMessenger::G4MonopolePhysicsMessenger(G4MonopolePhysics* p)
: fPhys(p)
: G4UImessenger(),
fPhys(p),
fPhysicsDir(0),
fPhysicsCmd(0),
fMCmd(0),
fZCmd(0),
fMassCmd(0)
{
fPhysicsDir = new G4UIdirectory("/monopole/");
fPhysicsDir->SetGuidance("histograms control");
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/G4MonopoleTransportation.cc
/// \brief Implementation of the G4MonopoleTransportation class
//
// $Id$
// $Id: G4MonopoleTransportation.cc 69705 2013-05-13 09:09:52Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -60,24 +60,28 @@ class G4VSensitiveDetector;
G4MonopoleTransportation::G4MonopoleTransportation( const G4Monopole* mpl,
G4int verb)
: G4VProcess( G4String("MonopoleTransportation"), fTransportation ),
fParticleDef(mpl),
fMagSetup(0),
fLinearNavigator(0),
fFieldPropagator(0),
fParticleIsLooping( false ),
fPreviousSftOrigin (0.,0.,0.),
fPreviousSafety ( 0.0 ),
fThreshold_Warning_Energy( 100 * MeV ),
fThreshold_Important_Energy( 250 * MeV ),
fThresholdTrials( 10 ),
fUnimportant_Energy( 1 * MeV ),
// fUnimportant_Energy( 1 * MeV ),
fNoLooperTrials(0),
fSumEnergyKilled( 0.0 ), fMaxEnergyKilled( 0.0 ),
fShortStepOptimisation(false), // Old default: true (=fast short steps)
fVerboseLevel( verb )
fpSafetyHelper(0)
{
verboseLevel = verb;
// set Process Sub Type
SetProcessSubType(TRANSPORTATION);
pParticleDef = mpl;
magSetup = G4MonopoleFieldSetup::GetMonopoleFieldSetup();
fMagSetup = G4MonopoleFieldSetup::GetMonopoleFieldSetup();
G4TransportationManager* transportMgr ;
@@ -108,7 +112,7 @@ G4MonopoleTransportation::G4MonopoleTransportation( const G4Monopole* mpl,
G4MonopoleTransportation::~G4MonopoleTransportation()
{
if( (fVerboseLevel > 0) && (fSumEnergyKilled > 0.0 ) ){
if( (verboseLevel > 0) && (fSumEnergyKilled > 0.0 ) ){
G4cout << " G4MonopoleTransportation: Statistics for looping particles "
<< G4endl;
G4cout << " Sum of energy of loopers killed: " << fSumEnergyKilled << G4endl;
@@ -130,7 +134,7 @@ AlongStepGetPhysicalInteractionLength( const G4Track& track,
G4double& currentSafety,
G4GPILSelection* selection )
{
magSetup->SetStepperAndChordFinder(1);
fMagSetup->SetStepperAndChordFinder(1);
// change to monopole equation
G4double geometryStepLength, newSafety ;
@@ -172,7 +176,7 @@ AlongStepGetPhysicalInteractionLength( const G4Track& track,
// Is the monopole charged ?
//
G4double particleMagneticCharge = pParticleDef->MagneticCharge() ;
G4double particleMagneticCharge = fParticleDef->MagneticCharge() ;
G4double particleElectricCharge = pParticle->GetCharge();
fGeometryLimitedStep = false ;
@@ -264,18 +268,25 @@ AlongStepGetPhysicalInteractionLength( const G4Track& track,
}
else // A field exerts force
{
// G4double momentumMagnitude = pParticle->GetTotalMomentum() ;
G4double momentumMagnitude = pParticle->GetTotalMomentum() ;
G4ThreeVector EndUnitMomentum ;
G4double lengthAlongCurve ;
G4double restMass = pParticleDef->GetPDGMass() ;
fFieldPropagator->SetChargeMomentumMass( particleMagneticCharge, // in Mev/c
particleElectricCharge, // in e+ units
restMass ) ;
// SetChargeMomentumMass is _not_ used here as it would in everywhere else,
// it's just a workaround to pass the electric charge as well.
G4double restMass = fParticleDef->GetPDGMass() ;
G4ChargeState chargeState(particleElectricCharge, // The charge can change (dynamic)
fParticleDef->GetPDGSpin(),
0, // Magnetic moment: pParticleDef->GetMagneticMoment(),
0, // Electric Dipole moment - not in Particle Definition
particleMagneticCharge ); // in Mev/c
G4EquationOfMotion* equationOfMotion =
(fFieldPropagator->GetChordFinder()->GetIntegrationDriver()->GetStepper())
->GetEquationOfMotion();
equationOfMotion->SetChargeMomentumMass( chargeState, // Was particleMagneticCharge - in Mev/c
momentumMagnitude, // Was particleElectricCharge
restMass ) ;
// SetChargeMomentumMass now passes both the electric and magnetic charge - in chargeState
G4ThreeVector spin = track.GetPolarization() ;
G4FieldTrack aFieldTrack = G4FieldTrack( startPosition,
@@ -376,7 +387,7 @@ AlongStepGetPhysicalInteractionLength( const G4Track& track,
fParticleChange.ProposeTrueStepLength(geometryStepLength) ;
magSetup->SetStepperAndChordFinder(0);
fMagSetup->SetStepperAndChordFinder(0);
// change back to usual equation
return geometryStepLength ;
@@ -479,7 +490,7 @@ G4VParticleChange* G4MonopoleTransportation::AlongStepDoIt( const G4Track& track
if( endEnergy > fMaxEnergyKilled) { fMaxEnergyKilled= endEnergy; }
#ifdef G4VERBOSE
if( (fVerboseLevel > 1) ||
if( (verboseLevel > 1) ||
( endEnergy > fThreshold_Warning_Energy ) ) {
G4cout << " G4MonopoleTransportation is killing track that is looping or stuck "
<< G4endl
@@ -495,7 +506,7 @@ G4VParticleChange* G4MonopoleTransportation::AlongStepDoIt( const G4Track& track
else{
fNoLooperTrials ++;
#ifdef G4VERBOSE
if( (fVerboseLevel > 2) ){
if( (verboseLevel > 2) ){
G4cout << " G4MonopoleTransportation::AlongStepDoIt(): Particle looping - "
<< " Number of trials = " << fNoLooperTrials
<< " No of calls to = " << noCalls
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/Histo.cc
/// \brief Implementation of the Histo class
//
// $Id$
// $Id: Histo.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -49,8 +49,9 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Histo::Histo()
: fManager(0),
fMessenger(0)
{
fManager = 0;
fMessenger = new HistoMessenger(this);
fHistName = "test";
@@ -26,8 +26,7 @@
/// \file exoticphysics/monopole/src/HistoMessenger.cc
/// \brief Implementation of the HistoMessenger class
//
//
// $Id$
// $Id: HistoMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -45,7 +44,12 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
HistoMessenger::HistoMessenger(Histo* hist)
:fHisto(hist)
:G4UImessenger(),
fHisto(hist),
fHistoDir(0),
fFactoryCmd(0),
fFileCmd(0),
fHistoCmd(0)
{
fHistoDir = new G4UIdirectory("/testem/histo/");
fHistoDir->SetGuidance("histograms control");
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/PrimaryGeneratorAction.cc
/// \brief Implementation of the PrimaryGeneratorAction class
//
// $Id$
// $Id: PrimaryGeneratorAction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -41,7 +41,7 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det)
:fDetector(det)
:G4VUserPrimaryGeneratorAction(),fParticleGun(0),fDetector(det)
{
fParticleGun = new G4ParticleGun(1);
fParticleGun->SetParticleEnergy(100 * GeV);
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/RunAction.cc
/// \brief Implementation of the RunAction class
//
// $Id$
// $Id: RunAction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -48,7 +48,8 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
RunAction::RunAction(DetectorConstruction* det, PrimaryGeneratorAction* kin)
:fDetector(det), fKinematic(kin)
:G4UserRunAction(),
fHisto(0),fDetector(det),fKinematic(kin),fRunActionMessenger(0)
{
fVerboseLevel = 1;
fProjRange = fProjRange2 = fBinLength = fOffsetX = 0.;
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/RunActionMessenger.cc
/// \brief Implementation of the RunActionMessenger class
//
// $Id$
// $Id: RunActionMessenger.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -40,7 +40,12 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
RunActionMessenger::RunActionMessenger(RunAction * ra): fRunAction(ra)
RunActionMessenger::RunActionMessenger(RunAction * ra)
: G4UImessenger(),
fRunAction(ra),
fActDir(0),
fBinSizeCmd(0),
fVerboseCmd(0)
{
fActDir = new G4UIdirectory("/testex/run/");
fActDir->SetGuidance("run commands");
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/SteppingAction.cc
/// \brief Implementation of the SteppingAction class
//
// $Id$
// $Id: SteppingAction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -38,7 +38,9 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
SteppingAction::SteppingAction(RunAction* RuAct):fRunAction(RuAct)
SteppingAction::SteppingAction(RunAction* RuAct)
: G4UserSteppingAction(),
fRunAction(RuAct)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file exoticphysics/monopole/src/TrackingAction.cc
/// \brief Implementation of the TrackingAction class
//
// $Id$
// $Id: TrackingAction.cc 68036 2013-03-13 14:13:45Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -37,7 +37,9 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
TrackingAction::TrackingAction(RunAction* run): fRunAction(run)
TrackingAction::TrackingAction(RunAction* run)
: G4UserTrackingAction(),
fRunAction(run)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -51,7 +53,7 @@ void TrackingAction::PostUserTrackingAction(const G4Track* aTrack)
{
// extract Projected Range of primary particle
if (aTrack->GetTrackID() == 1) {
G4double x = aTrack->GetPosition().x() + fRunAction->GetOffsetX();
G4double x = aTrack->GetPosition().x() - fRunAction->GetOffsetX();
fRunAction->AddProjRange(x);
}
}