71 G4Exception(
"G4FTFParticipants::G4FTFParticipants()",
"HAD_FTF_001",
86 #ifdef debugFTFparticipant
92 if ( betta_z < 1.0e-10 ) betta_z = 1.0e-10;
103 G4double impactX( 0.0 ), impactY( 0.0 );
107 #ifdef debugFTFparticipant
108 G4cout <<
"Hadron-nucleus or anti-baryon-nucleus interactions" <<
G4endl;
116 std::pair< G4double, G4double > theImpactParameter;
118 impactX = theImpactParameter.first;
119 impactY = theImpactParameter.second;
121 #ifdef debugFTFparticipant
122 G4cout <<
"New interaction list," <<
" b= "
132 #ifdef debugFTFparticipant
147 nucleon->
Hit( targetSplitable );
150 #ifdef debugFTFparticipant
151 G4cout <<
"Participated nucleons #, " << TrN <<
" " <<
"Splitable Pr* Tr* "
152 << primarySplitable <<
" " << targetSplitable <<
G4endl;
159 aInteraction->
SetTarget( targetSplitable );
167 #ifdef debugFTFparticipant
175 #ifdef debugFTFparticipant
177 <<
"\t By " << impactY/
fermi <<
"\t B "
189 #ifdef debugFTFparticipant
197 G4double impactX( 0.0 ), impactY( 0.0 );
201 std::pair< G4double, G4double > theImpactParameter;
203 impactX = theImpactParameter.first;
204 impactY = theImpactParameter.second;
206 #ifdef debugFTFparticipant
207 G4cout <<
"New interaction list, " <<
"b "
216 #ifdef debugFTFparticipant
226 #ifdef debugFTFparticipant
240 #ifdef debugFTFparticipant
241 G4cout << G4endl <<
"An Interaction has happend" << G4endl <<
"Proj N mom " << PrNuclN
242 <<
" " << ProjectileNucleon->
Get4Momentum() <<
"-------------" << G4endl
243 <<
"Targ N mom " << TrNuclN <<
" " << TargetNucleon->
Get4Momentum() << G4endl
250 if ( ! ProjectileNucleon->
AreYouHit() ) {
253 ProjectileNucleon->
Hit( ProjectileSplitable );
261 TargetNucleon->
Hit( TargetSplitable );
262 TargetSplitable->SetStatus( 1 );
268 anInteraction->
SetTarget( TargetSplitable );
275 #ifdef debugFTFparticipant
276 G4cout <<
"Part anInteraction->GetInteractionTime() "
278 <<
"Splitable Pr* Tr* " << ProjectileSplitable <<
" "
279 << TargetSplitable <<
G4endl;
286 #ifdef debugFTFparticipant
292 #ifdef debugFTFparticipant
305 #ifdef debugFTFparticipant
307 <<
"\t Bx " << impactX/
fermi <<
"\t By " << impactY/
fermi
308 <<
"\t B " << std::sqrt(
sqr( impactX ) +
sqr( impactY ) )/
fermi << G4endl
309 <<
"FTF participant End. #######################" << G4endl <<
G4endl;
void GetList(const G4ReactionProduct &thePrimary, G4FTFParameters *theParameters)
CLHEP::Hep3Vector G4ThreeVector
std::vector< G4InteractionContent * > theInteractions
virtual G4bool StartLoop()=0
void SetInteractionTime(G4double aValue)
void ShiftInteractionTime()
void SetTimeOfCreation(G4double aTime)
virtual const G4LorentzVector & Get4Momentum() const
virtual const G4ThreeVector & GetPosition() const
void SetStatus(const G4int aStatus)
G4VSplitableHadron * GetSplitableHadron() const
virtual G4double GetOuterRadius()=0
void SetProjectileNucleon(G4Nucleon *aNucleon)
G4GLOB_DLL std::ostream G4cout
G4bool nucleon(G4int ityp)
G4V3DNucleus * theProjectileNucleus
G4V3DNucleus * theNucleus
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::pair< G4double, G4double > ChooseImpactXandY(G4double maxImpact)
G4double GetTotalEnergy() const
void SetStatus(G4int aValue)
void SetPosition(const G4ThreeVector &aPosition)
G4VSplitableHadron * GetTarget() const
G4VSplitableHadron * GetProjectile() const
G4ThreeVector GetMomentum() const
const G4ThreeVector & GetPosition() const
G4double GetProbabilityOfInteraction(const G4double impactsquare)
virtual G4Nucleon * GetNextNucleon()=0
void Hit(G4VSplitableHadron *aHit)
void SortInteractionsIncT()
G4double GetInteractionTime() const
virtual void DoTranslation(const G4ThreeVector &theShift)=0
bool G4FTFPartHelperForSortInT(const G4InteractionContent *Int1, const G4InteractionContent *Int2)
static const double fermi
void SetTargetNucleon(G4Nucleon *aNucleon)
void SetTarget(G4VSplitableHadron *aTarget)