]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TGeant4/TG4G3Defaults.cxx
Coding Rule violations corrected.
[u/mrichter/AliRoot.git] / TGeant4 / TG4G3Defaults.cxx
index 6eb43eb94e416ebfa2cb899716729043879ead3e..04f014b2185515305717a7bf936229bdeb1af64b 100644 (file)
@@ -1,6 +1,10 @@
 // $Id$
-// Category: physics
+// Category: global
 //
+// Author: I. Hrivnacova
+//
+// Class TG4G3Defaults
+// -------------------
 // See the class description in the header file.
 
 #include "TG4G3Defaults.h"
 
 #include <math.h>
 
-// static const data members
-
-// precision tolerance
-const G4double TG4G3Defaults::fgCutTolerance = 1. * keV;
-
-// kinetic energy cuts
-const G4double TG4G3Defaults::fgCUTGAM = 0.001 * GeV;
-const G4double TG4G3Defaults::fgCUTELE = 0.001 * GeV;
-const G4double TG4G3Defaults::fgCUTNEU = 0.01 * GeV;
-const G4double TG4G3Defaults::fgCUTHAD = 0.01 * GeV;
-const G4double TG4G3Defaults::fgCUTMUO = 0.01 * GeV;
-const G4double TG4G3Defaults::fgBCUTE  = fgCUTGAM;
-const G4double TG4G3Defaults::fgBCUTM  = fgCUTGAM;
-const G4double TG4G3Defaults::fgDCUTE  = 10. * TeV;
-const G4double TG4G3Defaults::fgDCUTM  = 10. * TeV;
-const G4double TG4G3Defaults::fgPPCUTM = 0.01 * GeV;
-
-// physics processes
-const TG3FlagValue TG4G3Defaults::fgPAIR = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgCOMP = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgPHOT = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgPFIS = kInActivate; // 0
-const TG3FlagValue TG4G3Defaults::fgDRAY = kActivate2;  // 2
-const TG3FlagValue TG4G3Defaults::fgANNI = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgBREM = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgHADR = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgMUNU = kInActivate; // 0
-const TG3FlagValue TG4G3Defaults::fgDCAY = kActivate;   // 1
-const TG3FlagValue TG4G3Defaults::fgLOSS = kActivate2;  // 2
-const TG3FlagValue TG4G3Defaults::fgMULS = kActivate;   // 1
+// static data members
+
+TG4G3Defaults* TG4G3Defaults::fgInstance = 0;
 
+//_____________________________________________________________________________
 TG4G3Defaults::TG4G3Defaults() {
 //
+  if (fgInstance) {
+    TG4Globals::Exception(
+      "TG4G3Defaults: attempt to create two instances of singleton.");
+  }
+      
+  fgInstance = this;  
+
+  // fill cut vector with default values
+
+  fCutVector.SetCut(kCUTGAM, 0.001 * GeV);
+  fCutVector.SetCut(kCUTELE, 0.001 * GeV);
+  fCutVector.SetCut(kCUTNEU, 0.01 * GeV);
+  fCutVector.SetCut(kCUTHAD, 0.01 * GeV);
+  fCutVector.SetCut(kCUTMUO, 0.01 * GeV);
+  fCutVector.SetCut(kBCUTE, fCutVector[kCUTGAM]);
+  fCutVector.SetCut(kBCUTM, fCutVector[kCUTGAM]);
+  fCutVector.SetCut(kDCUTE,  10. * TeV);
+  fCutVector.SetCut(kDCUTM,  10. * TeV);
+  fCutVector.SetCut(kPPCUTM, 0.01 * GeV);
+
+  // fill control vector with default values
+  fControlVector.SetControl(kPAIR, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kCOMP, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kPHOT, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kPFIS, kInActivate, fCutVector); // 0
+  fControlVector.SetControl(kDRAY, kInActivate, fCutVector); // 0
+  fControlVector.SetControl(kANNI, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kBREM, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kHADR, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kMUNU, kInActivate, fCutVector); // 0
+  fControlVector.SetControl(kDCAY, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kLOSS, kActivate2, fCutVector);  // 2
+  fControlVector.SetControl(kMULS, kActivate, fCutVector);   // 1
+  fControlVector.SetControl(kCKOV, kInActivate, fCutVector); // 0
+  fControlVector.SetControl(kRAYL, kInActivate, fCutVector); // 0
+  fControlVector.SetControl(kLABS, kInActivate, fCutVector); // 0
+  fControlVector.SetControl(kSYNC, kInActivate, fCutVector); // 0
 }
   
+//_____________________________________________________________________________
+TG4G3Defaults::TG4G3Defaults(const TG4G3Defaults& right) {
+// 
+  TG4Globals::Exception(
+    "Attempt to copy TG4G3Defaults singleton.");
+}
+
+//_____________________________________________________________________________
 TG4G3Defaults::~TG4G3Defaults() {
 //
 }
 
-G4double TG4G3Defaults::CutValue(G4int g3Cut)
+// operators
+
+//_____________________________________________________________________________
+TG4G3Defaults& 
+TG4G3Defaults::operator=(const TG4G3Defaults& right)
+{
+  // check assignement to self
+  if (this == &right) return *this;
+
+  TG4Globals::Exception(
+    "Attempt to assign TG4G3Defaults singleton.");
+    
+  return *this;  
+}    
+          
+//_____________________________________________________________________________
+G4double TG4G3Defaults::CutValue(G4int g3Cut) const
 {
 // Returns the G3 default value for the specified cut.
 // ---
 
-  switch (g3Cut) {
-    case kCUTGAM:  
-      return fgCUTGAM; break;
-    case kCUTELE:  
-      return fgCUTELE; break;
-    case kCUTNEU:  
-      return fgCUTNEU; break;
-    case kCUTHAD:  
-      return fgCUTHAD; break;
-    case kCUTMUO:  
-      return fgCUTMUO; break;
-    case kBCUTE:   
-      return fgBCUTE;  break;
-    case kBCUTM:   
-      return fgBCUTM;  break; 
-    case kDCUTE:   
-      return fgDCUTE;  break;
-    case kDCUTM:   
-      return fgDCUTM;  break;
-    case kPPCUTM:  
-      return fgPPCUTM; break;
-    default:
-      TG4Globals::Warning("TG4G3Defaults::CutValue: Inconsistent cut.");
-      return 0.;      
-  }
+  return fCutVector[g3Cut];
 }          
 
-TG3FlagValue TG4G3Defaults::FlagValue(G4int g3Flag)
+//_____________________________________________________________________________
+TG4G3ControlValue TG4G3Defaults::ControlValue(G4int control) const
 {
-// Returns the G3 default value for the specified flag.
+// Returns the G3 default value for the specified control.
 // ---
 
-  switch (g3Flag) {
-    case kPAIR:
-      return fgPAIR; break;
-    case kCOMP:
-      return fgCOMP; break;
-    case kPHOT:
-      return fgPHOT; break;
-    case kPFIS:
-      return fgPFIS; break;
-    case kDRAY:
-      return fgDRAY; break;
-    case kANNI:
-      return fgANNI; break;
-    case kBREM:
-      return fgBREM; break;
-    case kHADR:
-      return fgHADR; break;
-    case kMUNU:
-      return fgMUNU; break;
-    case kDCAY:
-      return fgDCAY; break;
-    case kLOSS:
-      return fgLOSS; break;
-    case kMULS:
-      return fgMULS; break;
-    default:
-      TG4Globals::Warning("TG4G3Defaults::FlagValue: Inconsistent flag.");
-      return kUnset;      
-  }
+  return fControlVector[control];
 }          
 
-G4bool TG4G3Defaults::IsDefaultCut(TG3Cut g3Cut, G4double value)
+//_____________________________________________________________________________
+G4bool TG4G3Defaults::IsDefaultCut(TG4G3Cut cut, G4double value) const
 {
 // Tests if the parameter value is equal to the G3 default value.
 // ---
 
-  if (abs(value*GeV - CutValue(g3Cut)) > fgCutTolerance
+  if (abs(value*GeV - CutValue(cut)) > TG4G3CutVector::Tolerance()
     return false;
   else  
     return true;
 }
 
-G4bool TG4G3Defaults::IsDefaultFlag(TG3Flag g3Flag, G4double value)
+//_____________________________________________________________________________
+G4bool TG4G3Defaults::IsDefaultControl(TG4G3Control control,
+                                       TG4G3ControlValue value) const
 {
 // Tests if the parameter value is equal to the G3 default value.
 // ---
 
-  if (value == FlagValue(g3Flag)) 
+  if (value == ControlValue(control)) 
     return true;
   else  
     return false;