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 /// \file Run.cc 27 /// \brief Implementation of the Run class 28 // 29 // 30 31 //....oooOO0OOooo........oooOO0OOooo........oo 32 //....oooOO0OOooo........oooOO0OOooo........oo 33 34 #include "Run.hh" 35 36 #include "G4Run.hh" 37 #include "G4RunManager.hh" 38 #include "G4SystemOfUnits.hh" 39 40 //....oooOO0OOooo........oooOO0OOooo........oo 41 42 Run::Run() 43 : G4Run(), 44 fNumEvents(0), 45 fPrimaryParticleId(0), 46 fPrimaryParticleInitialKineticEnergy(0.0), 47 fPrimaryParticleInitialTotalEnergy(0.0), 48 fPrimaryParticleInitialMomentum(0.0), 49 fPrimaryParticleInitialBeta(0.0), 50 fPrimaryParticleInitialGamma(0.0), 51 fPrimaryParticleInitial3Momentum(G4ThreeVe 52 fPrimaryParticleInitialPosition(G4ThreeVec 53 fToleranceEPviolations(0.0), 54 fToleranceDeltaDecayRadius(0.0), 55 fIsPreassignedDecayEnabled(true), 56 fIsBoostToLabEnabled(true), 57 fNumDecays(0), 58 fNumBadDecays(0), 59 fNumUnexpectedDecays(0), 60 fNumEviolations(0), 61 fNumPviolations(0), 62 fNum_mc_truth_rPos_deltaMax_above(0), 63 fNum_underestimated_mc_truth_rPos_delta_ab 64 fNum_overestimated_mc_truth_rPos_delta_abo 65 fNumLargeUnderestimates(0), 66 fNumLargeOverestimates(0), 67 fDecayT(0.0), 68 fSumDecayT(0.0), 69 fMinDecayT(999999.9), 70 fMaxDecayT(-999999.9), 71 fDecayR_mc_truth(0.0), 72 fDecayR(0.0), 73 fSumDecayR(0.0), 74 fMinDecayR(999999.9), 75 fMaxDecayR(-999999.9), 76 fDecayX(0.0), 77 fSumDecayX(0.0), 78 fMinDecayX(999999.9), 79 fMaxDecayX(-999999.9), 80 fDecayY(0.0), 81 fSumDecayY(0.0), 82 fMinDecayY(999999.9), 83 fMaxDecayY(-999999.9), 84 fDecayZ(0.0), 85 fSumDecayZ(0.0), 86 fMinDecayZ(999999.9), 87 fMaxDecayZ(-999999.9), 88 fDeltaDecayR(0.0), 89 fSumDeltaDecayR(0.0), 90 fMinDeltaDecayR(999999.9), 91 fMaxDeltaDecayR(-999999.9), 92 fDeflectionAngle(0.0), 93 fSumDeflectionAngle(0.0), 94 fMinDeflectionAngle(999999.9), 95 fMaxDeflectionAngle(-999999.9), 96 fDeltaEkin(0.0), 97 fSumDeltaEkin(0.0), 98 fMinDeltaEkin(999999.9), 99 fMaxDeltaEkin(-999999.9), 100 fDecayEkin(0.0), 101 fSumDecayEkin(0.0), 102 fMinDecayEkin(999999.9), 103 fMaxDecayEkin(-999999.9), 104 fDecayPx(0.0), 105 fSumDecayPx(0.0), 106 fMinDecayPx(999999.9), 107 fMaxDecayPx(-999999.9), 108 fDecayPy(0.0), 109 fSumDecayPy(0.0), 110 fMinDecayPy(999999.9), 111 fMaxDecayPy(-999999.9), 112 fDecayPz(0.0), 113 fSumDecayPz(0.0), 114 fMinDecayPz(999999.9), 115 fMaxDecayPz(-999999.9), 116 fDecayEtotViolation(0.0), 117 fSumDecayEtotViolation(0.0), 118 fMinDecayEtotViolation(999999.9), 119 fMaxDecayEtotViolation(-999999.9), 120 fDecayPxViolation(0.0), 121 fSumDecayPxViolation(0.0), 122 fMinDecayPxViolation(999999.9), 123 fMaxDecayPxViolation(-999999.9), 124 fDecayPyViolation(0.0), 125 fSumDecayPyViolation(0.0), 126 fMinDecayPyViolation(999999.9), 127 fMaxDecayPyViolation(-999999.9), 128 fDecayPzViolation(0.0), 129 fSumDecayPzViolation(0.0), 130 fMinDecayPzViolation(999999.9), 131 fMaxDecayPzViolation(-999999.9), 132 fMaxEkin_deltaMax(0.0), 133 fMaxEtot_deltaMax(0.0), 134 fMaxP_deltaMax(0.0), 135 fMaxPdir_deltaMax(0.0), 136 fMaxMass_deltaMax1(0.0), 137 fMaxMass_deltaMax2(0.0), 138 fSumMass_deltaMax3(0.0), 139 fMaxMass_deltaMax3(0.0), 140 fMaxBeta_deltaMax1(0.0), 141 fMaxBeta_deltaMax2(0.0), 142 fMaxGamma_deltaMax1(0.0), 143 fMaxGamma_deltaMax2(0.0), 144 fMaxGamma_deltaMax3(0.0), 145 fMaxT_proper_deltaMax(0.0), 146 fMaxT_lab_deltaMax(0.0), 147 fSumMc_truth_rPos_deltaMax(0.0), 148 fMaxMc_truth_rPos_deltaMax(0.0), 149 fSumUnderestimated_mc_truth_rPos_delta(0.0 150 fMinUnderestimated_mc_truth_rPos_delta(999 151 fSumOverestimated_mc_truth_rPos_delta(0.0) 152 fMaxOverestimated_mc_truth_rPos_delta(-999 153 fSumUnderestimated_rDeltaPos(0.0), 154 fMinUnderestimated_rDeltaPos(999999.9), 155 fSumOverestimated_rDeltaPos(0.0), 156 fMaxOverestimated_rDeltaPos(-999999.9), 157 fMaxFloat_rDeltaPos_deltaMax(-999999.9) 158 {} 159 160 //....oooOO0OOooo........oooOO0OOooo........oo 161 162 Run::~Run() {} 163 164 //....oooOO0OOooo........oooOO0OOooo........oo 165 166 void Run::RecordEvent(const G4Event* anEvent) 167 { 168 // This method is called automatically by th 169 // at the end of each event : in MT-mode, it 170 // that handled that event. 171 G4int nEvt = anEvent->GetEventID(); 172 if (nEvt % 1000 == 0) { 173 G4cout << std::setprecision(6) << " Event# 174 << " ; r[mm]=" << fDecayR 175 << " ; deltaR[mum]=" << (fDecayR_mc 176 << " ; deltaEkin[MeV]=" << fDeltaEk 177 << G4endl; 178 } 179 G4Run::RecordEvent(anEvent); 180 } 181 182 //....oooOO0OOooo........oooOO0OOooo........oo 183 184 void Run::Merge(const G4Run* aRun) 185 { 186 // This method is called automatically by th 187 // only in the case of multithreaded mode an 188 const Run* localRun = static_cast<const Run* 189 fNumEvents += localRun->GetNumberOfEvent(); 190 191 fPrimaryParticleId = localRun->GetPrimaryPar 192 fPrimaryParticleInitialKineticEnergy = local 193 fPrimaryParticleInitialTotalEnergy = localRu 194 fPrimaryParticleInitialMomentum = localRun-> 195 fPrimaryParticleInitialBeta = localRun->GetP 196 fPrimaryParticleInitialGamma = localRun->Get 197 fPrimaryParticleInitial3Momentum = localRun- 198 fPrimaryParticleInitialPosition = localRun-> 199 fToleranceEPviolations = localRun->GetTolera 200 fToleranceDeltaDecayRadius = localRun->GetTo 201 fIsPreassignedDecayEnabled = localRun->GetIs 202 fIsBoostToLabEnabled = localRun->GetIsBoostT 203 204 fNumDecays += localRun->GetNumberDecays(); 205 fNumBadDecays += localRun->GetNumberBadDecay 206 fNumUnexpectedDecays += localRun->GetNumberU 207 fNumEviolations += localRun->GetNumberEviola 208 fNumPviolations += localRun->GetNumberPviola 209 fNum_mc_truth_rPos_deltaMax_above += localRu 210 fNum_underestimated_mc_truth_rPos_delta_abov 211 localRun->GetNumberUnderestimated_mc_truth 212 fNum_overestimated_mc_truth_rPos_delta_above 213 localRun->GetNumberOverestimated_mc_truth_ 214 fNumLargeUnderestimates += localRun->GetNumb 215 fNumLargeOverestimates += localRun->GetNumbe 216 217 fSumDecayT += localRun->GetSumDecayT(); 218 fMinDecayT = std::min(fMinDecayT, localRun-> 219 fMaxDecayT = std::max(fMaxDecayT, localRun-> 220 fSumDecayR += localRun->GetSumDecayR(); 221 fMinDecayR = std::min(fMinDecayR, localRun-> 222 fMaxDecayR = std::max(fMaxDecayR, localRun-> 223 fSumDecayX += localRun->GetSumDecayX(); 224 fMinDecayX = std::min(fMinDecayX, localRun-> 225 fMaxDecayX = std::max(fMaxDecayX, localRun-> 226 fSumDecayY += localRun->GetSumDecayY(); 227 fMinDecayY = std::min(fMinDecayY, localRun-> 228 fMaxDecayY = std::max(fMaxDecayY, localRun-> 229 fSumDecayZ += localRun->GetSumDecayZ(); 230 fMinDecayZ = std::min(fMinDecayZ, localRun-> 231 fMaxDecayZ = std::max(fMaxDecayZ, localRun-> 232 fSumDeltaDecayR += localRun->GetSumDeltaDeca 233 fMinDeltaDecayR = std::min(fMinDeltaDecayR, 234 fMaxDeltaDecayR = std::max(fMaxDeltaDecayR, 235 fSumDeflectionAngle += localRun->GetSumDefle 236 fMinDeflectionAngle = std::min(fMinDeflectio 237 fMaxDeflectionAngle = std::max(fMaxDeflectio 238 fSumDeltaEkin += localRun->GetSumDeltaEkin() 239 fMinDeltaEkin = std::min(fMinDeltaEkin, loca 240 fMaxDeltaEkin = std::max(fMaxDeltaEkin, loca 241 fSumDecayEkin += localRun->GetSumDecayEkin() 242 fMinDecayEkin = std::min(fMinDecayEkin, loca 243 fMaxDecayEkin = std::max(fMaxDecayEkin, loca 244 fSumDecayPx += localRun->GetSumDecayPx(); 245 fMinDecayPx = std::min(fMinDecayPx, localRun 246 fMaxDecayPx = std::max(fMaxDecayPx, localRun 247 fSumDecayPy += localRun->GetSumDecayPy(); 248 fMinDecayPy = std::min(fMinDecayPy, localRun 249 fMaxDecayPy = std::max(fMaxDecayPy, localRun 250 fSumDecayPz += localRun->GetSumDecayPz(); 251 fMinDecayPz = std::min(fMinDecayPz, localRun 252 fMaxDecayPz = std::max(fMaxDecayPz, localRun 253 fSumDecayEtotViolation += localRun->GetSumDe 254 fMinDecayEtotViolation = std::min(fMinDecayE 255 fMaxDecayEtotViolation = std::max(fMaxDecayE 256 fSumDecayPxViolation += localRun->GetSumDeca 257 fMinDecayPxViolation = std::min(fMinDecayPxV 258 fMaxDecayPxViolation = std::max(fMaxDecayPxV 259 fSumDecayPyViolation += localRun->GetSumDeca 260 fMinDecayPyViolation = std::min(fMinDecayPyV 261 fMaxDecayPyViolation = std::max(fMaxDecayPyV 262 fSumDecayPzViolation += localRun->GetSumDeca 263 fMinDecayPzViolation = std::min(fMinDecayPzV 264 fMaxDecayPzViolation = std::max(fMaxDecayPzV 265 266 fMaxEkin_deltaMax = std::max(fMaxEkin_deltaM 267 fMaxEtot_deltaMax = std::max(fMaxEtot_deltaM 268 fMaxP_deltaMax = std::max(fMaxP_deltaMax, lo 269 fMaxPdir_deltaMax = std::max(fMaxPdir_deltaM 270 fMaxMass_deltaMax1 = std::max(fMaxMass_delta 271 fMaxMass_deltaMax2 = std::max(fMaxMass_delta 272 fMaxMass_deltaMax3 = std::max(fMaxMass_delta 273 fSumMass_deltaMax3 += localRun->GetSumMass_d 274 fMaxBeta_deltaMax1 = std::max(fMaxBeta_delta 275 fMaxBeta_deltaMax2 = std::max(fMaxBeta_delta 276 fMaxGamma_deltaMax1 = std::max(fMaxGamma_del 277 fMaxGamma_deltaMax2 = std::max(fMaxGamma_del 278 fMaxGamma_deltaMax3 = std::max(fMaxGamma_del 279 fMaxT_proper_deltaMax = std::max(fMaxT_prope 280 fMaxT_lab_deltaMax = std::max(fMaxT_lab_delt 281 fMaxMc_truth_rPos_deltaMax = 282 std::max(fMaxMc_truth_rPos_deltaMax, local 283 fSumMc_truth_rPos_deltaMax += localRun->GetS 284 285 fMinUnderestimated_mc_truth_rPos_delta = std 286 fMinUnderestimated_mc_truth_rPos_delta, lo 287 fSumUnderestimated_mc_truth_rPos_delta += lo 288 fMaxOverestimated_mc_truth_rPos_delta = std: 289 fMaxOverestimated_mc_truth_rPos_delta, loc 290 fSumOverestimated_mc_truth_rPos_delta += loc 291 fMinUnderestimated_rDeltaPos = 292 std::min(fMinUnderestimated_rDeltaPos, loc 293 fSumUnderestimated_rDeltaPos += localRun->Ge 294 fMaxOverestimated_rDeltaPos = 295 std::max(fMaxOverestimated_rDeltaPos, loca 296 fSumOverestimated_rDeltaPos += localRun->Get 297 298 fMaxFloat_rDeltaPos_deltaMax = 299 std::max(fMaxFloat_rDeltaPos_deltaMax, loc 300 301 G4Run::Merge(aRun); 302 } 303 304 //....oooOO0OOooo........oooOO0OOooo........oo 305 306 void Run::PrintInfo() const 307 { 308 // This method is called by RunAction::EndOf 309 // In MT-mode, only the master thread calls 310 const G4double femtosecond = 0.001 * CLHEP:: 311 const G4double NN = (fNumDecays > 0 ? G4doub 312 G4cout 313 << std::setprecision(6) << G4endl << G4end 314 << " ============ Run::printInfo() ======= 315 << " primary PDG code 316 << " primary initial kinetic energy [GeV] 317 << fPrimaryParticleInitialKineticEnergy / 318 << " primary initial total energy [GeV] 319 << G4endl 320 << " primary initial momentum [GeV] 321 << G4endl << " primary initial Lorentz bet 322 << " primary initial Lorentz gamma 323 << " primary initial 3 momentum [GeV] 324 << G4endl << " primary initial position [m 325 << G4endl << " toleranceEPviolations [eV] 326 << G4endl 327 << " toleranceDeltaDecayRadius [mum] 328 << G4endl << " isPreassignedDecayEnabled 329 << " isBoostToLabEnabled 330 << " # Events = " << (fNumEv 331 << " # Decays = " << fNumDec 332 << " (# Bad decays = " << fNumBad 333 << " (# Unexpected decays = " << fNumUne 334 << " # E violations = " << fNumEvi 335 << " # P violations = " << fNumPvi 336 << " decay T [ns] : min=" << fMinDecayT << 337 << "\t max=" << fMaxDecayT << G4endl << " 338 << "\t mean=" << fSumDecayR / NN << "\t ma 339 << " decay X [mm] : min=" << fMinDecayX << 340 << "\t max=" << fMaxDecayX << G4endl << " 341 << "\t mean=" << fSumDecayY / NN << "\t ma 342 << " decay Z [mm] : min=" << fMinDecayZ << 343 << "\t max=" << fMaxDecayZ << G4endl << " 344 << "\t mean=" << fSumDeltaDecayR / NN << " 345 << " deflection angle [deg] : min=" << fMi 346 << "\t mean=" << fSumDeflectionAngle / NN 347 << " Delta Ekin [MeV] : min=" << fMinDelta 348 << "\t max=" << fMaxDeltaEkin << G4endl 349 << " decay Ekin [GeV] : min=" << fMinDecay 350 << "\t mean=" << fSumDecayEkin / NN / CLHE 351 << G4endl << " decay Px [GeV] : min=" << 352 << "\t mean=" << fSumDecayPx / NN / CLHEP: 353 << G4endl << " decay Py [GeV] : min=" << 354 << "\t mean=" << fSumDecayPy / NN / CLHEP: 355 << G4endl << " decay Pz [GeV] : min=" << 356 << "\t mean=" << fSumDecayPz / NN / CLHEP: 357 << G4endl << " decay Etot violation [MeV] 358 << "\t mean=" << fSumDecayEtotViolation / 359 << " decay Px violation [MeV] : min=" << 360 << "\t mean=" << fSumDecayPxViolation / NN 361 << " decay Py violation [MeV] : min=" << 362 << "\t mean=" << fSumDecayPyViolation / NN 363 << " decay Pz violation [MeV] : min=" << 364 << "\t mean=" << fSumDecayPzViolation / NN 365 << " --- Consistency checks --- " << G4end 366 << " maxEkin_deltaMax [eV] = " < 367 << " maxEtot_deltaMax [eV] = " < 368 << " maxP_deltaMax [eV] = " < 369 << " maxPdir_deltaMax = " < 370 << " maxMass_deltaMax{1,2,3} [eV] = " < 371 << fMaxMass_deltaMax2 / CLHEP::eV << " , " 372 << " (mean=" << fSumMass_deltaMax3 / NN / 373 << " maxBeta_deltaMax{1,2} = " < 374 << G4endl << " maxGamma_deltaMax{1,2,3} 375 << fMaxGamma_deltaMax2 << " , " << fMaxGam 376 << " maxT_proper_deltaMax [fs] = " < 377 << " maxT_lab_deltaMax [fs] = " < 378 << " maxMc_truth_rPos_deltaMax [mum] = " < 379 << " (mean=" << fSumMc_truth_rPos_deltaMax 380 << ")\t (# above threshold = " << fNum_mc_ 381 << " --- Extra checks --- " << G4endl << " 382 << fMinUnderestimated_mc_truth_rPos_delta 383 << " (mean=" << fSumUnderestimated_mc_trut 384 << ")\t (#above threshold = " << fNum_unde 385 << " maxOverestimated_mc_truth_rPos_delta 386 << fMaxOverestimated_mc_truth_rPos_delta / 387 << " (mean=" << fSumOverestimated_mc_truth 388 << ")\t (#above threshold = " << fNum_over 389 << " minUnderestimated_rDeltaPos [mum] 390 << fMinUnderestimated_rDeltaPos / CLHEP::m 391 << " (mean=" << fSumUnderestimated_rDeltaP 392 << ")\t (#above threshold = " << fNumLarge 393 << " maxOverestimated_rDeltaPos [mum] 394 << fMaxOverestimated_rDeltaPos / CLHEP::mi 395 << " (mean=" << fSumOverestimated_rDeltaPo 396 << ")\t (#above threshold = " << fNumLarge 397 << " --- float instead of double --- " < 398 << " fMaxFloat_rDeltaPos_deltaMax [mum] = 399 << G4endl << " =========================== 400 } 401 402 //....oooOO0OOooo........oooOO0OOooo........oo 403 404 void Run::SetDecayT(const G4double inputValue) 405 { 406 fDecayT = inputValue; 407 fSumDecayT += inputValue; 408 fMinDecayT = std::min(fMinDecayT, inputValue 409 fMaxDecayT = std::max(fMaxDecayT, inputValue 410 } 411 412 //....oooOO0OOooo........oooOO0OOooo........oo 413 414 void Run::SetDecayR_mc_truth(const G4double in 415 { 416 fDecayR_mc_truth = inputValue; 417 } 418 419 //....oooOO0OOooo........oooOO0OOooo........oo 420 421 void Run::SetDecayR(const G4double inputValue) 422 { 423 fDecayR = inputValue; 424 fSumDecayR += inputValue; 425 fMinDecayR = std::min(fMinDecayR, inputValue 426 fMaxDecayR = std::max(fMaxDecayR, inputValue 427 } 428 429 //....oooOO0OOooo........oooOO0OOooo........oo 430 431 void Run::SetDecayX(const G4double inputValue) 432 { 433 fDecayX = inputValue; 434 fSumDecayX += inputValue; 435 fMinDecayX = std::min(fMinDecayX, inputValue 436 fMaxDecayX = std::max(fMaxDecayX, inputValue 437 } 438 439 //....oooOO0OOooo........oooOO0OOooo........oo 440 441 void Run::SetDecayY(const G4double inputValue) 442 { 443 fDecayY = inputValue; 444 fSumDecayY += inputValue; 445 fMinDecayY = std::min(fMinDecayY, inputValue 446 fMaxDecayY = std::max(fMaxDecayY, inputValue 447 } 448 449 //....oooOO0OOooo........oooOO0OOooo........oo 450 451 void Run::SetDecayZ(const G4double inputValue) 452 { 453 fDecayZ = inputValue; 454 fSumDecayZ += inputValue; 455 fMinDecayZ = std::min(fMinDecayZ, inputValue 456 fMaxDecayZ = std::max(fMaxDecayZ, inputValue 457 } 458 459 //....oooOO0OOooo........oooOO0OOooo........oo 460 461 void Run::SetDeltaDecayR(const G4double inputV 462 { 463 fDeltaDecayR = inputValue; 464 fSumDeltaDecayR += inputValue; 465 fMinDeltaDecayR = std::min(fMinDeltaDecayR, 466 fMaxDeltaDecayR = std::max(fMaxDeltaDecayR, 467 } 468 469 //....oooOO0OOooo........oooOO0OOooo........oo 470 471 void Run::SetDeflectionAngle(const G4double in 472 { 473 fDeflectionAngle = inputValue; 474 fSumDeflectionAngle += inputValue; 475 fMinDeflectionAngle = std::min(fMinDeflectio 476 fMaxDeflectionAngle = std::max(fMaxDeflectio 477 } 478 479 //....oooOO0OOooo........oooOO0OOooo........oo 480 481 void Run::SetDeltaEkin(const G4double inputVal 482 { 483 fDeltaEkin = inputValue; 484 fSumDeltaEkin += inputValue; 485 fMinDeltaEkin = std::min(fMinDeltaEkin, inpu 486 fMaxDeltaEkin = std::max(fMaxDeltaEkin, inpu 487 } 488 489 //....oooOO0OOooo........oooOO0OOooo........oo 490 491 void Run::SetDecayEkin(const G4double inputVal 492 { 493 fDecayEkin = inputValue; 494 fSumDecayEkin += inputValue; 495 fMinDecayEkin = std::min(fMinDecayEkin, inpu 496 fMaxDecayEkin = std::max(fMaxDecayEkin, inpu 497 } 498 499 //....oooOO0OOooo........oooOO0OOooo........oo 500 501 void Run::SetDecayPx(const G4double inputValue 502 { 503 fDecayPx = inputValue; 504 fSumDecayPx += inputValue; 505 fMinDecayPx = std::min(fMinDecayPx, inputVal 506 fMaxDecayPx = std::max(fMaxDecayPx, inputVal 507 } 508 509 //....oooOO0OOooo........oooOO0OOooo........oo 510 511 void Run::SetDecayPy(const G4double inputValue 512 { 513 fDecayPy = inputValue; 514 fSumDecayPy += inputValue; 515 fMinDecayPy = std::min(fMinDecayPy, inputVal 516 fMaxDecayPy = std::max(fMaxDecayPy, inputVal 517 } 518 519 //....oooOO0OOooo........oooOO0OOooo........oo 520 521 void Run::SetDecayPz(const G4double inputValue 522 { 523 fDecayPz = inputValue; 524 fSumDecayPz += inputValue; 525 fMinDecayPz = std::min(fMinDecayPz, inputVal 526 fMaxDecayPz = std::max(fMaxDecayPz, inputVal 527 } 528 529 //....oooOO0OOooo........oooOO0OOooo........oo 530 531 void Run::SetDecayEtotViolation(const G4double 532 { 533 fDecayEtotViolation = inputValue; 534 fSumDecayEtotViolation += inputValue; 535 fMinDecayEtotViolation = std::min(fMinDecayE 536 fMaxDecayEtotViolation = std::max(fMaxDecayE 537 } 538 539 //....oooOO0OOooo........oooOO0OOooo........oo 540 541 void Run::SetDecayPxViolation(const G4double i 542 { 543 fDecayPxViolation = inputValue; 544 fSumDecayPxViolation += inputValue; 545 fMinDecayPxViolation = std::min(fMinDecayPxV 546 fMaxDecayPxViolation = std::max(fMaxDecayPxV 547 } 548 549 //....oooOO0OOooo........oooOO0OOooo........oo 550 551 void Run::SetDecayPyViolation(const G4double i 552 { 553 fDecayPyViolation = inputValue; 554 fSumDecayPyViolation += inputValue; 555 fMinDecayPyViolation = std::min(fMinDecayPyV 556 fMaxDecayPyViolation = std::max(fMaxDecayPyV 557 } 558 559 //....oooOO0OOooo........oooOO0OOooo........oo 560 561 void Run::SetDecayPzViolation(const G4double i 562 { 563 fDecayPzViolation = inputValue; 564 fSumDecayPzViolation += inputValue; 565 fMinDecayPzViolation = std::min(fMinDecayPzV 566 fMaxDecayPzViolation = std::max(fMaxDecayPzV 567 } 568 569 //....oooOO0OOooo........oooOO0OOooo........oo 570 571 void Run::SetMaxEkin_deltaMax(const G4double i 572 { 573 fMaxEkin_deltaMax = std::max(fMaxEkin_deltaM 574 } 575 576 //....oooOO0OOooo........oooOO0OOooo........oo 577 578 void Run::SetMaxEtot_deltaMax(const G4double i 579 { 580 fMaxEtot_deltaMax = std::max(fMaxEtot_deltaM 581 } 582 583 //....oooOO0OOooo........oooOO0OOooo........oo 584 585 void Run::SetMaxP_deltaMax(const G4double inpu 586 { 587 fMaxP_deltaMax = std::max(fMaxP_deltaMax, in 588 } 589 590 //....oooOO0OOooo........oooOO0OOooo........oo 591 592 void Run::SetMaxPdir_deltaMax(const G4double i 593 { 594 fMaxPdir_deltaMax = std::max(fMaxPdir_deltaM 595 } 596 597 //....oooOO0OOooo........oooOO0OOooo........oo 598 599 void Run::SetMaxMass_deltaMax1(const G4double 600 { 601 fMaxMass_deltaMax1 = std::max(fMaxMass_delta 602 } 603 604 //....oooOO0OOooo........oooOO0OOooo........oo 605 606 void Run::SetMaxMass_deltaMax2(const G4double 607 { 608 fMaxMass_deltaMax2 = std::max(fMaxMass_delta 609 } 610 611 //....oooOO0OOooo........oooOO0OOooo........oo 612 613 void Run::SetMaxMass_deltaMax3(const G4double 614 { 615 fSumMass_deltaMax3 += inputValue; 616 fMaxMass_deltaMax3 = std::max(fMaxMass_delta 617 } 618 619 //....oooOO0OOooo........oooOO0OOooo........oo 620 621 void Run::SetMaxBeta_deltaMax1(const G4double 622 { 623 fMaxBeta_deltaMax1 = std::max(fMaxBeta_delta 624 } 625 626 //....oooOO0OOooo........oooOO0OOooo........oo 627 628 void Run::SetMaxBeta_deltaMax2(const G4double 629 { 630 fMaxBeta_deltaMax2 = std::max(fMaxBeta_delta 631 } 632 633 //....oooOO0OOooo........oooOO0OOooo........oo 634 635 void Run::SetMaxGamma_deltaMax1(const G4double 636 { 637 fMaxGamma_deltaMax1 = std::max(fMaxGamma_del 638 } 639 640 //....oooOO0OOooo........oooOO0OOooo........oo 641 642 void Run::SetMaxGamma_deltaMax2(const G4double 643 { 644 fMaxGamma_deltaMax2 = std::max(fMaxGamma_del 645 } 646 647 //....oooOO0OOooo........oooOO0OOooo........oo 648 649 void Run::SetMaxGamma_deltaMax3(const G4double 650 { 651 fMaxGamma_deltaMax3 = std::max(fMaxGamma_del 652 } 653 654 //....oooOO0OOooo........oooOO0OOooo........oo 655 656 void Run::SetMaxT_proper_deltaMax(const G4doub 657 { 658 fMaxT_proper_deltaMax = std::max(fMaxT_prope 659 } 660 661 //....oooOO0OOooo........oooOO0OOooo........oo 662 663 void Run::SetMaxT_lab_deltaMax(const G4double 664 { 665 fMaxT_lab_deltaMax = std::max(fMaxT_lab_delt 666 } 667 668 //....oooOO0OOooo........oooOO0OOooo........oo 669 670 void Run::SetMaxMc_truth_rPos_deltaMax(const G 671 { 672 fSumMc_truth_rPos_deltaMax += inputValue; 673 fMaxMc_truth_rPos_deltaMax = std::max(fMaxMc 674 } 675 676 //....oooOO0OOooo........oooOO0OOooo........oo 677 678 void Run::SetMinUnderestimated_mc_truth_rPos_d 679 { 680 fSumUnderestimated_mc_truth_rPos_delta += in 681 fMinUnderestimated_mc_truth_rPos_delta = 682 std::min(fMinUnderestimated_mc_truth_rPos_ 683 } 684 685 //....oooOO0OOooo........oooOO0OOooo........oo 686 687 void Run::SetMaxOverestimated_mc_truth_rPos_de 688 { 689 fSumOverestimated_mc_truth_rPos_delta += inp 690 fMaxOverestimated_mc_truth_rPos_delta = 691 std::max(fMaxOverestimated_mc_truth_rPos_d 692 } 693 694 //....oooOO0OOooo........oooOO0OOooo........oo 695 696 void Run::SetMinUnderestimated_rDeltaPos(const 697 { 698 fSumUnderestimated_rDeltaPos += inputValue; 699 fMinUnderestimated_rDeltaPos = std::min(fMin 700 } 701 702 //....oooOO0OOooo........oooOO0OOooo........oo 703 704 void Run::SetMaxOverestimated_rDeltaPos(const 705 { 706 fSumOverestimated_rDeltaPos += inputValue; 707 fMaxOverestimated_rDeltaPos = std::max(fMaxO 708 } 709 710 //....oooOO0OOooo........oooOO0OOooo........oo 711 712 void Run::SetMaxFloat_rDeltaPos_deltaMax(const 713 { 714 fMaxFloat_rDeltaPos_deltaMax = std::max(fMax 715 } 716 717 //....oooOO0OOooo........oooOO0OOooo........oo 718