Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
/// \brief Implementation of the DetectorConstruction class
|
||||
//
|
||||
//
|
||||
// $Id: DetectorConstruction.cc 94932 2015-12-18 09:21:29Z gcosmo $
|
||||
// $Id: DetectorConstruction.cc 101309 2016-11-14 11:26:17Z gcosmo $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -40,11 +40,16 @@
|
||||
#include "DetectorBarr90.hh"
|
||||
#include "DetectorMessenger.hh"
|
||||
#include "Materials.hh"
|
||||
#include "G4Region.hh"
|
||||
#include "G4RegionStore.hh"
|
||||
#include "G4ProductionCuts.hh"
|
||||
|
||||
#include "G4LogicalVolumeStore.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
DetectorConstruction::DetectorConstruction()
|
||||
@@ -68,58 +73,68 @@ DetectorConstruction::~DetectorConstruction()
|
||||
|
||||
G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
{
|
||||
G4VPhysicalVolume* world = nullptr;
|
||||
if( fSetUp == "simpleALICE" )
|
||||
{
|
||||
DetectorSimpleALICE simpleALICE;
|
||||
G4VPhysicalVolume* world = simpleALICE.Construct();
|
||||
world = simpleALICE.Construct();
|
||||
fRadiatorDescription = simpleALICE.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
else if( fSetUp == "alice06" )
|
||||
{
|
||||
DetectorALICE06 alice06;
|
||||
G4VPhysicalVolume* world = alice06.Construct();
|
||||
world = alice06.Construct();
|
||||
fRadiatorDescription = alice06.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
else if( fSetUp == "bari05" )
|
||||
{
|
||||
DetectorBari05 bari05;
|
||||
G4VPhysicalVolume* world = bari05.Construct();
|
||||
world = bari05.Construct();
|
||||
fRadiatorDescription = bari05.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
else if( fSetUp == "harris73" )
|
||||
{
|
||||
DetectorHarris73 harris73;
|
||||
G4VPhysicalVolume* world = harris73.Construct();
|
||||
world = harris73.Construct();
|
||||
fRadiatorDescription = harris73.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
else if( fSetUp == "watase86" )
|
||||
{
|
||||
DetectorWatase86 watase86;
|
||||
G4VPhysicalVolume* world = watase86.Construct();
|
||||
world = watase86.Construct();
|
||||
fRadiatorDescription = watase86.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
else if( fSetUp == "barr90" )
|
||||
{
|
||||
DetectorBarr90 barr90;
|
||||
G4VPhysicalVolume* world = barr90.Construct();
|
||||
world = barr90.Construct();
|
||||
fRadiatorDescription = barr90.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
else
|
||||
{
|
||||
G4cout << "Experimental setup is unsupported. Check /XTRdetector/setup " <<G4endl;
|
||||
G4cout << "Experimental setup is unsupported. Check /XTRdetector/setup "
|
||||
<<G4endl;
|
||||
G4cout << "Run default: simpleALICE"<<G4endl;
|
||||
|
||||
DetectorSimpleALICE simpleALICE;
|
||||
G4VPhysicalVolume* world = simpleALICE.Construct();
|
||||
world = simpleALICE.Construct();
|
||||
fRadiatorDescription = simpleALICE.GetRadiatorDescription();
|
||||
return world;
|
||||
}
|
||||
G4RegionStore* regionStore = G4RegionStore::GetInstance();
|
||||
size_t nRegions = regionStore->size();
|
||||
G4double cut = 1.*CLHEP::mm;
|
||||
for(size_t i=0; i<nRegions; ++i) {
|
||||
G4Region* reg = (*regionStore)[i];
|
||||
if(!reg->GetProductionCuts()) {
|
||||
G4ProductionCuts* cuts = new G4ProductionCuts();
|
||||
cuts->SetProductionCut(cut,"gamma");
|
||||
cuts->SetProductionCut(cut,"e-");
|
||||
cuts->SetProductionCut(cut,"e+");
|
||||
cuts->SetProductionCut(cut,"proton");
|
||||
reg->SetProductionCuts(cuts);
|
||||
}
|
||||
}
|
||||
return world;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -127,7 +142,7 @@ G4VPhysicalVolume* DetectorConstruction::Construct()
|
||||
RadiatorDescription* DetectorConstruction::GetRadiatorDescription() const
|
||||
{
|
||||
if ( ! fRadiatorDescription ) {
|
||||
G4cerr << "RadiatorDescription is not defined" << G4endl;
|
||||
G4cout << "RadiatorDescription is not defined" << G4endl;
|
||||
}
|
||||
return fRadiatorDescription;
|
||||
}
|
||||
|
||||
@@ -115,7 +115,8 @@ G4VPhysicalVolume* DetectorSimpleALICE::Construct()
|
||||
|
||||
// Radiator description
|
||||
fRadiatorDescription = new RadiatorDescription;
|
||||
fRadiatorDescription->fFoilMaterial = mylar; // CH2; // Kapton; // Mylar ; // Li ; // CH2 ;
|
||||
fRadiatorDescription->fFoilMaterial = mylar;
|
||||
// CH2; // Kapton; // Mylar ; // Li ; // CH2 ;
|
||||
fRadiatorDescription->fGasMaterial = air; // CO2; // He; //
|
||||
fRadiatorDescription->fFoilThickness = radThickness;
|
||||
fRadiatorDescription->fGasThickness = gasGap;
|
||||
@@ -142,7 +143,8 @@ G4VPhysicalVolume* DetectorSimpleALICE::Construct()
|
||||
G4double radZ = startZ + 0.5*radThick;
|
||||
|
||||
G4VSolid* solidRadiator
|
||||
= new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius, 0.5*radThick);
|
||||
= new G4Box("Radiator", 1.1*absorberRadius, 1.1*absorberRadius,
|
||||
0.5*radThick);
|
||||
|
||||
G4LogicalVolume* logicRadiator
|
||||
= new G4LogicalVolume(solidRadiator, radiatorMat, "Radiator");
|
||||
@@ -160,7 +162,8 @@ G4VPhysicalVolume* DetectorSimpleALICE::Construct()
|
||||
// Absorber
|
||||
|
||||
G4VSolid* solidAbsorber
|
||||
= new G4Box("Absorber", absorberRadius, absorberRadius, absorberThickness/2.);
|
||||
= new G4Box("Absorber", absorberRadius, absorberRadius,
|
||||
absorberThickness/2.);
|
||||
|
||||
G4LogicalVolume* logicAbsorber
|
||||
= new G4LogicalVolume(solidAbsorber, absorberMaterial, "Absorber");
|
||||
@@ -168,7 +171,8 @@ G4VPhysicalVolume* DetectorSimpleALICE::Construct()
|
||||
G4double windowZ = startZ + radThick + windowThick/2. + 15.0*mm;
|
||||
G4double gapZ = windowZ + windowThick/2. + gapThick/2. + 0.01*mm;
|
||||
G4double electrodeZ = gapZ + gapThick/2. + electrodeThick/2. + 0.01*mm;
|
||||
G4double absorberZ = electrodeZ + electrodeThick/2. + absorberThickness/2. + 0.01*mm;
|
||||
G4double absorberZ = electrodeZ + electrodeThick/2.
|
||||
+ absorberThickness/2. + 0.01*mm;
|
||||
|
||||
new G4PVPlacement(0, G4ThreeVector(0., 0., absorberZ),
|
||||
"Absorber", logicAbsorber, physicsWorld, false, 0);
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/// \file electromagnetic/TestEm10/src/PhysicsList.cc
|
||||
/// \brief Implementation of the PhysicsList class
|
||||
//
|
||||
// $Id: PhysicsList.cc 94932 2015-12-18 09:21:29Z gcosmo $
|
||||
// $Id: PhysicsList.cc 100281 2016-10-17 08:37:40Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -220,10 +220,11 @@ void PhysicsList::AddStepMax()
|
||||
// Step limitation seen as a process
|
||||
fStepMaxProcess = new StepMax();
|
||||
|
||||
theParticleIterator->reset();
|
||||
while ((*theParticleIterator)())
|
||||
auto particleIterator=GetParticleIterator();
|
||||
particleIterator->reset();
|
||||
while ((*particleIterator)())
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ParticleDefinition* particle = particleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
|
||||
if (fStepMaxProcess->IsApplicable(*particle))
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm5/src/StackingAction.cc
|
||||
/// \file electromagnetic/TestEm10/src/StackingAction.cc
|
||||
/// \brief Implementation of the StackingAction class
|
||||
//
|
||||
// $Id: StackingAction.cc 88674 2015-03-05 08:29:46Z gcosmo $
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm8/src/StepMax.cc
|
||||
/// \file electromagnetic/TestEm10/src/StepMax.cc
|
||||
/// \brief Implementation of the StepMax class
|
||||
//
|
||||
// $Id: StepMax.cc 94932 2015-12-18 09:21:29Z gcosmo $
|
||||
// $Id: StepMax.cc 98276 2016-07-04 18:00:15Z gcosmo $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm8/src/StepMaxMessenger.cc
|
||||
/// \file electromagnetic/TestEm10/src/StepMaxMessenger.cc
|
||||
/// \brief Implementation of the StepMaxMessenger class
|
||||
//
|
||||
// $Id: StepMaxMessenger.cc 67268 2013-02-13 11:38:40Z ihrivnac $
|
||||
|
||||
Reference in New Issue
Block a user