Import Geant4 9.4.0 source tree
This commit is contained in:
+108
-10
@@ -60,8 +60,106 @@ int G4ExcitedStringDecay::operator!=(const G4ExcitedStringDecay &) const
|
||||
return 1;
|
||||
}
|
||||
|
||||
G4bool G4ExcitedStringDecay::
|
||||
EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalCollisionMom)
|
||||
G4KineticTrackVector *G4ExcitedStringDecay::FragmentString
|
||||
(const G4ExcitedString &theString)
|
||||
{
|
||||
if ( theStringDecay == NULL )
|
||||
|
||||
theStringDecay=new G4LundStringFragmentation();
|
||||
|
||||
return theStringDecay->FragmentString(theString);
|
||||
}
|
||||
|
||||
G4KineticTrackVector *G4ExcitedStringDecay::FragmentStrings
|
||||
(const G4ExcitedStringVector * theStrings)
|
||||
{
|
||||
G4LorentzVector KTsum(0.,0.,0.,0.);
|
||||
for ( unsigned int astring=0; astring < theStrings->size(); astring++)
|
||||
{
|
||||
KTsum+= theStrings->operator[](astring)->Get4Momentum();
|
||||
|
||||
if( !(KTsum.e()<1) && !(KTsum.e()>-1) )
|
||||
{
|
||||
throw G4HadronicException(__FILE__, __LINE__,
|
||||
"G4ExcitedStringDecay::FragmentStrings received nan string...");
|
||||
}
|
||||
}
|
||||
|
||||
G4KineticTrackVector * theResult = new G4KineticTrackVector;
|
||||
G4int attempts(0);
|
||||
G4bool success=false;
|
||||
do {
|
||||
|
||||
std::for_each(theResult->begin() , theResult->end() , DeleteKineticTrack());
|
||||
theResult->clear();
|
||||
|
||||
attempts++;
|
||||
G4LorentzVector KTsecondaries(0.,0.,0.,0.);
|
||||
G4bool NeedEnergyCorrector=false;
|
||||
|
||||
for ( unsigned int astring=0; astring < theStrings->size(); astring++)
|
||||
{
|
||||
//G4cout<<G4endl<<"String No "<<astring+1<<" "<<theStrings->operator[](astring)->Get4Momentum().mag()<<G4endl;
|
||||
|
||||
G4KineticTrackVector * generatedKineticTracks = NULL;
|
||||
|
||||
if ( theStrings->operator[](astring)->IsExcited() )
|
||||
{
|
||||
generatedKineticTracks=FragmentString(*theStrings->operator[](astring));
|
||||
} else {
|
||||
generatedKineticTracks = new G4KineticTrackVector;
|
||||
generatedKineticTracks->push_back(theStrings->operator[](astring)->GetKineticTrack());
|
||||
}
|
||||
|
||||
if (generatedKineticTracks == NULL)
|
||||
{
|
||||
G4cerr << "G4VPartonStringModel:No KineticTracks produced" << G4endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
G4LorentzVector KTsum1(0.,0.,0.,0.);
|
||||
for ( unsigned int aTrack=0; aTrack<generatedKineticTracks->size();aTrack++)
|
||||
{
|
||||
//G4cout<<" Prod part "<<(*generatedKineticTracks)[aTrack]->GetDefinition()->GetParticleName()<<" "<<(*generatedKineticTracks)[aTrack]->Get4Momentum()<<G4endl;
|
||||
theResult->push_back(generatedKineticTracks->operator[](aTrack));
|
||||
KTsum1+= (*generatedKineticTracks)[aTrack]->Get4Momentum();
|
||||
}
|
||||
KTsecondaries+=KTsum1;
|
||||
|
||||
if ( KTsum1.e() > 0 && std::abs((KTsum1.e()-theStrings->operator[](astring)->Get4Momentum().e()) / KTsum1.e()) > perMillion )
|
||||
{
|
||||
//--debug-- G4cout << "String secondaries(" <<generatedKineticTracks->size()<< ") momentum: "
|
||||
//--debug-- << theStrings->operator[](astring)->Get4Momentum() << " " << KTsum1 << G4endl;
|
||||
NeedEnergyCorrector=true;
|
||||
}
|
||||
|
||||
// clean up
|
||||
delete generatedKineticTracks;
|
||||
}
|
||||
//--DEBUG G4cout << "Strings/secs total 4 momentum " << KTsum << " " <<KTsecondaries << G4endl;
|
||||
|
||||
success=true;
|
||||
if ( NeedEnergyCorrector ) success=EnergyAndMomentumCorrector(theResult, KTsum);
|
||||
|
||||
} while(!success && (attempts < 100));
|
||||
|
||||
#ifdef debug_ExcitedStringDecay
|
||||
G4LorentzVector KTsum1=0;
|
||||
for ( unsigned int aTrack=0; aTrack<theResult->size();aTrack++)
|
||||
{
|
||||
G4cout << " corrected tracks .. " << (*theResult)[aTrack]->GetDefinition()->GetParticleName()
|
||||
<<" " << (*theResult)[aTrack]->Get4Momentum() << G4endl;
|
||||
KTsum1+= (*theResult)[aTrack]->Get4Momentum();
|
||||
}
|
||||
G4cout << "Needcorrector/success " << NeedEnergyCorrector << "/" << success << ", Corrected total 4 momentum " << KTsum1 << G4endl;
|
||||
if ( ! success ) G4cout << "failed to correct E/p" << G4endl;
|
||||
#endif
|
||||
|
||||
return theResult;
|
||||
}
|
||||
|
||||
G4bool G4ExcitedStringDecay::EnergyAndMomentumCorrector
|
||||
(G4KineticTrackVector* Output, G4LorentzVector& TotalCollisionMom)
|
||||
{
|
||||
const int nAttemptScale = 500;
|
||||
const double ErrLimit = 1.E-5;
|
||||
@@ -70,11 +168,14 @@ EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalC
|
||||
G4LorentzVector SumMom;
|
||||
G4double SumMass = 0;
|
||||
G4double TotalCollisionMass = TotalCollisionMom.m();
|
||||
|
||||
if( !(TotalCollisionMass<1) && !(TotalCollisionMass>-1) )
|
||||
{
|
||||
std::cout << "TotalCollisionMomentum = "<<TotalCollisionMom<<G4endl;
|
||||
throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay received nan mass...");
|
||||
}
|
||||
|
||||
//G4cout<<G4endl<<"EnergyAndMomentumCorrector "<<Output->size()<<G4endl;
|
||||
// Calculate sum hadron 4-momenta and summing hadron mass
|
||||
unsigned int cHadron;
|
||||
for(cHadron = 0; cHadron < Output->size(); cHadron++)
|
||||
@@ -90,9 +191,12 @@ EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalC
|
||||
throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay::EnergyAndMomentumCorrector() received nan mass...");
|
||||
}
|
||||
}
|
||||
|
||||
//G4cout<<"SumMass TotalCollisionMass "<<SumMass<<" "<<TotalCollisionMass<<G4endl;
|
||||
|
||||
// Cannot correct a single particle
|
||||
if (Output->size() < 2) return FALSE;
|
||||
|
||||
|
||||
if (SumMass > TotalCollisionMass) return FALSE;
|
||||
SumMass = SumMom.m2();
|
||||
if (SumMass < 0) return FALSE;
|
||||
@@ -147,12 +251,6 @@ EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalC
|
||||
// Compute c.m.s. interaction velocity and KTV back boost
|
||||
Beta = TotalCollisionMom.boostVector();
|
||||
Output->Boost(Beta);
|
||||
/* // Uzhi
|
||||
G4cout<<"Number of produced hadrons // correct E and P "<<Output->size()<<G4endl; // Uzhi
|
||||
for(cHadron = 0; cHadron < Output->size(); cHadron++)
|
||||
{
|
||||
G4cout<<cHadron<<" "<<Output->operator[](cHadron)->Get4Momentum()<<" "<<Output->operator[](cHadron)->Get4Momentum().mag()<<Output->operator[](cHadron)->GetDefinition()->GetParticleName()<<G4endl;
|
||||
}
|
||||
*/ // Uzhi
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
+13
-23
@@ -79,28 +79,18 @@ G4FragmentingString::G4FragmentingString(const G4FragmentingString &old,
|
||||
decaying=None;
|
||||
if ( old.decaying == Left )
|
||||
{
|
||||
//G4cout<<" Left "<<G4endl;
|
||||
//G4cout<<"Pt right "<<Ptright<<G4endl;
|
||||
//G4cout<<"Pt left "<<Ptleft <<G4endl;
|
||||
RightParton= old.RightParton;
|
||||
Ptright = old.Ptright;
|
||||
LeftParton = newdecay;
|
||||
Ptleft = old.Ptleft - momentum->vect();
|
||||
Ptleft.setZ(0.);
|
||||
//G4cout<<"Pt right "<<Ptright<<G4endl;
|
||||
//G4cout<<"Pt left "<<Ptleft <<G4endl;
|
||||
} else if ( old.decaying == Right )
|
||||
{
|
||||
//G4cout<<" Right "<<G4endl;
|
||||
//G4cout<<"Pt right "<<Ptright<<G4endl;
|
||||
//G4cout<<"Pt left "<<Ptleft <<G4endl;
|
||||
RightParton = newdecay;
|
||||
Ptright = old.Ptright - momentum->vect();
|
||||
Ptright.setZ(0.);
|
||||
LeftParton = old.LeftParton;
|
||||
Ptleft = old.Ptleft;
|
||||
//G4cout<<"Pt right "<<Ptright<<G4endl;
|
||||
//G4cout<<"Pt left "<<Ptleft <<G4endl;
|
||||
} else
|
||||
{
|
||||
throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::G4FragmentingString: no decay Direction defined");
|
||||
@@ -115,19 +105,19 @@ G4FragmentingString::G4FragmentingString(const G4FragmentingString &old,
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
|
||||
G4FragmentingString::G4FragmentingString(const G4FragmentingString &old, // Uzhi
|
||||
G4ParticleDefinition * newdecay) // Uzhi
|
||||
{ // Uzhi
|
||||
decaying=None; // Uzhi
|
||||
if ( old.decaying == Left ) // Uzhi
|
||||
{ // Uzhi
|
||||
RightParton= old.RightParton; // Uzhi
|
||||
LeftParton = newdecay; // Uzhi
|
||||
} else if ( old.decaying == Right ) // Uzhi
|
||||
{ // Uzhi
|
||||
RightParton = newdecay; // Uzhi
|
||||
LeftParton = old.LeftParton; // Uzhi
|
||||
} else // Uzhi
|
||||
G4FragmentingString::G4FragmentingString(const G4FragmentingString &old,
|
||||
G4ParticleDefinition * newdecay)
|
||||
{
|
||||
decaying=None;
|
||||
if ( old.decaying == Left )
|
||||
{
|
||||
RightParton= old.RightParton;
|
||||
LeftParton = newdecay;
|
||||
} else if ( old.decaying == Right )
|
||||
{
|
||||
RightParton = newdecay;
|
||||
LeftParton = old.LeftParton;
|
||||
} else
|
||||
{
|
||||
throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::G4FragmentingString: no decay Direction defined");
|
||||
}
|
||||
|
||||
+6
-10
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4HadronBuilder.cc,v 1.10 2009/05/22 16:34:31 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4HadronBuilder.cc,v 1.12 2010/11/03 17:11:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
@@ -155,10 +155,8 @@ G4ParticleDefinition * G4HadronBuilder::Meson(G4ParticleDefinition * black,
|
||||
if (MesonDef == 0 ) {
|
||||
G4cerr << " G4HadronBuilder - Warning: No particle for PDGcode= "
|
||||
<< PDGEncoding << G4endl;
|
||||
}
|
||||
if ( ( black->GetPDGCharge()
|
||||
+ white->GetPDGCharge()
|
||||
- MesonDef->GetPDGCharge() ) > perCent ) {
|
||||
} else if ( ( black->GetPDGCharge() + white->GetPDGCharge()
|
||||
- MesonDef->GetPDGCharge() ) > perCent ) {
|
||||
G4cerr << " G4HadronBuilder - Warning: Incorrect Charge : "
|
||||
<< " Quark1/2 = "
|
||||
<< black->GetParticleName() << " / "
|
||||
@@ -260,10 +258,8 @@ G4ParticleDefinition * G4HadronBuilder::Barion(G4ParticleDefinition * black,
|
||||
if (BarionDef == 0 ) {
|
||||
G4cerr << " G4HadronBuilder - Warning: No particle for PDGcode= "
|
||||
<< PDGEncoding << G4endl;
|
||||
}
|
||||
if ( ( black->GetPDGCharge()
|
||||
+ white->GetPDGCharge()
|
||||
- BarionDef->GetPDGCharge() ) > perCent ) {
|
||||
} else if ( ( black->GetPDGCharge() + white->GetPDGCharge()
|
||||
- BarionDef->GetPDGCharge() ) > perCent ) {
|
||||
G4cerr << " G4HadronBuilder - Warning: Incorrect Charge : "
|
||||
<< " DiQuark/Quark = "
|
||||
<< black->GetParticleName() << " / "
|
||||
|
||||
+686
-209
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4QGSMFragmentation.cc,v 1.9 2008/06/23 08:35:55 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4QGSMFragmentation.cc,v 1.10 2010/09/20 12:46:23 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
|
||||
+2
-2
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VKinkyStringDecay.cc,v 1.4 2008/04/25 14:20:14 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4VKinkyStringDecay.cc,v 1.5 2010/09/20 12:46:23 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// Maxim Komogorov
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
+13
-75
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VLongitudinalStringDecay.cc,v 1.18 2009/08/03 13:21:25 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4VLongitudinalStringDecay.cc,v 1.22 2010/09/20 12:46:23 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
@@ -70,7 +70,7 @@ G4VLongitudinalStringDecay::G4VLongitudinalStringDecay()
|
||||
ClusterLoopInterrupt = 500;
|
||||
|
||||
// Changable Parameters below.
|
||||
SigmaQT = 0.5 * GeV;
|
||||
SigmaQT = 0.5 * GeV; // 0.5
|
||||
|
||||
StrangeSuppress = 0.44; // 27 % strange quarks produced, ie. u:d:s=1:1:0.27
|
||||
DiquarkSuppress = 0.07;
|
||||
@@ -178,9 +178,6 @@ G4KineticTrackVector* G4VLongitudinalStringDecay::LightFragmentationTest(const
|
||||
<< "string .. " << string->Get4Momentum() << " "
|
||||
<< string->Get4Momentum().m() << G4endl;
|
||||
#endif
|
||||
G4cout << "VlongSF Warning replacing string by single hadron " <<G4endl;
|
||||
G4cout << hadrons.first->GetParticleName() << " string .. " <<G4endl;
|
||||
G4cout << string->Get4Momentum() << " " << string->Get4Momentum().m() << G4endl;
|
||||
*/
|
||||
G4ThreeVector Mom3 = string->Get4Momentum().vect();
|
||||
G4LorentzVector Mom(Mom3,
|
||||
@@ -201,8 +198,6 @@ G4cout << string->Get4Momentum() << " " << string->Get4Momentum().m() << G4endl;
|
||||
<< string->Get4Momentum().m() << G4endl;
|
||||
#endif
|
||||
|
||||
// Uzhi Formation time in the case???
|
||||
|
||||
G4LorentzVector Mom1, Mom2;
|
||||
Sample4Momentum(&Mom1, hadrons.first->GetPDGMass(),
|
||||
&Mom2,hadrons.second->GetPDGMass(),
|
||||
@@ -254,6 +249,7 @@ G4double G4VLongitudinalStringDecay::FragmentationMass(
|
||||
|
||||
Hadron1 = (minMassHadronizer->*build)(string->GetLeftParton(),
|
||||
string->GetRightParton());
|
||||
//G4cout<<"Hadron1 "<<Hadron1->GetParticleName()<<G4endl;
|
||||
mass= (Hadron1)->GetPDGMass();
|
||||
} else
|
||||
{
|
||||
@@ -327,8 +323,7 @@ G4KineticTrack * G4VLongitudinalStringDecay::Splitup(
|
||||
G4FragmentingString *string,
|
||||
G4FragmentingString *&newString)
|
||||
{
|
||||
//G4cout<<"In G4VLong String Dec######################"<<G4endl;
|
||||
|
||||
//G4cout<<"Start SplitUP"<<G4endl;
|
||||
//... random choice of string end to use for creating the hadron (decay)
|
||||
SideOfDecay = (G4UniformRand() < 0.5)? 1: -1;
|
||||
if (SideOfDecay < 0)
|
||||
@@ -347,13 +342,16 @@ G4KineticTrack * G4VLongitudinalStringDecay::Splitup(
|
||||
} else {
|
||||
HadronDefinition= DiQuarkSplitup(string->GetDecayParton(), newStringEnd);
|
||||
}
|
||||
|
||||
//G4cout<<"New had "<<HadronDefinition->GetParticleName()<<G4endl;
|
||||
// create new String from old, ie. keep Left and Right order, but replace decay
|
||||
|
||||
newString=new G4FragmentingString(*string,newStringEnd); // To store possible
|
||||
// quark containt of new string
|
||||
//G4cout<<"SplitEandP "<<G4endl;
|
||||
G4LorentzVector* HadronMomentum=SplitEandP(HadronDefinition, string, newString);
|
||||
|
||||
delete newString; newString=0; // Uzhi 20.06.08
|
||||
delete newString; newString=0;
|
||||
|
||||
G4KineticTrack * Hadron =0;
|
||||
if ( HadronMomentum != 0 ) {
|
||||
@@ -364,16 +362,9 @@ G4KineticTrack * G4VLongitudinalStringDecay::Splitup(
|
||||
newString=new G4FragmentingString(*string,newStringEnd,
|
||||
HadronMomentum);
|
||||
|
||||
//G4cout<<"Out G4VLong String Dec######################"<<G4endl;
|
||||
//G4cout<<"newString 4Mom"<<newString->Get4Momentum()<<G4endl;
|
||||
//G4cout<<"newString Pl "<<newString->LightConePlus()<<G4endl;
|
||||
//G4cout<<"newString Mi "<<newString->LightConeMinus()<<G4endl;
|
||||
//G4cout<<"newString Pts "<<newString->StablePt()<<G4endl;
|
||||
//G4cout<<"newString Ptd "<<newString->DecayPt()<<G4endl;
|
||||
//G4cout<<"newString M2 "<<newString->Mass2()<<G4endl;
|
||||
//G4cout<<"newString M2 "<<newString->Mass()<<G4endl;
|
||||
delete HadronMomentum;
|
||||
}
|
||||
//G4cout<<"End SplitUP"<<G4endl;
|
||||
return Hadron;
|
||||
}
|
||||
|
||||
@@ -473,16 +464,6 @@ G4VLongitudinalStringDecay::pDefPair G4VLongitudinalStringDecay::CreatePartonPai
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// G4ThreeVector G4VLongitudinalStringDecay::SampleQuarkPt()
|
||||
// {
|
||||
// G4double width_param= 2.0 * GeV*GeV;
|
||||
// G4double R = G4UniformRand();
|
||||
// G4double Pt = std::sqrt(width_param*R/(1-R));
|
||||
// G4double phi = 2.*pi*G4UniformRand();
|
||||
// return G4ThreeVector(Pt * std::cos(phi),Pt * std::sin(phi),0);
|
||||
// }
|
||||
|
||||
G4ThreeVector G4VLongitudinalStringDecay::SampleQuarkPt(G4double ptMax)
|
||||
{
|
||||
G4double Pt;
|
||||
@@ -504,11 +485,8 @@ void G4VLongitudinalStringDecay::CalculateHadronTimePosition(G4double theInitial
|
||||
{
|
||||
|
||||
// `yo-yo` formation time
|
||||
// const G4double kappa = 1.0 * GeV/fermi/4.; // Uzhi String tension 1.06.08
|
||||
G4double kappa = GetStringTensionParameter();
|
||||
//G4cout<<"Kappa "<<kappa<<G4endl; // Uzhi 20.06.08
|
||||
//G4int Uzhi; G4cin>>Uzhi; // Uzhi 20.06.08
|
||||
//G4cout<<"Number of hadrons "<<Hadrons->size()<<G4endl; // Vova
|
||||
// const G4double kappa = 1.0 * GeV/fermi/4.;
|
||||
G4double kappa = GetStringTensionParameter();
|
||||
for(size_t c1 = 0; c1 < Hadrons->size(); c1++)
|
||||
{
|
||||
G4double SumPz = 0;
|
||||
@@ -521,57 +499,17 @@ void G4VLongitudinalStringDecay::CalculateHadronTimePosition(G4double theInitial
|
||||
G4double HadronE = Hadrons->operator[](c1)->Get4Momentum().e();
|
||||
G4double HadronPz = Hadrons->operator[](c1)->Get4Momentum().pz();
|
||||
Hadrons->operator[](c1)->SetFormationTime(
|
||||
(theInitialStringMass - 2.*SumPz + HadronE - HadronPz)/(2.*kappa)/c_light); //Uzhi1.07.09c_light
|
||||
(theInitialStringMass - 2.*SumPz + HadronE - HadronPz)/(2.*kappa)/c_light);
|
||||
|
||||
G4ThreeVector aPosition(0, 0,
|
||||
(theInitialStringMass - 2.*SumE - HadronE + HadronPz)/(2.*kappa));
|
||||
Hadrons->operator[](c1)->SetPosition(aPosition);
|
||||
|
||||
/*
|
||||
G4cout<<"kappa "<<kappa<<G4endl;
|
||||
G4cout<<c1<<" Partic time, position Old "<<
|
||||
(theInitialStringMass - 2.*SumPz + HadronE - HadronPz)/(2.*kappa)<<' '<<
|
||||
(theInitialStringMass - 2.*SumE - HadronE + HadronPz)/(2.*kappa)<<G4endl;
|
||||
|
||||
G4cout<<c1<<" Partic time, position New "<<
|
||||
(theInitialStringMass - 2.*SumPz + HadronE - HadronPz)/(2.*kappa)/c_light<<' '<<
|
||||
(theInitialStringMass - 2.*SumE - HadronE + HadronPz)/(2.*kappa)<<G4endl;
|
||||
|
||||
G4cout<<"fermi "<<fermi<<" 1/fermi "<<1./fermi<<' '<<"1*fermi/c "<<1.*fermi/c_light<<G4endl;
|
||||
G4int Uzhi; G4cin>>Uzhi; // Uzhi 20.06.08
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
void G4VLongitudinalStringDecay::CalculateHadronTimePosition(G4double theInitialStringMass, G4KineticTrackVector* Hadrons)
|
||||
{
|
||||
// 'constituent' formation time
|
||||
const G4double kappa = 1.0 * GeV/fermi;
|
||||
for(G4int c1 = 0; c1 < Hadrons->length(); c1++)
|
||||
{
|
||||
G4double SumPz = 0;
|
||||
G4double SumE = 0;
|
||||
for(G4int c2 = 0; c2 <= c1; c2++)
|
||||
{
|
||||
SumPz += Hadrons->at(c2)->Get4Momentum().pz();
|
||||
SumE += Hadrons->at(c2)->Get4Momentum().e();
|
||||
}
|
||||
Hadrons->at(c1)->SetFormationTime((theInitialStringMass - 2.*SumPz)/(2.*kappa));
|
||||
G4ThreeVector aPosition(0, 0, (theInitialStringMass - 2.*SumE)/(2.*kappa));
|
||||
Hadrons->at(c1)->SetPosition(aPosition);
|
||||
}
|
||||
c1 = Hadrons->length()-1;
|
||||
Hadrons->at(c1)->SetFormationTime(Hadrons->at(c1-1)->GetFormationTime());
|
||||
Hadrons->at(c1)->SetPosition(Hadrons->at(c1-1)->GetPosition());
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
//*****************************************************************************
|
||||
|
||||
void G4VLongitudinalStringDecay::SetSigmaTransverseMomentum(G4double aValue)
|
||||
{
|
||||
if ( PastInitPhase ) {
|
||||
|
||||
Reference in New Issue
Block a user