Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/incl_physics/src/G4INCLSigmaZeroDecayChannel.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/inclxx/incl_physics/src/G4INCLSigmaZeroDecayChannel.cc (Version 11.3.0) and /processes/hadronic/models/inclxx/incl_physics/src/G4INCLSigmaZeroDecayChannel.cc (Version 1.0)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 // INCL++ intra-nuclear cascade model             
 27 // Alain Boudard, CEA-Saclay, France              
 28 // Joseph Cugnon, University of Liege, Belgium    
 29 // Jean-Christophe David, CEA-Saclay, France      
 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H    
 31 // Sylvie Leray, CEA-Saclay, France               
 32 // Davide Mancusi, CEA-Saclay, France             
 33 //                                                
 34 #define INCLXX_IN_GEANT4_MODE 1                   
 35                                                   
 36 #include "globals.hh"                             
 37                                                   
 38 #include "G4INCLSigmaZeroDecayChannel.hh"         
 39 #include "G4INCLKinematicsUtils.hh"               
 40 #include "G4INCLBinaryCollisionAvatar.hh"         
 41 #include "G4INCLRandom.hh"                        
 42 #include "G4INCLGlobals.hh"                       
 43                                                   
 44 namespace G4INCL {                                
 45                                                   
 46   SigmaZeroDecayChannel::SigmaZeroDecayChannel    
 47     :theParticle(p), incidentDirection(dir)       
 48   {}                                              
 49                                                   
 50   SigmaZeroDecayChannel::~SigmaZeroDecayChanne    
 51                                                   
 52                                                   
 53   G4double SigmaZeroDecayChannel::computeDecay    
 54 // assert(p->getType() == SigmaZero);             
 55     const G4double gamma = std::sqrt(1+std::po    
 56     const G4double tau = ParticleTable::getWid    
 57     const G4double t = -tau * std::log(Random:    
 58     return t;                                     
 59   }                                               
 60                                                   
 61   void SigmaZeroDecayChannel::sampleAngles(G4d    
 62                                                   
 63     (*ctet_par) = -1.0 + 2.0*Random::shoot();     
 64     if(std::abs(*ctet_par) > 1.0) (*ctet_par)     
 65     (*stet_par) = std::sqrt(1.-(*ctet_par)*(*c    
 66     (*phi_par) = Math::twoPi * Random::shoot()    
 67   }                                               
 68                                                   
 69   void SigmaZeroDecayChannel::fillFinalState(F    
 70                                                   
 71 // assert( theParticle->getType() == SigmaZero    
 72     ParticleType createdType = Photon;            
 73                                                   
 74     const G4double sqrtS = theParticle->getMas    
 75                                                   
 76     theParticle->setType(Lambda);                 
 77     G4double phi, c_tet, s_tet;                   
 78     sampleAngles(&c_tet, &s_tet, &phi);           
 79                                                   
 80     G4double c_phi = std::cos(phi);               
 81     G4double s_phi = std::sin(phi);               
 82     G4double beta = incidentDirection.mag();      
 83                                                   
 84     G4double q1, q2, q3;                          
 85     G4double sal=0.0;                             
 86     if (beta >= 1.0e-10)                          
 87       sal = incidentDirection.perp()/beta;        
 88     if (sal >= 1.0e-6) {                          
 89       G4double b1 = incidentDirection.getX();     
 90       G4double b2 = incidentDirection.getY();     
 91       G4double b3 = incidentDirection.getZ();     
 92       G4double cal = b3/beta;                     
 93       G4double t1 = c_tet+cal*s_tet*s_phi/sal;    
 94       G4double t2 = s_tet/sal;                    
 95       q1=(b1*t1+b2*t2*c_phi)/beta;                
 96       q2=(b2*t1-b1*t2*c_phi)/beta;                
 97       q3=(b3*t1/beta-t2*s_phi);                   
 98     } else {                                      
 99       q1 = s_tet*c_phi;                           
100       q2 = s_tet*s_phi;                           
101       q3 = c_tet;                                 
102     }                                             
103                                                   
104     G4double xq = KinematicsUtils::momentumInC    
105                           theParticle->getMass    
106                           ParticleTable::getIN    
107     q1 *= xq;                                     
108     q2 *= xq;                                     
109     q3 *= xq;                                     
110                                                   
111     ThreeVector createdMomentum(q1, q2, q3);      
112     ThreeVector createdPosition(theParticle->g    
113     Particle *createdParticle = new Particle(c    
114     theParticle->setMomentum(-createdMomentum)    
115     theParticle->adjustEnergyFromMomentum();      
116                                                   
117     fs->addModifiedParticle(theParticle);         
118     fs->addCreatedParticle(createdParticle);      
119                                                   
120   }                                               
121 }                                                 
122