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

update CVS release candidate geant4.9.3.01

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.