19#include "BDSGlobalConstants.hh"
20#include "BDSRegion.hh"
21#include "BDSUtilities.hh"
23#include "parser/region.h"
26#include "G4ProductionCuts.hh"
31BDSRegion::BDSRegion(G4String nameIn):
40 defaultRangeCut = g->DefaultRangeCut();
41 if (g->DefaultRangeCutsSet())
43 rangeCutElectrons = g->ProdCutElectronsSet() ? g->ProdCutElectrons() : defaultRangeCut;
44 rangeCutPositrons = g->ProdCutPositronsSet() ? g->ProdCutPositrons() : defaultRangeCut;
45 rangeCutProtons = g->ProdCutProtonsSet() ? g->ProdCutProtons() : defaultRangeCut;
46 rangeCutPhotons = g->ProdCutPhotonsSet() ? g->ProdCutPhotons() : defaultRangeCut;
50 rangeCutElectrons = g->ProdCutElectrons();
51 rangeCutPositrons = g->ProdCutPositrons();
52 rangeCutProtons = g->ProdCutProtons();
53 rangeCutPhotons = g->ProdCutPhotons();
58BDSRegion::BDSRegion(G4String nameIn,
60 G4double defaultRangeCutIn,
61 G4double rangeCutElectronsIn,
62 G4double rangeCutPositronsIn,
63 G4double rangeCutProtonsIn,
64 G4double rangeCutPhotonsIn):
71 G4bool useSuppliedDefaultNumber =
BDS::IsFinite(defaultRangeCutIn);
73 rangeCutElectrons =
BDS::IsFinite(rangeCutElectronsIn) ? rangeCutElectronsIn : (useSuppliedDefaultNumber ? defaultRangeCutIn : defaultValue->
rangeCutElectrons);
74 rangeCutPositrons =
BDS::IsFinite(rangeCutPositronsIn) ? rangeCutPositronsIn : (useSuppliedDefaultNumber ? defaultRangeCutIn : defaultValue->
rangeCutPositrons);
75 rangeCutProtons =
BDS::IsFinite(rangeCutProtonsIn) ? rangeCutProtonsIn : (useSuppliedDefaultNumber ? defaultRangeCutIn : defaultValue->
rangeCutProtons);
76 rangeCutPhotons =
BDS::IsFinite(rangeCutPhotonsIn) ? rangeCutPhotonsIn : (useSuppliedDefaultNumber ? defaultRangeCutIn : defaultValue->
rangeCutPhotons);
84 parserRegion.defaultRangeCut * CLHEP::m,
85 parserRegion.prodCutElectrons * CLHEP::m,
86 parserRegion.prodCutPositrons * CLHEP::m,
87 parserRegion.prodCutProtons * CLHEP::m,
88 parserRegion.prodCutPhotons * CLHEP::m)
91BDSRegion::~BDSRegion()
97std::ostream& operator<< (std::ostream& out,
BDSRegion const &r)
99 out <<
"Region \"" << r.
name <<
"\"" << G4endl;
110 g4cuts =
new G4ProductionCuts();
A class that holds global options and constants.
static BDSGlobalConstants * Instance()
Access method.
Range cuts for a region. Help with defaults.
G4Region * g4region
Public members for simplicity.
G4double rangeCutElectrons
Public members for simplicity.
G4double defaultRangeCut
Public members for simplicity.
G4ProductionCuts * g4cuts
Public members for simplicity.
G4String name
Public members for simplicity.
G4double rangeCutPhotons
Public members for simplicity.
G4double rangeCutProtons
Public members for simplicity.
G4double rangeCutPositrons
Public members for simplicity.
void ProduceG4Region()
Function to create cuts and region.
G4bool IsFinite(G4double value, G4double tolerance=std::numeric_limits< double >::epsilon())