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 9.4.p4)


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