Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/hadronic/Hadr10/src/DetectorMessenger.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 /examples/extended/hadronic/Hadr10/src/DetectorMessenger.cc (Version 11.3.0) and /examples/extended/hadronic/Hadr10/src/DetectorMessenger.cc (Version 11.0.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 /// \file DetectorMessenger.cc                     26 /// \file DetectorMessenger.cc
 27 /// \brief Implementation of the DetectorMesse     27 /// \brief Implementation of the DetectorMessenger class
 28 //                                                 28 //
 29 //                                                 29 //
 30                                                    30 
 31 //....oooOO0OOooo........oooOO0OOooo........oo     31 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 32 //....oooOO0OOooo........oooOO0OOooo........oo     32 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 33                                                    33 
 34 #include "DetectorMessenger.hh"                    34 #include "DetectorMessenger.hh"
 35                                                << 
 36 #include "DetectorConstruction.hh"                 35 #include "DetectorConstruction.hh"
 37                                                <<  36 #include "G4UIdirectory.hh"
 38 #include "G4UIcmdWithADoubleAndUnit.hh"            37 #include "G4UIcmdWithADoubleAndUnit.hh"
 39 #include "G4UIcmdWithAString.hh"                   38 #include "G4UIcmdWithAString.hh"
 40 #include "G4UIcmdWithoutParameter.hh"              39 #include "G4UIcmdWithoutParameter.hh"
 41 #include "G4UIdirectory.hh"                    << 
 42 #include "globals.hh"                              40 #include "globals.hh"
 43                                                    41 
 44 //....oooOO0OOooo........oooOO0OOooo........oo     42 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 45                                                    43 
 46 DetectorMessenger::DetectorMessenger(DetectorC <<  44 DetectorMessenger::DetectorMessenger( DetectorConstruction* myDet ) : G4UImessenger(),
 47   : G4UImessenger(), fDetector(myDet)          <<  45                                                                       fDetector( myDet ) {
 48 {                                              <<  46   fDetectorDir = new G4UIdirectory( "/mydet/" );
 49   fDetectorDir = new G4UIdirectory("/mydet/"); <<  47   fDetectorDir->SetGuidance( "Detector control." );
 50   fDetectorDir->SetGuidance("Detector control. <<  48 
 51                                                <<  49   fFieldCommand = new G4UIcmdWithADoubleAndUnit( "/mydet/setField", this );  
 52   fFieldCommand = new G4UIcmdWithADoubleAndUni <<  50   fFieldCommand->SetGuidance( "Define uniform magnetic field along Y." );
 53   fFieldCommand->SetGuidance("Define uniform m <<  51   fFieldCommand->SetGuidance( " -> in unit of  [Tesla]" );
 54   fFieldCommand->SetGuidance(" -> in unit of   <<  52   fFieldCommand->SetParameterName( "By", false );
 55   fFieldCommand->SetParameterName("By", false) <<  53   fFieldCommand->SetDefaultValue( 0.0 );
 56   fFieldCommand->SetDefaultValue(0.0);         <<  54   fFieldCommand->SetUnitCategory( "Magnetic flux density" );
 57   fFieldCommand->SetUnitCategory("Magnetic flu <<  55   fFieldCommand->AvailableForStates( G4State_PreInit, G4State_Idle );  
 58   fFieldCommand->AvailableForStates(G4State_Pr <<  56   
 59                                                <<  57   fTargetMaterial = new G4UIcmdWithAString( "/mydet/targetMaterial", this );
 60   fTargetMaterial = new G4UIcmdWithAString("/m <<  58   fTargetMaterial->SetGuidance( "Choice of the target material:" );
 61   fTargetMaterial->SetGuidance("Choice of the  <<  59   fTargetMaterial->SetGuidance( "   a Geant4 NIST material, e.g. G4_Be " );
 62   fTargetMaterial->SetGuidance("   a Geant4 NI <<  60   fTargetMaterial->SetParameterName( "choiceTargetMaterial", true );
 63   fTargetMaterial->SetParameterName("choiceTar <<  61   fTargetMaterial->SetDefaultValue( "G4_Be" );
 64   fTargetMaterial->SetDefaultValue("G4_Be");   <<  62   fTargetMaterial->AvailableForStates( G4State_PreInit, G4State_Idle );
 65   fTargetMaterial->AvailableForStates(G4State_ <<  63   
 66                                                <<  64   fTargetInnerRadius = new G4UIcmdWithADoubleAndUnit( "/mydet/targetInnerRadius", this );
 67   fTargetInnerRadius = new G4UIcmdWithADoubleA <<  65   fTargetInnerRadius->SetParameterName( "choiceTargetInnerRadius", true );
 68   fTargetInnerRadius->SetParameterName("choice <<  66   fTargetInnerRadius->SetGuidance( "Target inner radius" );
 69   fTargetInnerRadius->SetGuidance("Target inne <<  67   fTargetInnerRadius->SetDefaultValue( 9.0 );
 70   fTargetInnerRadius->SetDefaultValue(9.0);    <<  68   fTargetInnerRadius->AvailableForStates( G4State_PreInit, G4State_Idle );
 71   fTargetInnerRadius->AvailableForStates(G4Sta <<  69 
 72                                                <<  70   fTargetOuterRadius = new G4UIcmdWithADoubleAndUnit( "/mydet/targetOuterRadius", this );
 73   fTargetOuterRadius = new G4UIcmdWithADoubleA <<  71   fTargetOuterRadius->SetParameterName( "choiceTargetOuterRadius", true );
 74   fTargetOuterRadius->SetParameterName("choice <<  72   fTargetOuterRadius->SetGuidance( "Target outer radius" );
 75   fTargetOuterRadius->SetGuidance("Target oute <<  73   fTargetOuterRadius->SetDefaultValue( 11.0 );
 76   fTargetOuterRadius->SetDefaultValue(11.0);   <<  74   fTargetOuterRadius->AvailableForStates( G4State_PreInit, G4State_Idle );
 77   fTargetOuterRadius->AvailableForStates(G4Sta <<  75 
 78                                                <<  76   fUpdateCommand = new G4UIcmdWithoutParameter( "/mydet/update", this);
 79   fUpdateCommand = new G4UIcmdWithoutParameter <<  77   fUpdateCommand->SetGuidance( "Update calorimeter geometry." );
 80   fUpdateCommand->SetGuidance("Update calorime <<  78   fUpdateCommand->SetGuidance( "This command MUST be applied before \"beamOn\" " );
 81   fUpdateCommand->SetGuidance("This command MU <<  79   fUpdateCommand->SetGuidance( "if you changed geometrical value(s)." );
 82   fUpdateCommand->SetGuidance("if you changed  <<  80   fUpdateCommand->AvailableForStates( G4State_Idle ); 
 83   fUpdateCommand->AvailableForStates(G4State_P << 
 84 }                                                  81 }
 85                                                    82 
 86 //....oooOO0OOooo........oooOO0OOooo........oo     83 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 87                                                    84 
 88 DetectorMessenger::~DetectorMessenger()        <<  85 DetectorMessenger::~DetectorMessenger() {
 89 {                                              << 
 90   delete fDetectorDir;                             86   delete fDetectorDir;
 91   delete fFieldCommand;                            87   delete fFieldCommand;
 92   delete fTargetMaterial;                          88   delete fTargetMaterial;
 93   delete fTargetInnerRadius;                       89   delete fTargetInnerRadius;
 94   delete fTargetOuterRadius;                       90   delete fTargetOuterRadius;
 95   delete fUpdateCommand;                           91   delete fUpdateCommand;
 96 }                                                  92 }
 97                                                    93 
 98 //....oooOO0OOooo........oooOO0OOooo........oo     94 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 99                                                    95 
100 void DetectorMessenger::SetNewValue(G4UIcomman <<  96 void DetectorMessenger::SetNewValue( G4UIcommand* command, G4String newValue ) {
101 {                                              <<  97   if ( command == fFieldCommand ) { 
102   if (command == fFieldCommand) {              <<  98     fDetector->SetMagField( fFieldCommand->GetNewDoubleValue( newValue ) );
103     fDetector->SetMagField(fFieldCommand->GetN << 
104   }                                                99   }
105   if (command == fTargetMaterial) {            << 100   if ( command == fTargetMaterial ) { 
106     fDetector->SetTargetMaterial(newValue);    << 101     fDetector->SetTargetMaterial( newValue );
107   }                                               102   }
108   if (command == fTargetInnerRadius) {         << 103   if ( command == fTargetInnerRadius ) { 
109     fDetector->SetTargetInnerRadius(fTargetInn << 104     fDetector->SetTargetInnerRadius( fTargetInnerRadius->GetNewDoubleValue( newValue ) );
110   }                                               105   }
111   if (command == fTargetOuterRadius) {         << 106   if ( command == fTargetOuterRadius ) { 
112     fDetector->SetTargetOuterRadius(fTargetOut << 107     fDetector->SetTargetOuterRadius( fTargetOuterRadius->GetNewDoubleValue( newValue ) );
113   }                                               108   }
114   if (command == fUpdateCommand) {             << 109   if ( command == fUpdateCommand ) {
115     fDetector->UpdateGeometry();                  110     fDetector->UpdateGeometry();
116   }                                               111   }
117 }                                                 112 }
118                                                   113 
119 //....oooOO0OOooo........oooOO0OOooo........oo    114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
120                                                   115