Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/im_r_matrix/src/G4CollisionNN.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/im_r_matrix/src/G4CollisionNN.cc (Version 11.3.0) and /processes/hadronic/models/im_r_matrix/src/G4CollisionNN.cc (Version 8.0.p1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                    <<   3 // * DISCLAIMER                                                       *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th <<   5 // * The following disclaimer summarizes all the specific disclaimers *
  6 // * the Geant4 Collaboration.  It is provided <<   6 // * of contributors to this software. The specific disclaimers,which *
  7 // * conditions of the Geant4 Software License <<   7 // * govern, are listed with their locations in:                      *
  8 // * LICENSE and available at  http://cern.ch/ <<   8 // *   http://cern.ch/geant4/license                                  *
  9 // * include a list of copyright holders.      << 
 10 // *                                                9 // *                                                                  *
 11 // * Neither the authors of this software syst     10 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     11 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     12 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     13 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file  <<  14 // * use.                                                             *
 16 // * for the full disclaimer and the limitatio << 
 17 // *                                               15 // *                                                                  *
 18 // * This  code  implementation is the result  <<  16 // * This  code  implementation is the  intellectual property  of the *
 19 // * technical work of the GEANT4 collaboratio <<  17 // * GEANT4 collaboration.                                            *
 20 // * By using,  copying,  modifying or  distri <<  18 // * By copying,  distributing  or modifying the Program (or any work *
 21 // * any work based  on the software)  you  ag <<  19 // * based  on  the Program)  you indicate  your  acceptance of  this *
 22 // * use  in  resulting  scientific  publicati <<  20 // * statement, and all its terms.                                    *
 23 // * acceptance of all terms of the Geant4 Sof << 
 24 // *******************************************     21 // ********************************************************************
 25 //                                                 22 //
 26 //                                                 23 //
                                                   >>  24 // $Id: G4CollisionNN.cc,v 1.3.2.1 2004/03/24 13:18:29 hpw Exp $ //
 27                                                    25 
 28                                                    26 
 29 #include "globals.hh"                              27 #include "globals.hh"
 30 #include "G4CollisionNN.hh"                        28 #include "G4CollisionNN.hh"
 31 #include "G4CollisionComposite.hh"                 29 #include "G4CollisionComposite.hh"
 32 #include "G4VCollision.hh"                         30 #include "G4VCollision.hh"
 33 #include "G4CollisionVector.hh"                    31 #include "G4CollisionVector.hh"
 34 #include "G4KineticTrack.hh"                       32 #include "G4KineticTrack.hh"
 35 #include "G4VCrossSectionSource.hh"                33 #include "G4VCrossSectionSource.hh"
 36 #include "G4XNNTotal.hh"                           34 #include "G4XNNTotal.hh"
 37 #include "G4Proton.hh"                             35 #include "G4Proton.hh"
 38 #include "G4Neutron.hh"                            36 #include "G4Neutron.hh"
 39 #include "G4CollisionNNElastic.hh"                 37 #include "G4CollisionNNElastic.hh"
 40 #include "G4CollisionnpElastic.hh"                 38 #include "G4CollisionnpElastic.hh"
 41 #include "G4CollisionNNToNDelta.hh"                39 #include "G4CollisionNNToNDelta.hh"
 42 #include "G4CollisionNNToDeltaDelta.hh"            40 #include "G4CollisionNNToDeltaDelta.hh"
 43 #include "G4CollisionNNToNDeltastar.hh"            41 #include "G4CollisionNNToNDeltastar.hh"
 44 #include "G4CollisionNNToDeltaDeltastar.hh"        42 #include "G4CollisionNNToDeltaDeltastar.hh"
 45 #include "G4CollisionNNToNNstar.hh"                43 #include "G4CollisionNNToNNstar.hh"
 46 #include "G4CollisionNNToDeltaNstar.hh"            44 #include "G4CollisionNNToDeltaNstar.hh"
 47 #include "G4Pair.hh"                               45 #include "G4Pair.hh"
 48                                                    46 
 49 typedef GROUP8(G4CollisionnpElastic, G4Collisi     47 typedef GROUP8(G4CollisionnpElastic, G4CollisionNNElastic, 
 50               G4CollisionNNToNDelta, G4Collisi     48               G4CollisionNNToNDelta, G4CollisionNNToDeltaDelta, 
 51         G4CollisionNNToNDeltastar, G4Collision     49         G4CollisionNNToNDeltastar, G4CollisionNNToDeltaDeltastar,
 52         G4CollisionNNToNNstar, G4CollisionNNTo     50         G4CollisionNNToNNstar, G4CollisionNNToDeltaNstar) theChannels;
 53                                                    51 
 54 G4CollisionNN::G4CollisionNN()                     52 G4CollisionNN::G4CollisionNN()
 55 {                                                  53 { 
 56   components=0;                                << 
 57   crossSectionSource = new G4XNNTotal();           54   crossSectionSource = new G4XNNTotal();
 58   G4CollisionComposite::Register aR;               55   G4CollisionComposite::Register aR;
 59   G4ForEach<theChannels>::Apply(&aR, this);        56   G4ForEach<theChannels>::Apply(&aR, this);
 60 }                                                  57 }
 61                                                    58 
 62                                                    59 
 63 G4CollisionNN::~G4CollisionNN()                    60 G4CollisionNN::~G4CollisionNN()
 64 {                                                  61 { 
 65   if (components) {                            << 
 66   delete components;                           << 
 67   components=0;                                << 
 68   }                                            << 
 69   delete crossSectionSource;                       62   delete crossSectionSource;
 70   crossSectionSource = 0;                          63   crossSectionSource = 0;
 71 }                                                  64 }
 72                                                    65 
 73                                                    66 
 74 const std::vector<G4String>& G4CollisionNN::Ge     67 const std::vector<G4String>& G4CollisionNN::GetListOfColliders(G4int ) const
 75 {                                                  68 {
 76     throw G4HadronicException(__FILE__, __LINE     69     throw G4HadronicException(__FILE__, __LINE__, "G4CollisionNN::GetListOfColliders - Argument outside valid range"); 
 77     return colliders1;                             70     return colliders1;
 78 }                                                  71 }
 79                                                    72 
 80                                                    73 
 81 G4double G4CollisionNN::CrossSection(const G4K     74 G4double G4CollisionNN::CrossSection(const G4KineticTrack& aTrk1, 
 82             const G4KineticTrack& aTrk2) const     75             const G4KineticTrack& aTrk2) const
 83 {                                                  76 {
 84   G4double sigma = 0.;                             77   G4double sigma = 0.;
 85                                                    78 
 86   // nucleon-nucleon cross-sections made for o     79   // nucleon-nucleon cross-sections made for on-shell particles.
 87   // here we take the kinetic energy as the qu     80   // here we take the kinetic energy as the quantity relevant
 88   // for calculating the scattering cross-sect     81   // for calculating the scattering cross-sections for off-shell hadrons
 89                                                    82   
 90   const G4VCrossSectionSource* xSource = GetCr     83   const G4VCrossSectionSource* xSource = GetCrossSectionSource();
 91   G4LorentzVector p1 = aTrk1.Get4Momentum();       84   G4LorentzVector p1 = aTrk1.Get4Momentum();
 92   G4LorentzVector p2 = aTrk2.Get4Momentum();       85   G4LorentzVector p2 = aTrk2.Get4Momentum();
 93   G4double t1 = p1.e()-aTrk1.GetActualMass();      86   G4double t1 = p1.e()-aTrk1.GetActualMass();
 94   G4double t2 = p2.e()-aTrk2.GetActualMass();      87   G4double t2 = p2.e()-aTrk2.GetActualMass();
 95   p1.setE(t1+aTrk1.GetDefinition()->GetPDGMass     88   p1.setE(t1+aTrk1.GetDefinition()->GetPDGMass());
 96   p2.setE(t2+aTrk2.GetDefinition()->GetPDGMass     89   p2.setE(t2+aTrk2.GetDefinition()->GetPDGMass());
 97   G4KineticTrack trk1(aTrk1);                      90   G4KineticTrack trk1(aTrk1);
 98   trk1.Set4Momentum(p1);                           91   trk1.Set4Momentum(p1);
 99   G4KineticTrack trk2(aTrk2);                      92   G4KineticTrack trk2(aTrk2);
100   trk2.Set4Momentum(p2);                           93   trk2.Set4Momentum(p2);
101   if( (p1+p2).mag()<aTrk1.GetDefinition()->Get     94   if( (p1+p2).mag()<aTrk1.GetDefinition()->GetPDGMass()+aTrk2.GetDefinition()->GetPDGMass())
102   {                                                95   {
103     return 0.;                                     96     return 0.;
104   }                                                97   }
105                                                    98 
106   if (xSource != 0)                                99   if (xSource != 0)
107     {                                             100     {
108       // There is a cross section for this Col    101       // There is a cross section for this Collision
109       sigma = xSource->CrossSection(trk1,trk2)    102       sigma = xSource->CrossSection(trk1,trk2);
110     }                                             103     }
111   return sigma;                                   104   return sigma;
112 }                                                 105 }
113                                                   106 
114                                                   107