Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/particles/management/src/G4DecayTableMessenger.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 /particles/management/src/G4DecayTableMessenger.cc (Version 11.3.0) and /particles/management/src/G4DecayTableMessenger.cc (Version 11.0.p3,)


** Warning: Cannot open xref database.

  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 // G4DecayTableMessenger class implementation     
 27 //                                                
 28 // Author: H.Kurashige, 13 June 1997              
 29 //--------------------------------------------    
 30                                                   
 31 #include "G4DecayTableMessenger.hh"               
 32                                                   
 33 #include "G4DecayTable.hh"                        
 34 #include "G4ParticleDefinition.hh"                
 35 #include "G4ParticleTable.hh"                     
 36 #include "G4UIcmdWithADouble.hh"                  
 37 #include "G4UIcmdWithAnInteger.hh"                
 38 #include "G4UIcmdWithoutParameter.hh"             
 39 #include "G4UIdirectory.hh"                       
 40 #include "G4UImanager.hh"                         
 41 #include "G4VDecayChannel.hh"                     
 42 #include "G4ios.hh"  // Include from 'system'     
 43                                                   
 44 #include <iomanip>  // Include from 'system'      
 45                                                   
 46 G4DecayTableMessenger::G4DecayTableMessenger(G    
 47 {                                                 
 48   if (theParticleTable == nullptr) {              
 49     theParticleTable = G4ParticleTable::GetPar    
 50   }                                               
 51   currentParticle = nullptr;                      
 52                                                   
 53   // Command /particle/property/decay/            
 54   thisDirectory = new G4UIdirectory("/particle    
 55   thisDirectory->SetGuidance("Decay Table cont    
 56                                                   
 57   // Command /particle/property/decay/select      
 58   selectCmd = new G4UIcmdWithAnInteger("/parti    
 59   selectCmd->SetGuidance("Enter index of decay    
 60   selectCmd->SetParameterName("mode", true);      
 61   selectCmd->SetDefaultValue(0);                  
 62   selectCmd->SetRange("mode >=0");                
 63   currentChannel = nullptr;                       
 64                                                   
 65   // Command /particle/property/decay/dump        
 66   dumpCmd = new G4UIcmdWithoutParameter("/part    
 67   dumpCmd->SetGuidance("Dump decay mode inform    
 68                                                   
 69   // Command /particle/property/decay/br          
 70   brCmd = new G4UIcmdWithADouble("/particle/pr    
 71   brCmd->SetGuidance("Set branching ratio. [0<    
 72   brCmd->SetParameterName("br", false);           
 73   brCmd->SetRange("(br >=0.0) && (br <=1.0)");    
 74 }                                                 
 75                                                   
 76 G4DecayTableMessenger::~G4DecayTableMessenger(    
 77 {                                                 
 78   delete dumpCmd;                                 
 79   delete selectCmd;                               
 80   delete brCmd;                                   
 81   delete thisDirectory;                           
 82 }                                                 
 83                                                   
 84 void G4DecayTableMessenger::SetNewValue(G4UIco    
 85 {                                                 
 86   if (SetCurrentParticle() == nullptr) {          
 87     G4cout << "Particle is not selected yet !!    
 88     return;                                       
 89   }                                               
 90   if (currentDecayTable == nullptr) {             
 91     G4cout << "The particle has no decay table    
 92     return;                                       
 93   }                                               
 94                                                   
 95   if (command == dumpCmd) {                       
 96     // Command /particle/property/decay/dump      
 97     currentDecayTable->DumpInfo();                
 98   }                                               
 99   else if (command == selectCmd) {                
100     // Command /particle/property/decay/select    
101     G4int index = selectCmd->GetNewIntValue(ne    
102     currentChannel = currentDecayTable->GetDec    
103     if (currentChannel == nullptr) {              
104       G4cout << "Invalid index. Command ignore    
105     }                                             
106     else {                                        
107       idxCurrentChannel = index;                  
108     }                                             
109   }                                               
110   else {                                          
111     if (currentChannel == nullptr) {              
112       G4cout << "Select a decay channel. Comma    
113       return;                                     
114     }                                             
115     if (command == brCmd) {                       
116       // Command /particle/property/decay/br      
117       G4double br = brCmd->GetNewDoubleValue(n    
118       if ((br < 0.0) || (br > 1.0)) {             
119         G4cout << "Invalid brancing ratio. Com    
120       }                                           
121       else {                                      
122         currentChannel->SetBR(br);                
123       }                                           
124     }                                             
125   }                                               
126 }                                                 
127                                                   
128 G4ParticleDefinition* G4DecayTableMessenger::S    
129 {                                                 
130   // set currentParticle pointer                  
131   // get particle name by asking G4ParticleMes    
132                                                   
133   G4String particleName = G4UImanager::GetUIpo    
134                                                   
135   if (currentParticle != nullptr) {               
136     // check whether selection is changed         
137     if (currentParticle->GetParticleName() !=     
138       currentParticle = theParticleTable->Find    
139       idxCurrentChannel = -1;                     
140       currentDecayTable = nullptr;                
141     }                                             
142     else {                                        
143       // no change                                
144       return currentParticle;                     
145     }                                             
146   }                                               
147   else {                                          
148     currentParticle = theParticleTable->FindPa    
149     idxCurrentChannel = -1;                       
150     currentDecayTable = nullptr;                  
151   }                                               
152                                                   
153   if (currentParticle != nullptr) {               
154     currentDecayTable = currentParticle->GetDe    
155     if ((currentDecayTable != nullptr) && (idx    
156       currentChannel = currentDecayTable->GetD    
157     }                                             
158     else {                                        
159       idxCurrentChannel = -1;                     
160       currentChannel = nullptr;                   
161     }                                             
162   }                                               
163                                                   
164   return currentParticle;                         
165 }                                                 
166                                                   
167 G4String G4DecayTableMessenger::GetCurrentValu    
168 {                                                 
169   G4String returnValue(1, '\0');                  
170                                                   
171   if (SetCurrentParticle() == nullptr) {          
172     // no particle is selected. return null       
173     return returnValue;                           
174   }                                               
175                                                   
176   if (command == selectCmd) {                     
177     // Command /particle/property/decay/select    
178     returnValue = selectCmd->ConvertToString(i    
179   }                                               
180   else if (command == brCmd) {                    
181     if (currentChannel != nullptr) {              
182       returnValue = brCmd->ConvertToString(cur    
183     }                                             
184   }                                               
185   return returnValue;                             
186 }                                                 
187