ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4LMsdGenerator.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4LMsdGenerator.hh
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 //
28 // Author: Vladimir Grichine, ~25 October 2014
29 //
30 // Class Description
31 // Final state production model for theoretical models of hadron inelastic
32 // scattering in geant4;
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
35 // the corresponding process.
36 // Note: This class is part of an implementation framework. You need to
37 // register corresponding high energy generators and transport codes to
38 // fill it with life; decay of strong resonances is done directly,
39 // in case there is no residual nucleus.
40 // Class Description - End
41 //
42 // History:
43 //
44 // ~25.10.14 V. Grichine: p and kinematics tests
45 // 20.11.14 V. Grichine: n, pi+-, K+- added
46 //
47 //
48 
49 
50 
51 #ifndef G4LMsdGenerator_h
52 #define G4LMsdGenerator_h 1
53 
54 #include "G4HadronicInteraction.hh"
55 #include "G4HadFinalState.hh"
56 
57 // class G4ParticleDefinition;
58 
60 
61 {
62  public:
63 
64  G4LMsdGenerator(const G4String& name = "LMsdGenerator");
66 
67  private:
68 
70  const G4LMsdGenerator & operator=(const G4LMsdGenerator &right);
71  int operator == (const G4LMsdGenerator &right) const;
72  int operator != (const G4LMsdGenerator &right) const;
73 
74  public:
75 
76  G4bool IsApplicable(const G4HadProjectile & thePrimary,
77  G4Nucleus & theNucleus);
78 
79  G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary,
80  G4Nucleus & theNucleus);
81 
82  G4double SampleMx(const G4HadProjectile* aParticle );
83 
84  G4double SampleT( const G4HadProjectile* aParticle, G4double Mx );
85 
86  void ModelDescription(std::ostream& outFile) const;
87 
88  private:
89 
90  // G4ParticleDefinition* fParticle;
91 
93 
94  static const G4double fMxBdata[23][2];
95  static const G4double fProbMx[60][2];
96 };
97 
98 
99 #endif
100 
101