source: trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh

Last change on this file was 1347, checked in by garnier, 14 years ago

geant4 tag 9.4

File size: 4.2 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4FTFModel.hh,v 1.11 2010/09/20 15:50:46 vuzhinsk Exp $
28// GEANT4 tag $Name: geant4-09-04-ref-00 $
29//
30// Class Description
31// Final state production code for hadron inelastic scattering above 20 GeV
32// based on the modeling ansatz used in FRITIOF.
33// To be used in your physics list in case you need this physics.
34// In this case you want to register an object of this class with an object
35// of G4TheoFSGenerator.
36// Class Description - End
37
38#ifndef G4FTFModel_h
39#define G4FTFModel_h 1
40
41// ------------------------------------------------------------
42//      GEANT 4 class header file
43//
44//      ---------------- G4FTFModel ----------------
45//             by Gunter Folger, May 1998.
46//       class implementing the excitation in the FTF Parton String Model
47// ------------------------------------------------------------
48
49
50#include "G4VPartonStringModel.hh"
51
52class G4VSplitableHadron;
53class G4ExcitedString;
54
55#include "G4FTFParameters.hh"
56#include "G4FTFParticipants.hh"
57
58#include "G4ExcitedStringVector.hh"
59#include "G4DiffractiveExcitation.hh"
60#include "G4ElasticHNScattering.hh"
61
62class G4FTFModel : public G4VPartonStringModel
63{
64
65  public:
66      G4FTFModel();
67      G4FTFModel(G4double , G4double , G4double );
68      G4FTFModel(G4DiffractiveExcitation * anExcitation);
69      G4FTFModel(const G4FTFModel &right);
70      ~G4FTFModel();
71      const G4FTFModel & operator=(const G4FTFModel &right);
72
73      int operator==(const G4FTFModel &right) const;
74      int operator!=(const G4FTFModel &right) const;
75
76      void Init(const G4Nucleus & aNucleus, const G4DynamicParticle & aProjectile);
77      G4ExcitedStringVector * GetStrings();
78      G4V3DNucleus * GetWoundedNucleus() const;
79
80
81  protected:
82 
83  private:
84       void ReggeonCascade();
85       G4bool PutOnMassShell();
86       G4bool ExciteParticipants();
87       G4ExcitedStringVector * BuildStrings();
88       void GetResidualNucleus();                  // 23 Oct. 2009
89       G4ThreeVector GaussianPt(G4double  AveragePt2, G4double maxPtSquare) const;
90 
91  private:     
92
93       G4ReactionProduct theProjectile;       
94       G4FTFParticipants theParticipants;
95       
96       G4Nucleon * TheInvolvedNucleon[250];
97       G4int NumberOfInvolvedNucleon;
98
99       G4FTFParameters  *theParameters;
100       G4DiffractiveExcitation * theExcitation;
101       G4ElasticHNScattering   * theElastic;
102
103       G4LorentzVector Residual4Momentum;
104       G4double ResidualExcitationEnergy;
105
106};
107
108// ------------------------------------------------------------
109inline 
110G4V3DNucleus * G4FTFModel::GetWoundedNucleus() const
111{
112        return theParticipants.GetWoundedNucleus();
113}
114
115#endif
Note: See TracBrowser for help on using the repository browser.