Geant4 Cross Reference |
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 27 #include "globals.hh" 28 #include "G4XAnnihilationChannel.hh" 29 #include "G4ConcreteMesonBaryonToResonance.hh" 30 31 G4BaryonWidth* G4ConcreteMesonBaryon 32 G4BaryonPartialWidth* G4ConcreteMesonBaryon 33 G4ParticleTypeConverter* G4ConcreteMesonBaryon 34 35 #ifdef G4MULTITHREADED 36 G4Mutex G4ConcreteMesonBaryonToResonance::conc 37 #endif 38 39 G4BaryonWidth & G4ConcreteMesonBaryonToResonan 40 { 41 if(!baryonWidth) { G4ConcreteMesonBaryonToRe 42 return *baryonWidth; 43 } 44 45 G4BaryonPartialWidth & G4ConcreteMesonBaryonTo 46 { 47 if(!baryonPartialWidth) { G4ConcreteMesonBar 48 return *baryonPartialWidth; 49 } 50 51 G4ParticleTypeConverter & G4ConcreteMesonBaryo 52 { 53 if(!particleTypeConverter) { G4ConcreteMeson 54 return *particleTypeConverter; 55 } 56 57 G4ConcreteMesonBaryonToResonance::G4ConcreteMe 58 const G4ParticleDefinition* 59 const G4ParticleDefinition* 60 const G4String& partWidthLa 61 : thePrimary1(aPrimary), thePrimary2(bPrimar 62 { 63 crossSectionSource = new G4XAnnihilationChan 64 theBaryonWidth(), 65 theBaryonPartialWidth(), 66 partWidthLabel); 67 InitialisePointers(); 68 } 69 70 G4ConcreteMesonBaryonToResonance::~G4ConcreteM 71 { 72 delete crossSectionSource; 73 } 74 75 void G4ConcreteMesonBaryonToResonance::Initial 76 { 77 if(!baryonWidth) { 78 #ifdef G4MULTITHREADED 79 G4MUTEXLOCK(&concreteMesonBaryonToResonanc 80 if (!baryonWidth) { 81 #endif 82 baryonWidth = new G4BaryonWidth(); 83 baryonPartialWidth = new G4BaryonPartial 84 particleTypeConverter = new G4ParticleTy 85 #ifdef G4MULTITHREADED 86 } 87 G4MUTEXUNLOCK(&concreteMesonBaryonToResona 88 #endif 89 } 90 } 91 92 G4bool G4ConcreteMesonBaryonToResonance::IsInC 93 const G4KineticTrack& trk2) co 94 { 95 if (myConv().GetGenericType(trk1)==myConv(). 96 myConv().GetGenericType(trk2)==myConv(). 97 if (myConv().GetGenericType(trk1)==myConv(). 98 myConv().GetGenericType(trk2)==myConv(). 99 return false; 100 } 101 102 const G4ParticleDefinition* G4ConcreteMesonBar 103 const G4KineticTrack& tr 104 { 105 G4int secondaryIso3 = trk1.GetDefinition()-> 106 const G4ParticleDefinition* state; 107 if ( (state = myConv().FindIso3State(myConv( 108 { 109 G4cerr << "for "<<static_cast<G4int>(myCon 110 throw G4HadronicException(__FILE__, __LINE 111 } 112 return state; 113 } 114