Import Geant4 10.0.0 source tree
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user