4 // Author: I. Hrivnacova
8 // See the class description in the header file.
10 #include "TG4G3Defaults.h"
11 #include "TG4Globals.h"
15 // static data members
17 TG4G3Defaults* TG4G3Defaults::fgInstance = 0;
19 //_____________________________________________________________________________
20 TG4G3Defaults::TG4G3Defaults() {
23 TG4Globals::Exception(
24 "TG4G3Defaults: attempt to create two instances of singleton.");
29 // fill cut vector with default values
31 fCutVector.SetCut(kCUTGAM, 0.001 * GeV);
32 fCutVector.SetCut(kCUTELE, 0.001 * GeV);
33 fCutVector.SetCut(kCUTNEU, 0.01 * GeV);
34 fCutVector.SetCut(kCUTHAD, 0.01 * GeV);
35 fCutVector.SetCut(kCUTMUO, 0.01 * GeV);
36 fCutVector.SetCut(kBCUTE, fCutVector[kCUTGAM]);
37 fCutVector.SetCut(kBCUTM, fCutVector[kCUTGAM]);
38 fCutVector.SetCut(kDCUTE, 10. * TeV);
39 fCutVector.SetCut(kDCUTM, 10. * TeV);
40 fCutVector.SetCut(kPPCUTM, 0.01 * GeV);
42 // fill control vector with default values
43 fControlVector.SetControl(kPAIR, kActivate, fCutVector); // 1
44 fControlVector.SetControl(kCOMP, kActivate, fCutVector); // 1
45 fControlVector.SetControl(kPHOT, kActivate, fCutVector); // 1
46 fControlVector.SetControl(kPFIS, kInActivate, fCutVector); // 0
47 fControlVector.SetControl(kDRAY, kInActivate, fCutVector); // 0
48 fControlVector.SetControl(kANNI, kActivate, fCutVector); // 1
49 fControlVector.SetControl(kBREM, kActivate, fCutVector); // 1
50 fControlVector.SetControl(kHADR, kActivate, fCutVector); // 1
51 fControlVector.SetControl(kMUNU, kInActivate, fCutVector); // 0
52 fControlVector.SetControl(kDCAY, kActivate, fCutVector); // 1
53 fControlVector.SetControl(kLOSS, kActivate2, fCutVector); // 2
54 fControlVector.SetControl(kMULS, kActivate, fCutVector); // 1
55 fControlVector.SetControl(kCKOV, kInActivate, fCutVector); // 0
56 fControlVector.SetControl(kRAYL, kInActivate, fCutVector); // 0
57 fControlVector.SetControl(kLABS, kInActivate, fCutVector); // 0
58 fControlVector.SetControl(kSYNC, kInActivate, fCutVector); // 0
61 //_____________________________________________________________________________
62 TG4G3Defaults::TG4G3Defaults(const TG4G3Defaults& right) {
64 TG4Globals::Exception(
65 "Attempt to copy TG4G3Defaults singleton.");
68 //_____________________________________________________________________________
69 TG4G3Defaults::~TG4G3Defaults() {
75 //_____________________________________________________________________________
77 TG4G3Defaults::operator=(const TG4G3Defaults& right)
79 // check assignement to self
80 if (this == &right) return *this;
82 TG4Globals::Exception(
83 "Attempt to assign TG4G3Defaults singleton.");
88 //_____________________________________________________________________________
89 G4double TG4G3Defaults::CutValue(G4int g3Cut) const
91 // Returns the G3 default value for the specified cut.
94 return fCutVector[g3Cut];
97 //_____________________________________________________________________________
98 TG4G3ControlValue TG4G3Defaults::ControlValue(G4int control) const
100 // Returns the G3 default value for the specified control.
103 return fControlVector[control];
106 //_____________________________________________________________________________
107 G4bool TG4G3Defaults::IsDefaultCut(TG4G3Cut cut, G4double value) const
109 // Tests if the parameter value is equal to the G3 default value.
112 if (abs(value*GeV - CutValue(cut)) > TG4G3CutVector::Tolerance())
118 //_____________________________________________________________________________
119 G4bool TG4G3Defaults::IsDefaultControl(TG4G3Control control,
120 TG4G3ControlValue value) const
122 // Tests if the parameter value is equal to the G3 default value.
125 if (value == ControlValue(control))