4 // See the class description in the header file.
6 #include "AliSingleModuleConstructionMessenger.h"
7 #include "AliSingleModuleConstruction.h"
8 #include "AliGlobals.h"
10 #include <G4UIcmdWithABool.hh>
12 AliSingleModuleConstructionMessenger::AliSingleModuleConstructionMessenger(
13 AliSingleModuleConstruction* moduleConstruction, G4String moduleName)
14 : fModuleConstruction(moduleConstruction)
17 G4String dirName = "/aliDet/";
18 dirName = dirName + moduleName + "/";
20 G4String commandPath = dirName + "setAllSensitive";
21 fSetAllSensitiveCmd = new G4UIcmdWithABool(commandPath, this);
22 G4String guidance = "If true: set all " + moduleName;
23 guidance = guidance + "logical volumes sensitive.\n";
24 guidance = guidance + " (Each logical is volume associated with ";
25 guidance = guidance + "a sensitive detector.)";
26 guidance = guidance + "If false: only volumes defined with a sensitive ";
27 guidance = guidance + "tracking medium\n";
28 guidance = guidance + "are associated with a sensitive detector.";
29 fSetAllSensitiveCmd->SetGuidance(guidance);
30 fSetAllSensitiveCmd->SetParameterName("detSensitivity", false);
31 fSetAllSensitiveCmd->AvailableForStates(PreInit, Init);
34 AliSingleModuleConstructionMessenger::AliSingleModuleConstructionMessenger() {
38 AliSingleModuleConstructionMessenger::AliSingleModuleConstructionMessenger(
39 const AliSingleModuleConstructionMessenger& right) {
41 AliGlobals::Exception(
42 "AliSingleModuleConstructionMessenger is protected from copying.");
45 AliSingleModuleConstructionMessenger::~AliSingleModuleConstructionMessenger() {
47 delete fSetAllSensitiveCmd;
52 AliSingleModuleConstructionMessenger&
53 AliSingleModuleConstructionMessenger::operator=(
54 const AliSingleModuleConstructionMessenger& right)
56 // check assignement to self
57 if (this == &right) return *this;
59 AliGlobals::Exception(
60 "AliSingleModuleConstructionMessenger is protected from assigning.");
67 void AliSingleModuleConstructionMessenger::SetNewValue(G4UIcommand* command,
70 // Applies command to the associated object.
73 if (command == fSetAllSensitiveCmd) {
75 ->SetAllLVSensitive(fSetAllSensitiveCmd->GetNewBoolValue(newValues));