20#include "BDSException.hh"
21#include "BDSHistBinMapper.hh"
22#include "BDSScoringMeshCylinder.hh"
23#include "BDSScorerMeshInfo.hh"
26#include "G4RotationMatrix.hh"
27#include "G4Version.hh"
31 const G4Transform3D& placementTransform):
35#if G4VERSION_NUMBER < 1100
36 scorerSize[0] = recipe.ScoringMeshR();
37 scorerSize[1] = recipe.ScoringMeshZ();
40 scorerSize[1] = recipe.ScoringMeshR();
41 scorerSize[2] = recipe.ScoringMeshZ();
46 nSegment[0] = recipe.nBinsZ;
47 nSegment[1] = recipe.nBinsPhi;
48 nSegment[2] = recipe.nBinsR;
49 nEnergySegments = recipe.nBinsE;
50 SetNumberOfSegments(nSegment);
53 mapper =
new BDSHistBinMapper(fNSegment[0], fNSegment[1], fNSegment[2], nEnergySegments, recipe.energyAxis);
55 mapper =
new BDSHistBinMapper(fNSegment[0], fNSegment[1], fNSegment[2], nEnergySegments);
61 const G4ThreeVector& translation,
62 const G4RotationMatrix& rotation):
63 G4ScoringCylinder(name),
66 fRotationMatrix =
new G4RotationMatrix(rotation.inverse());
67 fCenterPosition = translation;
73 {
throw BDSException(__METHOD_NAME__,
"mesh \"" + fWorldName +
"\" size not set but queried");}
75 {
throw BDSException(__METHOD_NAME__,
"mesh \"" + fWorldName +
"\" mapper has mysteriously disappeared");}
79BDSScoringMeshCylinder::~BDSScoringMeshCylinder()
General exception with possible name of object and message.
Mapping from axis indices to 1D index.
Recipe class for a scoring mesh.
Wrapper for G4ScoringCylinder to allow full access to placement.
BDSScoringMeshCylinder(const G4String &name, const BDSScorerMeshInfo &recipe, const G4Transform3D &placementTransform)