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 // File: CCalPrimaryGeneratorMessenger.cc 28 // Description: CCalPrimaryGeneratorMessenger 29 // primary generator action 30 ////////////////////////////////////////////// 31 #include "CCalPrimaryGeneratorMessenger.hh" 32 #include "CCalPrimaryGeneratorAction.hh" 33 34 #include "globals.hh" 35 #include "G4PhysicalConstants.hh" 36 #include "G4UImanager.hh" 37 #include "G4UIcmdWithAString.hh" 38 #include "G4UIcmdWithADoubleAndUnit.hh" 39 #include "G4UIcmdWithADouble.hh" 40 #include "G4UIcmdWithABool.hh" 41 #include "G4UIcmdWithAnInteger.hh" 42 43 CCalPrimaryGeneratorMessenger::CCalPrimaryGene 44 45 verboseCmd = new G4UIcmdWithAnInteger("/CCal 46 verboseCmd->SetGuidance("set Verbosity level 47 verboseCmd->SetParameterName("value",true); 48 verboseCmd->SetDefaultValue(0); 49 verboseCmd->AvailableForStates(G4State_PreIn 50 51 rndmCmd = new G4UIcmdWithAString("/CCal/gene 52 rndmCmd->SetGuidance("Choose randomly energy 53 rndmCmd->SetGuidance(" Choice : on,off(defa 54 rndmCmd->SetParameterName("choice",true); 55 rndmCmd->SetDefaultValue("off"); 56 rndmCmd->SetCandidates("on off ON OFF"); 57 rndmCmd->AvailableForStates(G4State_PreInit, 58 59 scanCmd = new G4UIcmdWithAString("/CCal/gene 60 scanCmd->SetGuidance("Scan eta and phi range 61 scanCmd->SetGuidance(" Choice : on,off(defa 62 scanCmd->SetGuidance(" Ranges : etamin/max, 63 scanCmd->SetParameterName("choice",true); 64 scanCmd->SetDefaultValue("off"); 65 scanCmd->SetCandidates("on off ON OFF"); 66 scanCmd->AvailableForStates(G4State_PreInit, 67 68 minEnergyCmd = new G4UIcmdWithADoubleAndUnit 69 minEnergyCmd->SetGuidance("Set minimum Energ 70 minEnergyCmd->SetParameterName("value",true) 71 minEnergyCmd->SetDefaultValue(1.); 72 minEnergyCmd->SetDefaultUnit("GeV"); 73 minEnergyCmd->AvailableForStates(G4State_Pre 74 75 maxEnergyCmd = new G4UIcmdWithADoubleAndUnit 76 maxEnergyCmd->SetGuidance("Set maximum Energ 77 maxEnergyCmd->SetParameterName("value",true) 78 maxEnergyCmd->SetDefaultValue(1.); 79 maxEnergyCmd->SetDefaultUnit("TeV"); 80 maxEnergyCmd->AvailableForStates(G4State_Pre 81 82 minPhiCmd = new G4UIcmdWithADoubleAndUnit("/ 83 minPhiCmd->SetGuidance("Set minimum Phi angl 84 minPhiCmd->SetGuidance(" Choice : from 0 to 85 minPhiCmd->SetParameterName("value",true); 86 minPhiCmd->SetDefaultValue(0); 87 minPhiCmd->SetDefaultUnit("radian"); 88 minPhiCmd->AvailableForStates(G4State_PreIni 89 90 maxPhiCmd = new G4UIcmdWithADoubleAndUnit("/ 91 maxPhiCmd->SetGuidance("Set maximum Phi angl 92 maxPhiCmd->SetGuidance(" Choice : from 0 to 93 maxPhiCmd->SetParameterName("value",true); 94 maxPhiCmd->SetDefaultValue(2.*pi); 95 maxPhiCmd->SetDefaultUnit("radian"); 96 maxPhiCmd->AvailableForStates(G4State_PreIni 97 98 stepsPhiCmd = new G4UIcmdWithAnInteger("/CCa 99 stepsPhiCmd->SetGuidance("number of steps al 100 stepsPhiCmd->SetParameterName("value",true); 101 stepsPhiCmd->SetDefaultValue(1); 102 stepsPhiCmd->AvailableForStates(G4State_PreI 103 104 minEtaCmd = new G4UIcmdWithADouble("/CCal/ge 105 minEtaCmd->SetGuidance("Set minimum Eta angl 106 minEtaCmd->SetGuidance(" Choice : from 0 to 107 minEtaCmd->SetParameterName("value",true); 108 minEtaCmd->SetDefaultValue(0); 109 minEtaCmd->AvailableForStates(G4State_PreIni 110 111 maxEtaCmd = new G4UIcmdWithADouble("/CCal/ge 112 maxEtaCmd->SetGuidance("Set maximum Eta angl 113 maxEtaCmd->SetGuidance(" Choice : from 0 to 114 maxEtaCmd->SetParameterName("value",true); 115 maxEtaCmd->SetDefaultValue(3.5); 116 maxEtaCmd->AvailableForStates(G4State_PreIni 117 118 stepsEtaCmd = new G4UIcmdWithAnInteger("/CCa 119 stepsEtaCmd->SetGuidance("number of steps al 120 stepsEtaCmd->SetParameterName("value",true); 121 stepsEtaCmd->SetDefaultValue(1); 122 stepsEtaCmd->AvailableForStates(G4State_PreI 123 124 runNoCmd = new G4UIcmdWithAnInteger("/CCal/g 125 runNoCmd->SetGuidance("set the run number ") 126 runNoCmd->SetParameterName("value",true); 127 runNoCmd->SetDefaultValue(0); 128 runNoCmd->AvailableForStates(G4State_PreInit 129 130 } 131 132 CCalPrimaryGeneratorMessenger::~CCalPrimaryGen 133 134 if (verboseCmd) 135 delete verboseCmd; 136 if (scanCmd) 137 delete rndmCmd; 138 if (scanCmd) 139 delete scanCmd; 140 if (minEnergyCmd) 141 delete minEnergyCmd; 142 if (maxEnergyCmd) 143 delete maxEnergyCmd; 144 if (minPhiCmd) 145 delete minPhiCmd; 146 if (maxPhiCmd) 147 delete maxPhiCmd; 148 if (stepsPhiCmd) 149 delete stepsPhiCmd; 150 if (minEtaCmd) 151 delete minEtaCmd; 152 if (maxEtaCmd) 153 delete maxEtaCmd; 154 if (stepsEtaCmd) 155 delete stepsEtaCmd; 156 if (runNoCmd) 157 delete runNoCmd; 158 159 } 160 161 void CCalPrimaryGeneratorMessenger::SetNewValu 162 163 if (command == verboseCmd) 164 myAction->SetVerboseLevel(verboseCmd->GetN 165 else if (command == rndmCmd) 166 myAction->SetRandom(newValues); 167 else if (command == scanCmd) 168 myAction->SetScan(newValues); 169 else if (command == minEnergyCmd) 170 myAction->SetMinimumEnergy(minEnergyCmd->G 171 else if (command == maxEnergyCmd) 172 myAction->SetMaximumEnergy(maxEnergyCmd->G 173 else if (command == minPhiCmd) 174 myAction->SetMinimumPhi(minPhiCmd->GetNewD 175 else if (command == maxPhiCmd) 176 myAction->SetMaximumPhi(maxPhiCmd->GetNewD 177 else if (command == stepsPhiCmd) 178 myAction->SetStepsPhi(stepsPhiCmd->GetNewI 179 else if (command == minEtaCmd) 180 myAction->SetMinimumEta(minEtaCmd->GetNewD 181 else if (command == maxEtaCmd) 182 myAction->SetMaximumEta(maxEtaCmd->GetNewD 183 else if (command == stepsEtaCmd) 184 myAction->SetStepsEta(stepsEtaCmd->GetNewI 185 else if (command == runNoCmd) 186 myAction->SetRunNo(runNoCmd->GetNewIntValu 187 188 } 189