50 G4bool fermiMotionIsOn_ ) :
51 name( name_ ), fermiMotionIsOn( fermiMotionIsOn_ ),
52 incidentParticle( NULL ), nucleusParticle( NULL ), outputParticle( NULL ),
53 nucleusOutputParticle( NULL ), messenger( NULL )
77 for (
int i( 0 ); i < nmbOfDivs; ++i )
79 G4double binWidth( ( top - bottom ) / nmbOfDivs );
81 curBottom -= binWidth;
85 CexmcHistoManager::Instance()->SetupARHistos(
angularRanges );
101 for (
int i( 0 ); i < nmbOfDivs; ++i )
103 G4double binWidth( ( top - bottom ) / nmbOfDivs );
105 curBottom -= binWidth;
108 #ifdef CEXMC_USE_ROOT
109 CexmcHistoManager::Instance()->AddARHistos( aRange );
119 for ( CexmcAngularRangeList::iterator k(
angularRanges.begin() );
122 if ( opCosThetaSCM <= k->top && opCosThetaSCM > k->bottom )
124 k->top, k->bottom, k->index ) );
146 for ( CexmcAngularRangeList::iterator k( normalizedARanges.begin() );
147 k != normalizedARanges.end(); ++k )
149 if ( top <= k->top && bottom >= k->bottom )
static G4RunManager * GetRunManager()
CexmcProductionModel(const G4String &name="unspecified", G4bool fermiMotionIsOn=false)
CexmcAngularRangeList angularRangesRef
void GetNormalizedAngularRange(const CexmcAngularRangeList &src, CexmcAngularRangeList &dst)
void SetTriggeredAngularRanges(G4double opCosThetaSCM)
void AddAngularRange(G4double top, G4double bottom, G4int nmbOfDivs)
G4bool IsGoodCandidateForAngularRange(G4double top, G4double bottom) const
G4bool ProjectIsRead(void) const
CexmcAngularRangeList angularRanges
CexmcProductionModelMessenger * messenger
void SetAngularRange(G4double top, G4double bottom, G4int nmbOfDivs)
std::vector< CexmcAngularRange > CexmcAngularRangeList
CexmcAngularRangeList triggeredAngularRanges
G4bool IsValidCandidateForAngularRange(G4double top, G4double bottom, G4int nmbOfDivs=1) const
virtual ~CexmcProductionModel()
virtual void FermiMotionStatusChangeHook(void)