Import Geant4 9.6.0 source tree
This commit is contained in:
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10CalorHit.cc
|
||||
/// \brief Implementation of the Em10CalorHit class
|
||||
//
|
||||
// $Id: Em10CalorHit.cc,v 1.4 2006-06-29 16:38:31 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10CalorimeterSD.cc
|
||||
/// \brief Implementation of the Em10CalorimeterSD class
|
||||
//
|
||||
// $Id: Em10CalorimeterSD.cc,v 1.4 2006-06-29 16:38:33 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10DetectorConstruction.cc
|
||||
/// \brief Implementation of the Em10DetectorConstruction class
|
||||
//
|
||||
// $Id: Em10DetectorConstruction.cc,v 1.32 2007-07-27 17:52:04 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
@@ -56,6 +58,7 @@
|
||||
#include "G4Colour.hh"
|
||||
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@@ -217,10 +220,10 @@ G4VPhysicalVolume* Em10DetectorConstruction::SimpleSetUpALICE()
|
||||
|
||||
fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.);
|
||||
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
@@ -232,23 +235,23 @@ G4VPhysicalVolume* Em10DetectorConstruction::SimpleSetUpALICE()
|
||||
1.1*fAbsorberRadius, 0.5*fRadThick );
|
||||
|
||||
fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat,
|
||||
"Radiator");
|
||||
"Radiator");
|
||||
|
||||
fPhysicsRadiator = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
|
||||
// create region for window inside windowR for
|
||||
|
||||
if( fRadRegion != 0 ) delete fRadRegion;
|
||||
if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator");
|
||||
fRadRegion->AddRootLogicalVolume(fLogicRadiator);
|
||||
|
||||
|
||||
|
||||
|
||||
fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm ;
|
||||
|
||||
|
||||
// G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001,
|
||||
// fAbsorberRadius+0.001,
|
||||
// fWindowThick/2.+0.001 );
|
||||
@@ -256,11 +259,11 @@ G4VPhysicalVolume* Em10DetectorConstruction::SimpleSetUpALICE()
|
||||
// G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR,
|
||||
// fWorldMaterial, "WindowR");
|
||||
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,fWindowZ),
|
||||
// "WindowR",logicWindowR,fPhysicsWorld,false,0);
|
||||
// window
|
||||
|
||||
|
||||
// G4Box* solidWindow = new G4Box("Window",fAbsorberRadius,
|
||||
// fAbsorberRadius, fWindowThick/2.);
|
||||
|
||||
@@ -279,12 +282,12 @@ G4VPhysicalVolume* Em10DetectorConstruction::SimpleSetUpALICE()
|
||||
|
||||
fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + fAbsorberThickness/2. + 0.01*mm;
|
||||
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fAbsorberRadius, fAbsorberThickness/2.);
|
||||
|
||||
fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial,
|
||||
"Absorber");
|
||||
|
||||
"Absorber");
|
||||
|
||||
fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ),
|
||||
"Absorber", fLogicAbsorber,
|
||||
fPhysicsWorld, false, 0);
|
||||
@@ -419,10 +422,10 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpALICE06()
|
||||
|
||||
fSolidWorld = new G4Box("World", fWorldSizeR, fWorldSizeR, fWorldSizeZ/2.);
|
||||
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
@@ -438,19 +441,19 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpALICE06()
|
||||
1.1*fAbsorberRadius, 0.5*fRadThick );
|
||||
|
||||
fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat,
|
||||
"Radiator");
|
||||
"Radiator");
|
||||
|
||||
fPhysicsRadiator = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
|
||||
// create region for radiator
|
||||
|
||||
if( fRadRegion != 0 ) delete fRadRegion;
|
||||
if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator");
|
||||
fRadRegion->AddRootLogicalVolume(fLogicRadiator);
|
||||
|
||||
|
||||
// Drift Electrode on both sides of Radiator:
|
||||
|
||||
G4double zElectrode1 = fRadZ - fRadThick/2. - fElectrodeThick/2.;
|
||||
@@ -582,15 +585,15 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpALICE06()
|
||||
|
||||
|
||||
fSolidAbsorber = new G4Box("Absorber",
|
||||
fAbsorberRadius,
|
||||
fAbsorberRadius,
|
||||
// fAbsorberRadius,
|
||||
// 10.*mm,
|
||||
// 10.*mm,
|
||||
10.*mm,
|
||||
fAbsorberThickness/2.);
|
||||
|
||||
fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial,
|
||||
"Absorber");
|
||||
|
||||
"Absorber");
|
||||
|
||||
fPhysicsAbsorber = new G4PVPlacement(0,
|
||||
G4ThreeVector(0., 0., fAbsorberZ),
|
||||
"Absorber", fLogicAbsorber,
|
||||
@@ -727,10 +730,10 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBari05()
|
||||
|
||||
fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.);
|
||||
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
@@ -745,19 +748,19 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBari05()
|
||||
1.1*fAbsorberRadius, 0.5*fRadThick );
|
||||
|
||||
fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat,
|
||||
"Radiator");
|
||||
"Radiator");
|
||||
|
||||
fPhysicsRadiator = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
|
||||
// create region for radiator
|
||||
|
||||
if( fRadRegion != 0 ) delete fRadRegion;
|
||||
if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator");
|
||||
fRadRegion->AddRootLogicalVolume(fLogicRadiator);
|
||||
|
||||
|
||||
// Drift Electrode on both sides of Radiator:
|
||||
|
||||
// G4Box* solidElectrode = new G4Box("Electrode",fAbsorberRadius*1.1,
|
||||
@@ -883,13 +886,13 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBari05()
|
||||
|
||||
|
||||
fSolidAbsorber = new G4Box("Absorber",
|
||||
// fAbsorberRadius, fAbsorberRadius,
|
||||
10.*mm,10.*mm,
|
||||
// fAbsorberRadius, fAbsorberRadius,
|
||||
10.*mm,10.*mm,
|
||||
fAbsorberThickness/2.);
|
||||
|
||||
fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial,
|
||||
"Absorber");
|
||||
|
||||
"Absorber");
|
||||
|
||||
fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ),
|
||||
"Absorber", fLogicAbsorber,
|
||||
fPhysicsWorld, false, 0);
|
||||
@@ -989,10 +992,10 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpHarris73()
|
||||
|
||||
fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.);
|
||||
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
@@ -1004,23 +1007,23 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpHarris73()
|
||||
1.1*fAbsorberRadius, 0.5*fRadThick );
|
||||
|
||||
fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat,
|
||||
"Radiator");
|
||||
"Radiator");
|
||||
|
||||
fPhysicsRadiator = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
|
||||
// create region for window inside windowR for
|
||||
|
||||
if( fRadRegion != 0 ) delete fRadRegion;
|
||||
if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator");
|
||||
fRadRegion->AddRootLogicalVolume(fLogicRadiator);
|
||||
|
||||
|
||||
|
||||
|
||||
fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm ;
|
||||
|
||||
|
||||
// G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001,
|
||||
// fAbsorberRadius+0.001,
|
||||
// fWindowThick/2.+0.001 );
|
||||
@@ -1028,11 +1031,11 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpHarris73()
|
||||
// G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR,
|
||||
// fWorldMaterial, "WindowR");
|
||||
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,fWindowZ),
|
||||
// "WindowR",logicWindowR,fPhysicsWorld,false,0);
|
||||
// window
|
||||
|
||||
|
||||
// G4Box* solidWindow = new G4Box("Window",fAbsorberRadius,
|
||||
// fAbsorberRadius, fWindowThick/2.);
|
||||
|
||||
@@ -1051,12 +1054,12 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpHarris73()
|
||||
|
||||
fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + fAbsorberThickness/2. + 0.01*mm;
|
||||
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fAbsorberRadius, fAbsorberThickness/2.);
|
||||
|
||||
fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial,
|
||||
"Absorber");
|
||||
|
||||
"Absorber");
|
||||
|
||||
fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ),
|
||||
"Absorber", fLogicAbsorber,
|
||||
fPhysicsWorld, false, 0);
|
||||
@@ -1158,10 +1161,10 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpWatase86()
|
||||
|
||||
fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.);
|
||||
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
@@ -1173,23 +1176,23 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpWatase86()
|
||||
1.1*fAbsorberRadius, 0.5*fRadThick );
|
||||
|
||||
fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat,
|
||||
"Radiator");
|
||||
"Radiator");
|
||||
|
||||
fPhysicsRadiator = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
|
||||
// create region for window inside windowR for
|
||||
|
||||
if( fRadRegion != 0 ) delete fRadRegion;
|
||||
if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator");
|
||||
fRadRegion->AddRootLogicalVolume(fLogicRadiator);
|
||||
|
||||
|
||||
|
||||
|
||||
fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm ;
|
||||
|
||||
|
||||
// G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001,
|
||||
// fAbsorberRadius+0.001,
|
||||
// fWindowThick/2.+0.001 );
|
||||
@@ -1197,11 +1200,11 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpWatase86()
|
||||
// G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR,
|
||||
// fWorldMaterial, "WindowR");
|
||||
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,fWindowZ),
|
||||
// "WindowR",logicWindowR,fPhysicsWorld,false,0);
|
||||
// window
|
||||
|
||||
|
||||
// G4Box* solidWindow = new G4Box("Window",fAbsorberRadius,
|
||||
// fAbsorberRadius, fWindowThick/2.);
|
||||
|
||||
@@ -1220,12 +1223,12 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpWatase86()
|
||||
|
||||
fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + fAbsorberThickness/2. + 0.01*mm;
|
||||
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fAbsorberRadius, fAbsorberThickness/2.);
|
||||
|
||||
fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial,
|
||||
"Absorber");
|
||||
|
||||
"Absorber");
|
||||
|
||||
fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ),
|
||||
"Absorber", fLogicAbsorber,
|
||||
fPhysicsWorld, false, 0);
|
||||
@@ -1327,10 +1330,10 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBarr90()
|
||||
|
||||
fSolidWorld = new G4Box("World", fWorldSizeR,fWorldSizeR,fWorldSizeZ/2.);
|
||||
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
fLogicWorld = new G4LogicalVolume(fSolidWorld, fWorldMaterial, "World");
|
||||
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
fPhysicsWorld = new G4PVPlacement(0, G4ThreeVector(), "World",
|
||||
fLogicWorld, 0, false, 0);
|
||||
|
||||
// TR radiator envelope
|
||||
|
||||
@@ -1342,23 +1345,23 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBarr90()
|
||||
1.1*fAbsorberRadius, 0.5*fRadThick );
|
||||
|
||||
fLogicRadiator = new G4LogicalVolume(fSolidRadiator, fRadiatorMat,
|
||||
"Radiator");
|
||||
"Radiator");
|
||||
|
||||
fPhysicsRadiator = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
G4ThreeVector(0,0,fRadZ),
|
||||
"Radiator", fLogicRadiator,
|
||||
fPhysicsWorld, false, 0 );
|
||||
|
||||
// create region for window inside windowR for
|
||||
|
||||
if( fRadRegion != 0 ) delete fRadRegion;
|
||||
if( fRadRegion == 0 ) fRadRegion = new G4Region("XTRradiator");
|
||||
fRadRegion->AddRootLogicalVolume(fLogicRadiator);
|
||||
|
||||
|
||||
|
||||
|
||||
fWindowZ = fStartZ + fRadThick + fWindowThick/2. + 15.0*mm ;
|
||||
|
||||
|
||||
// G4Box* solidWindowR = new G4Box("WindowR",fAbsorberRadius+0.001,
|
||||
// fAbsorberRadius+0.001,
|
||||
// fWindowThick/2.+0.001 );
|
||||
@@ -1366,11 +1369,11 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBarr90()
|
||||
// G4LogicalVolume* logicWindowR = new G4LogicalVolume(solidWindowR,
|
||||
// fWorldMaterial, "WindowR");
|
||||
//
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4VPhysicalVolume* physiWindowR = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,fWindowZ),
|
||||
// "WindowR",logicWindowR,fPhysicsWorld,false,0);
|
||||
// window
|
||||
|
||||
|
||||
// G4Box* solidWindow = new G4Box("Window",fAbsorberRadius,
|
||||
// fAbsorberRadius, fWindowThick/2.);
|
||||
|
||||
@@ -1389,12 +1392,12 @@ G4VPhysicalVolume* Em10DetectorConstruction::SetUpBarr90()
|
||||
|
||||
fAbsorberZ = fElectrodeZ + fElectrodeThick/2. + fAbsorberThickness/2. + 0.01*mm;
|
||||
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fSolidAbsorber = new G4Box("Absorber", fAbsorberRadius,
|
||||
fAbsorberRadius, fAbsorberThickness/2.);
|
||||
|
||||
fLogicAbsorber = new G4LogicalVolume(fSolidAbsorber, fAbsorberMaterial,
|
||||
"Absorber");
|
||||
|
||||
"Absorber");
|
||||
|
||||
fPhysicsAbsorber = new G4PVPlacement(0, G4ThreeVector(0.,0.,fAbsorberZ),
|
||||
"Absorber", fLogicAbsorber,
|
||||
fPhysicsWorld, false, 0);
|
||||
@@ -1517,9 +1520,9 @@ void Em10DetectorConstruction::TestOld()
|
||||
// fGapThick/2. ) ;
|
||||
|
||||
// G4LogicalVolume* logicGap = new G4LogicalVolume(solidGap,fGapMat, "Gap");
|
||||
|
||||
// G4VPhysicalVolume* physiGap = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,zGap),
|
||||
|
||||
// G4VPhysicalVolume* physiGap = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,zGap),
|
||||
// "Gap",logicGap,physiWorld,false,0);
|
||||
|
||||
|
||||
@@ -1528,9 +1531,9 @@ void Em10DetectorConstruction::TestOld()
|
||||
|
||||
// G4LogicalVolume* logicElectrode = new G4LogicalVolume(solidElectrode,
|
||||
// fElectrodeMat, "Electrode");
|
||||
|
||||
// G4VPhysicalVolume* physiElectrode = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,zElectrode),
|
||||
|
||||
// G4VPhysicalVolume* physiElectrode = new G4PVPlacement(0,
|
||||
// G4ThreeVector(0.,0.,zElectrode),
|
||||
// "Electrode",logicElectrode,
|
||||
// physiWorld,false,0);
|
||||
// if(solidAbsorber) delete solidAbsorber ;
|
||||
@@ -1749,9 +1752,9 @@ void Em10DetectorConstruction::SetMagField(G4double)
|
||||
G4FieldManager* fieldMgr
|
||||
= G4TransportationManager::GetTransportationManager()->GetFieldManager();
|
||||
|
||||
if(magField) delete magField; //delete the existing magn field
|
||||
if(magField) delete magField; //delete the existing magn field
|
||||
|
||||
if(fieldValue!=0.) // create a new one if non nul
|
||||
if(fieldValue!=0.) // create a new one if non nul
|
||||
{
|
||||
magField = new G4UniformMagField(G4ThreeVector(fieldValue,0.,0.));
|
||||
fieldMgr->SetDetectorField(magField);
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10DetectorMessenger.cc
|
||||
/// \brief Implementation of the Em10DetectorMessenger class
|
||||
//
|
||||
// $Id: Em10DetectorMessenger.cc,v 1.11 2006-06-29 16:38:38 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10EventAction.cc
|
||||
/// \brief Implementation of the Em10EventAction class
|
||||
//
|
||||
// $Id: Em10EventAction.cc,v 1.7 2010-06-06 04:33:02 perl Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10EventActionMessenger.cc
|
||||
/// \brief Implementation of the Em10EventActionMessenger class
|
||||
//
|
||||
// $Id: Em10EventActionMessenger.cc,v 1.4 2006-06-29 16:38:44 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10Materials.cc
|
||||
/// \brief Implementation of the Em10Materials class
|
||||
//
|
||||
//
|
||||
//
|
||||
// GEANT 4 class
|
||||
@@ -40,6 +43,7 @@
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
Em10Materials::Em10Materials()
|
||||
{
|
||||
@@ -390,22 +394,22 @@ void Em10Materials::Initialise()
|
||||
ma = new G4Material("Li", 3., 6.941*g/mole, 1.*g/cm3);
|
||||
ma = new G4Material("Be", 4., 9.01*g/mole, 1.848*g/cm3);
|
||||
ma = new G4Material("C", 6., 12.00*g/mole, 2.0*g/cm3);
|
||||
ma = new G4Material("Graphite",6., 12.00*g/mole, 2.265*g/cm3 );
|
||||
ma = new G4Material("Graphite",6., 12.00*g/mole, 2.265*g/cm3 );
|
||||
ma->SetChemicalFormula("Graphite");
|
||||
ma = new G4Material("Al", 13., 26.98*g/mole, 2.7 *g/cm3);
|
||||
ma = new G4Material("Si", 14., 29.055*g/mole, 2.33*g/cm3);
|
||||
ma = new G4Material("LAr", 18., 39.95*g/mole, 1.393*g/cm3);
|
||||
ma = new G4Material("Zr", 40., 91.224*g/mole, 4.0*g/cm3);
|
||||
ma = new G4Material("LXe", 54., 131.29*g/mole, 3.02*g/cm3);
|
||||
ma = new G4Material("Fe", 26., 55.85*g/mole, 7.87*g/cm3);
|
||||
ma = new G4Material("Ni", 29., 58.6934*g/mole, 8.00*g/cm3);
|
||||
ma = new G4Material("Cu", 29., 63.55*g/mole, 8.96*g/cm3);
|
||||
ma = new G4Material("Au", 79., 196.97*g/mole, 19.32*g/cm3);
|
||||
ma = new G4Material("Ta", 73., 180.9479*g/mole, 16.67*g/cm3);
|
||||
ma = new G4Material("W", 74., 183.85*g/mole, 19.30*g/cm3);
|
||||
ma = new G4Material("Pb", 82., 207.19*g/mole, 11.35*g/cm3);
|
||||
ma = new G4Material("Bi", 83., 208.98*g/mole, 12.*g/cm3);
|
||||
ma = new G4Material("U", 92., 238.03*g/mole, 18.95*g/cm3);
|
||||
ma = new G4Material("Si", 14., 29.055*g/mole, 2.33*g/cm3);
|
||||
ma = new G4Material("LAr", 18., 39.95*g/mole, 1.393*g/cm3);
|
||||
ma = new G4Material("Zr", 40., 91.224*g/mole, 4.0*g/cm3);
|
||||
ma = new G4Material("LXe", 54., 131.29*g/mole, 3.02*g/cm3);
|
||||
ma = new G4Material("Fe", 26., 55.85*g/mole, 7.87*g/cm3);
|
||||
ma = new G4Material("Ni", 29., 58.6934*g/mole, 8.00*g/cm3);
|
||||
ma = new G4Material("Cu", 29., 63.55*g/mole, 8.96*g/cm3);
|
||||
ma = new G4Material("Au", 79., 196.97*g/mole, 19.32*g/cm3);
|
||||
ma = new G4Material("Ta", 73., 180.9479*g/mole, 16.67*g/cm3);
|
||||
ma = new G4Material("W", 74., 183.85*g/mole, 19.30*g/cm3);
|
||||
ma = new G4Material("Pb", 82., 207.19*g/mole, 11.35*g/cm3);
|
||||
ma = new G4Material("Bi", 83., 208.98*g/mole, 12.*g/cm3);
|
||||
ma = new G4Material("U", 92., 238.03*g/mole, 18.95*g/cm3);
|
||||
|
||||
G4Element* H = new G4Element ("Hydrogen", "H", 1. , 1.01*g/mole);
|
||||
G4Element* N = new G4Element ("Nitrigen", "N", 7. , 14.00*g/mole);
|
||||
@@ -429,7 +433,7 @@ void Em10Materials::Initialise()
|
||||
ma->AddElement(I,1);
|
||||
ma->SetChemicalFormula("CsI");
|
||||
ma = new G4Material("Air" , 1.290*mg/cm3, 2);
|
||||
// use fraction in mass
|
||||
// use fraction in mass
|
||||
ma->AddElement(N, 0.7);
|
||||
ma->AddElement(O, 0.3);
|
||||
*/
|
||||
@@ -444,11 +448,11 @@ G4Material* Em10Materials::GetMaterial(const G4String& name)
|
||||
|
||||
// const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
|
||||
|
||||
G4Material* ma = G4Material::GetMaterial(name);
|
||||
|
||||
G4Material* ma = G4Material::GetMaterial(name);
|
||||
|
||||
G4cout << "Material is selected: " << ma->GetName() << G4endl;
|
||||
return ma;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10PhysicsList.cc
|
||||
/// \brief Implementation of the Em10PhysicsList class
|
||||
//
|
||||
// $Id: Em10PhysicsList.cc,v 1.25 2009-11-21 16:12:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
|
||||
#include "Em10PhysicsList.hh"
|
||||
@@ -39,6 +41,7 @@
|
||||
#include "G4Material.hh"
|
||||
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
@@ -213,73 +216,73 @@ void Em10PhysicsList::ConstructEM()
|
||||
{
|
||||
// G4GammaXTRadiator*
|
||||
processXTR = new G4GammaXTRadiator(pDet->GetLogicalRadiator(),
|
||||
100.,
|
||||
100.,
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"GammaXTRadiator");
|
||||
100.,
|
||||
100.,
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"GammaXTRadiator");
|
||||
}
|
||||
else if(fXTRModel == "gammaM" )
|
||||
{
|
||||
// G4XTRGammaRadModel*
|
||||
processXTR = new G4XTRGammaRadModel(pDet->GetLogicalRadiator(),
|
||||
100.,
|
||||
100.,
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"GammaXTRadiator");
|
||||
100.,
|
||||
100.,
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"GammaXTRadiator");
|
||||
}
|
||||
else if(fXTRModel == "strawR" )
|
||||
{
|
||||
|
||||
// G4StrawTubeXTRadiator*
|
||||
processXTR = new G4StrawTubeXTRadiator(pDet->GetLogicalRadiator(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
0.53, // pDet->GetFoilThick(),
|
||||
3.14159, // pDet->GetGasThick(),
|
||||
pDet->GetAbsorberMaterial(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
0.53, // pDet->GetFoilThick(),
|
||||
3.14159, // pDet->GetGasThick(),
|
||||
pDet->GetAbsorberMaterial(),
|
||||
true,
|
||||
"strawXTRadiator");
|
||||
"strawXTRadiator");
|
||||
}
|
||||
else if(fXTRModel == "regR" )
|
||||
{
|
||||
// G4RegularXTRadiator*
|
||||
processXTR = new G4RegularXTRadiator(pDet->GetLogicalRadiator(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
}
|
||||
else if(fXTRModel == "transpR" )
|
||||
{
|
||||
// G4TransparentRegXTRadiator*
|
||||
processXTR = new G4TransparentRegXTRadiator(pDet->GetLogicalRadiator(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
}
|
||||
else if(fXTRModel == "regM" )
|
||||
{
|
||||
// G4XTRRegularRadModel*
|
||||
processXTR = new G4XTRRegularRadModel(pDet->GetLogicalRadiator(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
|
||||
}
|
||||
else if(fXTRModel == "transpM" )
|
||||
@@ -287,12 +290,12 @@ void Em10PhysicsList::ConstructEM()
|
||||
// G4XTRTransparentRegRadModel*
|
||||
// processXTR = new G4XTRTransparentRegRadModel(pDet->GetLogicalRadiator(),
|
||||
processXTR = new Em10XTRTransparentRegRadModel(pDet->GetLogicalRadiator(),
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
pDet->GetFoilMaterial(),
|
||||
pDet->GetGasMaterial(),
|
||||
pDet->GetFoilThick(),
|
||||
pDet->GetGasThick(),
|
||||
pDet->GetFoilNumber(),
|
||||
"RegularXTRadiator");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -356,7 +359,7 @@ void Em10PhysicsList::ConstructEM()
|
||||
|
||||
}
|
||||
else if( particleName == "mu+" ||
|
||||
particleName == "mu-" )
|
||||
particleName == "mu-" )
|
||||
{
|
||||
// Construct processes for muon+
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc
|
||||
/// \brief Implementation of the Em10PhysicsListMessenger class
|
||||
//
|
||||
// $Id: Em10PhysicsListMessenger.cc,v 1.9 2006-06-29 16:38:52 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the Em10PrimaryGeneratorAction class
|
||||
//
|
||||
// $Id: Em10PrimaryGeneratorAction.cc,v 1.6 2006-06-29 16:38:55 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
@@ -43,6 +45,8 @@
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc
|
||||
/// \brief Implementation of the Em10PrimaryGeneratorMessenger class
|
||||
//
|
||||
// $Id: Em10PrimaryGeneratorMessenger.cc,v 1.4 2006-06-29 16:38:57 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
@@ -37,6 +39,7 @@
|
||||
#include "Em10PrimaryGeneratorAction.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10RunAction.cc
|
||||
/// \brief Implementation of the Em10RunAction class
|
||||
//
|
||||
// $Id: Em10RunAction.cc,v 1.9 2006-06-29 16:38:59 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
@@ -39,6 +41,8 @@
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@@ -50,6 +54,17 @@ Em10RunAction::Em10RunAction()
|
||||
{
|
||||
runMessenger = new Em10RunMessenger(this);
|
||||
saveRndm = 1;
|
||||
|
||||
EnergySumAbs = EnergySquareSumAbs = tlSumAbs = tlsquareSumAbs =
|
||||
nStepSumCharged = nStepSum2Charged= nStepSumNeutral = nStepSum2Neutral=
|
||||
TotNbofEvents = SumCharged= SumNeutral=Sum2Charged=Sum2Neutral=Selectron=
|
||||
Spositron=Transmitted=Reflected =dStep=entryStep=underStep=overStep=
|
||||
dEn = entryEn= underEn=overEn=dTt = entryTt=underTt=overTt=Ttmean=
|
||||
Tt2mean=dTb = entryTb=underTb=overTb=Tbmean=Tb2mean=dTsec =entryTsec=
|
||||
underTsec=overTsec=dTh = entryTh=underTh=overTh=dThback =entryThback=
|
||||
underThback=overThback=dR =entryR =underR =overR =Rmean=R2mean=dEGamma=
|
||||
entryGamma = underGamma=overGamma=dz=entryvertexz=undervertexz=
|
||||
oververtexz=0.;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
@@ -63,76 +78,6 @@ Em10RunAction::~Em10RunAction()
|
||||
|
||||
void Em10RunAction::bookHisto()
|
||||
{
|
||||
/*
|
||||
// init hbook
|
||||
|
||||
hbookManager = new HBookFile(histName, 68);
|
||||
assert (hbookManager != 0);
|
||||
|
||||
// book histograms
|
||||
|
||||
if(nbinStep>0)
|
||||
{
|
||||
histo1 = hbookManager->histogram("number of steps/event"
|
||||
,nbinStep,Steplow,Stephigh) ;
|
||||
assert (histo1 != 0);
|
||||
}
|
||||
if(nbinEn>0)
|
||||
{
|
||||
histo2 = hbookManager->histogram("Energy Loss (keV)"
|
||||
,nbinEn,Enlow/keV,Enhigh/keV) ;
|
||||
assert (histo2 != 0);
|
||||
}
|
||||
if(nbinTh>0)
|
||||
{
|
||||
histo3 = hbookManager->histogram("angle distribution at exit(deg)"
|
||||
,nbinTh,Thlow/deg,Thhigh/deg) ;
|
||||
assert (histo3 != 0);
|
||||
}
|
||||
if(nbinR>0)
|
||||
{
|
||||
histo4 = hbookManager->histogram("lateral distribution at exit(mm)"
|
||||
,nbinR ,Rlow,Rhigh) ;
|
||||
assert (histo4 != 0);
|
||||
}
|
||||
if(nbinTt>0)
|
||||
{
|
||||
histo5 = hbookManager->histogram("kinetic energy of the primary at exit(MeV)"
|
||||
,nbinTt,Ttlow,Tthigh) ;
|
||||
assert (histo5 != 0);
|
||||
}
|
||||
if(nbinThback>0)
|
||||
{
|
||||
histo6 = hbookManager->histogram("angle distribution of backscattered primaries(deg)"
|
||||
,nbinThback,Thlowback/deg,Thhighback/deg) ;
|
||||
assert (histo6 != 0);
|
||||
}
|
||||
if(nbinTb>0)
|
||||
{
|
||||
histo7 = hbookManager->histogram("kinetic energy of the backscattered primaries (MeV)"
|
||||
,nbinTb,Tblow,Tbhigh) ;
|
||||
assert (histo7 != 0);
|
||||
}
|
||||
if(nbinTsec>0)
|
||||
{
|
||||
histo8 = hbookManager->histogram("kinetic energy of the charged secondaries (MeV)"
|
||||
,nbinTsec,Tseclow,Tsechigh) ;
|
||||
assert (histo8 != 0);
|
||||
}
|
||||
if(nbinvertexz>0)
|
||||
{
|
||||
histo9 = hbookManager->histogram("z of secondary charged vertices(mm)"
|
||||
,nbinvertexz ,zlow,zhigh) ;
|
||||
assert (histo9 != 0);
|
||||
}
|
||||
if(nbinGamma>0)
|
||||
{
|
||||
histo10= hbookManager->histogram("kinetic energy of gammas escaping the absorber (MeV)"
|
||||
// ,nbinGamma,ElowGamma,EhighGamma) ;
|
||||
,nbinGamma,std::log10(ElowGamma),std::log10(EhighGamma)) ;
|
||||
assert (histo10 != 0);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@@ -173,7 +118,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
Transmitted=0.;
|
||||
Reflected =0.;
|
||||
|
||||
// plot definitions
|
||||
// plot definitions
|
||||
|
||||
if(nbinStep>0)
|
||||
{
|
||||
@@ -181,7 +126,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryStep=0.;
|
||||
underStep=0.;
|
||||
overStep=0.;
|
||||
for(G4int ist=0; ist<nbinStep; ist++)
|
||||
for(G4int ist=0; ist<200; ist++)
|
||||
{
|
||||
distStep[ist]=0.;
|
||||
}
|
||||
@@ -193,7 +138,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
underEn=0.;
|
||||
overEn=0.;
|
||||
|
||||
for (G4int ien=0; ien<nbinEn; ien++) distEn[ien]=0.;
|
||||
for (G4int ien=0; ien<200; ien++) distEn[ien]=0.;
|
||||
}
|
||||
if(nbinTt>0)
|
||||
{
|
||||
@@ -202,7 +147,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
underTt=0.;
|
||||
overTt=0.;
|
||||
|
||||
for (G4int itt=0; itt<nbinTt; itt++) distTt[itt]=0.;
|
||||
for (G4int itt=0; itt<200; itt++) distTt[itt]=0.;
|
||||
|
||||
Ttmean=0.;
|
||||
Tt2mean=0.;
|
||||
@@ -213,7 +158,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryTb=0.;
|
||||
underTb=0.;
|
||||
overTb=0.;
|
||||
for (G4int itt=0; itt<nbinTb; itt++)
|
||||
for (G4int itt=0; itt<200; itt++)
|
||||
{
|
||||
distTb[itt]=0.;
|
||||
}
|
||||
@@ -226,7 +171,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryTsec=0.;
|
||||
underTsec=0.;
|
||||
overTsec=0.;
|
||||
for (G4int its=0; its<nbinTsec; its++)
|
||||
for (G4int its=0; its<200; its++)
|
||||
{
|
||||
distTsec[its]=0.;
|
||||
}
|
||||
@@ -237,7 +182,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryTh=0.;
|
||||
underTh=0.;
|
||||
overTh=0.;
|
||||
for (G4int ith=0; ith<nbinTh; ith++)
|
||||
for (G4int ith=0; ith<200; ith++)
|
||||
{
|
||||
distTh[ith]=0.;
|
||||
}
|
||||
@@ -249,7 +194,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryThback=0.;
|
||||
underThback=0.;
|
||||
overThback=0.;
|
||||
for (G4int ithback=0; ithback<nbinThback; ithback++)
|
||||
for (G4int ithback=0; ithback<200; ithback++)
|
||||
{
|
||||
distThback[ithback]=0.;
|
||||
}
|
||||
@@ -262,7 +207,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryR =0.;
|
||||
underR =0.;
|
||||
overR =0.;
|
||||
for (G4int ir =0; ir <nbinR ; ir++)
|
||||
for (G4int ir =0; ir<200; ir++)
|
||||
{
|
||||
distR[ir]=0.;
|
||||
}
|
||||
@@ -276,7 +221,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryGamma = 0.;
|
||||
underGamma=0.;
|
||||
overGamma=0.;
|
||||
for (G4int ig=0; ig<nbinGamma; ig++)
|
||||
for (G4int ig=0; ig<200; ig++)
|
||||
{
|
||||
distGamma[ig]=0.;
|
||||
}
|
||||
@@ -287,7 +232,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
entryvertexz=0.;
|
||||
undervertexz=0.;
|
||||
oververtexz=0.;
|
||||
for(G4int iz=0; iz<nbinvertexz; iz++)
|
||||
for(G4int iz=0; iz<200; iz++)
|
||||
{
|
||||
distvertexz[iz]=0.;
|
||||
}
|
||||
@@ -301,6 +246,7 @@ void Em10RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
void Em10RunAction::EndOfRunAction(const G4Run*)
|
||||
{
|
||||
G4double sAbs,sigAbs,sigstep,sigcharged,signeutral;
|
||||
if(0.0 >= TotNbofEvents) { return; }
|
||||
|
||||
tlSumAbs /= TotNbofEvents ;
|
||||
sAbs = tlsquareSumAbs/TotNbofEvents-tlSumAbs*tlSumAbs ;
|
||||
@@ -351,8 +297,8 @@ void Em10RunAction::EndOfRunAction(const G4Run*)
|
||||
|
||||
Transmitted /=TotNbofEvents ;
|
||||
Reflected /=TotNbofEvents ;
|
||||
G4cout << " ================== run summary =====================" << G4endl;
|
||||
G4int prec = G4cout.precision(6);
|
||||
G4cout << " ================== run summary =====================" << G4endl;
|
||||
G4int prec = G4cout.precision(6);
|
||||
G4cout << " end of Run TotNbofEvents = " <<
|
||||
TotNbofEvents << G4endl ;
|
||||
G4cout << " mean charged track length in absorber=" <<
|
||||
@@ -725,7 +671,7 @@ void Em10RunAction::EndOfRunAction(const G4Run*)
|
||||
}
|
||||
}
|
||||
|
||||
G4cout.precision(prec);
|
||||
G4cout.precision(prec);
|
||||
|
||||
if (G4VVisManager::GetConcreteInstance())
|
||||
{
|
||||
@@ -750,18 +696,18 @@ void Em10RunAction::CountEvent()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::AddnStepsCharged(G4double ns)
|
||||
void Em10RunAction::AddnStepsCharged(G4double nstp)
|
||||
{
|
||||
nStepSumCharged += ns;
|
||||
nStepSum2Charged += ns*ns;
|
||||
nStepSumCharged += nstp;
|
||||
nStepSum2Charged += nstp*nstp;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::AddnStepsNeutral(G4double ns)
|
||||
void Em10RunAction::AddnStepsNeutral(G4double nstp)
|
||||
{
|
||||
nStepSumNeutral += ns;
|
||||
nStepSum2Neutral += ns*ns;
|
||||
nStepSumNeutral += nstp;
|
||||
nStepSum2Neutral += nstp*nstp;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
@@ -792,313 +738,77 @@ void Em10RunAction::AddTrRef(G4double tr,G4double ref)
|
||||
|
||||
void Em10RunAction::FillNbOfSteps(G4double)// ns)
|
||||
{
|
||||
/*
|
||||
const G4double eps = 1.e-10 ;
|
||||
G4double n,bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo1)
|
||||
{
|
||||
entryStep += 1. ;
|
||||
|
||||
if(ns<Steplow)
|
||||
underStep += 1. ;
|
||||
else if(ns>=Stephigh)
|
||||
overStep += 1. ;
|
||||
else
|
||||
{
|
||||
n = ns+eps ;
|
||||
bin = (n-Steplow)/dStep ;
|
||||
ibin= (G4int)bin ;
|
||||
distStep[ibin] += 1. ;
|
||||
}
|
||||
histo1->accumulate(ns) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillEn(G4double En)
|
||||
{
|
||||
|
||||
// #ifndef G4NOHIST
|
||||
|
||||
|
||||
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
// if(histo2)
|
||||
{
|
||||
entryEn += 1. ;
|
||||
|
||||
entryEn += 1. ;
|
||||
if(Enlow < Enhigh) {
|
||||
|
||||
if(En < Enlow) underEn += 1. ;
|
||||
else if( En >= Enhigh) overEn += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (En-Enlow)/dEn ;
|
||||
ibin= (G4int)bin ;
|
||||
distEn[ibin] += 1. ;
|
||||
bin = (En-Enlow)/dEn;
|
||||
ibin= (G4int)bin;
|
||||
if(ibin < 0) { ibin = 0; }
|
||||
if(ibin > 199) { ibin = 199; }
|
||||
distEn[ibin] += 1.;
|
||||
}
|
||||
// histo2->accumulate(En/keV) ; // was /MeV
|
||||
}
|
||||
|
||||
// #endif
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillTt(G4double) // En)
|
||||
{
|
||||
/*
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo5)
|
||||
{
|
||||
entryTt += 1. ;
|
||||
Ttmean += En ;
|
||||
Tt2mean += En*En ;
|
||||
|
||||
if(En<Ttlow)
|
||||
underTt += 1. ;
|
||||
else if(En>=Tthigh)
|
||||
overTt += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (En-Ttlow)/dTt ;
|
||||
ibin= (G4int)bin ;
|
||||
distTt[ibin] += 1. ;
|
||||
}
|
||||
histo5->accumulate(En/MeV) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillTb(G4double) // En)
|
||||
{
|
||||
/*
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo7)
|
||||
{
|
||||
entryTb += 1. ;
|
||||
Tbmean += En ;
|
||||
Tb2mean += En*En ;
|
||||
|
||||
if(En<Tblow)
|
||||
underTb += 1. ;
|
||||
else if(En>=Tbhigh)
|
||||
overTb += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (En-Tblow)/dTb ;
|
||||
ibin= (G4int)bin ;
|
||||
distTb[ibin] += 1. ;
|
||||
}
|
||||
histo7->accumulate(En/MeV) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillTsec(G4double) // En)
|
||||
{
|
||||
/*
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo8)
|
||||
{
|
||||
entryTsec += 1. ;
|
||||
|
||||
if(En<Tseclow)
|
||||
underTsec += 1. ;
|
||||
else if(En>=Tsechigh)
|
||||
overTsec += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (En-Tseclow)/dTsec ;
|
||||
ibin= (G4int)bin ;
|
||||
distTsec[ibin] += 1. ;
|
||||
}
|
||||
histo8->accumulate(En/MeV) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillGammaSpectrum(G4double) // En)
|
||||
{
|
||||
/*
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo10)
|
||||
{
|
||||
entryGamma += 1. ;
|
||||
|
||||
if(En<ElowGamma)
|
||||
underGamma += 1. ;
|
||||
else if(En>=EhighGamma)
|
||||
overGamma += 1. ;
|
||||
else
|
||||
{
|
||||
bin = std::log(En/ElowGamma)/dEGamma;
|
||||
ibin= (G4int)bin ;
|
||||
distGamma[ibin] += 1. ;
|
||||
}
|
||||
histo10->accumulate(std::log10(En/MeV)) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillTh(G4double) // Th)
|
||||
{
|
||||
/*
|
||||
static const G4double cn=pi/(64800.*dTh) ;
|
||||
static const G4double cs=pi/
|
||||
(64800.*(std::cos(Thlow)-std::cos(Thlow+dTh)));
|
||||
G4double bin,Thbin ,wg;
|
||||
G4int ibin;
|
||||
|
||||
if(histo3)
|
||||
{
|
||||
entryTh += 1. ;
|
||||
|
||||
wg = 0.;
|
||||
|
||||
if(Th<Thlow)
|
||||
underTh += 1. ;
|
||||
else if(Th>=Thhigh)
|
||||
overTh += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (Th-Thlow)/dTh ;
|
||||
ibin= (G4int)bin ;
|
||||
Thbin = Thlow+ibin*dTh ;
|
||||
if(Th > 0.001*dTh)
|
||||
wg=cn/std::sin(Th) ;
|
||||
else
|
||||
{
|
||||
G4double thdeg=Th*180./pi;
|
||||
G4cout << "theta < 0.001*dth (from plot excluded) theta="
|
||||
<< std::setw(12) << std::setprecision(4) << thdeg << G4endl;
|
||||
wg=0. ;
|
||||
}
|
||||
distTh[ibin] += wg ;
|
||||
}
|
||||
|
||||
histo3->accumulate(Th/deg, wg) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillThBack(G4double) // Th)
|
||||
{
|
||||
/*
|
||||
static const G4double cn=pi/(64800.*dThback) ;
|
||||
static const G4double cs=pi/
|
||||
(64800.*(std::cos(Thlowback)-std::cos(Thlowback+dThback)));
|
||||
G4double bin,Thbin,wg ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo6)
|
||||
{
|
||||
entryThback += 1. ;
|
||||
|
||||
if(Th<Thlowback)
|
||||
underThback += 1. ;
|
||||
else if(Th>=Thhighback)
|
||||
overThback += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (Th-Thlowback)/dThback ;
|
||||
ibin= (G4int)bin ;
|
||||
Thbin = Thlowback+ibin*dThback ;
|
||||
if(Th > 0.001*dThback)
|
||||
wg=cn/std::sin(Th) ;
|
||||
else
|
||||
{
|
||||
G4double thdeg=Th*180./pi;
|
||||
G4cout << "theta < 0.001*dth (from plot excluded) theta="
|
||||
<< std::setw(12) << std::setprecision(4) << thdeg << G4endl;
|
||||
wg=0. ;
|
||||
}
|
||||
distThback[ibin] += wg ;
|
||||
}
|
||||
histo6->accumulate(Th/deg, wg) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::FillR(G4double) // R )
|
||||
{
|
||||
/*
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo4)
|
||||
{
|
||||
entryR += 1. ;
|
||||
Rmean += R ;
|
||||
R2mean += R*R ;
|
||||
|
||||
if(R <Rlow)
|
||||
underR += 1. ;
|
||||
else if(R >=Rhigh)
|
||||
overR += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (R -Rlow)/dR ;
|
||||
ibin= (G4int)bin ;
|
||||
distR[ibin] += 1. ;
|
||||
}
|
||||
histo4->accumulate(R/mm) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::Fillvertexz(G4double) // z )
|
||||
{
|
||||
/*
|
||||
G4double bin ;
|
||||
G4int ibin;
|
||||
|
||||
if(histo9)
|
||||
{
|
||||
entryvertexz += 1. ;
|
||||
|
||||
if(z <zlow)
|
||||
undervertexz += 1. ;
|
||||
else if(z >=zhigh)
|
||||
oververtexz += 1. ;
|
||||
else
|
||||
{
|
||||
bin = (z -zlow)/dz ;
|
||||
ibin = (G4int)bin ;
|
||||
distvertexz[ibin] += 1. ;
|
||||
}
|
||||
histo9->accumulate(z/mm) ;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1111,213 +821,221 @@ void Em10RunAction::SethistName(G4String name)
|
||||
|
||||
void Em10RunAction::SetnbinStep(G4int nbin)
|
||||
{
|
||||
nbinStep = nbin ;
|
||||
if(nbinStep>0)
|
||||
G4cout << " Nb of bins in #step plot = " << nbinStep << G4endl ;
|
||||
if(nbin> 0 && nbin<= 200) {
|
||||
nbinStep = nbin;
|
||||
G4cout << " Nb of bins in #step plot = " << nbinStep << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetSteplow(G4double low)
|
||||
{
|
||||
Steplow = low ;
|
||||
if(nbinStep>0)
|
||||
G4cout << " low in the #step plot = " << Steplow << G4endl ;
|
||||
if(low >= 0.0){
|
||||
Steplow = low ;
|
||||
G4cout << " low in the #step plot = " << Steplow << G4endl ;
|
||||
}
|
||||
}
|
||||
void Em10RunAction::SetStephigh(G4double high)
|
||||
{
|
||||
Stephigh = high ;
|
||||
if(nbinStep>0)
|
||||
G4cout << " high in the #step plot = " << Stephigh << G4endl ;
|
||||
if(high > 0.0) {
|
||||
Stephigh = high;
|
||||
G4cout << " high in the #step plot = " << Stephigh << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::SetnbinEn(G4int nbin)
|
||||
{
|
||||
nbinEn = nbin ;
|
||||
|
||||
if(nbinEn > 0) G4cout << " Nb of bins in Edep plot = " << nbinEn << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinEn = nbin;
|
||||
G4cout << " Nb of bins in Edep plot = " << nbinEn << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetEnlow(G4double Elow)
|
||||
{
|
||||
Enlow = Elow ;
|
||||
if(nbinEn>0) G4cout << " Elow in the Edep plot = " << Enlow << G4endl ;
|
||||
if(Elow >= 0.0) {
|
||||
Enlow = Elow ;
|
||||
G4cout << " Elow in the Edep plot = " << Enlow << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetEnhigh(G4double Ehigh)
|
||||
{
|
||||
Enhigh = Ehigh ;
|
||||
|
||||
if(nbinEn>0) G4cout << " Ehigh in the Edep plot = " << Enhigh << G4endl ;
|
||||
if(Ehigh > 0.0) {
|
||||
Enhigh = Ehigh ;
|
||||
G4cout << " Ehigh in the Edep plot = " << Enhigh << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Em10RunAction::SetnbinGamma(G4int nbin)
|
||||
{
|
||||
nbinGamma = nbin ;
|
||||
if(nbinGamma>0)
|
||||
G4cout << " Nb of bins in gamma spectrum plot = " << nbinGamma << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinGamma = nbin;
|
||||
G4cout << " Nb of bins in gamma spectrum plot = " << nbinGamma << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetElowGamma(G4double Elow)
|
||||
{
|
||||
ElowGamma = Elow ;
|
||||
if(nbinGamma>0)
|
||||
G4cout << " Elow in the gamma spectrum plot = " << ElowGamma << G4endl ;
|
||||
if(Elow >= 0.0) {
|
||||
ElowGamma = Elow;
|
||||
G4cout << " Elow in the gamma spectrum plot = " << ElowGamma << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetEhighGamma(G4double Ehigh)
|
||||
{
|
||||
EhighGamma = Ehigh ;
|
||||
if(nbinGamma>0)
|
||||
G4cout << " Ehigh in the gamma spectrum plot = " << EhighGamma << G4endl ;
|
||||
if(Ehigh > 0.0) {
|
||||
EhighGamma = Ehigh;
|
||||
G4cout << " Ehigh in the gamma spectrum plot = " << EhighGamma << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetnbinTt(G4int nbin)
|
||||
{
|
||||
nbinTt = nbin ;
|
||||
if(nbinTt>0)
|
||||
G4cout << " Nb of bins in Etransmisssion plot = " << nbinTt << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinTt = nbin;
|
||||
G4cout << " Nb of bins in Etransmisssion plot = " << nbinTt << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetTtlow(G4double Elow)
|
||||
{
|
||||
Ttlow = Elow ;
|
||||
if(nbinTt>0)
|
||||
G4cout << " Elow in the Etransmission plot = " << Ttlow << G4endl ;
|
||||
if(Elow >= 0.0) {
|
||||
Ttlow = Elow;
|
||||
G4cout << " Elow in the Etransmission plot = " << Ttlow << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetTthigh(G4double Ehigh)
|
||||
{
|
||||
Tthigh = Ehigh ;
|
||||
if(nbinTt>0)
|
||||
G4cout << " Ehigh in the Etransmission plot = " << Tthigh << G4endl ;
|
||||
if(Ehigh > 0.0) {
|
||||
Tthigh = Ehigh;
|
||||
G4cout << " Ehigh in the Etransmission plot = " << Tthigh << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetnbinTb(G4int nbin)
|
||||
{
|
||||
nbinTb = nbin ;
|
||||
if(nbinTb>0)
|
||||
G4cout << " Nb of bins in Ebackscattered plot = " << nbinTb << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinTb = nbin;
|
||||
G4cout << " Nb of bins in Ebackscattered plot = " << nbinTb << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetTblow(G4double Elow)
|
||||
{
|
||||
|
||||
Tblow = Elow ;
|
||||
if(nbinTb>0)
|
||||
G4cout << " Elow in the Ebackscattered plot = " << Tblow << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetTbhigh(G4double Ehigh)
|
||||
{
|
||||
Tbhigh = Ehigh ;
|
||||
if(nbinTb>0)
|
||||
G4cout << " Ehigh in the Ebackscattered plot = " << Tbhigh << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetnbinTsec(G4int nbin)
|
||||
{
|
||||
nbinTsec = nbin ;
|
||||
if(nbinTsec>0)
|
||||
G4cout << " Nb of bins in Tsecondary plot = " << nbinTsec << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinTsec = nbin;
|
||||
G4cout << " Nb of bins in Tsecondary plot = " << nbinTsec << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetTseclow(G4double Elow)
|
||||
{
|
||||
Tseclow = Elow ;
|
||||
if(nbinTsec>0)
|
||||
G4cout << " Elow in the Tsecondary plot = " << Tseclow << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetTsechigh(G4double Ehigh)
|
||||
{
|
||||
Tsechigh = Ehigh ;
|
||||
if(nbinTsec>0)
|
||||
G4cout << " Ehigh in the Tsecondary plot = " << Tsechigh << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetnbinR(G4int nbin)
|
||||
{
|
||||
nbinR = nbin ;
|
||||
if(nbinR>0)
|
||||
G4cout << " Nb of bins in R plot = " << nbinR << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinR = nbin;
|
||||
G4cout << " Nb of bins in R plot = " << nbinR << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetRlow(G4double rlow)
|
||||
{
|
||||
Rlow = rlow ;
|
||||
if(nbinR>0)
|
||||
G4cout << " Rlow in the R plot = " << Rlow << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetRhigh(G4double rhigh)
|
||||
{
|
||||
Rhigh = rhigh ;
|
||||
if(nbinR>0)
|
||||
G4cout << " Rhigh in the R plot = " << Rhigh << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::Setnbinzvertex(G4int nbin)
|
||||
{
|
||||
nbinvertexz = nbin ;
|
||||
if(nbinvertexz>0)
|
||||
G4cout << " Nb of bins in Z plot = " << nbinvertexz << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinvertexz = nbin;
|
||||
G4cout << " Nb of bins in Z plot = " << nbinvertexz << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::Setzlow(G4double z)
|
||||
{
|
||||
zlow = z ;
|
||||
if(nbinvertexz>0)
|
||||
G4cout << " zlow in the Z plot = " << zlow << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::Setzhigh(G4double z)
|
||||
{
|
||||
zhigh = z ;
|
||||
if(nbinvertexz>0)
|
||||
G4cout << " zhigh in the Z plot = " << zhigh << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetnbinTh(G4int nbin)
|
||||
{
|
||||
nbinTh = nbin ;
|
||||
if(nbinTh>0)
|
||||
G4cout << " Nb of bins in Theta plot = " << nbinTh << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinTh = nbin;
|
||||
G4cout << " Nb of bins in Theta plot = " << nbinTh << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetThlow(G4double Tlow)
|
||||
{
|
||||
Thlow = Tlow ;
|
||||
if(nbinTh>0)
|
||||
G4cout << " Tlow in the Theta plot = " << Thlow << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetThhigh(G4double Thigh)
|
||||
{
|
||||
Thhigh = Thigh ;
|
||||
if(nbinTh>0)
|
||||
G4cout << " Thigh in the Theta plot = " << Thhigh << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetnbinThBack(G4int nbin)
|
||||
{
|
||||
nbinThback = nbin ;
|
||||
if(nbinThback>0)
|
||||
G4cout << " Nb of bins in Theta plot = " << nbinThback << G4endl ;
|
||||
if(nbin > 0 && nbin <= 200) {
|
||||
nbinThback = nbin;
|
||||
G4cout << " Nb of bins in Theta plot = " << nbinThback << G4endl ;
|
||||
}
|
||||
}
|
||||
|
||||
void Em10RunAction::SetThlowBack(G4double Tlow)
|
||||
{
|
||||
Thlowback = Tlow ;
|
||||
if(nbinThback>0)
|
||||
G4cout << " Tlow in the Theta plot = " << Thlowback << G4endl ;
|
||||
}
|
||||
|
||||
void Em10RunAction::SetThhighBack(G4double Thigh)
|
||||
{
|
||||
Thhighback = Thigh ;
|
||||
if(nbinThback>0)
|
||||
G4cout << " Thigh in the Theta plot = " << Thhighback << G4endl ;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10RunMessenger.cc
|
||||
/// \brief Implementation of the Em10RunMessenger class
|
||||
//
|
||||
// $Id: Em10RunMessenger.cc,v 1.5 2006-06-29 16:39:01 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
@@ -380,7 +382,7 @@ void Em10RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues)
|
||||
|
||||
if (command == RndmSaveCmd)
|
||||
runAction->SetRndmFreq(RndmSaveCmd->GetNewIntValue(newValues));
|
||||
|
||||
|
||||
if (command == RndmReadCmd)
|
||||
{ G4cout << "\n---> rndm status restored from file: " << newValues << G4endl;
|
||||
CLHEP::HepRandom::restoreEngineStatus(newValues);
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10StepCut.cc
|
||||
/// \brief Implementation of the Em10StepCut class
|
||||
//
|
||||
// $Id: Em10StepCut.cc,v 1.3 2006-06-29 16:39:04 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
|
||||
#include "Em10StepCut.hh"
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10SteppingAction.cc
|
||||
/// \brief Implementation of the Em10SteppingAction class
|
||||
//
|
||||
// $Id: Em10SteppingAction.cc,v 1.6 2006-06-29 16:39:06 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//
|
||||
|
||||
@@ -33,37 +35,32 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "Em10DetectorConstruction.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
#include "G4SteppingManager.hh"
|
||||
#include "G4TrackVector.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "Em10SteppingAction.hh"
|
||||
#include "Em10PrimaryGeneratorAction.hh"
|
||||
#include "Em10EventAction.hh"
|
||||
#include "Em10RunAction.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4EventManager.hh"
|
||||
#include "Em10SteppingMessenger.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4UImanager.hh"
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em10SteppingAction::Em10SteppingAction(Em10DetectorConstruction* DET,
|
||||
Em10EventAction* EA,
|
||||
Em10RunAction* RA)
|
||||
:detector (DET),eventaction (EA),runaction (RA),steppingMessenger(0),
|
||||
IDold(-1) ,evnoold(-1)
|
||||
{
|
||||
steppingMessenger = new Em10SteppingMessenger(this);
|
||||
}
|
||||
:detector (DET),eventaction (EA),runaction (RA),
|
||||
IDold(-1) ,evnoold(-1)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em10SteppingAction::~Em10SteppingAction()
|
||||
{
|
||||
delete steppingMessenger ;
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -71,139 +68,87 @@ void Em10SteppingAction::UserSteppingAction(const G4Step* aStep)
|
||||
{
|
||||
|
||||
G4double Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,yend,zend,rend ;
|
||||
|
||||
G4int evno = eventaction->GetEventno() ;
|
||||
|
||||
IDnow = evno+10000*(aStep->GetTrack()->GetTrackID())+
|
||||
100000000*(aStep->GetTrack()->GetParentID());
|
||||
if(IDnow != IDold)
|
||||
{
|
||||
IDold=IDnow ;
|
||||
if(
|
||||
(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "e-") &&
|
||||
((aStep->GetTrack()->GetTrackID() != 1) ||
|
||||
(aStep->GetTrack()->GetParentID() != 0)) )
|
||||
||
|
||||
(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "e+") &&
|
||||
((aStep->GetTrack()->GetTrackID() != 1) ||
|
||||
(aStep->GetTrack()->GetParentID() != 0)) )
|
||||
)
|
||||
runaction->Fillvertexz(aStep->GetTrack()->GetVertexPosition().x());
|
||||
const G4Track* track = aStep->GetTrack();
|
||||
const G4StepPoint* prePoint = aStep->GetPreStepPoint();
|
||||
G4int trackID = track->GetTrackID();
|
||||
G4int parentID = track->GetParentID();
|
||||
|
||||
if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber")
|
||||
{
|
||||
if(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "e-") &&
|
||||
((aStep->GetTrack()->GetTrackID() != 1) ||
|
||||
(aStep->GetTrack()->GetParentID() != 0)) )
|
||||
{
|
||||
eventaction->AddCharged() ;
|
||||
eventaction->AddE() ;
|
||||
Tsec = aStep->GetTrack()->GetKineticEnergy() ; // !!!!!!!!!!!!
|
||||
Tsec += aStep->GetTotalEnergyDeposit() ; // !!!!!!!!!!!!
|
||||
runaction->FillTsec(Tsec) ;
|
||||
const G4DynamicParticle* dynParticle = track->GetDynamicParticle();
|
||||
const G4ParticleDefinition* particle = dynParticle->GetDefinition();
|
||||
G4VPhysicalVolume* preVol = prePoint->GetPhysicalVolume();
|
||||
G4VPhysicalVolume* postVol = aStep->GetPostStepPoint()->GetPhysicalVolume();
|
||||
|
||||
IDnow = evno+10000*trackID+100000000*parentID;
|
||||
if(IDnow != IDold) {
|
||||
IDold=IDnow ;
|
||||
if(trackID > 1 && (particle == G4Electron::Electron() ||
|
||||
particle == G4Positron::Positron() ||
|
||||
particle == G4Gamma::Gamma())) {
|
||||
runaction->Fillvertexz(track->GetVertexPosition().z());
|
||||
|
||||
if(preVol->GetName()=="Absorber") {
|
||||
if(particle == G4Gamma::Gamma()) {
|
||||
eventaction->AddNeutral() ;
|
||||
} else {
|
||||
eventaction->AddCharged() ;
|
||||
Tsec = track->GetKineticEnergy() ;
|
||||
Tsec += aStep->GetTotalEnergyDeposit() ;
|
||||
runaction->FillTsec(Tsec) ;
|
||||
if(particle == G4Electron::Electron()) {
|
||||
eventaction->AddE() ;
|
||||
} else {
|
||||
eventaction->AddP() ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
if(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "e+") &&
|
||||
((aStep->GetTrack()->GetTrackID() != 1) ||
|
||||
(aStep->GetTrack()->GetParentID() != 0)) )
|
||||
{
|
||||
eventaction->AddCharged() ;
|
||||
eventaction->AddP() ;
|
||||
Tsec = aStep->GetTrack()->GetKineticEnergy() ; // !!!!!!!!!!!!
|
||||
Tsec += aStep->GetTotalEnergyDeposit() ; // !!!!!!!!!!!!
|
||||
runaction->FillTsec(Tsec) ;
|
||||
}
|
||||
else
|
||||
if(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "gamma") &&
|
||||
((aStep->GetTrack()->GetTrackID() != 1) ||
|
||||
(aStep->GetTrack()->GetParentID() != 0)) )
|
||||
{
|
||||
eventaction->AddNeutral() ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber")
|
||||
{
|
||||
if(((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "e-")
|
||||
||
|
||||
((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "e+"))
|
||||
eventaction->CountStepsCharged() ;
|
||||
if(preVol->GetName()=="Absorber") {
|
||||
if(particle == G4Electron::Electron() ||
|
||||
particle == G4Positron::Positron()) {
|
||||
eventaction->CountStepsCharged() ;
|
||||
|
||||
if ((aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName()) == "gamma")
|
||||
eventaction->CountStepsNeutral() ;
|
||||
}
|
||||
} else if(particle == G4Gamma::Gamma()) {
|
||||
eventaction->CountStepsNeutral() ;
|
||||
}
|
||||
|
||||
if (
|
||||
(((aStep->GetTrack()->GetTrackID() == 1) &&
|
||||
(aStep->GetTrack()->GetParentID()== 0)) ||
|
||||
(aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName() ==
|
||||
Em10PrimaryGeneratorAction::GetPrimaryName()))
|
||||
&&
|
||||
(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber")
|
||||
&&
|
||||
(aStep->GetTrack()->GetNextVolume()->GetName()=="World") &&
|
||||
(aStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName() == "Transportation") &&
|
||||
(aStep->GetTrack()->GetMomentumDirection().x()>0.)
|
||||
)
|
||||
{
|
||||
eventaction->SetTr();
|
||||
Theta = std::acos(aStep->GetTrack()->GetMomentumDirection().x()) ;
|
||||
runaction->FillTh(Theta) ;
|
||||
Ttrans = aStep->GetTrack()->GetKineticEnergy() ;
|
||||
runaction->FillTt(Ttrans) ;
|
||||
yend= aStep->GetTrack()->GetPosition().y() ;
|
||||
zend= aStep->GetTrack()->GetPosition().z() ;
|
||||
rend = std::sqrt(yend*yend+zend*zend) ;
|
||||
runaction->FillR(rend);
|
||||
}
|
||||
|
||||
if (
|
||||
(((aStep->GetTrack()->GetTrackID() == 1) &&
|
||||
(aStep->GetTrack()->GetParentID()== 0)) ||
|
||||
(aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->
|
||||
GetParticleName() ==
|
||||
Em10PrimaryGeneratorAction::GetPrimaryName()))
|
||||
&&
|
||||
(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") &&
|
||||
(aStep->GetTrack()->GetNextVolume()->GetName()=="World") &&
|
||||
(aStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName() == "Transportation") &&
|
||||
(aStep->GetTrack()->GetMomentumDirection().z()<0.)
|
||||
)
|
||||
{
|
||||
eventaction->SetRef();
|
||||
Thetaback = std::acos(aStep->GetTrack()->GetMomentumDirection().x()) ;
|
||||
Thetaback -= 0.5*pi ;
|
||||
runaction->FillThBack(Thetaback) ;
|
||||
Tback = aStep->GetTrack()->GetKineticEnergy() ;
|
||||
runaction->FillTb(Tback) ;
|
||||
}
|
||||
|
||||
if(prePoint->GetStepStatus() == fGeomBoundary &&
|
||||
preVol != postVol) {
|
||||
|
||||
if (
|
||||
((aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") &&
|
||||
(aStep->GetTrack()->GetNextVolume()->GetName()=="World") &&
|
||||
(aStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName() == "Transportation") &&
|
||||
(aStep->GetTrack()->GetMomentumDirection().x()>0.) &&
|
||||
(aStep->GetTrack()->GetDynamicParticle()->GetDefinition()
|
||||
->GetParticleName() == "gamma"))
|
||||
)
|
||||
{
|
||||
Egamma = aStep->GetTrack()->GetKineticEnergy() ;
|
||||
runaction->FillGammaSpectrum(Egamma) ;
|
||||
}
|
||||
|
||||
if(trackID == 1) {
|
||||
if(track->GetMomentumDirection().z()>0.) {
|
||||
|
||||
eventaction->SetTr();
|
||||
Theta = std::acos(track->GetMomentumDirection().z()) ;
|
||||
runaction->FillTh(Theta) ;
|
||||
Ttrans = track->GetKineticEnergy() ;
|
||||
runaction->FillTt(Ttrans) ;
|
||||
yend= aStep->GetTrack()->GetPosition().y() ;
|
||||
zend= aStep->GetTrack()->GetPosition().x() ;
|
||||
rend = std::sqrt(yend*yend+zend*zend) ;
|
||||
runaction->FillR(rend);
|
||||
|
||||
} else {
|
||||
eventaction->SetRef();
|
||||
Thetaback = std::acos(aStep->GetTrack()->GetMomentumDirection().z());
|
||||
Thetaback -= 0.5*pi ;
|
||||
runaction->FillThBack(Thetaback) ;
|
||||
Tback = aStep->GetTrack()->GetKineticEnergy() ;
|
||||
runaction->FillTb(Tback) ;
|
||||
}
|
||||
}
|
||||
if(track->GetMomentumDirection().z()>0. &&
|
||||
particle == G4Gamma::Gamma()) {
|
||||
|
||||
Egamma = aStep->GetTrack()->GetKineticEnergy() ;
|
||||
runaction->FillGammaSpectrum(Egamma) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: Em10SteppingMessenger.cc,v 1.4 2006-06-29 16:39:09 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "Em10SteppingMessenger.hh"
|
||||
|
||||
#include "Em10SteppingAction.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em10SteppingMessenger::Em10SteppingMessenger(Em10SteppingAction* SA)
|
||||
:steppingAction (SA)
|
||||
{
|
||||
steppingDir = new G4UIdirectory("/stepping/");
|
||||
steppingDir->SetGuidance("stepping control");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
Em10SteppingMessenger::~Em10SteppingMessenger()
|
||||
{
|
||||
delete steppingDir;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void Em10SteppingMessenger::SetNewValue(G4UIcommand*,G4String)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10SteppingVerbose.cc
|
||||
/// \brief Implementation of the Em10SteppingVerbose class
|
||||
//
|
||||
// $Id: Em10SteppingVerbose.cc,v 1.6 2006-06-29 16:39:12 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
@@ -58,29 +60,29 @@ void Em10SteppingVerbose::StepInfo()
|
||||
if( verboseLevel >= 3 ){
|
||||
G4cout << G4endl;
|
||||
G4cout << std::setw( 5) << "#Step#" << " "
|
||||
<< std::setw(10) << "X" << " "
|
||||
<< std::setw(10) << "Y" << " "
|
||||
<< std::setw(10) << "Z" << " "
|
||||
<< std::setw(10) << "KineE" << " "
|
||||
<< std::setw(10) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "NextVolu"
|
||||
<< std::setw(10) << "Process"
|
||||
<< std::setw(10) << "Dir_x" << " "
|
||||
<< std::setw(10) << "Dir_y" << " "
|
||||
<< std::setw(10) << "Dir_z" << " "
|
||||
<< G4endl;
|
||||
<< std::setw(10) << "X" << " "
|
||||
<< std::setw(10) << "Y" << " "
|
||||
<< std::setw(10) << "Z" << " "
|
||||
<< std::setw(10) << "KineE" << " "
|
||||
<< std::setw(10) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "NextVolu"
|
||||
<< std::setw(10) << "Process"
|
||||
<< std::setw(10) << "Dir_x" << " "
|
||||
<< std::setw(10) << "Dir_y" << " "
|
||||
<< std::setw(10) << "Dir_z" << " "
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
|
||||
// if( fStepStatus != fWorldBoundary){
|
||||
if( fTrack->GetNextVolume() != 0 ) {
|
||||
@@ -92,53 +94,53 @@ void Em10SteppingVerbose::StepInfo()
|
||||
if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
|
||||
G4cout << " "
|
||||
<< std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
|
||||
->GetProcessName();
|
||||
->GetProcessName();
|
||||
} else {
|
||||
G4cout << " UserLimit";
|
||||
}
|
||||
|
||||
G4cout << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().x(),"Length")
|
||||
<< std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().y(),"Length")
|
||||
<< std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().z(),"Length");
|
||||
<< std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().y(),"Length")
|
||||
<< std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().z(),"Length");
|
||||
|
||||
G4cout << G4endl;
|
||||
|
||||
if( verboseLevel == 2 ){
|
||||
G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
|
||||
fN2ndariesAlongStepDoIt +
|
||||
fN2ndariesPostStepDoIt;
|
||||
fN2ndariesAlongStepDoIt +
|
||||
fN2ndariesPostStepDoIt;
|
||||
if(tN2ndariesTot>0){
|
||||
G4cout << " :----- List of 2ndaries - "
|
||||
<< "#SpawnInStep=" << std::setw(3) << tN2ndariesTot
|
||||
<< "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt
|
||||
<< ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
|
||||
<< ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt
|
||||
<< "), "
|
||||
<< "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
|
||||
<< " ---------------"
|
||||
<< G4endl;
|
||||
G4cout << " :----- List of 2ndaries - "
|
||||
<< "#SpawnInStep=" << std::setw(3) << tN2ndariesTot
|
||||
<< "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt
|
||||
<< ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
|
||||
<< ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt
|
||||
<< "), "
|
||||
<< "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
|
||||
<< " ---------------"
|
||||
<< G4endl;
|
||||
|
||||
for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
|
||||
lp1<(*fSecondary).size(); lp1++){
|
||||
|
||||
G4cout << " : "
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10)
|
||||
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
|
||||
G4cout << G4endl;
|
||||
}
|
||||
G4cout << " : "
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
|
||||
<< std::setw(6)
|
||||
<< G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
|
||||
<< std::setw(10)
|
||||
<< (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
|
||||
G4cout << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " :-----------------------------"
|
||||
<< "----------------------------------"
|
||||
<< "-- EndOf2ndaries Info ---------------"
|
||||
<< G4endl;
|
||||
G4cout << " :-----------------------------"
|
||||
<< "----------------------------------"
|
||||
<< "-- EndOf2ndaries Info ---------------"
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,23 +159,23 @@ G4int prec = G4cout.precision(3);
|
||||
|
||||
G4cout << std::setw( 5) << "Step#" << " "
|
||||
<< std::setw( 6) << "X" << " "
|
||||
<< std::setw( 6) << "Y" << " "
|
||||
<< std::setw( 6) << "Z" << " "
|
||||
<< std::setw( 9) << "KineE" << " "
|
||||
<< std::setw( 9) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "Volume" << " "
|
||||
<< std::setw(10) << "Process" << G4endl;
|
||||
<< std::setw( 6) << "Y" << " "
|
||||
<< std::setw( 6) << "Z" << " "
|
||||
<< std::setw( 9) << "KineE" << " "
|
||||
<< std::setw( 9) << "dEStep" << " "
|
||||
<< std::setw(10) << "StepLeng"
|
||||
<< std::setw(10) << "TrakLeng"
|
||||
<< std::setw(10) << "Volume" << " "
|
||||
<< std::setw(10) << "Process" << G4endl;
|
||||
|
||||
G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " "
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
|
||||
if(fTrack->GetNextVolume()){
|
||||
G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10TrackingAction.cc
|
||||
/// \brief Implementation of the Em10TrackingAction class
|
||||
//
|
||||
#include "Em10TrackingAction.hh"
|
||||
|
||||
@@ -30,6 +33,7 @@
|
||||
#include "G4RunManager.hh"
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
Em10TrackingAction::Em10TrackingAction()
|
||||
{ }
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file electromagnetic/TestEm10/src/Em10XTRTransparentRegRadModel.cc
|
||||
/// \brief Implementation of the Em10XTRTransparentRegRadModel class
|
||||
//
|
||||
//
|
||||
|
||||
#include <complex>
|
||||
@@ -31,6 +34,7 @@
|
||||
#include "Randomize.hh"
|
||||
#include "G4Integrator.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4PhysicalConstants.hh"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -39,7 +43,7 @@ using namespace std;
|
||||
// Constructor, destructor
|
||||
|
||||
Em10XTRTransparentRegRadModel::Em10XTRTransparentRegRadModel(G4LogicalVolume *anEnvelope,
|
||||
G4Material* foilMat,G4Material* gasMat,
|
||||
G4Material* foilMat,G4Material* gasMat,
|
||||
G4double a, G4double b, G4int n,
|
||||
const G4String& processName) :
|
||||
G4VXTRenergyLoss(anEnvelope,foilMat,gasMat,a,b,n,processName)
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: StepMax.cc,v 1.2 2006-06-29 16:39:16 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
/// \file electromagnetic/TestEm10/src/StepMax.cc
|
||||
/// \brief Implementation of the StepMax class
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -32,6 +34,7 @@
|
||||
// #include "StepMaxMessenger.hh"
|
||||
// #include "Histo.hh"
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
Reference in New Issue
Block a user