Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh (Version 11.3.0) and /processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh (Version 11.1.3)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
 27 //                                                 27 //
 28 // Class Description                               28 // Class Description
 29 // Final state production code for hadron inel     29 // Final state production code for hadron inelastic scattering above 3 GeV
 30 // based on the modeling ansatz used in FRITIO     30 // based on the modeling ansatz used in FRITIOF.
 31 // To be used in your physics list in case you     31 // To be used in your physics list in case you need this physics.
 32 // In this case you want to register an object     32 // In this case you want to register an object of this class with an object
 33 // of G4TheoFSGenerator.                           33 // of G4TheoFSGenerator. 
 34 // Class Description - End                         34 // Class Description - End
 35                                                    35 
 36 #ifndef G4FTFModel_h                               36 #ifndef G4FTFModel_h
 37 #define G4FTFModel_h 1                             37 #define G4FTFModel_h 1
 38                                                    38 
 39 // -------------------------------------------     39 // ------------------------------------------------------------
 40 //      GEANT 4 class header file                  40 //      GEANT 4 class header file
 41 //                                                 41 //
 42 //      ---------------- G4FTFModel ----------     42 //      ---------------- G4FTFModel ----------------
 43 //             by Gunter Folger, May 1998.         43 //             by Gunter Folger, May 1998.
 44 //       class implementing the excitation in      44 //       class implementing the excitation in the FTF Parton String Model
 45 // -------------------------------------------     45 // ------------------------------------------------------------
 46                                                    46 
 47 #include "G4VPartonStringModel.hh"                 47 #include "G4VPartonStringModel.hh"
 48 #include "G4FTFParameters.hh"                      48 #include "G4FTFParameters.hh"
 49 #include "G4FTFParticipants.hh"                    49 #include "G4FTFParticipants.hh"
 50 #include "G4ExcitedStringVector.hh"                50 #include "G4ExcitedStringVector.hh"
 51 #include "G4DiffractiveExcitation.hh"              51 #include "G4DiffractiveExcitation.hh"
 52 #include "G4ElasticHNScattering.hh"                52 #include "G4ElasticHNScattering.hh"
 53 #include "G4FTFAnnihilation.hh"                    53 #include "G4FTFAnnihilation.hh"
 54 #include "G4Proton.hh"                             54 #include "G4Proton.hh"
 55 #include "G4Neutron.hh"                            55 #include "G4Neutron.hh"
 56                                                    56 
 57 class G4VSplitableHadron;                          57 class G4VSplitableHadron;
 58 class G4ExcitedString;                             58 class G4ExcitedString;
 59                                                    59 
 60                                                    60 
 61 class G4FTFModel : public G4VPartonStringModel     61 class G4FTFModel : public G4VPartonStringModel {
 62   public:                                          62   public:
 63     G4FTFModel( const G4String& modelName = "F     63     G4FTFModel( const G4String& modelName = "FTF" );
 64     ~G4FTFModel() override;                        64     ~G4FTFModel() override;
 65                                                    65 
 66     G4V3DNucleus* GetTargetNucleus() const;        66     G4V3DNucleus* GetTargetNucleus() const;
 67     G4V3DNucleus* GetWoundedNucleus() const ov     67     G4V3DNucleus* GetWoundedNucleus() const override;
 68     G4V3DNucleus* GetProjectileNucleus() const     68     G4V3DNucleus* GetProjectileNucleus() const override;
 69                                                    69 
 70     void ModelDescription( std::ostream& ) con     70     void ModelDescription( std::ostream& ) const override;
 71                                                    71 
 72     G4FTFModel( const G4FTFModel& right ) = de     72     G4FTFModel( const G4FTFModel& right ) = delete;
 73     const G4FTFModel& operator=( const G4FTFMo     73     const G4FTFModel& operator=( const G4FTFModel& right ) = delete;
 74     G4bool operator==( const G4FTFModel& right     74     G4bool operator==( const G4FTFModel& right ) const = delete;
 75     G4bool operator!=( const G4FTFModel& right     75     G4bool operator!=( const G4FTFModel& right ) const = delete;
 76                                                    76 
 77     void SetImpactParameter( const G4double b_     77     void SetImpactParameter( const G4double b_value );
 78     G4double GetImpactParameter() const;           78     G4double GetImpactParameter() const;
 79     void SetBminBmax( const G4double bmin_valu     79     void SetBminBmax( const G4double bmin_value, const G4double bmax_value );
 80     G4bool SampleBinInterval() const;              80     G4bool SampleBinInterval() const;
 81     G4double GetBmin() const;                      81     G4double GetBmin() const;
 82     G4double GetBmax() const;                      82     G4double GetBmax() const;
 83     G4int GetNumberOfProjectileSpectatorNucleo     83     G4int GetNumberOfProjectileSpectatorNucleons() const;
 84     G4int GetNumberOfTargetSpectatorNucleons()     84     G4int GetNumberOfTargetSpectatorNucleons() const; 
 85     G4int GetNumberOfNNcollisions() const;         85     G4int GetNumberOfNNcollisions() const;
 86                                                    86 
 87   protected:                                       87   protected:
 88     void Init( const G4Nucleus& aNucleus,          88     void Init( const G4Nucleus& aNucleus, 
 89                const G4DynamicParticle& aProje     89                const G4DynamicParticle& aProjectile ) override;
 90     G4ExcitedStringVector* GetStrings() overri     90     G4ExcitedStringVector* GetStrings() override;
 91                                                    91 
 92   private:                                         92   private:
 93     void StoreInvolvedNucleon();                   93     void StoreInvolvedNucleon();              
 94     void ReggeonCascade();                         94     void ReggeonCascade();
 95     G4bool PutOnMassShell();                       95     G4bool PutOnMassShell();
 96     G4bool ExciteParticipants();                   96     G4bool ExciteParticipants();
 97     void BuildStrings( G4ExcitedStringVector*      97     void BuildStrings( G4ExcitedStringVector* strings );
 98     void GetResiduals();                           98     void GetResiduals();
 99                                                    99       
100     G4bool AdjustNucleons( G4VSplitableHadron*    100     G4bool AdjustNucleons( G4VSplitableHadron* SelectedAntiBaryon,
101                            G4Nucleon*             101                            G4Nucleon*          ProjectileNucleon,
102                            G4VSplitableHadron*    102                            G4VSplitableHadron* SelectedTargetNucleon,
103                            G4Nucleon*             103                            G4Nucleon*          TargetNucleon,
104                            G4bool                 104                            G4bool              Annihilation ); 
105     // The "AdjustNucleons" method uses the fo    105     // The "AdjustNucleons" method uses the following struct and 3 new utility methods:
106     struct CommonVariables {                      106     struct CommonVariables {
107       G4int TResidualMassNumber = 0, TResidual    107       G4int TResidualMassNumber = 0, TResidualCharge = 0, PResidualMassNumber = 0, 
108         PResidualCharge = 0, PResidualLambdaNu    108         PResidualCharge = 0, PResidualLambdaNumber = 0;
109       G4double SqrtS = 0.0, S = 0.0, SumMasses    109       G4double SqrtS = 0.0, S = 0.0, SumMasses = 0.0,
110         TResidualExcitationEnergy = 0.0, TResi    110         TResidualExcitationEnergy = 0.0, TResidualMass = 0.0, TNucleonMass = 0.0,
111         PResidualExcitationEnergy = 0.0, PResi    111         PResidualExcitationEnergy = 0.0, PResidualMass = 0.0, PNucleonMass = 0.0,
112         Mprojectile = 0.0, M2projectile = 0.0,    112         Mprojectile = 0.0, M2projectile = 0.0, Pzprojectile = 0.0, Eprojectile = 0.0, 
113         WplusProjectile = 0.0,                    113         WplusProjectile = 0.0,
114         Mtarget = 0.0, M2target = 0.0, Pztarge    114         Mtarget = 0.0, M2target = 0.0, Pztarget = 0.0, Etarget = 0.0, WminusTarget = 0.0,
115         Mt2targetNucleon = 0.0, PztargetNucleo    115         Mt2targetNucleon = 0.0, PztargetNucleon = 0.0, EtargetNucleon = 0.0,
116         Mt2projectileNucleon = 0.0, Pzprojecti    116         Mt2projectileNucleon = 0.0, PzprojectileNucleon = 0.0, EprojectileNucleon = 0.0,
117         YtargetNucleus = 0.0, YprojectileNucle    117         YtargetNucleus = 0.0, YprojectileNucleus = 0.0,
118         XminusNucleon = 0.0, XplusNucleon = 0.    118         XminusNucleon = 0.0, XplusNucleon = 0.0, XminusResidual = 0.0, XplusResidual = 0.0;
119       G4ThreeVector PtNucleon, PtResidual, PtN    119       G4ThreeVector PtNucleon, PtResidual, PtNucleonP, PtResidualP, PtNucleonT, PtResidualT;
120       G4LorentzVector Psum, Pprojectile, Ptmp,    120       G4LorentzVector Psum, Pprojectile, Ptmp, Ptarget, TResidual4Momentum, PResidual4Momentum;
121       G4LorentzRotation toCms, toLab;             121       G4LorentzRotation toCms, toLab;
122     };                                            122     };
123     G4int AdjustNucleonsAlgorithm_beforeSampli    123     G4int AdjustNucleonsAlgorithm_beforeSampling( G4int               interactionCase, 
124                                                   124                                                   G4VSplitableHadron* SelectedAntiBaryon,
125                                                   125                                                   G4Nucleon*          ProjectileNucleon,
126                                                   126                                                   G4VSplitableHadron* SelectedTargetNucleon,
127                                                   127                                                   G4Nucleon*          TargetNucleon,
128                                                   128                                                   G4bool              Annihilation,
129                                                   129                                                   CommonVariables&    common );  
130     G4bool AdjustNucleonsAlgorithm_Sampling(      130     G4bool AdjustNucleonsAlgorithm_Sampling(      G4int interactionCase, 
131                                                   131                                                   CommonVariables& common );
132     void AdjustNucleonsAlgorithm_afterSampling    132     void AdjustNucleonsAlgorithm_afterSampling( G4int               interactionCase, 
133                                                   133                                                 G4VSplitableHadron* SelectedAntiBaryon,
134                                                   134                                                 G4VSplitableHadron* SelectedTargetNucleon,
135                                                   135                                                 CommonVariables&    common ); 
136                                                   136 
137     G4ThreeVector GaussianPt( G4double Average    137     G4ThreeVector GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const;
138                                                   138 
139     G4bool ComputeNucleusProperties( G4V3DNucl    139     G4bool ComputeNucleusProperties( G4V3DNucleus* nucleus, G4LorentzVector& nucleusMomentum, 
140                                      G4Lorentz    140                                      G4LorentzVector& residualMomentum, G4double& sumMasses,   
141                                      G4double&    141                                      G4double& residualExcitationEnergy, G4double& residualMass,
142                                      G4int& re    142                                      G4int& residualMassNumber, G4int& residualCharge );
143     // Utility method used by PutOnMassShell.     143     // Utility method used by PutOnMassShell.
144                                                   144 
145     G4bool GenerateDeltaIsobar( const G4double    145     G4bool GenerateDeltaIsobar( const G4double sqrtS, const G4int numberOfInvolvedNucleons,
146                                 G4Nucleon* inv    146                                 G4Nucleon* involvedNucleons[], G4double& sumMasses );
147     // Utility method used by PutOnMassShell.     147     // Utility method used by PutOnMassShell.
148                                                   148 
149     G4bool SamplingNucleonKinematics( G4double    149     G4bool SamplingNucleonKinematics( G4double averagePt2, const G4double maxPt2,
150                                       G4double    150                                       G4double dCor, G4V3DNucleus* nucleus,
151                                       const G4    151                                       const G4LorentzVector& pResidual, 
152                                       const G4    152                                       const G4double residualMass, const G4int residualMassNumber,
153                                       const G4    153                                       const G4int numberOfInvolvedNucleons,
154                                       G4Nucleo    154                                       G4Nucleon* involvedNucleons[], G4double& mass2 );
155                                                   155 
156     // Utility method used by PutOnMassShell.     156     // Utility method used by PutOnMassShell.
157                                                   157 
158     G4bool CheckKinematics( const G4double sVa    158     G4bool CheckKinematics( const G4double sValue, const G4double sqrtS, 
159                             const G4double pro    159                             const G4double projectileMass2, const G4double targetMass2,
160                             const G4double nuc    160                             const G4double nucleusY, const G4bool isProjectileNucleus,
161                             const G4int number    161                             const G4int numberOfInvolvedNucleons, G4Nucleon* involvedNucleons[],
162                             G4double& targetWm    162                             G4double& targetWminus, G4double& projectileWplus, G4bool& success );
163     // Utility method used by PutOnMassShell.     163     // Utility method used by PutOnMassShell.
164                                                   164 
165     G4bool FinalizeKinematics( const G4double     165     G4bool FinalizeKinematics( const G4double w, const G4bool isProjectileNucleus, 
166                                const G4Lorentz    166                                const G4LorentzRotation& boostFromCmsToLab,
167                                const G4double     167                                const G4double residualMass, const G4int residualMassNumber,
168                                const G4int num    168                                const G4int numberOfInvolvedNucleons, 
169                                G4Nucleon* invo    169                                G4Nucleon* involvedNucleons[],
170                          G4LorentzVector& resi    170                          G4LorentzVector& residual4Momentum );
171     // Utility method used by PutOnMassShell.     171     // Utility method used by PutOnMassShell.
172                                                   172 
173     G4ReactionProduct theProjectile;              173     G4ReactionProduct theProjectile;       
174     G4FTFParticipants theParticipants;            174     G4FTFParticipants theParticipants;
175                                                   175        
176     G4Nucleon* TheInvolvedNucleonsOfTarget[250    176     G4Nucleon* TheInvolvedNucleonsOfTarget[250];
177     G4int NumberOfInvolvedNucleonsOfTarget;       177     G4int NumberOfInvolvedNucleonsOfTarget;
178                                                   178 
179     G4Nucleon* TheInvolvedNucleonsOfProjectile    179     G4Nucleon* TheInvolvedNucleonsOfProjectile[250];
180     G4int NumberOfInvolvedNucleonsOfProjectile    180     G4int NumberOfInvolvedNucleonsOfProjectile;
181                                                   181 
182     G4FTFParameters* theParameters;               182     G4FTFParameters* theParameters;
183     G4DiffractiveExcitation* theExcitation;       183     G4DiffractiveExcitation* theExcitation;
184     G4ElasticHNScattering* theElastic;            184     G4ElasticHNScattering* theElastic;
185     G4FTFAnnihilation* theAnnihilation;           185     G4FTFAnnihilation* theAnnihilation;  
186                                                   186 
187     std::vector< G4VSplitableHadron* > theAddi    187     std::vector< G4VSplitableHadron* > theAdditionalString; 
188                                                   188 
189     G4double LowEnergyLimit;                      189     G4double LowEnergyLimit;
190     G4bool HighEnergyInter;                       190     G4bool HighEnergyInter;
191                                                   191 
192     G4LorentzVector ProjectileResidual4Momentu    192     G4LorentzVector ProjectileResidual4Momentum;
193     G4int           ProjectileResidualMassNumb    193     G4int           ProjectileResidualMassNumber;
194     G4int           ProjectileResidualCharge;     194     G4int           ProjectileResidualCharge;
195     G4int           ProjectileResidualLambdaNu    195     G4int           ProjectileResidualLambdaNumber;  // Number of (anti-)lambdas for projectile (anti-)hypernucleus
196     G4double        ProjectileResidualExcitati    196     G4double        ProjectileResidualExcitationEnergy;
197                                                   197 
198     G4LorentzVector TargetResidual4Momentum;      198     G4LorentzVector TargetResidual4Momentum;
199     G4int           TargetResidualMassNumber;     199     G4int           TargetResidualMassNumber;
200     G4int           TargetResidualCharge;         200     G4int           TargetResidualCharge;
201     G4double        TargetResidualExcitationEn    201     G4double        TargetResidualExcitationEnergy;
202                                                   202 
203     G4double Bimpact;                             203     G4double Bimpact;
204     G4bool   BinInterval;                         204     G4bool   BinInterval;
205     G4double Bmin;                                205     G4double Bmin;
206     G4double Bmax;                                206     G4double Bmax;
207     G4int NumberOfProjectileSpectatorNucleons;    207     G4int NumberOfProjectileSpectatorNucleons;
208     G4int NumberOfTargetSpectatorNucleons;        208     G4int NumberOfTargetSpectatorNucleons;
209     G4int NumberOfNNcollisions;                   209     G4int NumberOfNNcollisions;
210 };                                                210 };
211                                                   211 
212 inline G4V3DNucleus* G4FTFModel::GetWoundedNuc    212 inline G4V3DNucleus* G4FTFModel::GetWoundedNucleus() const {
213   return theParticipants.GetWoundedNucleus();     213   return theParticipants.GetWoundedNucleus();
214 }                                                 214 }
215                                                   215 
216 inline G4V3DNucleus* G4FTFModel::GetTargetNucl    216 inline G4V3DNucleus* G4FTFModel::GetTargetNucleus() const {
217   return theParticipants.GetWoundedNucleus();     217   return theParticipants.GetWoundedNucleus();
218 }                                                 218 }
219                                                   219 
220 inline G4V3DNucleus* G4FTFModel::GetProjectile    220 inline G4V3DNucleus* G4FTFModel::GetProjectileNucleus() const {
221   return theParticipants.GetProjectileNucleus(    221   return theParticipants.GetProjectileNucleus();
222 }                                                 222 }
223                                                   223 
224 inline void G4FTFModel::SetImpactParameter( co    224 inline void G4FTFModel::SetImpactParameter( const G4double b_value ) {
225   Bimpact = b_value;                              225   Bimpact = b_value;
226 }                                                 226 }
227                                                   227 
228 inline G4double G4FTFModel::GetImpactParameter    228 inline G4double G4FTFModel::GetImpactParameter() const {
229   return Bimpact;                                 229   return Bimpact;
230 }                                                 230 }
231                                                   231 
232 inline void G4FTFModel::SetBminBmax( const G4d    232 inline void G4FTFModel::SetBminBmax( const G4double bmin_value, const G4double bmax_value ) {
233   BinInterval = false;                            233   BinInterval = false;
234   if ( bmin_value < 0.0 || bmax_value < 0.0 ||    234   if ( bmin_value < 0.0 || bmax_value < 0.0 || bmax_value < bmin_value ) return;
235   BinInterval = true;                             235   BinInterval = true;
236   Bmin = bmin_value;                              236   Bmin = bmin_value;
237   Bmax = bmax_value;                              237   Bmax = bmax_value;
238 }                                                 238 }
239                                                   239 
240 inline G4bool G4FTFModel::SampleBinInterval()     240 inline G4bool G4FTFModel::SampleBinInterval() const {
241   return BinInterval;                             241   return BinInterval;
242 }                                                 242 }
243                                                   243 
244 inline G4double G4FTFModel::GetBmin() const {     244 inline G4double G4FTFModel::GetBmin() const {
245   return Bmin;                                    245   return Bmin;
246 }                                                 246 }
247                                                   247 
248 inline G4double G4FTFModel::GetBmax() const {     248 inline G4double G4FTFModel::GetBmax() const {
249   return Bmax;                                    249   return Bmax;
250 }                                                 250 }
251                                                   251 
252 inline G4int G4FTFModel::GetNumberOfProjectile    252 inline G4int G4FTFModel::GetNumberOfProjectileSpectatorNucleons() const {
253   return NumberOfProjectileSpectatorNucleons;     253   return NumberOfProjectileSpectatorNucleons;
254 }                                                 254 }
255                                                   255 
256 inline G4int G4FTFModel::GetNumberOfTargetSpec    256 inline G4int G4FTFModel::GetNumberOfTargetSpectatorNucleons() const {
257   return NumberOfTargetSpectatorNucleons;         257   return NumberOfTargetSpectatorNucleons;
258 }                                                 258 }
259                                                   259 
260 inline G4int G4FTFModel::GetNumberOfNNcollisio    260 inline G4int G4FTFModel::GetNumberOfNNcollisions() const {
261   return NumberOfNNcollisions;                    261   return NumberOfNNcollisions;
262 }                                                 262 }
263                                                   263 
264 #endif                                            264 #endif
265                                                   265