4 // Author: I. Hrivnacova
6 // Class AliModuleConstruction
7 // ---------------------------
8 // See the class description in the header file.
10 #include "AliModuleConstruction.h"
11 #include "AliGlobals.h"
14 #include "AliModule.h"
16 #include <G4UImanager.hh>
22 //_____________________________________________________________________________
23 AliModuleConstruction::AliModuleConstruction(const G4String& moduleName,
25 AliModuleType moduleType)
27 fModuleName(moduleName),
32 fWriteGeometry(false),
37 //_____________________________________________________________________________
38 AliModuleConstruction::AliModuleConstruction()
45 fWriteGeometry(false),
50 //_____________________________________________________________________________
51 AliModuleConstruction::AliModuleConstruction(const AliModuleConstruction& right)
58 //_____________________________________________________________________________
59 AliModuleConstruction::~AliModuleConstruction()
66 //_____________________________________________________________________________
67 AliModuleConstruction&
68 AliModuleConstruction::operator=(const AliModuleConstruction& right)
70 // check assignement to self
71 if (this == &right) return *this;
73 fAliModule = right.fAliModule;
74 fModuleName = right.fModuleName;
75 fVersion = right.fVersion;
77 fProcessConfig = right.fProcessConfig;
78 fReadGeometry = right.fReadGeometry;
79 fWriteGeometry = right.fWriteGeometry;
80 fDataFilePath = right.fDataFilePath;
85 //_____________________________________________________________________________
87 AliModuleConstruction::operator==(const AliModuleConstruction& right) const
93 //_____________________________________________________________________________
95 AliModuleConstruction::operator!=(const AliModuleConstruction& right) const
98 G4int returnValue = 1;
99 if (*this == right) returnValue = 0;
104 //_____________________________________________________________________________
105 void AliModuleConstruction::Configure()
107 // Executes the detector setup Root macro
108 // (extracted from AliRoot Config.C) and
112 AliFiles* files = AliFiles::Instance();
114 // filepaths and macro names
115 G4bool isStructure = (fType == kStructure);
116 G4String rootFilePath
117 = files->GetRootMacroPath(GetDetName(), isStructure);
119 = files->GetG4MacroPath(GetDetName(), isStructure);
121 = files->GetG3CallsDatPath(GetDetName(), fVersion, isStructure);
123 // load and execute aliroot config macro
124 if (fProcessConfig) {
125 gROOT->LoadMacro(rootFilePath);
126 G4String macroName = files->GetDefaultMacroName();
127 //macroName = macroName + "_" + GetDetName();
128 macroName = macroName + "(";
129 AliGlobals::AppendNumberToString(macroName, fVersion);
130 macroName = macroName + ")";
131 gInterpreter->ProcessLine(macroName);
134 // process g4 config macro
135 G4String command = "/control/execute ";
136 G4UImanager* pUI = G4UImanager::GetUIpointer();
137 pUI->ApplyCommand(command + g4FilePath);
139 // get AliModule created in Config.C macro
140 fAliModule = gAlice->GetModule(GetDetName());
142 G4String text = "AliModuleConstruction::Configure:\n";
143 text = text + " AliModule " + GetDetName();
144 text = text + " has not been found in gAlice.";
145 AliGlobals::Exception(text);