Ignore:
Timestamp:
Nov 25, 2009, 5:13:58 PM (15 years ago)
Author:
garnier
Message:

update CVS release candidate geant4.9.3.01

Location:
trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include
Files:
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Chips.hh

    r1007 r1196  
    2626//
    2727// $Id: G4Chips.hh,v 1.19 2006/06/29 20:05:53 gunter Exp $
    28 // GEANT4 tag $Name: geant4-09-02 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4Chips ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QBesIKJY.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QBesIKJY.hh,v 1.3 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QBesIKJY ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCHIPSWorld.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QCHIPSWorld.hh,v 1.26 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCHIPSWorld ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QCandidate.hh,v 1.29 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidate ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidateVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QCandidateVector.hh,v 1.22 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QChipolino.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QChipolino.hh,v 1.24 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QChipolino ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QContent.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QContent.hh,v 1.29 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QContent.hh,v 1.31 2009/07/24 16:37:03 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QContent ----------------
     
    5555public:
    5656  G4QContent(G4int d=0, G4int u=0, G4int s=0, G4int ad=0, G4int au=0, G4int as=0);
     57  G4QContent(std::pair<G4int,G4int> PP); // Create HadronQC from two partons
    5758  G4QContent(const G4QContent& rhs);     // Copy constructor by value
    5859  G4QContent(G4QContent* rhs);           // Copy constructor by pointer
     
    116117  G4int GetADAS() const;    // A#of anti-ds-di-quarks
    117118  G4int GetAUAS() const;    // A#of anti-us-di-quarks
     119
     120  std::pair<G4int,G4int> MakePartonPair() const;// Make PDG's of PartonPairs for Mes&Baryon
     121  G4int AddParton(G4int pPDG) const; // Add parton with pPDG to the hadron with this QC
    118122
    119123  // Modifiers
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChan.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QDecayChan.hh,v 1.24 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QDecayChan ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QDecayChanVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QDecayChanVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QEnvironment.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QEnvironment.hh,v 1.33 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QEnvironment.hh,v 1.36 2009/11/16 18:15:01 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QEnvironment ----------------
     
    4444#define G4QEnvironment_h 1
    4545
     46#include "G4RandomDirection.hh"
    4647#include "G4QuasmonVector.hh"
    4748
     
    122123
    123124//General function makes Random Unit 3D-Vector
    124 G4ThreeVector RndmDir();
     125//G4ThreeVector RndmDir();
    125126
    126127// Inline functions
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QException.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QException.hh,v 1.11 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QException ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadron.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QHadron.hh,v 1.37 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QHadron.hh,v 1.46 2009/09/08 14:04:14 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QHadron ----------------
     
    4747#include "G4QParticle.hh"
    4848#include "G4QPartonVector.hh"
     49#include "G4QPartonPair.hh"
     50#include "G4LorentzRotation.hh"
    4951#include <list>
    5052
     
    7678  G4QPDGCode            GetQPDG()         const;    // Get QPDG of the Hadron
    7779  G4double              GetSpin()         const{return .5*(GetPDGCode()%10-1);}
    78   G4LorentzVector       Get4Momentum()    const;    // Get 4-mom of the Hadron
     80  G4LorentzVector       Get4Momentum()    const{return theMomentum;} // Get 4-mom of Hadron
     81  G4ThreeVector         Get3Momentum()    const{return theMomentum.vect();}// Get 3-mom ofH
     82  G4double              GetEnergy()       const{return theMomentum.e();} // Get E of Hadron
    7983  G4QContent            GetQC()           const;    // Get private quark content
    8084  G4double              GetMass()         const;    // Get a mass of the Hadron
     
    8690  G4int                 GetBaryonNumber() const;    // Get Baryon Number of the Hadron
    8791  const G4ThreeVector&  GetPosition()     const;    // Get hadron coordinates
    88   G4int                 GetSoftCollisionCount();    // Get QGS Counter of collisions
    89   G4bool                IsSplit() {return isSplit;} // Check that hadron has been split
    9092  G4double              GetBindingEnergy() {return bindE;}// Returns binding E in NucMatter
    9193  G4double              GetFormationTime() {return formTime;} // Returns formation time
    92 
     94  std::list<G4QParton*> GetColor() {return Color;}  // pointer to quarks/anti-diquarks
     95  std::list<G4QParton*> GetAntiColor() {return AntiColor;}//pointer to anti-quarks/diquarks
    9396  // Modifiers
    9497  void SetQPDG(const G4QPDGCode& QPDG);             // Set QPDG of the Hadron
     98  void SetPDGCode(const G4QPDGCode& PDG){SetQPDG(G4QPDGCode(PDG));}// Set PDGCode of Hadron
    9599  void Set4Momentum(const G4LorentzVector& aMom);   // Set 4-mom of the Hadron
    96100  void SetQC(const G4QContent& newQC);              // Set new private quark content
     
    99103  void MakeAntiHadron();                            // Make AntiHadron of this Hadron
    100104  void SetPosition(const G4ThreeVector& aPosition); // Set coordinates of hadron position
    101   void IncrementCollisionCount(G4int aCount);       // Increnment counter of collisions
    102   void SetCollisionCount(G4int aCount);             // Set counter of QGSM collisions
    103   void Splitting() {isSplit = true;}                // Put Up a flag that splitting is done
     105  void IncrementCollisionCount(G4int aCount) {theCollisionCount+=aCount;}// IncrTheCCounter
    104106  void SplitUp();                                   // Make QGSM String Splitting of Hadron
     107  G4QPartonPair* SplitInTwoPartons();               // RandomSplit ofTheHadron in 2 partons
    105108  G4QParton* GetNextParton();                       // Next Parton in a string
    106109  G4QParton* GetNextAntiParton();                   // Next Anti-Parton in a string
     
    108111  void Boost(const G4LorentzVector& theBoost);      // Boosts hadron's 4-Momentum using 4M
    109112  void Boost(const G4ThreeVector& B){theMomentum.boost(B);} // Boosts 4-Momentum using v/c
     113  void LorentzRotate(const G4LorentzRotation& rotation){theMomentum=rotation*theMomentum;}
    110114  void SetFormationTime(G4double fT){formTime=fT;}  // Defines formationTime for the Hadron
    111115
     
    126130                     G4LorentzVector& dir, G4double cosp);
    127131  void   Init3D();                         // Initializes 3D nucleus with (Pos,4M)nucleons
    128 
    129132private:
    130133  // Private methods
    131134  void DefineQC(G4int PDGCode);
    132135  G4QParton* BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode);
    133   G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta);
     136  G4double SampleCHIPSX(G4double anXtot, G4int nSea);
     137  G4double* RandomX(G4int nPart);
    134138  void GetValenceQuarkFlavors(G4QParton* &Part1,G4QParton* &Part2);
    135139  G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare);
     
    137141  G4bool SplitBaryon(G4int PDGcode, G4int* aEnd, G4int* bEnd);
    138142
     143protected:
     144  G4LorentzVector        theMomentum;       // The 4-mom of Hadron
     145
    139146private:
    140147  // Static Parameters of QGSM Splitting
    141   static G4double alpha;            // changing rapidity distribution for all
    142   static G4double beta;             // changing rapidity distribution for projectile region
    143   static G4double theMinPz;         // Can be from 14 to 140 MeV
    144148  static G4double StrangeSuppress;  // ? M.K.
    145   static G4double sigmaPt;          // Can be 0
     149  static G4double sigmaPt;          // Can be 0 ?
    146150  static G4double widthOfPtSquare;  // ? M.K.
    147   static G4double minTransverseMass;// ? M.K.
    148151  // Body
    149152  G4QPDGCode             theQPDG;           // Instance of QPDG for the Hadron
    150   G4LorentzVector        theMomentum;       // The 4-mom of Hadron
    151153  G4QContent             valQ;              // QC (@@ for Quasmon and Chipolino?)
    152154  G4int                  nFragm;            // 0 - stable, N - decayed in N part's
     
    156158  G4bool                 isSplit;           // Flag, that splitting was done
    157159  G4bool                 Direction;         // FALSE=target, TRUE=projectile
    158   std::list<G4QParton*> Color;              // container for quarks & anti-diquarks
    159   std::list<G4QParton*> AntiColor;          // container for anti-quarks & diquarks
     160  std::list<G4QParton*>  Color;             // container for quarks & anti-diquarks
     161  std::list<G4QParton*>  AntiColor;         // container for anti-quarks & diquarks
    160162  G4double               bindE;             // Binding energy in nuclear matter
    161163  G4double               formTime;          // Formation time for the hadron
     
    171173inline G4QPDGCode      G4QHadron::GetQPDG()         const  {return theQPDG;}
    172174inline G4QContent      G4QHadron::GetQC()           const  {return valQ;}
    173 inline G4LorentzVector G4QHadron::Get4Momentum()    const  {return theMomentum;}
    174175inline G4int           G4QHadron::GetNFragments()   const  {return nFragm;}
    175176//@@ This is an example how to make other inline selectors for the 4-Momentum of the Hadron
     
    181182inline G4int           G4QHadron::GetBaryonNumber() const  {return valQ.GetBaryonNumber();}
    182183inline const G4ThreeVector& G4QHadron::GetPosition() const {return thePosition;}
    183 inline G4int           G4QHadron::GetSoftCollisionCount()  {return theCollisionCount;}
     184//inline G4int           G4QHadron::GetSoftCollisionCount()  {return theCollisionCount;}
    184185
    185186inline void            G4QHadron::MakeAntiHadron()    {if(TestRealNeutral()) NegPDGCode();}
     
    188189inline void   G4QHadron::SetNFragments(const G4int& nf)             {nFragm=nf;}
    189190inline void   G4QHadron::SetPosition(const G4ThreeVector& position) {thePosition=position;}
    190 inline void   G4QHadron::IncrementCollisionCount(G4int aCount) {theCollisionCount+=aCount;}
    191 inline void   G4QHadron::SetCollisionCount(G4int aCount)       {theCollisionCount =aCount;}
    192191
    193192inline void   G4QHadron::NegPDGCode()                  {theQPDG.NegPDGCode(); valQ.Anti();}
    194193inline G4bool G4QHadron::TestRealNeutral()             { return theQPDG.TestRealNeutral();}
    195194
    196 inline G4QParton* G4QHadron::GetNextParton()
    197 {
    198    if(Color.size()==0) return 0;
    199    G4QParton* result = Color.back();
    200    Color.pop_back();
    201    return result;
    202 }
    203 
    204 inline G4QParton* G4QHadron::GetNextAntiParton()
    205 {
    206    if(AntiColor.size() == 0) return 0;
    207    G4QParton* result = AntiColor.front();
    208    AntiColor.pop_front();
    209    return result;
    210 }
    211195#endif
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QHadronVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QHadronVector.hh,v 1.23 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
     
    4343//
    4444// $Id: G4QHadronVector.hh,v 1.23 2009/02/23 09:49:24 mkossov Exp $
    45 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     45// GEANT4 tag $Name: geant4-09-03-cand-01 $
    4646//
    4747// ------------------------------------------------------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QInteraction.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QInteraction.hh,v 1.3 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QInteraction.hh,v 1.7 2009/08/28 14:49:10 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030
     
    4242// -------------------------------------------------------------------
    4343//  Short description: Classify the interaction in soft/hard/diffractive
    44 //  parts for firther treatment by the QGS algorithm.
     44//  parts for firther treatment by the QGS algorithm. Pure data class...
     45//  Except for the SplitHadrons, which can be done elsewhere (@@ M.K.)
    4546// ---------------------------------------------------------------------
    4647
     
    5859  G4QHadron* GetTarget() const                          {return theTarget;}
    5960  G4int GetNumberOfSoftCollisions()                     {return theNumberOfSoft;}
     61  G4int GetNumberOfDINRCollisions()                     {return theNumberOfDINR;}
    6062  G4int GetNumberOfHardCollisions()                     {return theNumberOfHard;}
    6163  G4int GetNumberOfDiffractiveCollisions()              {return theNumberOfDiffractive;}
    62   void  SetTarget(G4QHadron *aTarget)                   {theTarget = aTarget;}
    63   void  SetProjectile(G4QHadron *aProjectile)           {theProjectile = aProjectile;}
     64  void  SetTarget(G4QHadron* aTarget)                   {theTarget = aTarget;}
     65  void  SetProjectile(G4QHadron* aProjectile)           {theProjectile = aProjectile;}
    6466  void  SetNumberOfSoftCollisions(G4int nofSoft)        {theNumberOfSoft = nofSoft;}
     67  void  SetNumberOfDINRCollisions(G4int nofDINR)        {theNumberOfDINR = nofDINR;}
    6568  void  SetNumberOfHardCollisions(G4int nofHard)        {theNumberOfHard = nofHard;}
    6669  void  SetNumberOfDiffractiveCollisions(G4int nofDiff) {theNumberOfDiffractive = nofDiff;}
     
    7578  G4QHadron* theProjectile;
    7679  G4QHadron* theTarget;
     80  G4int theNumberOfDINR;
    7781  G4int theNumberOfHard;
    7882  G4int theNumberOfSoft;
     
    8185
    8286#endif
    83 
    84 
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QInteractionVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QInteractionVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
     
    3838//
    3939// $Id: G4QInteractionVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    40 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     40// GEANT4 tag $Name: geant4-09-03-cand-01 $
    4141//
    4242// ------------------------------------------------------------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QIsotope.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QIsotope.hh,v 1.6 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QNucleus.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QNucleus.hh,v 1.34 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QNucleus.hh,v 1.45 2009/08/31 11:21:48 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QNucleus ----------------
     
    4141#include "G4QCandidateVector.hh"
    4242#include "G4QHadronVector.hh"
     43#include "G4LorentzRotation.hh"
    4344#include "G4QChipolino.hh"
    4445#include <utility>
    4546#include <vector>
    4647#include "globals.hh"
     48#include "G4RandomDirection.hh"
    4749
    4850class G4QNucleus : public G4QHadron
     
    5658  G4QNucleus(G4int z, G4int n, G4int s=0);                 // At Rest ZNS-Constructor
    5759  G4QNucleus(G4int z, G4int n, G4int s, G4LorentzVector p);// Full ZNS-Constructor
    58   //G4QNucleus(const G4QNucleus& right);                     // Copy Constructor by value
    59   G4QNucleus(G4QNucleus* right);                           // Copy Constructor by pointer
     60  G4QNucleus(G4QNucleus* right, G4bool cop3D = false);     // Copy Constructor by pointer
     61  G4QNucleus(const G4QNucleus &right, G4bool cop3D=false); // Copy Constructor by value
    6062  ~G4QNucleus();                                           // Public Destructor
    6163  // Overloaded Operators
     
    7678  G4double   GetProbability(G4int bn=0) const {return probVect[bn];} // clust(BarN)probabil
    7779  G4double   GetMZNS()     const {return GetQPDG().GetNuclMass(Z,N,S);} // not H or Q
     80  G4double   GetTbIntegral(); // Calculate the integral of T(b)
    7881  G4double   GetGSMass()   const {return GetQPDG().GetMass();}//Nucleus GSMass (not Hadron)
    79   G4QContent GetQCZNS()    const                   // Get ZNS quark content of Nucleus
     82  G4QContent GetQCZNS()    const                    // Get ZNS quark content of Nucleus
    8083  {
    8184    if(S>=0) return G4QContent(Z+N+N+S,Z+Z+N+S,S,0,0,0);
     
    8487  G4int      GetNDefMesonC() const{return nDefMesonC;}; // max#of predefed mesonCandidates
    8588  G4int      GetNDefBaryonC()const{return nDefBaryonC;};// max#of predefed baryonCandidates
    86   std::pair<G4double, G4double> RefetchImpactXandY() const {return theImpactParameter;}
    8789  G4double GetDensity(const G4ThreeVector&aPos) {return rho0*GetRelativeDensity(aPos);}
     90  G4double GetRho0()                 {return rho0;} // One nucleon prob-density
    8891  G4double GetRelativeDensity(const G4ThreeVector& aPosition); // Densyty/rho0
     92  G4double GetRelWSDensity(const G4double& r)       // Wood-Saxon rho/rho0(r)
     93                                        {return 1./(1.+exp((r-radius)/WoodSaxonSurf));}   
     94  G4double GetRelOMDensity(const G4double& r2){return exp(-r2/radius);} // OscModelRelDens
    8995  G4double GetRadius(const G4double maxRelativeDenisty=0.5); // Radius of %ofDensity
    9096  G4double GetOuterRadius();                        // Get radius of the most far nucleon
    9197  G4double GetDeriv(const G4ThreeVector& point);    // Derivitive of density
    9298  G4double GetFermiMomentum(G4double density);      // Returns modul of FermyMomentum(dens)
    93   G4ThreeVector Get3DFermiMomentum(G4double density, G4double maxMom=-1.)
    94   {
    95     if(maxMom<0) maxMom=GetFermiMomentum(density);
    96     return maxMom*RandomUnitSphere();
    97   }
    9899  G4QHadron* GetNextNucleon()
    99     {return (currentNucleon>=0&&currentNucleon<GetA()) ? theNucleons[currentNucleon++] :0;}
    100   //std::vector<G4double>* GetBThickness() const {return Tb;} // T(b) function, step .1 fm
     100  {
     101    //G4cout<<"G4QNucleus::GetNextNucleon: cN="<<currentNucleon<<", A="<<GetA()<<G4endl;
     102    return (currentNucleon>=0&&currentNucleon<GetA()) ? theNucleons[currentNucleon++] : 0;
     103  }
     104  void SubtractNucleon(G4QHadron* pNucleon); // Subtract the nucleon from the 3D Nucleus
     105  void DeleteNucleons();                     // Deletes all residual nucleons
     106  G4LorentzVector GetNucleons4Momentum()
     107  {
     108    G4LorentzVector sum(0.,0.,0.,0.);
     109    for(unsigned i=0; i<theNucleons.size(); i++) sum += theNucleons[i]->Get4Momentum();
     110    sum.setE(std::sqrt(sqr(GetGSMass())+sum.v().mag2())); // Energy is corrected !
     111    return sum;
     112  }
    101113  std::vector<G4double> const* GetBThickness() {return &Tb;} // T(b) function, step .1 fm
    102114
     
    117129  G4bool     Split2Baryons();                       // Is it possible to split two baryons?
    118130  void       ActivateBThickness();                  // Calculate T(b) for nucleus (db=.1fm)
     131  G4double   GetBThickness(G4double b);             // Calculates T(b)
     132  G4double   GetThickness(G4double b);              // Calculates T(b)/rho(0)
    119133  void       InitByPDG(G4int newPDG);               // Init existing nucleus by new PDG
    120134  void       InitByQC(G4QContent newQC)             // Init existing nucleus by new QCont
     
    135149  G4QNucleus operator*=(const G4int& rhs);          // Multiplication of the Nucleus
    136150  G4bool StartLoop();                               // returns size of theNucleons (cN=0)
    137   G4bool ReduceSum(G4ThreeVector* momentum, G4double*); // Reduce momentum nonconservation
    138   void DoLorentzBoost(const G4LorentzVector& theBoost); // Boost nucleons by 4-vector
    139   void DoLorentzBoost(const G4ThreeVector& theBeta);// Boost nucleons by v/c
     151  G4bool ReduceSum(G4ThreeVector* vectors, G4ThreeVector sum);// Reduce zero-sum of vectors
     152  void SimpleSumReduction(G4ThreeVector* vectors, G4ThreeVector sum); // Reduce zero-V-sum
     153  void DoLorentzBoost(const G4LorentzVector& theBoost) // Boost nucleons by 4-vector
     154  {
     155    theMomentum.boost(theBoost);
     156    for(unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->Boost(theBoost);
     157  }
     158  void DoLorentzRotation(const G4LorentzRotation& theLoRot) // Lorentz Rotate nucleons
     159  {
     160    theMomentum=theLoRot*theMomentum;
     161    for(unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->LorentzRotate(theLoRot);
     162  }
     163  void DoLorentzBoost(const G4ThreeVector& theBeta)// Boost nucleons by v/c
     164  {
     165    theMomentum.boost(theBeta);
     166    for(unsigned i=0; i<theNucleons.size(); i++) theNucleons[i]->Boost(theBeta);
     167  }
    140168  void DoLorentzContraction(const G4LorentzVector&B){DoLorentzContraction(B.vect()/B.e());}
    141169  void DoLorentzContraction(const G4ThreeVector& theBeta); // Lorentz Contraction by v/c
    142   void DoTranslation(const G4ThreeVector& theShift); // Used only in GHAD-TFT
     170  void DoTranslation(const G4ThreeVector& theShift); // Used only in G4QFragmentation
    143171
    144172  // Static functions
     
    147175
    148176  // Specific General Functions
    149   G4ThreeVector RandomUnitSphere();                 // Randomize position inside UnitSphere
    150177  G4int RandomizeBinom(G4double p,G4int N);         // Randomize according to Binomial Law
    151178  G4double CoulombBarrier(const G4double& cZ=1, const G4double& cA=1, G4double dZ=0.,
     
    179206  static G4double mediRatio;      // relative vacuum hadronization probability
    180207  static G4double nucleonDistance;// Distance between nucleons (0.8 fm)
     208  static G4double WoodSaxonSurf;  // Surface parameter of Wood-Saxon density (0.545 fm)
    181209  // The basic 
    182210  G4int Z;                        // Z of the Nucleus
     
    190218  G4double probVect[256];         // Cluster probability ("a#of issues" can be real) Vector
    191219  // 3D
    192   std::pair<G4double, G4double> theImpactParameter; // 2D impact parameter vector bbar
    193   G4QHadronVector theNucleons;  // Vector of nucleons of which Nucleus consists of
    194   G4int currentNucleon;         // Current nucleon for the NextNucleon (? M.K.)
    195   G4double rho0;                // Normalazation density
    196   G4double radius;              // Nuclear radius
    197   //std::vector<G4double>* Tb;    // T(b) function with step .1 fm (@@ make .1 a parameter)
    198   std::vector<G4double> Tb;    // T(b) function with step .1 fm (@@ make .1 a parameter)
     220  G4QHadronVector theNucleons;    // Vector of nucleons of which the Nucleus consists of
     221  G4int currentNucleon;           // Current nucleon for the NextNucleon (? M.K.)
     222  G4double rho0;                  // Normalazation density
     223  G4double radius;                // Nuclear radius
     224  std::vector<G4double> Tb;       // T(b) function with step .1 fm (@@ make .1 a parameter)
     225  G4bool TbActive;                // Flag that the T(b) is activated
     226  G4bool RhoActive;               // Flag that the Density is activated
    199227};
    200228
     
    202230std::ostream& operator<<(std::ostream& lhs, const G4QNucleus& rhs);
    203231
    204 
    205232#endif
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCode.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QPDGCode.hh,v 1.27 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QPDGCode.hh,v 1.30 2009/11/04 11:01:59 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QPDGCode ----------------
     
    4545#include <iostream>
    4646#include "globals.hh"
    47 #include "G4ParticleTable.hh"
     47// Geant4 particles for consistency of masses only
     48// Leptons
     49#include "G4MuonPlus.hh"
     50#include "G4MuonMinus.hh"
     51#include "G4TauMinus.hh"
     52#include "G4TauPlus.hh"
     53#include "G4Electron.hh"
     54#include "G4Positron.hh"
     55#include "G4NeutrinoTau.hh"
     56#include "G4AntiNeutrinoTau.hh"
     57#include "G4NeutrinoMu.hh"
     58#include "G4AntiNeutrinoMu.hh"
     59#include "G4NeutrinoE.hh"
     60#include "G4AntiNeutrinoE.hh"
     61// Mesons
     62#include "G4PionPlus.hh"
     63#include "G4PionMinus.hh"
     64#include "G4PionZero.hh"
     65#include "G4Eta.hh"
     66#include "G4EtaPrime.hh"
     67
     68#include "G4KaonPlus.hh"
     69#include "G4KaonMinus.hh"
     70#include "G4KaonZero.hh"
     71#include "G4AntiKaonZero.hh"
     72#include "G4KaonZeroLong.hh"
     73#include "G4KaonZeroShort.hh"
     74
     75#include "G4DMesonPlus.hh"
     76#include "G4DMesonMinus.hh"
     77#include "G4DMesonZero.hh"
     78#include "G4AntiDMesonZero.hh"
     79#include "G4DsMesonPlus.hh"
     80#include "G4DsMesonMinus.hh"
     81#include "G4JPsi.hh"
     82
     83#include "G4BMesonPlus.hh"
     84#include "G4BMesonMinus.hh"
     85#include "G4BMesonZero.hh"
     86#include "G4AntiBMesonZero.hh"
     87#include "G4BsMesonZero.hh"
     88#include "G4AntiBsMesonZero.hh"
     89
     90
     91// Barions
     92#include "G4Proton.hh"
     93#include "G4AntiProton.hh"
     94#include "G4Neutron.hh"
     95#include "G4AntiNeutron.hh"
     96
     97#include "G4Lambda.hh"
     98#include "G4SigmaPlus.hh"
     99#include "G4SigmaZero.hh"
     100#include "G4SigmaMinus.hh"
     101#include "G4XiMinus.hh"
     102#include "G4XiZero.hh"
     103#include "G4OmegaMinus.hh"
     104
     105#include "G4AntiLambda.hh"
     106#include "G4AntiSigmaPlus.hh"
     107#include "G4AntiSigmaZero.hh"
     108#include "G4AntiSigmaMinus.hh"
     109#include "G4AntiXiMinus.hh"
     110#include "G4AntiXiZero.hh"
     111#include "G4AntiOmegaMinus.hh"
     112
     113#include "G4LambdacPlus.hh"
     114#include "G4SigmacPlusPlus.hh"
     115#include "G4SigmacPlus.hh"
     116#include "G4SigmacZero.hh"
     117#include "G4XicPlus.hh"
     118#include "G4XicZero.hh"
     119#include "G4OmegacZero.hh"
     120
     121#include "G4AntiLambdacPlus.hh"
     122#include "G4AntiSigmacPlusPlus.hh"
     123#include "G4AntiSigmacPlus.hh"
     124#include "G4AntiSigmacZero.hh"
     125#include "G4AntiXicPlus.hh"
     126#include "G4AntiXicZero.hh"
     127#include "G4AntiOmegacZero.hh"
     128
     129// Nuclei
     130#include "G4Alpha.hh"
     131#include "G4Deuteron.hh"
     132#include "G4He3.hh"
     133#include "G4Triton.hh"
     134
     135//ions
     136#include "G4GenericIon.hh"
    48137#include "G4NucleiProperties.hh"
    49 #include "G4NucleiPropertiesTable.hh"
    50 #include "G4ParticleTypes.hh"
     138// --- End of consistency headers ---
    51139
    52140#include "G4QContent.hh"
     
    102190  // General
    103191  G4bool     TestRealNeutral();
     192
    104193  void       NegPDGCode();
    105194  void       ConvertPDGToZNS(G4int PDG, G4int& z, G4int& n, G4int& s);
     195  std::pair<G4int,G4int> MakeTwoBaryons(G4int L1, G4int L2, G4int R1, G4int R2);
    106196
    107197private:
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPDGCodeVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QPDGCodeVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentCluster.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QParentCluster.hh,v 1.24 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QParentCluster ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParentClusterVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QParentClusterVector.hh,v 1.19 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticle.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QParticle.hh,v 1.25 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QParticle ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParticleVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QParticleVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QParton.hh

    r1055 r1196  
    2828#define G4QParton_h 1
    2929
    30 // $Id: G4QParton.hh,v 1.3 2009/02/23 09:49:24 mkossov Exp $
    31 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     30// $Id: G4QParton.hh,v 1.8 2009/07/17 16:54:57 mkossov Exp $
     31// GEANT4 tag $Name: geant4-09-03-cand-01 $
    3232//
    3333// ------------------------------------------------------------
     
    4545
    4646#include "globals.hh"
     47#include "G4QContent.hh"
     48#include "G4LorentzVector.hh"
    4749#include "G4ThreeVector.hh"
    48 #include "G4LorentzVector.hh"
    4950#include <iostream>
    50 #include "G4ParticleTable.hh"
    5151#include "Randomize.hh"
    5252
     
    5555 public:
    5656  // Constructors
    57   G4QParton()
    58   {
    59     // CHIPS is working only with u, d, and s quarks (SU(3)xSU(3)) (no gluons! M.K.)
    60     // Random Flavor/Colour/Spin definition for default constructor (with .3 s-suppresion)
    61     PDGencoding=(G4int)(2.3*G4UniformRand())+1; //@@ What about antiquarks? (M.K.)
    62     theDefinition=G4ParticleTable::GetParticleTable()->FindParticle(PDGencoding);
    63     // random colour (1,2,3)=(R,G,B) for quarks and (-1,-2,-3)=(aR,aG,aB) for anti-quarks
    64     theColour = (G4int)(3*G4UniformRand())+1;
    65     if(theColour>3) theColour = 3;
    66     theIsoSpinZ = theDefinition->GetPDGIsospin3();
    67     theSpinZ = (G4int)(2*G4UniformRand()) - 0.5;
    68   }
    69   G4QParton(G4int PDGencoding);                            // Collor/Spin are still random
     57  G4QParton();                                            // Default fullRandom constructor
     58  G4QParton(G4int aPGG);                                  // Collor/Spin are still random
    7059  G4QParton(const G4QParton &right);
    7160  G4QParton(const G4QParton* right);
     
    8069
    8170  // Modifiers
     71  void DefineEPz(G4LorentzVector hadr4Mom){theMomentum+=hadr4Mom*theX;} // CHIPS solution
    8272  void DefineMomentumInZ(G4double aLightConeMomentum, G4bool aDirection);
     73  void SetPDGCode(G4int aPDG);
    8374  void SetColour(G4int aColour)                       {theColour = aColour;}
    8475  void SetX(G4double anX)                             {theX = anX;}
    8576  void Set4Momentum(const G4LorentzVector& aMomentum) {theMomentum=aMomentum;}
    8677  void SetPosition(const G4ThreeVector& aPosition)    {thePosition=aPosition;}
    87   void SetIsoSpinZ(G4double anIsoSpinZ)               {theIsoSpinZ = anIsoSpinZ;}
    8878  void SetSpinZ(G4double aSpinZ)                      {theSpinZ = aSpinZ;}
     79  G4bool ReduceDiQADiQ(G4QParton* d1, G4QParton* d2); // Reduce DiQ-aDiQ to Q-aQ (general)
    8980
    9081  // Selectors
    91   G4int GetPDGCode() const                            {return PDGencoding;}
    92   G4ParticleDefinition* GetDefinition()               {return theDefinition;}   
    93   const G4ThreeVector& GetPosition()const             {return thePosition;}
     82  G4int GetPDGCode() const                            {return PGGCode;}
     83  G4QContent GetQC() const                            {return QCont;}
     84  const G4ThreeVector& GetPosition() const            {return thePosition;}
    9485  const G4LorentzVector& Get4Momentum() const         {return theMomentum;}
    9586  G4double GetX()                                     {return theX;}   
    9687  G4int GetColour()                                   {return theColour;}   
    9788  G4double GetSpinZ()                                 {return theSpinZ;}
    98   G4double GetIsoSpinZ()                              {return theIsoSpinZ;}
    99   G4double GetMass()                                  {return theDefinition->GetPDGMass();}
    100   G4String GetParticleSubType()               {return theDefinition->GetParticleSubType();}
     89  const G4int& GetType() const                        {return theType;}
    10190 private:
    10291  // Body
    103   G4int                 PDGencoding;
    104   G4ParticleDefinition* theDefinition;
     92  G4int                 PGGCode;
     93  G4QContent            QCont;   // Quark Content of the parton
     94  G4int                 theType; // 0 = gluon, 1 = quark-antiquark, 2 = diquark/antidiquark
     95  G4int                 theColour;
     96  G4double              theSpinZ;
     97  G4double              theX;
     98  G4ThreeVector         thePosition;
    10599  G4LorentzVector       theMomentum;
    106   G4ThreeVector         thePosition;
    107   G4int                 theColour;
    108   G4double              theIsoSpinZ;
    109   G4double              theSpinZ;
    110   G4double              theX;   
    111100};
    112101
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPartonPair.hh

    r1055 r1196  
    2828//
    2929// $Id: G4QPartonPair.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    30 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     30// GEANT4 tag $Name: geant4-09-03-cand-01 $
    3131//
    3232// ------------------------------------------------------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPartonPairVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QPartonPairVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QPartonVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QPartonVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QCandidateVector ----------------
     
    4040//
    4141// $Id: G4QPartonVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    42 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     42// GEANT4 tag $Name: geant4-09-03-cand-01 $
    4343//
    4444// ------------------------------------------------------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QString.hh

    r1055 r1196  
    2626//
    2727//
    28 // $Id: G4QString.hh,v 1.3 2009/02/23 09:49:24 mkossov Exp $
    29 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// $Id: G4QString.hh,v 1.11 2009/08/24 14:41:49 mkossov Exp $
     29// GEANT4 tag $Name: geant4-09-03-cand-01 $
    3030
    3131#ifndef G4QString_h
     
    6060#include "G4LorentzRotation.hh"
    6161#include "G4QHadronVector.hh"
    62 #include "G4QHadronBuilder.hh"
    6362#include "G4QPartonPair.hh"
    6463#include "G4QPartonVector.hh"
     
    7372  G4QString(); // formal creation of the string with future excitation
    7473  G4QString(G4QParton* Color,G4QParton* Gluon, G4QParton* AntiColor, G4int Dir=PROJECTILE);
    75   G4QString(G4QParton* Col,G4QParton* AntiCol, G4int Dir=PROJECTILE);
     74  G4QString(G4QParton* Col, G4QParton* AntiCol, G4int Dir=PROJECTILE);
     75  G4QString(G4QPartonPair* ColAntiCol);
    7676  G4QString(const G4QString &right);
     77  G4QString(const G4QString &old, G4QParton* newdecay, const G4LorentzVector *momentum);
     78  G4QString(const G4QString &old, G4QParton* newdecay);
     79  G4QString(G4QParton* newdecay, const G4LorentzVector* momentum);
    7780
    7881  ~G4QString();
     
    8386  const G4ThreeVector& GetPosition() const       {return thePosition;}
    8487  const G4QPartonVector* GetPartonList() const   {return &thePartons;}
    85   G4QParton* GetGluon() const                    {return thePartons[1];}
    86   G4QParton* GetGluon(G4int GluonPos) const      {return thePartons[1 + GluonPos];}
    8788  G4QParton* GetLeftParton() const               {return *thePartons.begin();}
    8889  G4QParton* GetRightParton() const              {return *(thePartons.end()-1);}
    89   G4bool     IsItKinkyString() const             {return (thePartons.size() > 2);}
    9090  G4int      GetDirection() const                {return theDirection;}
    91   G4bool     IsExcited() const                   {return true;} // Can be absolete? @@ M.K.
    9291  G4LorentzVector Get4Momentum() const;
    93   //G4QHadron* GetAsQHadron(); //@@ Create a QHadron, corresponding to not excited string
    94   G4QParton* GetColorParton() const;
    95   G4QParton* GetAntiColorParton() const;
    96   G4QParton* GetStableParton() const{ return theStableParton;} // stable at the moment
    97   G4QParton* GetDecayParton() const{return theDecayParton;}// now involved in fragmentation
     92  G4QContent GetQC() const {return GetLeftParton()->GetQC()+GetRightParton()->GetQC();}
     93  G4int      GetCharge() const {return GetQC().GetCharge();}
     94  G4int      GetBaryonNumber() const {return GetQC().GetBaryonNumber();}
     95  G4int      GetStrangeness() const {return GetQC().GetStrangeness();}
    9896  G4int GetDecayDirection() const;
    99   G4bool FourQuarkString() const; // Checks that the string is qq-(qq)bar string
    100   G4bool DecayIsQuark() const {return theDecayParton->GetParticleSubType()=="quark";}
    101   G4bool StableIsQuark() const {return theStableParton->GetParticleSubType()=="quark";}
    102   G4ThreeVector StablePt(); // Get Pt of the stable quark
    103   G4ThreeVector DecayPt();  // Get Pt of the decaying quark
    104   G4double LightConePlus(){return Pplus;}
    105   G4double LightConeMinus() {return Pminus;}
    106   G4double LightConeDecay();
    107   G4LorentzVector GetFragmentation4Mom() const; //!! Instead of Get$Momentum in FragmString
    108   G4double Mass2() const {return Pplus*Pminus-(Ptleft+Ptright).mag2();}
    109   G4double Mass() const{return std::sqrt(Mass2());}
    110   G4bool StopFragmentation() {return FragmentationMass(&G4QHadronBuilder::BuildHighSpin)
    111                                                  + MassCut > GetFragmentation4Mom().mag();}
    112   G4bool IsFragmentable() {return FragmentationMass() + MassCut < Mass();}
    113   G4ThreeVector SampleQuarkPt();
    114   G4bool SplitLast(G4QString* string, G4QHadronVector* LeftHV, G4QHadronVector* RightHV);
     97  G4bool DecayIsQuark() const {return theDecayParton->GetType()==1;}
     98  G4bool StableIsQuark() const {return theStableParton->GetType()==1;}
     99  G4ThreeVector DecayPt();  // Get Pt of the decaying quark @@ Called once
     100  G4double Mass2() const { return Pplus*Pminus-(Ptleft+Ptright).mag2();}
     101  G4double Mass() const  // @@ Very dangerous! USE ONLY FORE THE LIGHT CONE ALGORITHM !!
     102  {
     103    G4double  m2=Mass2();
     104    if(m2>0) return std::sqrt(Mass2());
     105    else     return 0.; // @@ Make Warning
     106  }
     107  G4bool StopFragmentation()
     108  {
     109    G4LorentzVector mom(Ptleft+Ptright, 0.5*(Pplus+Pminus));
     110    mom.setPz(0.5*(Pplus-Pminus));
     111    return FragmentationMass(1) + MassCut > mom.mag();
     112  }
     113  G4bool IsFragmentable() {return FragmentationMass() + MassCut < Mass();} // @@ Mass() ?
     114  G4ThreeVector SampleQuarkPt(); // @@ Called once
     115  G4QHadron* CreateHadron(G4QParton* black, G4QParton* white);
     116  G4QHadron* CreateLowSpinHadron(G4QParton* black, G4QParton* white);
     117  G4QHadron* CreateHighSpinHadron(G4QParton* black, G4QParton* white);
    115118
    116   void Sample4Momentum(G4LorentzVector* Mom, G4double M, G4LorentzVector* aMom,
    117                        G4double aM, G4double InitialMass);
    118119  // Modifiers
    119   void SetPosition(const G4ThreeVector& aPosition) {thePosition= aPosition;}
    120   void SetDirection(G4int dir)                     {theDirection=dir;}
     120  void SetPosition(const G4ThreeVector& aPosition){thePosition= aPosition;}
     121  void SetDirection(G4int dir)       {if(dir==1 || dir==-1) theDirection=dir;}
     122  void SetLeftParton(G4QParton* LP)  {thePartons[0]=LP;} // !! Not deleting the substituty
     123  void SetRightParton(G4QParton* RP) {thePartons.pop_back(); thePartons.push_back(RP);}
     124  void KillString()                  {theDirection=0;} // @@ Can be absolete
    121125  void LorentzRotate(const G4LorentzRotation& rotation);
    122   void InsertParton(G4QParton* aParton, const G4QParton* addafter = NULL);
     126  //void InsertParton(G4QParton* aParton, const G4QParton* addafter = NULL);
    123127  void Boost(G4ThreeVector& Velocity);
    124   G4LorentzRotation TransformToCenterOfMass();
    125   G4LorentzRotation TransformToAlignedCms();
    126   void DiffString(G4QHadron* aHadron, G4bool isProjectile);
     128  G4LorentzRotation TransformToAlignedCms(); // @@ caled once
     129  //void DiffString(G4QHadron* aHadron, G4bool isProjectile); @@ Mast be used!!
    127130  void ExciteString(G4QParton* Col,G4QParton* AntiCol, G4int Dir);
    128131  G4QHadronVector* FragmentString(G4bool QL); // Fragment String using QGSM=true/LUND=false
    129   G4QString* CPExcited(); // Creates a string, using only CMS end-partons of the string
    130132  G4QHadronVector* LightFragmentationTest();
    131   G4double FragmentationMass(G4QHcreate build=0, G4QHadronPair* pdefs=0);
    132   void CalculateHadronTimePosition(G4double theInitialStringMass, G4QHadronVector*);
     133  G4double FragmentationMass(G4int HighSpin = 0, G4QHadronPair* pdefs = 0);
    133134  void SetLeftPartonStable();
    134135  void SetRightPartonStable();
    135   void UpdateString(G4QParton* decay, const G4LorentzVector* mom);
    136   G4QString(G4QParton* newdecay, const G4LorentzVector* momentum);
    137   G4QHadron* Splitup(G4bool QL);  // Split Hadron & update the string, QGSM:true,Lund:false
     136  G4QHadron* Splitup(G4bool QL);
    138137  G4LorentzVector* SplitEandP(G4QHadron* pHadron, G4bool QL); // QGSM:QL=true,Lund:QL=false
    139   G4QParton* CreateParton(G4int PDGcode)                   {return new G4QParton(PDGcode);}
    140138  G4QPartonPair CreatePartonPair(G4int NeedParticle, G4bool AllowDiquarks=true);
    141139  G4QHadron* QuarkSplitup(G4QParton* decay, G4QParton* &created);
     
    144142
    145143  // Static functions
    146   static void SetParameters(G4double mCut, G4double clustM, G4double sigQT, G4double DQSup,
    147    G4double DQBU, G4double smPar, G4double SSup, G4double SigPt, G4int SLmax, G4int CLmax);
     144  static void SetParameters(G4double mCut, G4double sigQT, G4double DQSup, G4double DQBU,
     145                            G4double smPar, G4double SSup, G4double SigPt);
    148146
    149147 private:
     148  enum Spin {SpinZero=1, SpinHalf=2, SpinOne=3, SpinThreeHalf=4};
    150149  // Private functions
     150  G4QHadron* CreateMeson(G4QParton* black, G4QParton* white, Spin spin);
     151  G4QHadron* CreateBaryon(G4QParton* black,G4QParton* white, Spin spin);
    151152  G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare) const;
    152153  G4double GetLundLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding,
     
    158159  // Parameters of Longitudinal String Fragmentation
    159160  static G4double MassCut;           // minimum mass cut for the string
    160   static G4double ClusterMass;       // minimum cluster mass for the fragmentation
    161161  static G4double SigmaQT;           // quark transverse momentum distribution parameter
    162162  static G4double DiquarkSuppress;   // is Diquark suppression parameter 
     
    165165  static G4double StrangeSuppress;   // Strangeness suppression parameter
    166166  static G4double widthOfPtSquare;   // width^2 of pt for string excitation
    167   static G4int StringLoopInterrupt;  // String fragmentation LOOP limit
    168   static G4int ClusterLoopInterrupt; // Cluster fragmentation LOOP limit
    169167
    170168  // Body
    171   G4int         theDirection;        // must be 1 or -1 (PROJECTILE or TARGET)
     169  G4int         theDirection;        // must be 1 (PROJECTILE) or -1 (TARGET), 0 - DEAD
    172170  G4ThreeVector thePosition;         // Defined by the first quark position
    173   G4QPartonVector thePartons;        // would like initial capacity for 3 Partons (? M.K.)
    174   G4QHadronBuilder* hadronizer;      // Hadronizer of hodrons out of partons
     171  G4QPartonVector thePartons;        // Partons on the ends of the string @@ Use PartonPair
    175172  G4ThreeVector Ptleft,Ptright;      // Pt (px,py) for partons (pz ignored!)
    176173  G4double Pplus, Pminus;            // p-, p+ of string, Plus is assigned to Left!
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QStringVector.hh

    r1055 r1196  
    2626//
    2727// $Id: G4QStringVector.hh,v 1.2 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QStringVector ----------------
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4Quasmon.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4Quasmon.hh,v 1.41 2009/03/23 14:14:35 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4Quasmon.hh,v 1.46 2009/11/16 18:15:01 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4Quasmon ----------------
     
    9595
    9696  //Modifiers
     97  void Set4Momentum(G4LorentzVector Q4M) {q4Mom=Q4M;} // Set new value for the Quasmon 4mom
     98  void SetQC(G4QContent QQC)             {valQ=QQC;}  // Set new Quark Cont for the Quasmon
     99  void Boost(const G4LorentzVector& theBoost);        // Boosts hadron's 4Momentum using 4M
     100  void Boost(const G4ThreeVector& B){q4Mom.boost(B);} // Boosts 4-Momentum using v/c
    97101  // Public wrapper for HadronizeQuasmon(,)
    98102  G4QHadronVector*  Fragment(G4QNucleus& nucEnviron, G4int nQ = 1);
    99103  G4QHadronVector*  DecayQuasmon();                   // Decay Quasmon if it's Res or Chipo
    100   G4QHadronVector*  DecayQHadron(G4QHadron* hadron);  // Decay Quasmon if it's Res or Chipo
     104  G4QHadronVector*  DecayQHadron(G4QHadron* hadron);  // Decay QHadron if it's Res or Chipo
    101105  void              ClearOutput();                    // Clear but not destroy the output
    102106  void              InitQuasmon(const G4QContent& qQCont, const G4LorentzVector& q4M);
  • trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QuasmonVector.hh

    r1055 r1196  
    2525//
    2626//
    27 // $Id: G4QuasmonVector.hh,v 1.20 2009/02/23 09:49:24 mkossov Exp $
    28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
     27// $Id: G4QuasmonVector.hh,v 1.22 2009/11/16 18:15:01 mkossov Exp $
     28// GEANT4 tag $Name: geant4-09-03-cand-01 $
    2929//
    3030//      ---------------- G4QuasmonVector ----------------
Note: See TracChangeset for help on using the changeset viewer.