1 #ifndef EDepSim_VConstrainedPositionGenerator_hh_seen 2 #define EDepSim_VConstrainedPositionGenerator_hh_seen 6 #include <G4ThreeVector.hh> 12 namespace EDepSim {
class VConstrainedPositionGenerator;}
26 virtual bool Apply(
const G4LorentzVector& ) {
return true;}
G4ThreeVector fMinimumCorner
The lower boundary of the volume to be sampled for the vertex.
virtual bool ValidPosition(const G4LorentzVector &vtx)
Return true if the vertex is valid. This is used in the derived class.
void CheckMaxZ(double z)
Check that the vertex Z position is less than some value.
G4String fSampleVolume
The name of the volume to be sampled.
static const std::string volume[nvol]
void FindLimits()
Find the limits of the volume to be sampled for a good vertex.
bool fLimitsFound
True if the limits have been initialized.
G4LorentzVector TrialPosition()
Generate a trial position uniformly in the sample box.
void CheckVolumeName(const G4String &name)
std::vector< PositionTest * > PositionTests
Construct a module from components.
void CheckMaxX(double x)
Check that the vertex X position is less than some value.
void SetVolumeName(const G4String &volume)
Set the name of the volume to be sampled for a vertex.
void CheckMinY(double y)
Check that the vertex Y position is greater than some value.
void CheckVolumeMaterial(const G4String &name)
Check that the vertex is inside of a material specified by name.
virtual bool Apply(const G4LorentzVector &)
virtual bool ForcePosition()
G4ThreeVector fMaximumCorner
The upper boundary of the volume to be sampled for the vertex.
void CheckMaxY(double y)
Check that the vertex Y position is less than some value.
void CheckNotVolumeName(const G4String &name)
void CheckMinX(double x)
Check that the vertex X position is greater than some value.
VConstrainedPositionGenerator(const G4String &name)
PositionTests fPositionTests
The vertex tests to apply.
void ClearPositionTests(void)
Clear the current set of vertex checks.
virtual ~VConstrainedPositionGenerator()
void CheckMinZ(double z)
Check that the vertex Z position is greater than some value.
void CheckNotVolumeMaterial(const G4String &name)
Check that the vertex is not inside of a material specified by name.