44 #ifndef CEXMC_PRODUCTION_MODEL_HH
45 #define CEXMC_PRODUCTION_MODEL_HH
48 #include <G4String.hh>
159 #ifdef CEXMC_USE_ROOT
160 CexmcHistoManager::Instance()->SetupARHistos(
angularRanges );
174 const char * fermiMotionMsg(
"Fermi motion in the target is off" );
176 fermiMotionMsg =
"Fermi motion in the target is on";
247 return top > bottom && top <= 1.0 && top > -1.0 && bottom < 1.0 &&
248 bottom >= -1.0 && nmbOfDivs >= 1;
const CexmcAngularRangeList & GetTriggeredAngularRanges(void) const
G4ParticleDefinition * nucleusOutputParticle
G4bool IsValidCandidateForAngularRange(G4double top, G4double bottom, G4int nmbOfDivs=1) const
G4bool IsFermiMotionOn(void) const
CexmcProductionModelData productionModelData
void SetProductionModelData(const CexmcProductionModelData &productionModelData_)
G4ParticleDefinition * GetIncidentParticle(void) const
void SetAngularRange(G4double top, G4double bottom, G4int nmbOfDivs)
G4bool IsGoodCandidateForAngularRange(G4double top, G4double bottom) const
void AddAngularRange(G4double top, G4double bottom, G4int nmbOfDivs)
void SetTriggeredAngularRanges(G4double opCosThetaSCM)
CexmcProductionModel(const G4String &name="unspecified", G4bool fermiMotionIsOn=false)
G4GLOB_DLL std::ostream G4cout
CexmcAngularRangeList angularRangesRef
virtual void FermiMotionStatusChangeHook(void)
G4ParticleDefinition * nucleusParticle
virtual ~CexmcProductionModel()
G4ParticleDefinition * GetOutputParticle(void) const
const CexmcProductionModelData & GetProductionModelData(void) const
G4ParticleDefinition * incidentParticle
G4ParticleDefinition * GetNucleusParticle(void) const
CexmcAngularRangeList angularRanges
CexmcAngularRangeList triggeredAngularRanges
std::vector< CexmcAngularRange > CexmcAngularRangeList
void ThrowExceptionIfProjectIsRead(CexmcExceptionType type, G4bool extraCond=true)
G4ParticleDefinition * GetNucleusOutputParticle(void) const
void ApplyFermiMotion(G4bool on, G4bool fromMessenger=true)
void SetAngularRanges(const CexmcAngularRangeList &angularRanges_)
const CexmcAngularRangeList & GetAngularRanges(void) const
void PrintInitialData(void) const
CexmcProductionModelMessenger * messenger
G4ParticleDefinition * outputParticle
const G4String & GetName(void) const