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

geant4 tag 9.4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/incl/include/G4InclDataDefs.hh

    r1340 r1347  
    2424// ********************************************************************
    2525//
    26 // $Id: G4InclDataDefs.hh,v 1.10 2010/10/28 15:35:50 gcosmo Exp $
     26// $Id: G4InclDataDefs.hh,v 1.12 2010/11/17 20:19:09 kaitanie Exp $
    2727// Translation of INCL4.2/ABLA V3
    2828// Pekka Kaitaniemi, HIP (translation)
     
    6363class G4QuadvectProjo {
    6464public:
    65   G4QuadvectProjo() {};
     65  G4QuadvectProjo() {
     66    for(G4int i = 0; i < max_a_proj; ++i) {
     67      eps_c[i] = 0.0;
     68      t_c[i] = 0.0;
     69      p3_c[i] = 0.0;
     70      p1_s[i] = 0.0;
     71      p2_s[i] = 0.0;
     72      p3_s[i] = 0.0;
     73    }
     74  };
     75
    6676  ~G4QuadvectProjo() {};
    6777
     
    7383class G4VBe {
    7484public:
    75   G4VBe() {};
     85  G4VBe()
     86    :ia_be(0), iz_be(0),
     87     rms_be(0.0), pms_be(0.0), bind_be(0.0)
     88  { };
     89
    7690  ~G4VBe() {};
    7791
     
    87101  G4InclProjSpect() {
    88102    //    G4cout <<"Projectile spectator data structure created!" << G4endl;
     103    clear();
    89104  };
    90105  ~G4InclProjSpect() {};
     
    95110    a_projspec = 0;
    96111    z_projspec = 0;
    97     m_projspec = 0.0;
     112    t_projspec = 0.0;
    98113    ex_projspec = 0.0;
    99114    p1_projspec = 0.0;
    100115    p2_projspec = 0.0;
    101116    p3_projspec = 0.0;
     117    m_projspec = 0.0;
    102118  };
    103119
     
    108124};
    109125
    110 #define FSIZE 15
    111 /**
    112  * Initial values of a hadronic cascade problem.
    113  */
    114 class G4Calincl {
    115 public:
    116   G4Calincl() {
    117     isExtendedProjectile = false;
    118   };
    119 
    120   G4Calincl(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus, G4bool inverseKinematics = false) {
    121     for(int i = 0; i < 15; i++) {
    122       f[i] = 0.0; // Initialize INCL input data
    123     }
    124 
    125     usingInverseKinematics = inverseKinematics;
    126 
    127     f[0] = theNucleus.GetA_asInt(); // Target mass number
    128     f[1] = theNucleus.GetZ_asInt(); // Target charge number
    129     f[6] = getBulletType(aTrack.GetDefinition()); // Projectile type (INCL particle code)
    130     f[2] = aTrack.GetKineticEnergy() / MeV; // Projectile energy (total, in MeV)
    131     f[5] = 1.0; // Time scaling
    132     f[4] = 45.0; // Nuclear potential
    133     setExtendedProjectileInfo(aTrack.GetDefinition());
    134     //    G4cout <<"Projectile type = " << f[6] << G4endl;
    135     //    G4cout <<"Energy = " << f[2] << G4endl;
    136     //    G4cout <<"Target A = " << f[0] << " Z = " << f[1] << G4endl;
    137   };
    138 
    139   ~G4Calincl() {};
    140  
    141   static void printProjectileTargetInfo(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus) {
    142     G4cout <<"Projectile = " << aTrack.GetDefinition()->GetParticleName() << G4endl;
    143     G4cout <<"    four-momentum: " << aTrack.Get4Momentum() << G4endl;
    144     G4cout <<"Energy = " << aTrack.GetKineticEnergy() / MeV << G4endl;
    145     G4cout <<"Target A = " << theNucleus.GetA_asInt() << " Z = " << theNucleus.GetZ_asInt() << G4endl;
    146   }
    147 
    148   static G4bool canUseInverseKinematics(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus) {
    149     G4int targetA = theNucleus.GetA_asInt();
    150     const G4ParticleDefinition *projectileDef = aTrack.GetDefinition();
    151     G4int projectileA = projectileDef->GetAtomicMass();
    152     //    G4int projectileZ = projectileDef->GetAtomicNumber();
    153     if(targetA > 0 && targetA < 18 && (projectileDef != G4Proton::Proton() &&
    154                                        projectileDef != G4Neutron::Neutron() &&
    155                                        projectileDef != G4PionPlus::PionPlus() &&
    156                                        projectileDef != G4PionZero::PionZero() &&
    157                                        projectileDef != G4PionMinus::PionMinus()) &&
    158        projectileA > 1) {
    159       return true;
    160     } else {
    161       return false;
    162     }
    163   }
    164 
    165   G4double bulletE() {
    166     return f[2];
    167   }
    168 
    169   G4int getBulletType() {
    170     return G4int(f[6]);
    171   };
    172 
    173   void setExtendedProjectileInfo(const G4ParticleDefinition *pd) {
    174     if(getBulletType(pd) == -666) {
    175       extendedProjectileA = pd->GetAtomicMass();
    176       extendedProjectileZ = pd->GetAtomicNumber();
    177       isExtendedProjectile = true;
    178     } else {
    179       isExtendedProjectile = false;
    180     }
    181   };
    182 
    183   G4int getBulletType(const G4ParticleDefinition *pd) {
    184     G4ParticleTable *pt = G4ParticleTable::GetParticleTable();
    185 
    186     if(pd == G4Proton::Proton()) {
    187       return 1;
    188     } else if(pd == G4Neutron::Neutron()) {
    189       return 2;
    190     } else if(pd == G4PionPlus::PionPlus()) {
    191       return 3;
    192     } else if(pd == G4PionMinus::PionMinus()) {
    193       return 5;
    194     } else if(pd == G4PionZero::PionZero()) {
    195       return 4;
    196     } else if(pd == G4Deuteron::Deuteron()) {
    197       return 6;
    198     } else if(pd == G4Triton::Triton()) {
    199       return 7;
    200     } else if(pd == G4He3::He3()) {
    201       return 8;
    202     } else if(pd == G4Alpha::Alpha()) {
    203       return 9;
    204     } else if(pd == pt->GetIon(6, 12, 0.0)) { // C12 special case. This should be phased-out in favor of "extended projectile"
    205       return -12;
    206     } else { // Is this extended projectile?
    207       G4int A = pd->GetAtomicMass();
    208       G4int Z = pd->GetAtomicNumber();
    209       if(A > 4 && A <= 16 && Z > 2 && Z <= 8) { // Ions from Lithium to Oxygen
    210         return -666; // Code of an extended projectile
    211       }
    212     }
    213     G4cout <<"Error! Projectile " << pd->GetParticleName() << " not defined!" << G4endl;
    214     return 0;
    215   };
    216 
    217   G4bool isInverseKinematics() {
    218     return usingInverseKinematics;
    219   };
    220 
    221   G4double targetA() { return f[0]; };
    222   G4double targetZ() { return f[1]; };
    223 
    224   G4int extendedProjectileA;
    225   G4int extendedProjectileZ;
    226   G4bool isExtendedProjectile;
    227 
    228   /**
    229    * Here f is an array containing the following initial values:
    230    * - f[0] : target mass number
    231    * - f[1] : target charge number
    232    * - f[2] : bullet energy
    233    * - f[3] : minimum proton energy to leave the target (default: 0.0)
    234    * - f[4] : nuclear potential (default: 45.0 MeV)
    235    * - f[5] : time scale (default: 1.0)
    236    * - f[6] : bullet type (1: proton, 2: neutron, 3: pi+, 4: pi0 5: pi-, 6:H2, 7: H3, 8: He3, 9: He4
    237    * - f[7] : minimum neutron energy to leave the target (default: 0.0)
    238    * - f[8] : target material identifier (G4Mat)
    239    * - f[9] : not used
    240    * - f[10] : not used
    241    * - f[11] : not used
    242    * - f[12] : not used
    243    * - f[13] : not used
    244    * - f[14] : not used
    245    */
    246   G4double f[FSIZE];
    247 
    248   /**
    249    * Number of events to be processed.
    250    */
    251   G4int icoup;
    252 
    253   G4bool usingInverseKinematics;
    254 };
    255 
    256126#define IGRAINESIZE 19
    257127/**
     
    262132class G4Hazard{
    263133public:
    264   G4Hazard() {};
     134  G4Hazard() {
     135    ial = 0;
     136    for(G4int i = 0; i < IGRAINESIZE; ++i) {
     137      igraine[i] = 0;
     138    }
     139  };
     140
    265141  ~G4Hazard() {};
    266142
     
    283159class G4Mat {
    284160public:
    285   G4Mat() { };
     161  G4Mat() {
     162    nbmat = 0;
     163
     164    for(G4int i = 0; i < MATSIZE; ++i) {
     165      zmat[i] = 0;
     166      amat[i] = 0;
     167    }
     168
     169    for(G4int i = 0; i < MATGEOSIZE; ++i) {
     170      for(G4int j = 0; j < MATSIZE; ++j) {
     171        bmax_geo[i][j] = 0;
     172      }
     173    }
     174};
     175
    286176  ~G4Mat() { };
    287177
     
    313203class G4LightGausNuc {
    314204public:
    315   G4LightGausNuc() {};
     205  G4LightGausNuc() {
     206    for(G4int i = 0; i < LGNSIZE; ++i) {
     207      rms1t[i] = 0.0;
     208      pf1t[i] = 0.0;
     209      pfln[i] = 0.0;
     210      tfln[i] = 0.0;
     211      vnuc[i] = 0.0;
     212    }
     213  };
     214
    316215  ~G4LightGausNuc() {};
    317216 
     
    329228class G4LightNuc {
    330229public:
    331   G4LightNuc() {};
     230  G4LightNuc() {
     231    for(G4int i = 0; i < LNSIZE; ++i) {
     232      r[i] = 0.0;
     233      a[i] = 0.0;
     234    }
     235  };
     236
    332237  ~G4LightNuc() {};
    333238
     
    350255class G4Saxw {
    351256public:
    352   G4Saxw() {};
     257  G4Saxw() {
     258    for(G4int i = 0; i < SAXWROWS; ++i) {
     259      for(G4int j = 0; j < SAXWCOLS; ++j) {
     260        x[i][j] = 0.0;
     261        y[i][j] = 0.0;
     262        s[i][j] = 0.0;
     263      }
     264    }
     265    imat = 0; n = 0; k = 0;
     266  };
     267
    353268  ~G4Saxw() {};
    354269 
     
    391306  G4Ws() {
    392307    fneck = 0.0;
    393   };
     308    r0 = 0.0;
     309    adif = 0.0;
     310    rmaxws = 0.0;
     311    drws = 0.0;
     312    nosurf = 0.0;
     313    xfoisa = 0.0;
     314    bmax = 0.0;
     315    npaulstr = 0.0;
     316  };
     317
    394318  ~G4Ws() {};
    395319 
     
    453377class G4Dton {
    454378public:
    455   G4Dton() {};
     379  G4Dton() {
     380    fn = 0.0;
     381    for(G4int i = 0; i < DTONSIZE; ++i) {
     382      c[i] = 0.0;
     383      d[i] = 0.0;
     384    }
     385  };
     386
    456387  ~G4Dton() {};
    457388 
     
    469400class G4Spl2 {
    470401public:
    471   G4Spl2() {};
     402  G4Spl2() {
     403    for(G4int i = 0; i < SPL2SIZE; ++i) {
     404      x[i] = 0.0; y[i] = 0.0;
     405      a[i] = 0.0; b[i] = 0.0; c[i] = 0.0;
     406    }
     407    n = 0;
     408  };
     409
    472410  ~G4Spl2() {};
    473411 
     
    491429class G4Bl1 {
    492430public:
    493   G4Bl1() {};
     431  G4Bl1() {
     432    ta = 0.0;
     433    for(G4int i = 0; i < BL1SIZE; ++i) {
     434      p1[i] = 0.0; p2[i] = 0.0; p3[i] = 0.0; eps[i] = 0.0;
     435      ind1[i] = 0; ind2[i] = 0;
     436    }
     437  };
     438
    494439  ~G4Bl1() {};
    495440 
     
    510455};
    511456
    512 #define BL2CROISSIZE 19900
    513 #define BL2INDSIZE 19900
     457#define BL2SIZE 19900
    514458/**
    515459 *
     
    517461class G4Bl2 {
    518462public:
    519   G4Bl2() {};
     463  G4Bl2() {
     464    k = 0;
     465    for(G4int i = 0; i < BL2SIZE; ++i) {
     466      crois[i] = 0.0;
     467      ind[i] = 0;
     468      jnd[i] = 0;
     469    }   
     470  };
     471
    520472  ~G4Bl2() {};
    521473 
     
    533485   *
    534486   */
    535   G4double crois[BL2CROISSIZE];
     487  G4double crois[BL2SIZE];
    536488
    537489  /**
     
    543495   *
    544496   */
    545   G4int ind[BL2INDSIZE];
    546 
    547   /**
    548    *
    549    */
    550   G4int jnd[BL2INDSIZE];
     497  G4int ind[BL2SIZE];
     498
     499  /**
     500   *
     501   */
     502  G4int jnd[BL2SIZE];
    551503};
    552504
     
    558510class G4Bl3 {
    559511public:
    560   G4Bl3() {};
     512  G4Bl3() {
     513    r1 = 0.0; r2 = 0.0;
     514    ia1 = 0; ia2 = 0;
     515    rab2 = 0.0;
     516
     517    for(G4int i = 0; i < BL3SIZE; ++i) {
     518      x1[i] = 0.0; x2[i] = 0.0; x3[i] = 0.0;
     519    }
     520  };
     521
    561522  ~G4Bl3() {};
    562523 
     
    599560class G4Bl4 {
    600561public:
    601   G4Bl4() {};
     562  G4Bl4()
     563    :tmax5(0.0)
     564  {};
     565
    602566  ~G4Bl4() {};
    603567
     
    615579class G4Bl5 {
    616580public:
    617   G4Bl5() {};
     581  G4Bl5() {
     582    for(G4int i = 0; i < BL5SIZE; ++i) {
     583      tlg[i] = 0.0;
     584      nesc[i] = 0;
     585    }
     586  };
     587
    618588  ~G4Bl5() {};
    619589 
     
    634604class G4Bl6 {
    635605public:
    636   G4Bl6() {};
     606  G4Bl6()
     607    :xx10(0.0), isa(0.0)
     608  {};
     609
    637610  ~G4Bl6() {};
    638611 
     
    653626class G4Bl8 {
    654627public:
    655   G4Bl8() {};
     628  G4Bl8()
     629    :rathr(0.0), ramass(0.0)
     630  {};
     631
    656632  ~G4Bl8() {};
    657633
     
    677653    l1 = 0;
    678654    l2 = 0;
     655    for(G4int i = 0; i < BL9SIZE; ++i) {
     656      hel[i] = 0.0;
     657    }
    679658  };
    680659  ~G4Bl9() {};
     
    696675class G4Bl10 {
    697676public:
    698   G4Bl10() {};
     677  G4Bl10()
     678    :ri4(0.0), rs4(0.0), r2i(0.0), r2s(0.0), pdummy(0.0), pf(0.0)
     679  {};
    699680  ~G4Bl10() {};
    700681
     
    710691class G4Kind {
    711692public:
    712   G4Kind() {};
     693  G4Kind()
     694    :kindf7(0)
     695  {};
    713696  ~G4Kind() {};
    714697
     
    770753class G4VarAvat {
    771754public:
    772   G4VarAvat() {};
     755  G4VarAvat() {
     756    kveux = 0;
     757    bavat = 0.0;
     758    nopartavat = 0; ncolavat = 0;
     759    nb_avat = 0;
     760
     761    for(G4int i = 0; i < VARSIZE; ++i) {
     762      r1_in[i] = 0.0;
     763      r1_first_avat[i] = 0.0;
     764    }
     765
     766    for(G4int i = 0; i < VAEPSSIZE; ++i) {
     767      epsd[i] = 0.0;
     768      eps2[i] = 0.0;
     769      eps4[i] = 0.0;
     770      eps6[i] = 0.0;
     771      epsf[i] = 0.0;
     772    }
     773
     774    for(G4int i = 0; i < VAAVM; ++i) {
     775      timeavat[i] = 0.0;
     776      l1avat[i] = 0.0;
     777      l2avat[i] = 0.0;
     778      jpartl1[i] = 0.0;
     779      jpartl2[i] = 0.0;
     780      del1avat[i] = 0.0;
     781      del2avat[i] = 0.0;
     782      energyavat[i] = 0.0;
     783      bloc_paul[i] = 0.0;
     784      bloc_cdpp[i] = 0.0;
     785      go_out[i] = 0.0;
     786    }
     787  };
     788
    773789  ~G4VarAvat() {};
    774790
     
    822838class G4VarNtp {
    823839public:
    824   G4VarNtp() {};
     840  G4VarNtp() {
     841    clear();
     842  };
     843
    825844  ~G4VarNtp() {};
    826845
     
    834853    targetA = 0;
    835854    targetZ = 0;
    836     masp = 0.0; mzsp = 0.0; exsp = 0.0;
     855    masp = 0.0; mzsp = 0.0; exsp = 0.0; mrem = 0.0;
    837856    // To be deleted?
    838857    spectatorA = 0;
     
    11901209class G4Paul {
    11911210public:
    1192   G4Paul() {};
     1211  G4Paul()
     1212    :ct0(0.0), ct1(0.0), ct2(0.0), ct3(0.0), ct4(0.0), ct5(0.0), ct6(0.0),
     1213     pr(0.0), pr2(0.0), xrr(0.0), xrr2(0.0),
     1214     cp0(0.0), cp1(0.0), cp2(0.0), cp3(0.0), cp4(0.0), cp5(0.0), cp6(0.0)
     1215  {};
     1216
    11931217  ~G4Paul() {};
    11941218 
Note: See TracChangeset for help on using the changeset viewer.