Ignore:
Timestamp:
Dec 22, 2010, 3:52:27 PM (14 years ago)
Author:
garnier
Message:

geant4 tag 9.4

Location:
trunk/source/processes/hadronic/models/parton_string/diffraction
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/parton_string/diffraction/History

    r1340 r1347  
    1 $Id: History,v 1.33 2010/09/20 15:55:33 vuzhinsk Exp $
     1$Id: History,v 1.34 2010/11/15 10:10:16 vuzhinsk Exp $
    22-------------------------------------------------------------------
    33
     
    1515     * Please list in reverse chronological order (last date on top)
    1616     ---------------------------------------------------------------
     1715 Nov. 2010, V. Uzhinsky (hadr-string-diff-V09-03-04)
     18FTF with tuned parameters for pA and PiA interactions.
     19    Quark exchange is tuned.
     20    Low mass string fragmentation is improved.
     21    Reggeon cascade parameters are tuned.
     22
     23--------------------------------------------------------
    172420 Sept. 2010, V, Uzhinsky (hadr-string-diff-V09-03-03)
    1825FTF with new tuned parameters of nuclear destrustion is implemented.
  • trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh

    r1340 r1347  
    2626//
    2727// $Id: G4DiffractiveSplitableHadron.hh,v 1.6 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030
  • trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh

    r1340 r1347  
    2626//
    2727// $Id: G4FTFModel.hh,v 1.11 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030// Class Description
  • trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh

    r1340 r1347  
    2727#define G4FTFParameters_h 1
    2828//
    29 // $Id: G4FTFParameters.hh,v 1.8 2010/09/20 15:50:46 vuzhinsk Exp $
    30 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     29// $Id: G4FTFParameters.hh,v 1.9 2010/11/15 10:05:19 vuzhinsk Exp $
     30// GEANT4 tag $Name: geant4-09-04-ref-00 $
    3131//
    3232#include "G4Proton.hh"
     
    3535
    3636  public:
    37         G4FTFParameters(const G4ParticleDefinition * , G4double theA,
    38                                                        G4double theZ,
     37        G4FTFParameters(const G4ParticleDefinition * , G4int theA,
     38                                                       G4int theZ,
    3939                                                       G4double s);
     40//      G4FTFParameters(const G4ParticleDefinition * , G4double theA,
     41//                                                       G4double theZ,
     42//                                                       G4double s);
    4043
    4144        ~G4FTFParameters();
     
    6366        void SetSlopeQuarkExchange(const G4double aValue);
    6467        void SetDeltaProbAtQuarkExchange(const G4double aValue);
     68        void SetProbOfSameQuarkExchange(const G4double aValue);
    6569
    6670        void SetProjMinDiffMass(const G4double aValue);
     
    112116        G4double GetSlopeQuarkExchange();
    113117        G4double GetDeltaProbAtQuarkExchange();
     118        G4double GetProbOfSameQuarkExchange();
    114119
    115120        G4double GetProjMinDiffMass();
     
    161166        G4double SlopeQuarkExchange;
    162167        G4double DeltaProbAtQuarkExchange;
     168        G4double ProbOfSameQuarkExchange;
    163169
    164170        G4double ProjMinDiffMass;
     
    236242inline  void G4FTFParameters::SetDeltaProbAtQuarkExchange(const G4double aValue)
    237243             {DeltaProbAtQuarkExchange = aValue;}
     244inline void G4FTFParameters::SetProbOfSameQuarkExchange(const G4double aValue)
     245             {ProbOfSameQuarkExchange = aValue;}
    238246
    239247inline  void G4FTFParameters::SetProjMinDiffMass(const G4double aValue)
     
    331339inline  G4double G4FTFParameters::GetMagQuarkExchange()       {return MagQuarkExchange;}
    332340inline  G4double G4FTFParameters::GetSlopeQuarkExchange()     {return SlopeQuarkExchange;}
    333 inline  G4double G4FTFParameters::GetDeltaProbAtQuarkExchange()
    334                                                               {return DeltaProbAtQuarkExchange;}
    335 
     341inline  G4double G4FTFParameters::GetDeltaProbAtQuarkExchange(){return
     342                                                                DeltaProbAtQuarkExchange;}
     343inline  G4double G4FTFParameters::GetProbOfSameQuarkExchange(){return ProbOfSameQuarkExchange;}
    336344
    337345inline  G4double G4FTFParameters::GetProjMinDiffMass()        {return ProjMinDiffMass;}
  • trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh

    r1340 r1347  
    2626//
    2727// $Id: G4FTFParticipants.hh,v 1.7 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030
  • trunk/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveExcitation.cc

    r1340 r1347  
    2525//
    2626//
    27 // $Id: G4DiffractiveExcitation.cc,v 1.22 2010/09/20 15:50:46 vuzhinsk Exp $
     27// $Id: G4DiffractiveExcitation.cc,v 1.23 2010/11/15 10:02:38 vuzhinsk Exp $
    2828// ------------------------------------------------------------
    2929//      GEANT 4 class implemetation file
     
    163163
    164164     G4double SqrtS=std::sqrt(S);
    165            
     165//G4cout<<"SqrtS < 2300*MeV "<<SqrtS<<G4endl;           
    166166     if(absProjectilePDGcode > 1000 && (SqrtS < 2300*MeV || SqrtS < SumMasses))
    167167     {target->SetStatus(2);  return false;}  // The model cannot work for
     
    221221G4cout<<"Targ "<<M0target    <<" "<<TargetDiffStateMinMass    <<" "<<TargetNonDiffStateMinMass<<G4endl;
    222222G4cout<<"SqrtS "<<SqrtS<<G4endl;
    223 G4cout<<"Rapid "<<ProjectileRapidity<<" "<<TargetRapidity<<G4endl;
     223G4cout<<"Rapid "<<ProjectileRapidity<<G4endl; //" "<<TargetRapidity<<G4endl;
    224224*/
    225225// Charge exchange can be possible for baryons -----------------
     
    230230     G4double DeltaProbAtQuarkExchange=theParameters->GetDeltaProbAtQuarkExchange();
    231231
    232 //G4cout<<"Q exc "<<MagQuarkExchange<<" "<<SlopeQuarkExchange<<" "<<DeltaProbAtQuarkExchange<<G4endl;
    233232//     G4double NucleonMass=
    234233//              (G4ParticleTable::GetParticleTable()->FindParticle(2112))->GetPDGMass();     
     
    237236
    238237//G4cout<<MagQuarkExchange*std::exp(-SlopeQuarkExchange*(ProjectileRapidity - TargetRapidity))<<G4endl;
     238
     239//G4cout<<"Q exc Mag Slop Wdelta"<<MagQuarkExchange<<" "<<SlopeQuarkExchange<<" "<<DeltaProbAtQuarkExchange<<G4endl;
     240//G4cout<<"ProjectileRapidity "<<ProjectileRapidity<<G4endl;
    239241//G4cout<<MagQuarkExchange*std::exp(-SlopeQuarkExchange*(ProjectileRapidity))<<G4endl;
    240 //G4cout<<MagQuarkExchange*std::exp(-SlopeQuarkExchange*(ProjectileRapidity - 1.36))<<G4endl;
    241242//G4int Uzhi; G4cin>>Uzhi;
    242243// Check for possible quark exchange -----------------------------------
     
    272273      if(absProjectilePDGcode < 1000 )
    273274      {    // projectile is meson -----------------
     275
    274276       if(ProjQ1 > 0 ) // ProjQ1 is quark
    275277       { 
     
    300302         TargExchangeQ = TargQ3;  TargQ3=ProjExchangeQ; ProjQ2=TargExchangeQ;
    301303        }
    302 
    303304       } // End of if(ProjQ1 > 0 ) // ProjQ1 is quark
    304305
    305306       G4int aProjQ1=std::abs(ProjQ1);
    306307       G4int aProjQ2=std::abs(ProjQ2);
    307        if(aProjQ1 == aProjQ2)          {NewProjCode = 111;} // Pi0-meson
     308       if(aProjQ1 == aProjQ2)          {NewProjCode = 111;} // Pi0-meson 
    308309       else  // |ProjQ1| # |ProjQ2|
    309310       {
    310311        if(aProjQ1 > aProjQ2)          {NewProjCode = aProjQ1*100+aProjQ2*10+1;}
    311312        else                           {NewProjCode = aProjQ2*100+aProjQ1*10+1;}
     313        NewProjCode *=(ProjectilePDGcode/absProjectilePDGcode);
    312314       }
    313315
     316G4bool ProjExcited=false;
     317        if(G4UniformRand() < 0.5)
     318        {
     319         NewProjCode +=2; // Excited Pi0-meson
     320         ProjExcited=true;
     321        }
     322//G4cout<<G4endl<<"NewProjCode "<<NewProjCode<<G4endl;
     323
     324G4ParticleDefinition* TestParticle=0;
     325TestParticle=G4ParticleTable::GetParticleTable()->FindParticle(NewProjCode);
     326if(TestParticle)
     327{
     328 M0projectile=
     329 (G4ParticleTable::GetParticleTable()->FindParticle(NewProjCode))->GetPDGMass();
     330 M0projectile2 = M0projectile * M0projectile;
     331
     332 ProjectileDiffStateMinMass   =M0projectile+210.*MeV; //210 MeV=m_pi+70 MeV
     333 ProjectileNonDiffStateMinMass=M0projectile+210.*MeV; //210 MeV=m_pi+70 MeV
     334} else
     335{return false;}
     336
     337//G4cout<<"New TrQ "<<TargQ1<<" "<<TargQ2<<" "<<TargQ3<<G4endl;
    314338       NewTargCode = NewNucleonId(TargQ1, TargQ2, TargQ3);
     339//G4cout<<"NewTargCode "<<NewTargCode<<G4endl;
    315340
    316341       if( (TargQ1 == TargQ2) && (TargQ1 == TargQ3) &&
    317            (SqrtS > M0projectile+DeltaMass))           {NewTargCode +=2;} //Create Delta isobar
    318 
    319        else if( target->GetDefinition()->GetPDGiIsospin() == 3 )         //Delta was the target
    320        { if(G4UniformRand() > DeltaProbAtQuarkExchange){NewTargCode +=2;} //Save   Delta isobar
     342           (SqrtS > M0projectile+DeltaMass))           {NewTargCode +=2;  //Create Delta isobar
     343                                                        ProjExcited=true;}
     344       else if( target->GetDefinition()->GetPDGiIsospin() == 3 )          //Delta was the target
     345       { if(G4UniformRand() > DeltaProbAtQuarkExchange){NewTargCode +=2;  //Save   Delta isobar
     346                                                        ProjExcited=true;}
    321347         else                                          {}     // De-excite initial Delta isobar
    322348       }
    323349
    324        else if((G4UniformRand() < DeltaProbAtQuarkExchange) &&         //Nucleon was the target
     350//       else if((!CreateDelta)                               &&
     351       else if((!ProjExcited)                               &&
     352               (G4UniformRand() < DeltaProbAtQuarkExchange) &&         //Nucleon was the target
    325353               (SqrtS > M0projectile+DeltaMass))      {NewTargCode +=2;}  //Create Delta isobar
     354//       else if( CreateDelta)                          {NewTargCode +=2;}
    326355       else                                           {}                 //Save initial nucleon
     356
    327357//       target->SetDefinition(                                          // Fix 15.12.09
    328358//       G4ParticleTable::GetParticleTable()->FindParticle(NewTargCode));// Fix 15.12.09
     359
     360//G4cout<<"NewTargCode "<<NewTargCode<<G4endl;
     361//G4int Uzhi; G4cin>>Uzhi;
     362TestParticle=G4ParticleTable::GetParticleTable()->FindParticle(NewTargCode);
     363if(TestParticle)
     364{
     365 M0target=
     366 (G4ParticleTable::GetParticleTable()->FindParticle(NewTargCode))->GetPDGMass();
     367 M0target2 = M0target * M0target;
     368
     369 TargetDiffStateMinMass   =M0target+220.*MeV;         //220 MeV=m_pi+80 MeV;   
     370 TargetNonDiffStateMinMass=M0target+220.*MeV;         //220 MeV=m_pi+80 MeV;
     371} else
     372{return false;}
    329373      } else
    330374      {    // projectile is baryon ----------------
    331        G4double Same=0.; //0.3; //0.5;
     375//=========================================================================
     376       G4double Same=theParameters->GetProbOfSameQuarkExchange(); //0.3; //0.5; 0.
    332377       G4bool ProjDeltaHasCreated(false);
    333378       G4bool TargDeltaHasCreated(false);
     
    485530      } // End of if projectile is baryon ---------------------------
    486531
     532//G4cout<<"At end// NewProjCode "<<NewProjCode<<G4endl;
     533//G4cout<<"At end// NewTargCode "<<NewTargCode<<G4endl;
    487534
    488535// If we assume that final state hadrons after the charge exchange will be
    489536// in the ground states, we have to put ----------------------------------
    490 
    491 /*
    492 //      if(M0projectile <
    493 //         (G4ParticleTable::GetParticleTable()->FindParticle(NewProjCode))->GetPDGMass())
    494       if(ProjDeltaHasCreated)
    495       {
    496        M0projectile=
    497          (G4ParticleTable::GetParticleTable()->FindParticle(NewProjCode))->GetPDGMass();
    498        M0projectile2 = M0projectile * M0projectile;
    499 
    500        ProjectileDiffStateMinMass   =M0projectile+160.*MeV; //160 MeV=m_pi+20 MeV
    501        ProjectileNonDiffStateMinMass=M0projectile+160.*MeV; //160 MeV=m_pi+20 MeV
    502       }
    503 
    504 //      if(M0target <
    505 //         (G4ParticleTable::GetParticleTable()->FindParticle(NewTargCode))->GetPDGMass())
    506       if(TargDeltaHasCreated)
    507       {
    508        M0target=
    509          (G4ParticleTable::GetParticleTable()->FindParticle(NewTargCode))->GetPDGMass();
    510        M0target2 = M0target * M0target;
    511 
    512        TargetDiffStateMinMass   =M0target+160.*MeV;         //160 MeV=m_pi+20 MeV;   
    513        TargetNonDiffStateMinMass=M0target+160.*MeV;         //160 MeV=m_pi+20 MeV;
    514       }
    515 */
     537//G4cout<<"M0pr M0tr SqS "<<M0projectile<<" "<<M0target<<" "<<SqrtS<<G4endl;
     538
    516539      PZcms2=(S*S+M0projectile2*M0projectile2+M0target2*M0target2-
    517540             2*S*M0projectile2 - 2*S*M0target2 - 2*M0projectile2*M0target2)
    518541             /4./S;
    519 //G4cout<<"PZcms2 1 "<<PZcms2<<G4endl;
     542//G4cout<<"PZcms2 1 "<<PZcms2<<G4endl<<G4endl;
    520543      if(PZcms2 < 0) {return false;}  // It can be if energy is not sufficient for Delta
    521544//----------------------------------------------------------
     
    536559// ----------------------------------------------------------
    537560
    538 //      G4double Wexcit=1.-1.97*std::exp(-0.5*ProjectileRapidity);
    539       G4double Wexcit=1.-2.256*std::exp(-0.6*ProjectileRapidity);
    540 
    541 //G4cout<<ProjectileRapidity<<" "<<1.72*std::exp(-0.4*ProjectileRapidity)<<" "<<std::exp(0.4*ProjectileRapidity)<<G4endl;
    542 //G4int Uzhi;G4cin>>Uzhi;
    543 //Wexcit=0.;
    544       if(G4UniformRand() > Wexcit)
    545       {                             // Make elastic scattering
    546 //G4cout<<"Make elastic scattering"<<G4endl;
    547        Pprojectile.transform(toLab);
    548        Ptarget.transform(toLab);
    549 
    550        projectile->SetTimeOfCreation(target->GetTimeOfCreation());
    551        projectile->SetPosition(target->GetPosition());
    552 
    553        projectile->Set4Momentum(Pprojectile);
    554        target->Set4Momentum(Ptarget);
    555 
    556        G4bool Result= theElastic->ElasticScattering (projectile,target,theParameters);
    557        return Result;
    558       } // end of if(G4UniformRand() > Wexcit)
     561      if(absProjectilePDGcode < 1000)
     562      { // For projectile meson
     563       G4double Wexcit=1.-2.256*std::exp(-0.6*ProjectileRapidity);
     564       Wexcit=0.;
     565       if(G4UniformRand() > Wexcit)
     566       {                             // Make elastic scattering
     567//G4cout<<"Make elastic scattering of new hadrons"<<G4endl;
     568        Pprojectile.transform(toLab);
     569        Ptarget.transform(toLab);
     570
     571        projectile->SetTimeOfCreation(target->GetTimeOfCreation());
     572        projectile->SetPosition(target->GetPosition());
     573
     574        projectile->Set4Momentum(Pprojectile);
     575        target->Set4Momentum(Ptarget);
     576
     577        G4bool Result= theElastic->ElasticScattering (projectile,target,theParameters);
     578        return Result;
     579       } // end of if(Make elastic scattering for projectile meson?)
     580      } else
     581      { // For projectile baryon
     582       G4double Wexcit=1.-2.256*std::exp(-0.6*ProjectileRapidity);
     583       //Wexcit=0.;
     584       if(G4UniformRand() > Wexcit)
     585       {                             // Make elastic scattering
     586//G4cout<<"Make elastic scattering of new hadrons"<<G4endl;
     587        Pprojectile.transform(toLab);
     588        Ptarget.transform(toLab);
     589
     590        projectile->SetTimeOfCreation(target->GetTimeOfCreation());
     591        projectile->SetPosition(target->GetPosition());
     592
     593        projectile->Set4Momentum(Pprojectile);
     594        target->Set4Momentum(Ptarget);
     595
     596        G4bool Result= theElastic->ElasticScattering (projectile,target,theParameters);
     597        return Result;
     598       } // end of if(Make elastic scattering for projectile baryon?)
     599      }
     600//G4cout<<"Make excitation of new hadrons"<<G4endl;
    559601     }  // End of charge exchange part ------------------------------
    560602
     
    569611G4cout<<"Prob ProjDiff TargDiff "<<ProbProjectileDiffraction<<" "<<ProbTargetDiffraction<<" "<<ProbOfDiffraction<<G4endl;
    570612G4cout<<"Pr Y "<<Pprojectile.rapidity()<<" Tr Y "<<Ptarget.rapidity()<<G4endl;
    571 //G4int Uzhi; G4cin>>Uzhi;
     613G4int Uzhi; G4cin>>Uzhi;
    572614*/
    573615/*
  • trunk/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc

    r1340 r1347  
    2626//
    2727// $Id: G4DiffractiveSplitableHadron.cc,v 1.9 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030
  • trunk/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc

    r1340 r1347  
    2525//
    2626//
    27 // $Id: G4FTFModel.cc,v 1.36 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     27// $Id: G4FTFModel.cc,v 1.37 2010/11/15 10:02:38 vuzhinsk Exp $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030
     
    9999{
    100100        theProjectile = aProjectile; 
     101//G4cout<<"FTF init Pro "<<theProjectile.GetMass()<<" "<<theProjectile.GetMomentum()<<G4endl;
     102//G4cout<<"FTF init A Z "<<aNucleus.GetA_asInt()<<" "<<aNucleus.GetZ_asInt()<<G4endl;
     103//G4cout<<"             "<<aNucleus.GetN()<<" "<<aNucleus.GetZ()<<G4endl;
     104//G4int Uzhi; G4cin>>Uzhi;
    101105
    102106        theParticipants.Init(aNucleus.GetA_asInt(),aNucleus.GetZ_asInt());
    103 
     107//G4cout<<"End nucl init"<<G4endl;
    104108// ----------- N-mass number Z-charge -------------------------
    105109
     
    111115      if( theParameters != 0 ) delete theParameters;
    112116      theParameters = new G4FTFParameters(theProjectile.GetDefinition(),
    113                                           aNucleus.GetN(),aNucleus.GetZ(),
     117                                          aNucleus.GetA_asInt(),aNucleus.GetZ_asInt(),
    114118                                          s);
     119//      theParameters = new G4FTFParameters(theProjectile.GetDefinition(),
     120//                                          aNucleus.GetN(),aNucleus.GetZ(),
     121//                                          s);
    115122
    116123//theParameters->SetProbabilityOfElasticScatt(0.);
     
    298305        G4int ResidualMassNumber=theNucleus->GetMassNumber();
    299306        G4int ResidualCharge    =theNucleus->GetCharge();
     307
    300308        ResidualExcitationEnergy=0.;
    301309        G4LorentzVector PnuclearResidual(0.,0.,0.,0.);
     
    340348 
    341349//      ResidualMass +=ResidualExcitationEnergy; // Will be given after checks
    342 //G4cout<<"SumMasses End ResidualMass "<<SumMasses<<" "<<ResidualMass<<G4endl;
     350//G4cout<<"SumMasses And ResidualMass "<<SumMasses<<" "<<ResidualMass<<G4endl;
    343351        SumMasses += ResidualMass;
    344352//G4cout<<"SumMasses + ResM "<<SumMasses<<G4endl;
     
    548556        Pprojectile.transform(toLab);       // The work with the projectile
    549557        primary->Set4Momentum(Pprojectile); // is finished at the moment.
     558//G4cout<<"Final proj mom "<<primary->Get4Momentum()<<G4endl;
    550559
    551560//-------------------------------------------------------------
     
    578587        }   // end of for(G4int i=0; i < NumberOfInvolvedNucleon; i++ )
    579588
     589//G4cout<<"ResidualMassNumber and Mom "<<ResidualMassNumber<<" "<<Residual3Momentum<<G4endl;
    580590        G4double Mt2Residual=sqr(ResidualMass) +
    581591                                 sqr(Residual3Momentum.x())+sqr(Residual3Momentum.y());
    582 
    583         G4double PzResidual=-WminusTarget*Residual3Momentum.z()/2. +
     592//==========================
     593//G4cout<<"WminusTarget Residual3Momentum.z() "<<WminusTarget<<" "<<Residual3Momentum.z()<<G4endl;
     594        G4double PzResidual=0.;
     595        G4double EResidual =0.;
     596        if(ResidualMassNumber != 0)
     597        {
     598         PzResidual=-WminusTarget*Residual3Momentum.z()/2. +
    584599                             Mt2Residual/(2.*WminusTarget*Residual3Momentum.z());
    585         G4double EResidual = WminusTarget*Residual3Momentum.z()/2. +
     600        EResidual = WminusTarget*Residual3Momentum.z()/2. +
    586601                             Mt2Residual/(2.*WminusTarget*Residual3Momentum.z());
    587 
     602        }
     603//==========================
    588604        Residual4Momentum.setPx(Residual3Momentum.x());
    589605        Residual4Momentum.setPy(Residual3Momentum.y());
    590606        Residual4Momentum.setPz(PzResidual);
    591607        Residual4Momentum.setE(EResidual);
    592 
     608//G4cout<<"Residual4Momentum "<<Residual4Momentum<<G4endl;
    593609        Residual4Momentum.transform(toLab);
    594610//-------------------------------------------------------------
  • trunk/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParameters.cc

    r1340 r1347  
    2525//
    2626//
    27 // $Id: G4FTFParameters.cc,v 1.14 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     27// $Id: G4FTFParameters.cc,v 1.15 2010/11/15 10:02:38 vuzhinsk Exp $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030
     
    4242//**********************************************************************************************
    4343
     44//G4FTFParameters::G4FTFParameters(const G4ParticleDefinition * particle,
     45//                                                   G4double   theA,
     46//                                                   G4double   theZ,
     47//                                                   G4double   s)
    4448G4FTFParameters::G4FTFParameters(const G4ParticleDefinition * particle,
    45                                                    G4double   theA,
    46                                                    G4double   theZ,
     49                                                   G4int   theA,
     50                                                   G4int   theZ,
    4751                                                   G4double   s)
    4852{
     
    6266    G4double sqrLogPlab = LogPlab * LogPlab;
    6367
    64     G4int NumberOfTargetProtons  = (G4int) theZ;
    65     G4int NumberOfTargetNeutrons = (G4int) theA- (G4int) theZ;
     68    G4int NumberOfTargetProtons  = theZ;
     69    G4int NumberOfTargetNeutrons = theA-theZ;
     70//    G4int NumberOfTargetProtons  = (G4int) theZ;
     71//    G4int NumberOfTargetNeutrons = (G4int) theA- (G4int) theZ;
    6672    G4int NumberOfTargetNucleons = NumberOfTargetProtons + NumberOfTargetNeutrons;
    6773
    6874    G4double Xtotal, Xelastic;
    6975
    70     if( absPDGcode > 1000 )                        //------Projectile is baryon --------
     76    if( PDGcode > 1000 )                        //------Projectile is baryon --------
    7177      {       
    7278       G4double XtotPP = 48.0 +  0. *std::pow(Plab, 0.  ) + 0.522*sqrLogPlab - 4.51*LogPlab;
     
    7581       G4double XelPP  = 11.9 + 26.9*std::pow(Plab,-1.21) + 0.169*sqrLogPlab - 1.85*LogPlab;
    7682       G4double XelPN  = 11.9 + 26.9*std::pow(Plab,-1.21) + 0.169*sqrLogPlab - 1.85*LogPlab;
     83
     84       Xtotal          = ( NumberOfTargetProtons  * XtotPP +
     85                           NumberOfTargetNeutrons * XtotPN  ) / NumberOfTargetNucleons;
     86       Xelastic        = ( NumberOfTargetProtons  * XelPP  +
     87                           NumberOfTargetNeutrons * XelPN   ) / NumberOfTargetNucleons;
     88      }
     89    else if( PDGcode < -1000 )                 //------Projectile is anti_baryon --------
     90      {       
     91       G4double XtotPP = 38.4 +  77.6*std::pow(Plab,-0.64) + 0.26*sqrLogPlab - 1.2*LogPlab;
     92       G4double XtotPN =  0.  + 133.6*std::pow(Plab,-0.70) + 1.22*sqrLogPlab +13.7*LogPlab;
     93
     94       G4double XelPP  = 10.2 + 52.7*std::pow(Plab,-1.16) + 0.125*sqrLogPlab - 1.28*LogPlab;
     95       G4double XelPN  = 36.5 +  0. *std::pow(Plab, 0.  ) + 0.   *sqrLogPlab -11.9 *LogPlab;
    7796
    7897       Xtotal          = ( NumberOfTargetProtons  * XtotPP +
     
    184203//      Xtotal and Xelastic in mb
    185204
     205// For Pi- P interactions only!
     206if(std::abs(Plab-1.4) < 0.05) {Xtotal=3.500599e+01; Xelastic= 1.150032e+01;}
     207if(std::abs(Plab-1.5) < 0.05) {Xtotal=3.450591e+01; Xelastic= 1.050038e+01;}
     208if(std::abs(Plab-1.6) < 0.05) {Xtotal=3.430576e+01; Xelastic= 9.800433e+00;}
     209if(std::abs(Plab-1.7) < 0.05) {Xtotal=3.455560e+01; Xelastic= 9.300436e+00;}
     210if(std::abs(Plab-1.8) < 0.05) {Xtotal=3.480545e+01; Xelastic= 8.800438e+00;}
     211if(std::abs(Plab-2.0) < 0.05) {Xtotal=3.570503e+01; Xelastic= 8.200370e+00;}
     212if(std::abs(Plab-2.2) < 0.05) {Xtotal=3.530495e+01; Xelastic= 7.800362e+00;}
     213if(std::abs(Plab-2.5) < 0.05) {Xtotal=3.410484e+01; Xelastic= 7.350320e+00;}
     214if(std::abs(Plab-2.75) < 0.05){Xtotal=3.280479e+01; Xelastic= 7.050273e+00;}
     215if(std::abs(Plab-3.0) < 0.05) {Xtotal=3.180473e+01; Xelastic= 6.800258e+00;}
     216if(std::abs(Plab-4.0) < 0.05) {Xtotal=2.910441e+01; Xelastic= 6.100229e+00;}
     217if(std::abs(Plab-5.0) < 0.05) {Xtotal=2.820372e+01; Xelastic= 5.700275e+00;}
     218if(std::abs(Plab-6.0) < 0.05) {Xtotal=2.760367e+01; Xelastic= 5.400255e+00;}
     219if(std::abs(Plab-7.0) < 0.05) {Xtotal=2.725366e+01; Xelastic= 5.150256e+00;}
     220if(std::abs(Plab-8.0) < 0.05) {Xtotal=2.690365e+01; Xelastic= 4.900258e+00;}
     221if(std::abs(Plab-10.0) < 0.05){Xtotal=2.660342e+01; Xelastic= 4.600237e+00;}
     222if(std::abs(Plab-12.0) < 0.05){Xtotal=2.632341e+01; Xelastic= 4.480229e+00;}
     223if(std::abs(Plab-14.0) < 0.05){Xtotal=2.604340e+01; Xelastic= 4.360221e+00;}
     224if(std::abs(Plab-20.0) < 0.05){Xtotal=2.520337e+01; Xelastic= 4.000197e+00;}
     225if(std::abs(Plab-30.0) < 0.05){Xtotal=2.505334e+01; Xelastic= 3.912679e+00;}
     226//
    186227//----------- Geometrical parameters ------------------------------------------------
    187228      SetTotalCrossSection(Xtotal);
     
    189230      SetInelasticCrossSection(Xtotal-Xelastic);
    190231
    191 //G4cout<<"Xtotal, Xelastic "<<Xtotal<<" "<<Xelastic<<G4endl;
     232//G4cout<<"Plab Xtotal, Xelastic Xinel "<<Plab<<" "<<Xtotal<<" "<<Xelastic<<Xtotal-Xelastic)<<G4endl;
    192233//  // Interactions with elastic and inelastic collisions
    193234      SetProbabilityOfElasticScatt(Xtotal, Xelastic);
     
    212253
    213254//----------- Parameters of excitations ---------------------------------------------
    214            if( absPDGcode > 1000 )                        //------Projectile is baryon --------
     255           if( PDGcode > 1000 )                        //------Projectile is baryon --------
    215256             {
    216257              SetMagQuarkExchange(1.84);//(3.63);
    217258              SetSlopeQuarkExchange(0.7);//(1.2);
    218259              SetDeltaProbAtQuarkExchange(0.);
     260              if(NumberOfTargetNucleons > 26) {SetProbOfSameQuarkExchange(1.);}
     261              else                            {SetProbOfSameQuarkExchange(0.);}
     262
     263              SetProjMinDiffMass(1.16);                   // GeV
     264              SetProjMinNonDiffMass(1.16);                // GeV
     265              SetProbabilityOfProjDiff(0.805*std::exp(-0.35*Ylab));// 0.5
     266
     267              SetTarMinDiffMass(1.16);                    // GeV
     268              SetTarMinNonDiffMass(1.16);                 // GeV
     269              SetProbabilityOfTarDiff(0.805*std::exp(-0.35*Ylab));// 0.5
     270
     271              SetAveragePt2(0.15);                        // 0.15 GeV^2
     272             }
     273           if( PDGcode < -1000 )                  //------Projectile is anti_baryon --------
     274             {
     275              SetMagQuarkExchange(0.);
     276              SetSlopeQuarkExchange(0.);
     277              SetDeltaProbAtQuarkExchange(0.);
     278              SetProbOfSameQuarkExchange(0.);
    219279
    220280              SetProjMinDiffMass(1.16);                   // GeV
    221281              SetProjMinNonDiffMass(1.16);                // GeV
    222              
    223 SetProbabilityOfProjDiff(0.805*std::exp(-0.35*Ylab));// 0.5
     282              SetProbabilityOfProjDiff(0.805*std::exp(-0.35*Ylab));// 0.5
    224283
    225284              SetTarMinDiffMass(1.16);                    // GeV
    226285              SetTarMinNonDiffMass(1.16);                 // GeV
    227              
    228 SetProbabilityOfTarDiff(0.805*std::exp(-0.35*Ylab));// 0.5
     286              SetProbabilityOfTarDiff(0.805*std::exp(-0.35*Ylab));// 0.5
    229287
    230288              SetAveragePt2(0.15);                        // 0.15 GeV^2
     
    232290           else if( absPDGcode == 211 || PDGcode ==  111) //------Projectile is Pion -----------
    233291             {
    234               SetMagQuarkExchange(120.); // 210.
    235               SetSlopeQuarkExchange(2.0);
    236               SetDeltaProbAtQuarkExchange(0.6);
     292              SetMagQuarkExchange(240.);
     293              SetSlopeQuarkExchange(2.);
     294              SetDeltaProbAtQuarkExchange(0.56); //(0.35);
    237295
    238296              SetProjMinDiffMass(0.5);                    // GeV
    239               SetProjMinNonDiffMass(0.3);                 // GeV
    240               SetProbabilityOfProjDiff(0.*0.62*std::pow(s/GeV/GeV,-0.51)); // 40/32 X-dif/X-inel
    241 
    242               SetTarMinDiffMass(1.1);                     // GeV
    243               SetTarMinNonDiffMass(1.1);                  // GeV
    244 
    245               SetProbabilityOfTarDiff(2.*0.62*std::pow(s/GeV/GeV,-0.51)); // 40/32 X-dif/X-inel
     297              SetProjMinNonDiffMass(0.5);                 // GeV 0.3
     298              SetProbabilityOfProjDiff(0.);//(0.*0.62*std::pow(s/GeV/GeV,-0.51)); // 40/32 X-dif/X-inel
     299
     300              SetTarMinDiffMass(1.16);                     // GeV
     301              SetTarMinNonDiffMass(1.16);                  // GeV
     302//              SetProbabilityOfTarDiff(1.);//(2.*0.62*std::pow(s/GeV/GeV,-0.51));
     303//              SetProbabilityOfTarDiff(2.6*std::exp(-0.46*Ylab));
     304              SetProbabilityOfTarDiff(0.8*std::exp(-0.6*(Ylab-3.)));
    246305
    247306              SetAveragePt2(0.3);                         // GeV^2
     
    295354      SetMaxNumberOfCollisions(1000.,1.); //(Plab,2.); //3.); ##############################
    296355
    297       SetCofNuclearDestruction(0.3); //1.0);           // for meson projectile
    298 
    299       SetDofNuclearDestruction(0.4);
    300       SetPt2ofNuclearDestruction(0.17*GeV*GeV);
    301       SetMaxPt2ofNuclearDestruction(1.0*GeV*GeV);
    302 
    303       SetExcitationEnergyPerWoundedNucleon(100*MeV);
    304     } else                                             // for baryon projectile
    305     {
    306 //      SetMaxNumberOfCollisions(Plab,0.1); //6.); // ##############################
    307       SetMaxNumberOfCollisions(Plab,4.); //6.); // ##############################
    308 
    309       SetCofNuclearDestruction(0.62*std::exp(4.*(Ylab-2.1))/(1.+std::exp(4.*(Ylab-2.1))));
    310 
     356//      SetCofNuclearDestruction(0.); //1.0);           // for meson projectile
     357//      SetCofNuclearDestruction(1.*std::exp(4.*(Ylab-2.1))/(1.+std::exp(4.*(Ylab-2.1))));
     358//G4cout<<Ylab<<" "<<0.62*std::exp(4.*(Ylab-4.5))/(1.+std::exp(4.*(Ylab-4.5)))<<G4endl;
     359//G4int Uzhi; G4cin>>Uzhi;
     360
     361//      SetMaxNumberOfCollisions(Plab,2.); //4.); // ##############################
     362
     363      SetCofNuclearDestruction(1.*std::exp(4.*(Ylab-2.1))/(1.+std::exp(4.*(Ylab-2.1)))); //0.62 1.0
     364//------------------------------------------
     365//      SetDofNuclearDestruction(0.4);
     366//      SetPt2ofNuclearDestruction(0.17*GeV*GeV);
     367//      SetMaxPt2ofNuclearDestruction(1.0*GeV*GeV);
     368
     369//      SetExcitationEnergyPerWoundedNucleon(100*MeV);
    311370      SetDofNuclearDestruction(0.4);
    312371      SetPt2ofNuclearDestruction((0.035+
     
    315374
    316375      SetExcitationEnergyPerWoundedNucleon(75.*MeV);
     376    } else                                             // for baryon projectile
     377    {
     378      SetMaxNumberOfCollisions(Plab,2.); //4.); // ##############################
     379
     380      SetCofNuclearDestruction(1.*std::exp(4.*(Ylab-2.1))/(1.+std::exp(4.*(Ylab-2.1)))); //0.62 1.0
     381//G4cout<<Ylab<<" "<<0.62*std::exp(4.*(Ylab-2.1))/(1.+std::exp(4.*(Ylab-2.1)))<<G4endl;
     382//G4int Uzhi; G4cin>>Uzhi;
     383
     384      SetDofNuclearDestruction(0.4);
     385      SetPt2ofNuclearDestruction((0.035+
     386          0.04*std::exp(4.*(Ylab-2.5))/(1.+std::exp(4.*(Ylab-2.5))))*GeV*GeV); //0.09
     387      SetMaxPt2ofNuclearDestruction(1.0*GeV*GeV);
     388
     389      SetExcitationEnergyPerWoundedNucleon(75.*MeV);
    317390    }
    318391
     
    322395//SetPt2ofNuclearDestruction((0.035+0.1*std::exp(4.*(Ylab-3.))/(1.+std::exp(4.*(Ylab-3.))))*GeV*GeV);
    323396
     397//SetMagQuarkExchange(120.); // 210. PipP
     398//SetSlopeQuarkExchange(2.0);
     399//SetDeltaProbAtQuarkExchange(0.6);
     400//SetProjMinDiffMass(0.7);                    // GeV 1.1
     401//SetProjMinNonDiffMass(0.7);                 // GeV
     402//SetProbabilityOfProjDiff(0.85*std::pow(s/GeV/GeV,-0.5)); // 40/32 X-dif/X-inel
     403//SetTarMinDiffMass(1.1);                     // GeV
     404//SetTarMinNonDiffMass(1.1);                  // GeV
     405//SetProbabilityOfTarDiff(0.85*std::pow(s/GeV/GeV,-0.5)); // 40/32 X-dif/X-inel
     406//
     407//SetAveragePt2(0.3);                         // GeV^2
     408//------------------------------------
    324409//SetProbabilityOfElasticScatt(1.,1.); //(Xtotal, Xelastic);
    325410//SetProbabilityOfProjDiff(1.*0.62*std::pow(s/GeV/GeV,-0.51)); // 0->1
     
    328413//SetAvaragePt2ofElasticScattering(0.);
    329414
    330 //SetCofNuclearDestruction(0.6); //(0.4);                 
    331 SetExcitationEnergyPerWoundedNucleon(75.*MeV); //(75.*MeV);
    332 //SetDofNuclearDestruction(0.6); //(0.4);                 
    333 //SetPt2ofNuclearDestruction(0.12*GeV*GeV); //(0.168*GeV*GeV);
     415//SetMaxNumberOfCollisions(4.*(Plab+0.01),Plab); //6.); // ##############################
     416//SetCofNuclearDestruction(0.2); //(0.4);                 
     417//SetExcitationEnergyPerWoundedNucleon(0.*MeV); //(75.*MeV);
     418//SetDofNuclearDestruction(0.4); //(0.4);                 
     419//SetPt2ofNuclearDestruction(0.1*GeV*GeV); //(0.168*GeV*GeV);
    334420
    335421}
  • trunk/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc

    r1340 r1347  
    2626//
    2727// $Id: G4FTFParticipants.cc,v 1.17 2010/09/20 15:50:46 vuzhinsk Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030// ------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.