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
@@ -0,0 +1,81 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// \file F04ActionInitialization.cc
/// \brief Implementation of the F04ActionInitialization class
#include "F04ActionInitialization.hh"
#include "F04PrimaryGeneratorAction.hh"
#include "F04RunAction.hh"
#include "F04EventAction.hh"
#include "F04TrackingAction.hh"
#include "F04StackingAction.hh"
#include "F04SteppingAction.hh"
#include "F04SteppingVerbose.hh"
#include "F04DetectorConstruction.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04ActionInitialization::F04ActionInitialization
(F04DetectorConstruction* detConstruction)
: G4VUserActionInitialization(),
fDetConstruction(detConstruction)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04ActionInitialization::~F04ActionInitialization()
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04ActionInitialization::BuildForMaster() const
{
SetUserAction(new F04RunAction());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04ActionInitialization::Build() const
{
SetUserAction(new F04PrimaryGeneratorAction(fDetConstruction));
F04RunAction* runAction = new F04RunAction();
SetUserAction(runAction);
F04EventAction* eventAction = new F04EventAction(runAction);
SetUserAction(eventAction);
SetUserAction(new F04TrackingAction());
SetUserAction(new F04StackingAction());
SetUserAction(new F04SteppingAction());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4VSteppingVerbose* F04ActionInitialization::InitializeSteppingVerbose() const
{
return new F04SteppingVerbose();
}
@@ -23,18 +23,19 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04DetectorConstruction.cc 77884 2013-11-29 08:41:11Z gcosmo $
//
/// \file field/field04/src/F04DetectorConstruction.cc
/// \brief Implementation of the F04DetectorConstruction class
//
//
#include "G4ios.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "globals.hh"
#include "F04DetectorConstruction.hh"
#include "F04DetectorMessenger.hh"
#include "F04GlobalField.hh"
#include "G4Tubs.hh"
#include "G4LogicalVolume.hh"
#include "G4PVPlacement.hh"
@@ -42,9 +43,7 @@
#include "G4Material.hh"
#include "G4NistManager.hh"
#include "G4FieldManager.hh"
#include "G4UniformMagField.hh"
#include "G4TransportationManager.hh"
#include "F04GlobalField.hh"
#include "G4GeometryManager.hh"
@@ -58,8 +57,6 @@
#include "G4PhysicalConstants.hh"
#include "G4SystemOfUnits.hh"
#include "F04DetectorConstruction.hh"
#include "F04DetectorMessenger.hh"
#include "F04Materials.hh"
#include "G4RotationMatrix.hh"
@@ -69,14 +66,17 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4ThreadLocal F04GlobalField* F04DetectorConstruction::fField = 0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04DetectorConstruction::F04DetectorConstruction()
: fSolidWorld(0), fLogicWorld(0), fPhysiWorld(0),
fSolidTarget(0), fLogicTarget(0), fPhysiTarget(0),
fSolidDegrader(0), fLogicDegrader(0), fPhysiDegrader(0),
fSolidCaptureMgnt(0), fLogicCaptureMgnt(0), fPhysiCaptureMgnt(0),
fSolidTransferMgnt(0), fLogicTransferMgnt(0), fPhysiTransferMgnt(0),
fWorldMaterial(0), fTargetMaterial(0), fDegraderMaterial(0),
fFocusSolenoid(0), fSimpleSolenoid(0)
fWorldMaterial(0), fTargetMaterial(0), fDegraderMaterial(0)
{
fWorldSizeZ = 50.*m;
fWorldSizeR = 5.*m;
@@ -102,9 +102,6 @@ F04DetectorConstruction::F04DetectorConstruction()
fDegraderPos = -fTransferMgntLength/2. + fDegraderThickness/2.;
// ensure the global field is initialized
(void)F04GlobalField::GetObject();
fDetectorMessenger = new F04DetectorMessenger(this);
}
@@ -112,6 +109,7 @@ F04DetectorConstruction::F04DetectorConstruction()
F04DetectorConstruction::~F04DetectorConstruction()
{
// delete fField;
delete fDetectorMessenger;
}
@@ -168,10 +166,10 @@ G4VPhysicalVolume* F04DetectorConstruction::ConstructDetector()
fVacuum,
"CaptureMgnt");
G4ThreeVector captureMgntCenter = G4ThreeVector();
fCaptureMgntCenter = G4ThreeVector();
fPhysiCaptureMgnt = new G4PVPlacement(0,
captureMgntCenter,
fCaptureMgntCenter,
"CaptureMgnt",
fLogicCaptureMgnt,
fPhysiWorld,
@@ -192,7 +190,7 @@ G4VPhysicalVolume* F04DetectorConstruction::ConstructDetector()
+ GetTransferMgntPos();
G4double x = GetTransferMgntPos()/2.;
G4ThreeVector transferMgntCenter = G4ThreeVector(x,0.,z);
fTransferMgntCenter = G4ThreeVector(x,0.,z);
G4RotationMatrix* g4rot = new G4RotationMatrix();
*g4rot = StringToRotationMatrix("Y30,X10");
@@ -200,7 +198,7 @@ G4VPhysicalVolume* F04DetectorConstruction::ConstructDetector()
if (*g4rot == G4RotationMatrix()) g4rot = NULL;
fPhysiTransferMgnt = new G4PVPlacement(g4rot,
transferMgntCenter,
fTransferMgntCenter,
"TransferMgnt",
fLogicTransferMgnt,
fPhysiWorld,
@@ -288,27 +286,6 @@ G4VPhysicalVolume* F04DetectorConstruction::ConstructDetector()
0);
}
G4double l = 0.0;
G4double B1 = GetCaptureMgntB1();
G4double B2 = GetCaptureMgntB2();
if (fFocusSolenoid) delete fFocusSolenoid;
fFocusSolenoid = new F04FocusSolenoid(B1, B2, l,
fLogicCaptureMgnt,captureMgntCenter);
fFocusSolenoid -> SetHalf(true);
l = 0.0;
G4double B = GetTransferMgntB();
if (fSimpleSolenoid) delete fSimpleSolenoid;
fSimpleSolenoid = new F04SimpleSolenoid(B, l,
fLogicTransferMgnt,transferMgntCenter);
fSimpleSolenoid->SetColor("1,0,1");
fSimpleSolenoid->SetColor("0,1,1");
fSimpleSolenoid->SetMaxStep(1.5*mm);
fSimpleSolenoid->SetMaxStep(2.5*mm);
return fPhysiWorld;
}
@@ -485,6 +462,56 @@ void F04DetectorConstruction::SetDegraderPos(G4double val)
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04DetectorConstruction::ConstructSDandField()
{
// ensure the global field is initialized
if (!fField)
{
fField = F04GlobalField::GetObject(this);
G4double l = 0.0;
G4double B1 = GetCaptureMgntB1();
G4double B2 = GetCaptureMgntB2();
F04FocusSolenoid* focusSolenoid =
new F04FocusSolenoid(B1, B2, l, fLogicCaptureMgnt,fCaptureMgntCenter);
focusSolenoid -> SetHalf(true);
G4double B = GetTransferMgntB();
F04SimpleSolenoid* simpleSolenoid =
new F04SimpleSolenoid(B, l,fLogicTransferMgnt,fTransferMgntCenter);
simpleSolenoid->SetColor("1,0,1");
simpleSolenoid->SetColor("0,1,1");
simpleSolenoid->SetMaxStep(1.5*mm);
simpleSolenoid->SetMaxStep(2.5*mm);
FieldList* fields = fField->GetFields();
if (fields) {
if (fields->size()>0) {
FieldList::iterator i;
for (i=fields->begin(); i!=fields->end(); ++i)
{ (*i)->Construct(fPhysiWorld); }
}
}
}
else
{
FieldList* fields = fField->GetFields();
if (fields) {
if (fields->size()>0) {
FieldList::iterator i;
for (i=fields->begin(); i!=fields->end(); ++i)
{ (*i)->UpdateWorld(fPhysiWorld); }
}
}
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04DetectorConstruction::UpdateGeometry()
{
if (!fPhysiWorld) return;
@@ -497,9 +524,8 @@ void F04DetectorConstruction::UpdateGeometry()
G4SolidStore::GetInstance()->Clean();
//define new one
G4RunManager::GetRunManager()->DefineWorldVolume(ConstructDetector());
G4RunManager::GetRunManager()->ReinitializeGeometry();
G4RunManager::GetRunManager()->GeometryHasBeenModified();
G4RunManager::GetRunManager()->PhysicsHasBeenModified();
G4RegionStore::GetInstance()->UpdateMaterialList(fPhysiWorld);
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04DetectorMessenger.cc 76690 2013-11-14 08:45:07Z gcosmo $
//
/// \file field/field04/src/F04DetectorMessenger.cc
/// \brief Implementation of the F04DetectorMessenger class
//
//
#include "F04DetectorMessenger.hh"
#include "G4UIdirectory.hh"
@@ -77,20 +79,6 @@ F04DetectorMessenger::F04DetectorMessenger(F04DetectorConstruction* detector)
fCaptureZCmd->SetRange("CSizeZ>0.");
fCaptureZCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fCaptureB1Cmd = new G4UIcmdWithADoubleAndUnit("/field04/SetCaptureB1",this);
fCaptureB1Cmd->SetGuidance("Set B1 of the Capture Magnet");
fCaptureB1Cmd->SetParameterName("CSizeB1",false,false);
fCaptureB1Cmd->SetDefaultUnit("tesla");
fCaptureB1Cmd->SetRange("CSizeB1>0.");
fCaptureB1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fCaptureB2Cmd = new G4UIcmdWithADoubleAndUnit("/field04/SetCaptureB2",this);
fCaptureB2Cmd->SetGuidance("Set B2 of the Capture Magnet");
fCaptureB2Cmd->SetParameterName("CSizeB2",false,false);
fCaptureB2Cmd->SetDefaultUnit("tesla");
fCaptureB2Cmd->SetRange("CSizeB2>0.");
fCaptureB2Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fTransferRCmd = new G4UIcmdWithADoubleAndUnit("/field04/SetTransferR",this);
fTransferRCmd->SetGuidance("Set Radius of the Transfer Magnet");
fTransferRCmd->SetParameterName("TSizeR",false,false);
@@ -105,13 +93,6 @@ F04DetectorMessenger::F04DetectorMessenger(F04DetectorConstruction* detector)
fTransferZCmd->SetRange("TSizeZ>0.");
fTransferZCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fTransferBCmd = new G4UIcmdWithADoubleAndUnit("/field04/SetTransferB",this);
fTransferBCmd->SetGuidance("Set B of the Transfer Magnet");
fTransferBCmd->SetParameterName("TSizeB",false,false);
fTransferBCmd->SetDefaultUnit("tesla");
fTransferBCmd->SetRange("TSizeB>0.");
fTransferBCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fTransferPCmd = new G4UIcmdWithADoubleAndUnit("/field04/SetTransferP",this);
fTransferPCmd->SetGuidance("Set Z pos of the T-Mgnt from end of C-Mgnt");
fTransferPCmd->SetParameterName("TSizeP",false,false);
@@ -195,12 +176,9 @@ F04DetectorMessenger::~F04DetectorMessenger()
delete fCaptureRCmd;
delete fCaptureZCmd;
delete fCaptureB1Cmd;
delete fCaptureB2Cmd;
delete fTransferRCmd;
delete fTransferZCmd;
delete fTransferBCmd;
delete fTransferPCmd;
delete fTgtMaterCmd;
@@ -242,21 +220,12 @@ void F04DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
if( command == fCaptureZCmd )
fDetector->SetCaptureMgntLength(fCaptureZCmd->GetNewDoubleValue(newValue));
if( command == fCaptureB1Cmd )
fDetector->SetCaptureMgntB1(fCaptureB1Cmd->GetNewDoubleValue(newValue));
if( command == fCaptureB2Cmd )
fDetector->SetCaptureMgntB2(fCaptureB2Cmd->GetNewDoubleValue(newValue));
if( command == fTransferRCmd )
fDetector->SetTransferMgntRadius(fTransferRCmd->GetNewDoubleValue(newValue));
if( command == fTransferZCmd )
fDetector->SetTransferMgntLength(fTransferZCmd->GetNewDoubleValue(newValue));
if( command == fTransferBCmd )
fDetector->SetTransferMgntB(fTransferBCmd->GetNewDoubleValue(newValue));
if( command == fTransferPCmd )
fDetector->SetTransferMgntPos(fTransferPCmd->GetNewDoubleValue(newValue));
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04ElementField.cc 77884 2013-11-29 08:41:11Z gcosmo $
//
/// \file field/field04/src/F04ElementField.cc
/// \brief Implementation of the F04ElementField class
//
//
#include "G4GeometryManager.hh"
#include "F04ElementField.hh"
@@ -35,7 +37,7 @@
#include "G4SystemOfUnits.hh"
G4Navigator* F04ElementField::fNavigator;
G4ThreadLocal G4Navigator* F04ElementField::fNavigator = 0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -69,24 +71,17 @@ F04ElementField::F04ElementField(G4ThreeVector c, G4LogicalVolume* lv)
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04ElementField::Construct()
void F04ElementField::Construct(G4VPhysicalVolume* currentWorld)
{
G4Navigator* theNavigator =
G4TransportationManager::GetTransportationManager()->
GetNavigatorForTracking();
if (!fNavigator) { fNavigator = new G4Navigator(); }
UpdateWorld(currentWorld);
}
if (!fNavigator) {
fNavigator = new G4Navigator();
if ( theNavigator->GetWorldVolume() )
fNavigator->SetWorldVolume(theNavigator->GetWorldVolume());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
if (!geomManager->IsGeometryClosed()) {
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
}
void F04ElementField::UpdateWorld(G4VPhysicalVolume* currentWorld)
{
fNavigator->SetWorldVolume(currentWorld);
fNavigator->LocateGlobalPointAndSetup(fCenter,0,false);
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04EventAction.cc 78002 2013-12-02 08:25:49Z gcosmo $
//
/// \file field/field04/src/F04EventAction.cc
/// \brief Implementation of the F04EventAction class
//
//
#include "F04EventAction.hh"
#include "F04RunAction.hh"
@@ -69,38 +71,41 @@ void F04EventAction::BeginOfEventAction(const G4Event* evt)
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4Threading.hh"
void F04EventAction::EndOfEventAction(const G4Event* evt)
{
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
if(pVVisManager)
{
G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer();
G4int n_trajectories = 0;
if (trajectoryContainer) n_trajectories = trajectoryContainer->entries();
for(G4int i=0; i<n_trajectories; i++)
{ G4Trajectory* trj =
(G4Trajectory *)((*(evt->GetTrajectoryContainer()))[i]);
if (fDrawFlag == "all") trj->DrawTrajectory(50);
else if ((fDrawFlag == "charged")&&(trj->GetCharge() != 0.))
trj->DrawTrajectory(50);
}
}
// G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
//
// if(pVVisManager)
// {
// G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer();
//
// G4int n_trajectories = 0;
//
// if (trajectoryContainer) n_trajectories = trajectoryContainer->entries();
// for(G4int i=0; i<n_trajectories; i++)
// { G4Trajectory* trj =
// (G4Trajectory *)((*(evt->GetTrajectoryContainer()))[i]);
// if (fDrawFlag == "all") trj->DrawTrajectory();
// else if ((fDrawFlag == "charged")&&(trj->GetCharge() != 0.))
// trj->DrawTrajectory();
// }
// }
if (fVerboselevel>0)
G4cout << "<<< Event " << evt->GetEventID() << " ended." << G4endl;
if (fRunaction->GetRndmFreq() == 2)
{
CLHEP::HepRandom::saveEngineStatus("endOfEvent.rndm");
std::ostringstream os;
os<<"endOfEvent_"<<G4Threading::G4GetThreadId()<<".rndm";
G4Random::saveEngineStatus(os.str().c_str());
G4int evtNb = evt->GetEventID();
if (evtNb%fPrintModulo == 0)
{
G4cout << "\n---> End of Event: " << evtNb << G4endl;
CLHEP::HepRandom::showEngineStatus();
G4Random::showEngineStatus();
}
}
}
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04EventActionMessenger.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04EventActionMessenger.cc
/// \brief Implementation of the F04EventActionMessenger class
//
//
#include "globals.hh"
#include "G4UIcmdWithAString.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04ExtraPhysics.cc 68751 2013-04-05 10:21:24Z gcosmo $
//
/// \file field/field04/src/F04ExtraPhysics.cc
/// \brief Implementation of the F04ExtraPhysics class
//
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
@@ -57,10 +59,10 @@ void F04ExtraPhysics::ConstructProcess()
G4cout << "F04ExtraPhysics:: Add Extra Physics Processes"
<< G4endl;
theParticleIterator->reset();
aParticleIterator->reset();
while ((*theParticleIterator)()) {
G4ParticleDefinition* particle = theParticleIterator->value();
while ((*aParticleIterator)()) {
G4ParticleDefinition* particle = aParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
G4String particleName = particle->GetParticleName();
G4double charge = particle->GetPDGCharge();
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04FieldMessenger.cc 76690 2013-11-14 08:45:07Z gcosmo $
//
/// \file field/field04/src/F04FieldMessenger.cc
/// \brief Implementation of the F04FieldMessenger class
//
//
#include "F04FieldMessenger.hh"
#include "F04GlobalField.hh"
@@ -36,14 +38,40 @@
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4UIcmdWithoutParameter.hh"
#include "F04DetectorConstruction.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04FieldMessenger::F04FieldMessenger(F04GlobalField* pEMfield)
F04FieldMessenger::F04FieldMessenger(F04GlobalField* pEMfield,
F04DetectorConstruction* detector)
: fGlobalField(pEMfield)
{
fDetector = detector;
fDetDir = new G4UIdirectory("/field/");
fDetDir->SetGuidance(" Field tracking control ");
fCaptureB1Cmd = new G4UIcmdWithADoubleAndUnit("/field/SetCaptureB1",this);
fCaptureB1Cmd->SetGuidance("Set B1 of the Capture Magnet");
fCaptureB1Cmd->SetParameterName("CSizeB1",false,false);
fCaptureB1Cmd->SetDefaultUnit("tesla");
fCaptureB1Cmd->SetRange("CSizeB1>0.");
fCaptureB1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fCaptureB2Cmd = new G4UIcmdWithADoubleAndUnit("/field/SetCaptureB2",this);
fCaptureB2Cmd->SetGuidance("Set B2 of the Capture Magnet");
fCaptureB2Cmd->SetParameterName("CSizeB2",false,false);
fCaptureB2Cmd->SetDefaultUnit("tesla");
fCaptureB2Cmd->SetRange("CSizeB2>0.");
fCaptureB2Cmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fTransferBCmd = new G4UIcmdWithADoubleAndUnit("/field/SetTransferB",this);
fTransferBCmd->SetGuidance("Set B of the Transfer Magnet");
fTransferBCmd->SetParameterName("TSizeB",false,false);
fTransferBCmd->SetDefaultUnit("tesla");
fTransferBCmd->SetRange("TSizeB>0.");
fTransferBCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
fStepperCMD = new G4UIcmdWithAnInteger("/field/setStepperType",this);
fStepperCMD->SetGuidance("Select stepper type for field");
fStepperCMD->SetParameterName("choice",true);
@@ -101,6 +129,10 @@ F04FieldMessenger::~F04FieldMessenger()
{
delete fDetDir;
delete fCaptureB1Cmd;
delete fCaptureB2Cmd;
delete fTransferBCmd;
delete fStepperCMD;
delete fMinStepCMD;
delete fDeltaChordCMD;
@@ -115,6 +147,16 @@ F04FieldMessenger::~F04FieldMessenger()
void F04FieldMessenger::SetNewValue( G4UIcommand* command, G4String newValue)
{
if( command == fCaptureB1Cmd )
fDetector->SetCaptureMgntB1(fCaptureB1Cmd->GetNewDoubleValue(newValue));
if( command == fCaptureB2Cmd )
fDetector->SetCaptureMgntB2(fCaptureB2Cmd->GetNewDoubleValue(newValue));
if( command == fTransferBCmd )
fDetector->SetTransferMgntB(fTransferBCmd->GetNewDoubleValue(newValue));
if( command == fStepperCMD )
{
fGlobalField->SetStepperType(fStepperCMD->GetNewIntValue(newValue));
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04FocusSolenoid.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04FocusSolenoid.cc
/// \brief Implementation of the F04FocusSolenoid class
//
//
#include "globals.hh"
#include "G4GeometryManager.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04GlobalField.cc 77884 2013-11-29 08:41:11Z gcosmo $
//
/// \file field/field04/src/F04GlobalField.cc
/// \brief Implementation of the F04GlobalField class
//
//
#include <time.h>
#include "Randomize.hh"
@@ -41,25 +43,33 @@
#include "G4SystemOfUnits.hh"
#include "F04GlobalField.hh"
F04GlobalField* F04GlobalField::fObject = 0;
#include "F04SimpleSolenoid.hh"
#include "F04FocusSolenoid.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04GlobalField::F04GlobalField() : G4ElectroMagneticField(),
fMinStep(0.01*mm), fDeltaChord(3.0*mm),
fDeltaOneStep(0.01*mm), fDeltaIntersection(0.1*mm),
fEpsMin(2.5e-7*mm), fEpsMax(0.05*mm),
fEquation(0), fFieldManager(0),
fFieldPropagator(0), fStepper(0), fChordFinder(0)
//F04GlobalField::F04GlobalField() : G4MagneticField(),
// fMinStep(0.01*mm), fDeltaChord(3.0*mm),
// fDeltaOneStep(0.01*mm), fDeltaIntersection(0.1*mm),
// fEpsMin(2.5e-7*mm), fEpsMax(0.05*mm),
// fEquation(0), fFieldManager(0),
// fFieldPropagator(0), fStepper(0), fChordFinder(0)
G4ThreadLocal F04GlobalField* F04GlobalField::fObject = 0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04GlobalField::F04GlobalField(F04DetectorConstruction* det)
: G4ElectroMagneticField(),
fMinStep(0.01*mm), fDeltaChord(3.0*mm),
fDeltaOneStep(0.01*mm), fDeltaIntersection(0.1*mm),
fEpsMin(2.5e-7*mm), fEpsMax(0.05*mm),
fEquation(0), fFieldManager(0),
fFieldPropagator(0), fStepper(0), fChordFinder(0),
fDetectorConstruction(det)
//F04GlobalField::F04GlobalField(F04DetectorConstruction* det)
// : G4MagneticField(),
// fMinStep(0.01*mm), fDeltaChord(3.0*mm),
// fDeltaOneStep(0.01*mm), fDeltaIntersection(0.1*mm),
// fEpsMin(2.5e-7*mm), fEpsMax(0.05*mm),
// fEquation(0), fFieldManager(0),
// fFieldPropagator(0), fStepper(0), fChordFinder(0),
// fDetectorConstruction(det)
{
fFieldMessenger = new F04FieldMessenger(this);
fFieldMessenger = new F04FieldMessenger(this,det);
fFields = new FieldList();
@@ -69,7 +79,7 @@ F04GlobalField::F04GlobalField() : G4ElectroMagneticField(),
fObject = this;
UpdateField();
ConstructField();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -89,15 +99,13 @@ F04GlobalField::~F04GlobalField()
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04GlobalField::UpdateField()
void F04GlobalField::ConstructField()
{
fFirst = true;
fNfp = 0;
fFp = 0;
Clear();
// Construct equ. of motion of particles through B fields
// fEquation = new G4Mag_EqRhs(this);
// Construct equ. of motion of particles through e.m. fields
@@ -154,10 +162,120 @@ void F04GlobalField::UpdateField()
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04GlobalField::UpdateField()
{
fFirst = true;
fNfp = 0;
fFp = 0;
Clear();
G4double l = 0.0;
G4double B1 = fDetectorConstruction->GetCaptureMgntB1();
G4double B2 = fDetectorConstruction->GetCaptureMgntB2();
G4LogicalVolume* logicCaptureMgnt = fDetectorConstruction->GetCaptureMgnt();
G4ThreeVector captureMgntCenter =
fDetectorConstruction->GetCaptureMgntCenter();
F04FocusSolenoid* focusSolenoid =
new F04FocusSolenoid(B1, B2, l, logicCaptureMgnt,captureMgntCenter);
focusSolenoid -> SetHalf(true);
G4double B = fDetectorConstruction->GetTransferMgntB();
G4LogicalVolume* logicTransferMgnt =
fDetectorConstruction->GetTransferMgnt();
G4ThreeVector transferMgntCenter =
fDetectorConstruction->GetTransferMgntCenter();
F04SimpleSolenoid* simpleSolenoid =
new F04SimpleSolenoid(B, l, logicTransferMgnt,transferMgntCenter);
simpleSolenoid->SetColor("1,0,1");
simpleSolenoid->SetColor("0,1,1");
simpleSolenoid->SetMaxStep(1.5*mm);
simpleSolenoid->SetMaxStep(2.5*mm);
if (fEquation) delete fEquation;
// Construct equ. of motion of particles through B fields
// fEquation = new G4Mag_EqRhs(this);
// Construct equ. of motion of particles through e.m. fields
// fEquation = new G4EqMagElectricField(this);
// Construct equ. of motion of particles including spin through B fields
// fEquation = new G4Mag_SpinEqRhs(this);
// Construct equ. of motion of particles including spin through e.m. fields
fEquation = new G4EqEMFieldWithSpin(this);
// Get transportation, field, and propagator managers
G4TransportationManager* transportManager =
G4TransportationManager::GetTransportationManager();
fFieldManager = GetGlobalFieldManager();
fFieldPropagator = transportManager->GetPropagatorInField();
// Need to SetFieldChangesEnergy to account for a time varying electric
// field (r.f. fields)
fFieldManager->SetFieldChangesEnergy(true);
// Choose a stepper for integration of the equation of motion
SetStepper();
if (fChordFinder) delete fChordFinder;
// Create a cord finder providing the (global field, min step length,
// a pointer to the stepper)
fChordFinder = new G4ChordFinder((G4MagneticField*)this,fMinStep,fStepper);
// Set accuracy parameters
fChordFinder->SetDeltaChord( fDeltaChord );
fFieldManager->SetAccuraciesWithDeltaOneStep(fDeltaOneStep);
fFieldManager->SetDeltaIntersection(fDeltaIntersection);
fFieldPropagator->SetMinimumEpsilonStep(fEpsMin);
fFieldPropagator->SetMaximumEpsilonStep(fEpsMax);
G4cout << "Accuracy Parameters:" <<
" MinStep=" << fMinStep <<
" DeltaChord=" << fDeltaChord <<
" DeltaOneStep=" << fDeltaOneStep << G4endl;
G4cout << " " <<
" DeltaIntersection=" << fDeltaIntersection <<
" EpsMin=" << fEpsMin <<
" EpsMax=" << fEpsMax << G4endl;
fFieldManager->SetChordFinder(fChordFinder);
G4VPhysicalVolume* currentWorld = fDetectorConstruction->GetWorld();
if (fFields) {
if (fFields->size()>0) {
FieldList::iterator i;
for (i=fFields->begin(); i!=fFields->end(); ++i){
(*i)->Construct(currentWorld);
}
}
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04GlobalField* F04GlobalField::GetObject(F04DetectorConstruction* det)
{
if (!fObject) new F04GlobalField(det);
return fObject;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04GlobalField* F04GlobalField::GetObject()
{
if (!fObject) new F04GlobalField();
return fObject;
if (fObject) return fObject;
return NULL;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04Materials.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04Materials.cc
/// \brief Implementation of the F04Materials class
//
//
#include "F04Materials.hh"
#include "G4SystemOfUnits.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04OpticalPhysics.cc 68751 2013-04-05 10:21:24Z gcosmo $
//
/// \file field/field04/src/F04OpticalPhysics.cc
/// \brief Implementation of the F04OpticalPhysics class
//
//
#include "globals.hh"
#include "G4Scintillation.hh"
@@ -104,11 +106,11 @@ void F04OpticalPhysics::ConstructProcess()
theScintProcess->SetScintillationExcitationRatio(0.0);
theScintProcess->SetTrackSecondariesFirst(true);
theParticleIterator->reset();
aParticleIterator->reset();
while( (*theParticleIterator)() ){
while( (*aParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();
G4ParticleDefinition* particle = aParticleIterator->value();
G4String particleName = particle->GetParticleName();
pManager = particle->GetProcessManager();
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04PhysicsList.cc 78002 2013-12-02 08:25:49Z gcosmo $
//
/// \file field/field04/src/F04PhysicsList.cc
/// \brief Implementation of the F04PhysicsList class
//
//
#include "F04PhysicsList.hh"
#include "F04PhysicsListMessenger.hh"
@@ -39,7 +41,9 @@
#include "G4ParticleTypes.hh"
#include "G4ParticleTable.hh"
#include "G4PhysListFactory.hh"
//#include "G4PhysListFactory.hh"
#include "FTFP_BERT.hh"
#include "QGSP_BERT_HP.hh"
#include "G4Gamma.hh"
#include "G4Electron.hh"
@@ -73,14 +77,19 @@ F04PhysicsList::F04PhysicsList(G4String physName) : G4VModularPhysicsList()
SetVerboseLevel(1);
G4PhysListFactory factory;
// G4PhysListFactory factory;
G4VModularPhysicsList* phys = NULL;
if (physName == "QGSP_BERT_HP") {
phys = new QGSP_BERT_HP;
} else {
phys = new FTFP_BERT;
}
if (factory.IsReferencePhysList(physName))
phys =factory.GetReferencePhysList(physName);
// if (factory.IsReferencePhysList(physName))
// phys =factory.GetReferencePhysList(physName);
// Physics List is defined via environment variable PHYSLIST
if (!phys) phys = factory.ReferencePhysList();
// if (!phys) phys = factory.ReferencePhysList();
if (!phys) G4Exception("WLSPhysicsList::WLSPhysicsList","InvalidSetup",
FatalException,"PhysicsList does not exist");
@@ -115,6 +124,8 @@ void F04PhysicsList::ConstructParticle()
{
G4VModularPhysicsList::ConstructParticle();
G4GenericIon::GenericIonDefinition();
G4DecayTable* muonPlusDecayTable = new G4DecayTable();
muonPlusDecayTable -> Insert(new
G4MuonDecayChannelWithSpin("mu+",0.986));
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04PhysicsListMessenger.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04PhysicsListMessenger.cc
/// \brief Implementation of the F04PhysicsListMessenger class
//
//
#include "globals.hh"
#include "F04PhysicsListMessenger.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04PrimaryGeneratorAction.cc 78002 2013-12-02 08:25:49Z gcosmo $
//
/// \file field/field04/src/F04PrimaryGeneratorAction.cc
/// \brief Implementation of the F04PrimaryGeneratorAction class
//
//
#include "G4ios.hh"
#include "G4Event.hh"
#include "G4ParticleGun.hh"
@@ -44,13 +46,11 @@
#include "F04DetectorConstruction.hh"
#include "F04PrimaryGeneratorMessenger.hh"
G4bool F04PrimaryGeneratorAction::fFirst = false;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04PrimaryGeneratorAction::
F04PrimaryGeneratorAction(F04DetectorConstruction* detectorConstruction)
: fDetector(detectorConstruction), fRndmFlag("off"),
: fDetector(detectorConstruction), fRndmFlag("off"), fFirst(false),
fXvertex(0.), fYvertex(0.), fZvertex(0.),
fVertexdefined(false)
{
@@ -88,34 +88,30 @@ void F04PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
if (!fFirst) {
fFirst = true;
G4ThreeVector direction(0.0,0.0,1.0);
G4Navigator* theNavigator =
G4TransportationManager::GetTransportationManager()->
GetNavigatorForTracking();
G4Navigator* aNavigator = new G4Navigator();
if ( theNavigator->GetWorldVolume() )
aNavigator->SetWorldVolume(theNavigator->GetWorldVolume());
{
G4Navigator* aNavigator = new G4Navigator();
aNavigator->SetWorldVolume(theNavigator->GetWorldVolume());
G4GeometryManager* geomManager = G4GeometryManager::GetInstance();
G4ThreeVector center(0.,0.,0.);
aNavigator->LocateGlobalPointAndSetup(center,0,false);
if (!geomManager->IsGeometryClosed()) {
geomManager->OpenGeometry();
geomManager->CloseGeometry(true);
}
G4ThreeVector center(0.,0.,0.);
aNavigator->LocateGlobalPointAndSetup(center,0,false);
G4TouchableHistoryHandle touchable = aNavigator->
G4TouchableHistoryHandle touchable = aNavigator->
CreateTouchableHistoryHandle();
// set Global2local transform
fGlobal2local = touchable->GetHistory()->GetTopTransform();
// set Global2local transform
fGlobal2local = touchable->GetHistory()->GetTopTransform();
G4ThreeVector direction(0.0,0.0,1.0);
direction = fGlobal2local.Inverse().TransformAxis(direction);
direction = fGlobal2local.Inverse().TransformAxis(direction);
delete aNavigator;
}
fParticleGun->SetParticleMomentumDirection(direction);
fParticleGun->SetParticleMomentumDirection(direction);
}
G4double x0,y0,z0 ;
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04PrimaryGeneratorMessenger.cc 77884 2013-11-29 08:41:11Z gcosmo $
//
/// \file field/field04/src/F04PrimaryGeneratorMessenger.cc
/// \brief Implementation of the F04PrimaryGeneratorMessenger class
//
//
#include "G4UIcmdWithAString.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
#include "G4SystemOfUnits.hh"
@@ -52,16 +54,19 @@ F04PrimaryGeneratorMessenger::
fSetXvertexCmd->SetGuidance(" Set x coord. of the primary vertex.");
fSetXvertexCmd->SetParameterName("xv",true);
fSetXvertexCmd->SetDefaultValue(0.0*mm);
fSetXvertexCmd->SetDefaultUnit("mm");
fSetYvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/yvertex",this);
fSetYvertexCmd->SetGuidance(" Set y coord. of the primary vertex.");
fSetYvertexCmd->SetParameterName("yv",true);
fSetYvertexCmd->SetDefaultValue(0.0*mm);
fSetYvertexCmd->SetDefaultUnit("mm");
fSetZvertexCmd = new G4UIcmdWithADoubleAndUnit("/gun/zvertex",this);
fSetZvertexCmd->SetGuidance(" Set z coord. of the primary vertex.");
fSetZvertexCmd->SetParameterName("zv",true);
fSetZvertexCmd->SetDefaultValue(0.0*mm);
fSetZvertexCmd->SetDefaultUnit("mm");
}
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04RunAction.cc 78002 2013-12-02 08:25:49Z gcosmo $
//
/// \file field/field04/src/F04RunAction.cc
/// \brief Implementation of the F04RunAction class
//
//
#include "F04RunAction.hh"
#include "F04RunActionMessenger.hh"
@@ -35,8 +37,6 @@
#include "Randomize.hh"
#include "F04GlobalField.hh"
#include <ctime>
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -55,6 +55,7 @@ F04RunAction::~F04RunAction()
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include "G4Threading.hh"
void F04RunAction::BeginOfRunAction(const G4Run* aRun)
{
@@ -72,21 +73,17 @@ void F04RunAction::BeginOfRunAction(const G4Run* aRun)
time_t systime = time(NULL);
seeds[0] = (long) systime;
seeds[1] = (long) (systime*G4UniformRand());
CLHEP::HepRandom::setTheSeeds(seeds);
CLHEP::HepRandom::showEngineStatus();
G4Random::setTheSeeds(seeds);
G4Random::showEngineStatus();
} else {
CLHEP::HepRandom::showEngineStatus();
G4Random::showEngineStatus();
}
if (fSaveRndm > 0) CLHEP::HepRandom::saveEngineStatus("BeginOfRun.rndm");
FieldList* fields = F04GlobalField::GetObject()->GetFields();
if (fields) {
if (fields->size()>0) {
FieldList::iterator i;
for (i=fields->begin(); i!=fields->end(); ++i)(*i)->Construct();
}
if (fSaveRndm > 0)
{
std::ostringstream os;
os<<"beginOfRun_"<<G4Threading::G4GetThreadId()<<".rndm";
G4Random::saveEngineStatus(os.str().c_str());
}
}
@@ -95,7 +92,11 @@ void F04RunAction::BeginOfRunAction(const G4Run* aRun)
void F04RunAction::EndOfRunAction(const G4Run*)
{
if (fSaveRndm == 1) {
CLHEP::HepRandom::showEngineStatus();
CLHEP::HepRandom::saveEngineStatus("endOfRun.rndm");
G4Random::showEngineStatus();
std::ostringstream os;
os<<"endOfRun_"<<G4Threading::G4GetThreadId()<<".rndm";
G4Random::saveEngineStatus(os.str().c_str());
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04RunActionMessenger.cc 76690 2013-11-14 08:45:07Z gcosmo $
//
/// \file field/field04/src/F04RunActionMessenger.cc
/// \brief Implementation of the F04RunActionMessenger class
//
//
#include "globals.hh"
#include "Randomize.hh"
@@ -89,8 +91,8 @@ void F04RunActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
if (command == fRndmReadCmd)
{ G4cout << "\n---> rndm status restored from file: " << newValue << G4endl;
CLHEP::HepRandom::restoreEngineStatus(newValue);
CLHEP::HepRandom::showEngineStatus();
G4Random::restoreEngineStatus(newValue);
G4Random::showEngineStatus();
}
if(command == fSetAutoSeedCmd)
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04SimpleSolenoid.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04SimpleSolenoid.cc
/// \brief Implementation of the F04SimpleSolenoid class
//
//
#include "globals.hh"
#include "G4GeometryManager.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04StackingAction.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04StackingAction.cc
/// \brief Implementation of the F04StackingAction class
//
//
#include "F04StackingAction.hh"
#include "G4RunManager.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04StepMax.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04StepMax.cc
/// \brief Implementation of the F04StepMax class
//
//
#include "G4Track.hh"
#include "G4VParticleChange.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04SteppingAction.cc 73014 2013-08-15 08:54:47Z gcosmo $
//
/// \file field/field04/src/F04SteppingAction.cc
/// \brief Implementation of the F04SteppingAction class
//
//
#include "G4Track.hh"
#include "F04SteppingAction.hh"
@@ -46,7 +48,7 @@ F04SteppingAction::F04SteppingAction()
fTargetVolume(0),
fTestPlaneVolume(0)
{
fSteppingMessenger = new F04SteppingActionMessenger(this);
fSteppingMessenger = new F04SteppingActionMessenger();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,20 +23,20 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04SteppingActionMessenger.cc 73014 2013-08-15 08:54:47Z gcosmo $
//
/// \file field/field04/src/F04SteppingActionMessenger.cc
/// \brief Implementation of the F04SteppingActionMessenger class
//
//
#include "G4UIdirectory.hh"
#include "F04SteppingAction.hh"
#include "F04SteppingActionMessenger.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
F04SteppingActionMessenger::
F04SteppingActionMessenger(F04SteppingAction* steppingAction)
: fSteppingAction (steppingAction)
F04SteppingActionMessenger()
{
fSteppingDir = new G4UIdirectory("/stepping/");
fSteppingDir->SetGuidance("stepping control");
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04SteppingVerbose.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04SteppingVerbose.cc
/// \brief Implementation of the F04SteppingVerbose class
//
//
#include "G4UnitsTable.hh"
#include "F04SteppingVerbose.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04TrackingAction.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04TrackingAction.cc
/// \brief Implementation of the F04TrackingAction class
//
//
#include "globals.hh"
#include "G4RunManager.hh"
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04Trajectory.cc 76690 2013-11-14 08:45:07Z gcosmo $
//
/// \file field/field04/src/F04Trajectory.cc
/// \brief Implementation of the F04Trajectory class
//
//
#include "G4AttDef.hh"
#include "G4AttValue.hh"
#include "G4AttDefStore.hh"
@@ -43,7 +45,7 @@
#include "G4AttCheck.hh"
#endif
G4Allocator<F04Trajectory> myTrajectoryAllocator;
G4ThreadLocal G4Allocator<F04Trajectory>* F04TrajectoryAllocator=0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -119,15 +121,6 @@ void F04Trajectory::DrawTrajectory() const
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04Trajectory::DrawTrajectory(G4int i_mode) const
{
// Invoke the default implementation in G4VTrajectory...
G4VTrajectory::DrawTrajectory(i_mode);
// ... or override with your own code here.
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void F04Trajectory::AppendStep(const G4Step* aStep)
{
fpPointsContainer->push_back(new F04TrajectoryPoint(aStep));
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04TrajectoryPoint.cc 76690 2013-11-14 08:45:07Z gcosmo $
//
/// \file field/field04/src/F04TrajectoryPoint.cc
/// \brief Implementation of the F04TrajectoryPoint class
//
//
#include "F04TrajectoryPoint.hh"
#include "G4Step.hh"
@@ -45,7 +47,7 @@
#include "G4AttCheck.hh"
#endif
G4Allocator<F04TrajectoryPoint> aTrajPointAllocator;
G4ThreadLocal G4Allocator<F04TrajectoryPoint>* F04TrajPointAllocator=0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,10 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: F04UserTrackInformation.cc 68021 2013-03-13 13:36:07Z gcosmo $
//
/// \file field/field04/src/F04UserTrackInformation.cc
/// \brief Implementation of the F04UserTrackInformation class
//
//
#include "F04UserTrackInformation.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......