G4LundStringFragmentation.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 // -----------------------------------------------------------------------------
00030 //      GEANT 4 class implementation file
00031 //
00032 //      History: first implementation, Maxim Komogorov, 10-Jul-1998
00033 // -----------------------------------------------------------------------------
00034 
00035 #ifndef G4LundStringFragmentation_h
00036 #define G4LundStringFragmentation_h 1
00037 
00038 #include "G4VLongitudinalStringDecay.hh"
00039 
00040 //**************************************************************************************************************
00041 
00042 class G4LundStringFragmentation: public G4VLongitudinalStringDecay
00043     {
00044 public:
00045 
00046     G4LundStringFragmentation();
00047     virtual ~G4LundStringFragmentation();
00048 
00049     virtual G4KineticTrackVector* FragmentString(const G4ExcitedString& theString);
00050 
00051 private:
00052     // not implemented to protect/forbid use
00053     G4LundStringFragmentation(const G4LundStringFragmentation &right);
00054     const G4LundStringFragmentation & operator=(const G4LundStringFragmentation &right);
00055     int operator==(const G4LundStringFragmentation &right) const;
00056     int operator!=(const G4LundStringFragmentation &right) const;
00057 
00058 private:
00059    void SetMinimalStringMass(const G4FragmentingString  * const string);                    
00060    void SetMinimalStringMass2(const G4double aValue);   
00061 
00062    virtual G4bool StopFragmenting(const G4FragmentingString  * const string);
00063    virtual G4bool IsFragmentable(const G4FragmentingString * const string);
00064 
00065    virtual G4bool SplitLast(G4FragmentingString * string, 
00066                             G4KineticTrackVector * LeftVector,
00067                             G4KineticTrackVector * RightVector);
00068 
00069    virtual void Sample4Momentum(G4LorentzVector* Mom,     G4double Mass, 
00070                                 G4LorentzVector* AntiMom, G4double AntiMass, 
00071                                 G4double InitialMass); 
00072 
00073    virtual G4LorentzVector * SplitEandP(G4ParticleDefinition * pHadron, 
00074                                         G4FragmentingString * string,
00075                                         G4FragmentingString * newString); // Uzhi
00076 
00077    virtual G4double GetLightConeZ(G4double zmin, G4double zmax, 
00078                                   G4int PartonEncoding,  
00079                                   G4ParticleDefinition* pHadron,
00080                                   G4double Px, G4double Py);      
00081 
00082    G4double lambda(G4double s, G4double m1_Sqr, G4double m2_Sqr);
00083 
00084 private:
00085    // Internal methods introduced to improve the code structure (AR Nov 2011)
00086 
00087    G4bool Loop_toFragmentString(G4ExcitedString * & theStringInCMS, 
00088                                 G4KineticTrackVector * & LeftVector, 
00089                                 G4KineticTrackVector * & RightVector);
00090 
00091    G4bool Diquark_AntiDiquark_belowThreshold_lastSplitting(G4FragmentingString * & string,
00092                                                            G4ParticleDefinition * & LeftHadron,
00093                                                            G4ParticleDefinition * & RightHadron);
00094 
00095    G4bool Diquark_AntiDiquark_aboveThreshold_lastSplitting(G4FragmentingString * & string,
00096                                                            G4ParticleDefinition * & LeftHadron,
00097                                                            G4ParticleDefinition * & RightHadron);
00098 
00099    G4bool Quark_AntiQuark_lastSplitting(G4FragmentingString * & string,
00100                                         G4ParticleDefinition * & LeftHadron,
00101                                         G4ParticleDefinition * & RightHadron);
00102 
00103    G4bool Quark_Diquark_lastSplitting(G4FragmentingString * & string,
00104                                       G4ParticleDefinition * & LeftHadron,
00105                                       G4ParticleDefinition * & RightHadron );
00106 
00107    G4int SampleState(void); 
00108 
00109 private:
00110 // ------ For estimation of a minimal string mass ---------------
00111    G4double Mass_of_light_quark;
00112    G4double Mass_of_heavy_quark;
00113    G4double Mass_of_string_junction;
00114 // ------ An estimated minimal string mass ----------------------
00115    G4double MinimalStringMass;
00116    G4double MinimalStringMass2;
00117 // ------ Minimal invariant mass used at a string fragmentation -
00118    G4double WminLUND;               
00119 
00120    G4int          Meson[3][3][6];
00121    G4double MesonWeight[3][3][6];
00122 
00123    G4int          Baryon[3][3][3][4];
00124    G4double BaryonWeight[3][3][3][4];
00125 
00126    G4double Prob_QQbar[3];
00127 
00128 // ------ To improve the code structure
00129    G4ParticleDefinition * FS_LeftHadron[35], * FS_RightHadron[35];
00130    G4double FS_Weight[35];
00131    G4int NumberOf_FS;
00132 
00133 };
00134 
00135 //**************************************************************************************************************
00136 // Class G4LundStringFragmentation 
00137 #endif
00138 
00139 

Generated on Mon May 27 17:48:50 2013 for Geant4 by  doxygen 1.4.7