+++ /dev/null
-// $Id$
-// Category: geometry
-//
-// Author: I. Hrivnacova
-//
-// Class AliModuleConstructionMessenger
-// ------------------------------------
-// See the class description in the header file.
-
-#include "AliModuleConstructionMessenger.h"
-#include "AliModuleConstruction.h"
-#include "AliGlobals.h"
-#ifdef ALICE_VISUALIZE
-#include "AliColourStore.h"
-#endif
-
-#include "TG4GeometryServices.h"
-
-#include <G4UIdirectory.hh>
-#include <G4UIcmdWithABool.hh>
-#include <G4UIcmdWithAString.hh>
-#include <G4UIcmdWithoutParameter.hh>
-
-//_____________________________________________________________________________
-AliModuleConstructionMessenger::AliModuleConstructionMessenger(
- AliModuleConstruction* moduleConstruction, const G4String& moduleName)
- : fModuleConstruction(moduleConstruction)
-{
-//
- G4String dirName = "/aliDet/";
- dirName = dirName + moduleName + "/";
- fModuleDirectory = new G4UIdirectory(dirName);
- G4String guidance = "AlSubDetConstruction ";
- guidance = guidance + moduleName + " control commands.";
- fModuleDirectory->SetGuidance(guidance);
-
- G4String commandPath = dirName + "setFrame";
- fSetFrameCmd= new G4UIcmdWithAString(commandPath, this);
- fSetFrameCmd ->SetGuidance("Set detector frame");
- fSetFrameCmd->SetParameterName("frameName", false);
- fSetFrameCmd->AvailableForStates(PreInit, Idle);
-
- commandPath = dirName + "list";
- fListCmd = new G4UIcmdWithoutParameter(commandPath, this);
- guidance = "List all logical volumes of ";
- guidance = guidance + moduleName + " detector";
- fListCmd->SetGuidance(guidance);
- fListCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "listLong";
- fListLongCmd = new G4UIcmdWithoutParameter(commandPath, this);
- fListLongCmd
- ->SetGuidance("List all logical volumes and number of its physical volumes");
- guidance = "of " + moduleName + " detector";
- fListLongCmd->SetGuidance(guidance);
- fListLongCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "listDaughters";
- fListDaughtersCmd = new G4UIcmdWithAString(commandPath, this);
- fListDaughtersCmd->SetGuidance("List daughters of the given logical volumes");
- fListDaughtersCmd->SetParameterName("lvName", false);
- fListDaughtersCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "listLongDaughters";
- fListLongDaughtersCmd = new G4UIcmdWithAString(commandPath, this);
- fListLongDaughtersCmd
- ->SetGuidance("List daughters of the given logical volumes");
- fListLongDaughtersCmd->SetGuidance("and number of its physical volumes");
- fListLongDaughtersCmd->SetParameterName("lvName", false);
- fListLongDaughtersCmd->AvailableForStates(PreInit,Idle);
-
-#ifdef ALICE_VISUALIZE
- fCurrentVolume = 0;
-
- commandPath = dirName + "setVolume";
- fSetCurrentLVCmd = new G4UIcmdWithAString(commandPath, this);
- fSetCurrentLVCmd->SetGuidance("Set the current logical volume.");
- fSetCurrentLVCmd->SetParameterName("curVolume", false);
- fSetCurrentLVCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "setVisibility";
- fSetDetVisibilityCmd = new G4UIcmdWithABool(commandPath, this);
- guidance = "Make ";
- guidance = guidance + moduleName + " detector visible/invisible.";
- fSetDetVisibilityCmd->SetGuidance(guidance);
- fSetDetVisibilityCmd->SetParameterName("detVisibility", false);
- fSetDetVisibilityCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "setLVTreeVisibility";
- fSetLVTreeVisibilityCmd = new G4UIcmdWithABool(commandPath, this);
- fSetLVTreeVisibilityCmd
- ->SetGuidance("Make current volume tree visible/invisible.");
- fSetLVTreeVisibilityCmd->SetParameterName("volVisibility", false);
- fSetLVTreeVisibilityCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "setVolVisibility";
- fSetVolVisibilityCmd = new G4UIcmdWithABool(commandPath, this);
- fSetVolVisibilityCmd
- ->SetGuidance("Make current volume visible/invisible.");
- fSetVolVisibilityCmd->SetParameterName("volVisibility", false);
- fSetVolVisibilityCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "setColour";
- fSetDetColourCmd = new G4UIcmdWithAString(commandPath, this);
- AliColourStore* pColours = AliColourStore::Instance();
- guidance = "Set colour for all ";
- guidance = guidance + moduleName + " detector volumes.";
- fSetDetColourCmd->SetGuidance(guidance);
- fSetDetColourCmd->SetGuidance("Available colours:");
- fSetDetColourCmd->SetGuidance(pColours->GetColoursListWithCommas());
- fSetDetColourCmd->SetParameterName("detColour", false);
- G4String candidatesList = pColours->GetColoursList();
- fSetDetColourCmd->SetCandidates(candidatesList);
- fSetDetColourCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "setLVTreeColour";
- fSetLVTreeColourCmd = new G4UIcmdWithAString(commandPath, this);
- fSetLVTreeColourCmd->SetGuidance("Set colour for the current volume tree.");
- fSetLVTreeColourCmd->SetGuidance("Available colours:");
- fSetLVTreeColourCmd->SetGuidance(pColours->GetColoursListWithCommas());
- fSetLVTreeColourCmd->SetParameterName("volColour", false);
- candidatesList = pColours->GetColoursList();
- fSetLVTreeColourCmd->SetCandidates(candidatesList);
- fSetLVTreeColourCmd->AvailableForStates(PreInit,Idle);
-
- commandPath = dirName + "setVolColour";
- fSetVolColourCmd = new G4UIcmdWithAString(commandPath, this);
- fSetVolColourCmd->SetGuidance("Set colour for the current volume.");
- fSetVolColourCmd->SetGuidance("Available colours:");
- fSetVolColourCmd->SetGuidance(pColours->GetColoursListWithCommas());
- fSetVolColourCmd->SetParameterName("volColour", false);
- candidatesList = pColours->GetColoursList();
- fSetVolColourCmd->SetCandidates(candidatesList);
- fSetVolColourCmd->AvailableForStates(PreInit,Idle);
-#endif //ALICE_VISUALIZE
-}
-
-//_____________________________________________________________________________
-AliModuleConstructionMessenger::AliModuleConstructionMessenger() {
-//
-}
-
-//_____________________________________________________________________________
-AliModuleConstructionMessenger::AliModuleConstructionMessenger(
- const AliModuleConstructionMessenger& right)
-{
-//
- AliGlobals::Exception(
- "AliModuleConstructionMessenger is protected from copying.");
-}
-
-//_____________________________________________________________________________
-AliModuleConstructionMessenger::~AliModuleConstructionMessenger()
-{
-//
- delete fModuleDirectory;
- delete fSetFrameCmd;
- delete fListCmd;
- delete fListLongCmd;
- delete fListDaughtersCmd;
- delete fListLongDaughtersCmd;
-#ifdef ALICE_VISUALIZE
- delete fSetDetVisibilityCmd;
- delete fSetDetColourCmd;
- delete fSetCurrentLVCmd;
- delete fSetVolVisibilityCmd;
- delete fSetVolColourCmd;
- delete fSetLVTreeVisibilityCmd;
- delete fSetLVTreeColourCmd;
-#endif //ALICE_VISUALIZE
-}
-
-// operators
-
-//_____________________________________________________________________________
-AliModuleConstructionMessenger&
-AliModuleConstructionMessenger::operator=(
- const AliModuleConstructionMessenger& right)
-{
- // check assignement to self
- if (this == &right) return *this;
-
- AliGlobals::Exception(
- "AliModuleConstructionMessenger is protected from assigning.");
-
- return *this;
-}
-
-// public methods
-
-//_____________________________________________________________________________
-void AliModuleConstructionMessenger::SetNewValue(G4UIcommand* command,
- G4String newValues)
-{
-// Applies command to the associated object.
-// ---
-
- if (command == fSetFrameCmd) {
- fModuleConstruction->SetDetFrame(newValues);
- }
- else if (command == fListCmd) {
- fModuleConstruction->ListAllLVTree();
- }
- else if (command == fListLongCmd) {
- fModuleConstruction->ListAllLVTreeLong();
- }
- else if (command == fListDaughtersCmd) {
- fModuleConstruction->ListLVTree(newValues);
- }
- else if (command == fListLongDaughtersCmd) {
- fModuleConstruction->ListLVTreeLong(newValues);
- }
-#ifdef ALICE_VISUALIZE
- if (command == fSetCurrentLVCmd) {
- fCurrentVolume
- = TG4GeometryServices::Instance()->FindLogicalVolume(newValues);
- }
- else if (command == fSetDetVisibilityCmd) {
- fModuleConstruction
- ->SetDetVisibility(fSetDetVisibilityCmd->GetNewBoolValue(newValues));
- }
- else if (command == fSetLVTreeVisibilityCmd) {
- fModuleConstruction
- ->SetLVTreeVisibility(fCurrentVolume,
- fSetVolVisibilityCmd->GetNewBoolValue(newValues));
- }
- else if (command == fSetVolVisibilityCmd) {
- fModuleConstruction
- ->SetVolumeVisibility(fCurrentVolume,
- fSetVolVisibilityCmd->GetNewBoolValue(newValues));
- }
- else if (command == fSetDetColourCmd) {
- fModuleConstruction
- ->SetDetColour(newValues);
- }
- else if (command == fSetLVTreeColourCmd) {
- fModuleConstruction
- ->SetLVTreeColour(fCurrentVolume, newValues);
- }
- else if (command == fSetVolColourCmd) {
- fModuleConstruction
- ->SetVolumeColour(fCurrentVolume, newValues);
- }
-#endif //ALICE_VISUALIZE
-}
-
+++ /dev/null
-// $Id$
-// Category: geometry
-//
-// Author: I. Hrivnacova
-//
-// Class AliModuleConstructionMessenger
-// ------------------------------------
-// Messenger class that defines command directory and
-// commands for each AliModuleConstruction instance.
-
-#ifndef ALI_MODULE_CONSTRUCTION_MESSENGER_H
-#define ALI_MODULE_CONSTRUCTION_MESSENGER_H
-
-#include <G4UImessenger.hh>
-#include <globals.hh>
-
-class AliModuleConstruction;
-
-class G4UIdirectory;
-class G4UIcmdWithABool;
-class G4UIcmdWithAString;
-class G4UIcmdWithoutParameter;
-class G4LogicalVolume;
-
-class AliModuleConstructionMessenger: public G4UImessenger
-{
- public:
- AliModuleConstructionMessenger(
- AliModuleConstruction* moduleConstruction, const G4String& moduleName);
- // --> protected
- // AliModuleConstructionMessenger();
- // AliModuleConstructionMessenger(
- // const AliModuleConstructionMessenger& right);
- virtual ~AliModuleConstructionMessenger();
-
- // methods
- virtual void SetNewValue(G4UIcommand* command, G4String newValues);
-
- protected:
- AliModuleConstructionMessenger();
- AliModuleConstructionMessenger(
- const AliModuleConstructionMessenger& right);
-
- // operators
- AliModuleConstructionMessenger& operator=(
- const AliModuleConstructionMessenger &right);
-
- private:
- // data members
- AliModuleConstruction* fModuleConstruction; //associated class
- G4UIdirectory* fModuleDirectory; //command directory
- G4UIcmdWithAString* fSetFrameCmd; //command: setFrame
- G4UIcmdWithoutParameter* fListCmd; //command: list
- G4UIcmdWithoutParameter* fListLongCmd; //command: listLong
- G4UIcmdWithAString* fListDaughtersCmd; //command: listDaughters
- G4UIcmdWithAString* fListLongDaughtersCmd; //command: listLongDaughters
-
-#ifdef ALICE_VISUALIZE
- // commands data members
- G4LogicalVolume* fCurrentVolume; //current logical volume
- G4UIcmdWithAString* fSetCurrentLVCmd; //command: setVolume
- G4UIcmdWithABool* fSetDetVisibilityCmd; //command: setDetVisibility
- G4UIcmdWithABool* fSetLVTreeVisibilityCmd; //command: setLVTreeVisibility
- G4UIcmdWithABool* fSetVolVisibilityCmd; //command: setVolVisibility
- G4UIcmdWithAString* fSetDetColourCmd; //command: setDetColour
- G4UIcmdWithAString* fSetLVTreeColourCmd; //command: setLVTreeColour
- G4UIcmdWithAString* fSetVolColourCmd; //command: setVolColour
-#endif //ALICE_VISUALIZE
-};
-
-#endif //ALI_MODULE_CONSTRUCTION_MESSENGER_H
-
+++ /dev/null
-// $Id$
-// Category: geometry
-//
-// Author: I. Hrivnacova
-//
-// Class AliMoreModulesConstruction
-// --------------------------------
-// See the class description in the header file.
-
-#include "AliMoreModulesConstruction.h"
-#include "AliSingleModuleConstruction.h"
-#include "AliModule.h"
-#include "AliGlobals.h"
-#include "AliFiles.h"
-
-#include "TG4GeometryManager.h"
-
-#include <G4LogicalVolume.hh>
-#include <G4LogicalVolumeStore.hh>
-
-//_____________________________________________________________________________
-AliMoreModulesConstruction::AliMoreModulesConstruction() {
-//
-}
-
-//_____________________________________________________________________________
-AliMoreModulesConstruction::AliMoreModulesConstruction(
- const AliMoreModulesConstruction& right)
-{
- // copy stuff
- *this = right;
-}
-
-
-//_____________________________________________________________________________
-AliMoreModulesConstruction::~AliMoreModulesConstruction()
-{
- // delete module constructions
- fModuleConstructionVector.erase(
- fModuleConstructionVector.begin(), fModuleConstructionVector.end());
-}
-
-// operators
-
-//_____________________________________________________________________________
-AliMoreModulesConstruction&
-AliMoreModulesConstruction::operator=(const AliMoreModulesConstruction& right)
-{
- // check assignement to self
- if (this == &right) return *this;
-
- // delete current module constructions
- fModuleConstructionVector.erase(
- fModuleConstructionVector.begin(), fModuleConstructionVector.end());
-
- // create new module constructions
- G4int nofModules = right.fModuleConstructionVector.size();
- for (G4int i=0; i<nofModules; i++) {
- G4String name = right.fModuleConstructionVector[i]->GetDetName();
- G4int version = right.fModuleConstructionVector[i]->GetVersion();
- AliModuleType type = right.fModuleConstructionVector[i]->GetType();
- AddModule(name, version, type);
- }
-
- return *this;
-}
-
-// public methods
-
-//_____________________________________________________________________________
-void AliMoreModulesConstruction::AddModule(G4String moduleName, G4int version,
- AliModuleType moduleType)
-{
-// Adds module specified by name, version and type.
-// ---
-
- // create module construction
- AliSingleModuleConstruction* moduleConstruction
- = new AliSingleModuleConstruction(moduleName, version, moduleType);
-
- // add module, module construction to vectors
- fModuleConstructionVector.push_back(moduleConstruction);
-}
-
-//_____________________________________________________________________________
-void AliMoreModulesConstruction::Configure(const AliFiles& files)
-{
-// Executes the detectors setup Root macros
-// (extracted from AliRoot Config.C) and
-// G4 macros.
-// ---
-
- // number of modules
- G4int nofModules = fModuleConstructionVector.size();
-
- if (nofModules == 0) {
- AliGlobals::Warning(
- "AliMoreModulesConstruction::Construct(): No modules are defined.");
- }
- else
- for (G4int i=0; i<nofModules; i++)
- fModuleConstructionVector[i]->Configure(files);
-}
-
-//_____________________________________________________________________________
-void AliMoreModulesConstruction::Construct()
-{
-// Constructs geometry.
-// G3 tables are process for all modules alltogether.
-// --
-
- // number of modules
- G4int nofModules = fModuleConstructionVector.size();
-
- if (nofModules == 0) {
- AliGlobals::Warning(
- "AliMoreModulesConstruction::Construct(): No modules are defined.");
- }
- else {
- // get geometry manager
- TG4GeometryManager* pGeometryManager = TG4GeometryManager::Instance();
-
- G4int i;
- for (i=0; i<nofModules; i++) {
-
- // fModuleConstructionVector[i]->Configure(files);
-
- // register module name in the name map
- AliModule* module = fModuleConstructionVector[i]->GetAliModule();
- pGeometryManager->SetMapSecond(module->GetName());
-
- G4bool readGeometry = fModuleConstructionVector[i]->GetReadGeometry();
- G4bool writeGeometry = fModuleConstructionVector[i]->GetWriteGeometry();
- G4String dataFilePath = fModuleConstructionVector[i]->GetDataFilePath();
-
- if (readGeometry) {
- // TG4GeometryManager uses g3tog4 methods for reading
- // g3calls.dat files - as these methods do not fill name map
- // they cannot be used for constructing more modules
- // together
- //
- // pGeometryManager->SetWriteGeometry(false);
- // pGeometryManager->ReadG3Geometry(dataFilePath);
-
- G4String text = "AliMoreModulesConstruction::Construct - Limitation:\n";
- text = text + " Reading g3calls.dat is not implemented.";
- AliGlobals::Exception(text);
- }
- else {
- // set geometry output stream for this module
- pGeometryManager->SetWriteGeometry(writeGeometry);
- if (writeGeometry)
- pGeometryManager->OpenOutFile(dataFilePath);
-
- // create geometry from AliRoot
-
- // construct materials
- module->CreateMaterials();
-
- // construct G3 geometry
- module->CreateGeometry();
-
- if (writeGeometry)
- pGeometryManager->CloseOutFile();
- }
- }
-
- // construct G4 geometry
- pGeometryManager->CreateG4Geometry();
-
- // print name map
- // pGeometryManager->PrintNameMap();
-
- for (i=0; i<nofModules; i++) {
- // set the detector frame (envelope)
- // (without warning output if enevelope is not defined)
- fModuleConstructionVector[i]->SetDetFrame(false);
-
- // construct geometry for display
- fModuleConstructionVector[i]->GetAliModule()->BuildGeometry();
- }
-
- // reset TG4GeometryManager
- pGeometryManager->ClearG3Tables();
-
-#ifdef ALICE_VISUALIZE
- // set visualization attributes
- for (i=0; i<nofModules; i++) {
- if (fModuleConstructionVector[i]->GetDetFrame()) {
- fModuleConstructionVector[i]->SetDetVisibility(true);
- fModuleConstructionVector[i]->SetDetColour("Yellow");
- }
- }
-#endif
- }
-}
+++ /dev/null
-// $Id$
-// Category: geometry
-//
-// Author: I. Hrivnacova
-//
-// Class AliMoreModulesConstruction
-// --------------------------------
-// Class for geometry construction of a set of dependent
-// AliRoot modules.
-
-
-#ifndef ALI_MORE_MODULES_CONSTRUCTION_H
-#define ALI_MORE_MODULES_CONSTRUCTION_H
-
-#include "AliModuleType.h"
-
-#include <globals.hh>
-
-#include <g4std/vector>
-
-class AliSingleModuleConstruction;
-class AliFiles;
-
-class AliMoreModulesConstruction
-{
- typedef G4std::vector<AliSingleModuleConstruction*>
- AliSingleModuleConstructionPtrVector;
-
- public:
- AliMoreModulesConstruction();
- AliMoreModulesConstruction(const AliMoreModulesConstruction& right);
- virtual ~AliMoreModulesConstruction();
-
- // operators
- AliMoreModulesConstruction& operator=(
- const AliMoreModulesConstruction& right);
-
- // methods
- void AddModule(G4String moduleName, G4int version,
- AliModuleType moduleType);
- void Configure(const AliFiles& files);
- void Construct();
-
- // get methods
- G4int GetNofModules() const;
- AliSingleModuleConstruction* GetModuleConstruction(G4int i) const;
-
- private:
- // data members
- AliSingleModuleConstructionPtrVector fModuleConstructionVector; //..
- //vector of AliSingleModuleConstruction
-};
-
-// inline methods
-
-inline G4int AliMoreModulesConstruction::GetNofModules() const
-{ return fModuleConstructionVector.size(); }
-
-inline AliSingleModuleConstruction*
- AliMoreModulesConstruction::GetModuleConstruction(G4int i) const
-{ return fModuleConstructionVector[i]; }
-
-#endif //ALI_MORE_MODULES_CONSTRUCTION_H
+++ /dev/null
-// $Id$
-// Category: geometry
-//
-// Author: I. Hrivnacova
-//
-// Class AliSingleModuleConstruction
-// ---------------------------------
-// See the class description in the header file.
-
-#include "AliSingleModuleConstruction.h"
-#include "AliGlobals.h"
-#include "AliFiles.h"
-#include "AliRun.h"
-#include "AliModule.h"
-
-#include "TG4GeometryManager.h"
-
-#include <G4UImanager.hh>
-//#include <G4Element.hh>
-
-#include <TROOT.h>
-#include <TCint.h>
-
-G4VPhysicalVolume* AliSingleModuleConstruction::fgWorld = 0;
-
-//_____________________________________________________________________________
-AliSingleModuleConstruction::AliSingleModuleConstruction(
- G4String moduleName, G4int version,
- AliModuleType moduleType)
- : AliModuleConstruction(moduleName),
- fVersion(version),
- fType(moduleType),
- fProcessConfig(true)
-{
-//
-}
-
-//_____________________________________________________________________________
-AliSingleModuleConstruction::AliSingleModuleConstruction(
- const AliSingleModuleConstruction& right)
- : AliModuleConstruction(right)
-{
-//
- // copy stuff
- *this = right;
-}
-
-//_____________________________________________________________________________
-AliSingleModuleConstruction::AliSingleModuleConstruction() {
-//
-}
-
-//_____________________________________________________________________________
-AliSingleModuleConstruction::~AliSingleModuleConstruction() {
-//
-}
-
-// operators
-
-//_____________________________________________________________________________
-AliSingleModuleConstruction&
-AliSingleModuleConstruction::operator=(const AliSingleModuleConstruction& right)
-{
- // check assignement to self
- if (this == &right) return *this;
-
- // base class assignement
- AliModuleConstruction::operator=(right);
-
- fVersion = right.fVersion;
- fType = right.fType;
- fProcessConfig = right.fProcessConfig;
-
- return *this;
-}
-
-// public methods
-
-//_____________________________________________________________________________
-void AliSingleModuleConstruction::Configure(const AliFiles& files)
-{
-// Executes the detector setup Root macro
-// (extracted from AliRoot Config.C) and
-// G4 macro.
-// ---
-
- // filepaths and macro names
- G4bool isStructure = (fType == kStructure);
- G4String rootFilePath
- = files.GetRootMacroPath(fModuleName, isStructure);
- G4String g4FilePath
- = files.GetG4MacroPath(fModuleName, isStructure);
- fDataFilePath
- = files.GetG3CallsDatPath(fModuleName, fVersion, isStructure);
-
- // load and execute aliroot config macro
- if (fProcessConfig) {
- gROOT->LoadMacro(rootFilePath);
- G4String macroName = files.GetDefaultMacroName();
- //macroName = macroName + "_" + fModuleName;
- macroName = macroName + "(";
- AliGlobals::AppendNumberToString(macroName, fVersion);
- macroName = macroName + ")";
- gInterpreter->ProcessLine(macroName);
- }
-
- // process g4 config macro
- G4String command = "/control/execute ";
- G4UImanager* pUI = G4UImanager::GetUIpointer();
- pUI->ApplyCommand(command + g4FilePath);
-
- // get AliModule created in Config.C macro
- fAliModule = gAlice->GetModule(fModuleName);
- if (!fAliModule) {
- G4String text = "AliSingleModuleConstruction::Configure:\n";
- text = text + " AliModule " + fModuleName;
- text = text + " has not been found in gAlice.";
- AliGlobals::Exception(text);
- }
-}
-
-//_____________________________________________________________________________
-void AliSingleModuleConstruction::Construct()
-{
-// Constructs geometry.
-// ---
-
- // print default element table
- // const G4ElementTable* table = G4Element::GetElementTable();
- // G4cout << "Default elemnt table: " << G4endl;
- // for (G4int i=0; i<table->entries(); i++) {
- // G4cout << *(*table)[i] << G4endl;
- // }
-
- // Configure();
-
- // get geometry manager
- TG4GeometryManager* pGeometryManager = TG4GeometryManager::Instance();
-
- // register module name in the name map
- pGeometryManager->SetMapSecond(fAliModule->GetName());
-
- if (fReadGeometry) {
- // create G3 geometry from g3calls.dat
- pGeometryManager->SetWriteGeometry(false);
- pGeometryManager->ReadG3Geometry(fDataFilePath);
- }
- else {
- // set geometry output stream for this module
- pGeometryManager->SetWriteGeometry(fWriteGeometry);
- if (fWriteGeometry)
- pGeometryManager->OpenOutFile(fDataFilePath);
-
- // create geometry from AliRoot
-
- // construct materials
- fAliModule->CreateMaterials();
-
- // construct G3 geometry
- fAliModule->CreateGeometry();
-
- if (fWriteGeometry)
- pGeometryManager->CloseOutFile();
- }
-
- // construct G4 geometry
- G4VPhysicalVolume* world = pGeometryManager->CreateG4Geometry();
- if (!fgWorld) fgWorld = world;
-
- // set the detector frame (envelope)
- // (without warning output if enevelope is not defined)
- SetDetFrame(false);
-
- // construct geometry for display
- fAliModule->BuildGeometry();
-
- // reset TG4GeometryManager
- pGeometryManager->ClearG3Tables();
-
-#ifdef ALICE_VISUALIZE
- if (GetDetFrame()) {
- // set visualization attributes
- // if detector envelope is defined
- SetDetVisibility(true);
- SetDetColour("Yellow");
- }
-#endif
-}
+++ /dev/null
-// $Id$
-// Category: geometry
-//
-// Author: I. Hrivnacova
-//
-// Class AliSingleModuleConstruction
-// ---------------------------------
-// Class for geometry construction of a standalone
-// AliRoot module.
-
-#ifndef ALI_SINGLE_MODULE_CONSTRUCTION_H
-#define ALI_SINGLE_MODULE_CONSTRUCTION_H
-
-#include "AliModuleConstruction.h"
-#include "AliModuleType.h"
-
-#include <globals.hh>
-
-class AliFiles;
-
-class G4VPhysicalVolume;
-class G4LogicalVolume;
-
-class AliSingleModuleConstruction : public AliModuleConstruction
-{
- public:
- AliSingleModuleConstruction(G4String moduleName, G4int version,
- AliModuleType moduleType = kDetector);
- AliSingleModuleConstruction(const AliSingleModuleConstruction& right);
- // --> protected
- // AliSingleModuleConstruction();
- virtual ~AliSingleModuleConstruction();
-
- // operators
- AliSingleModuleConstruction& operator=(
- const AliSingleModuleConstruction &right);
-
- // static set/get methods
- static void SetWorld(G4VPhysicalVolume* world);
- static G4VPhysicalVolume* GetWorld();
-
- // methods
- void Configure(const AliFiles& files);
- virtual void Construct();
-
- // set methods
- void SetProcessConfig(G4bool processConfig);
- void SetModuleFrameName(G4String moduleFrameName);
- void SetModuleType(AliModuleType type);
-
- // get methods
- G4int GetVersion() const;
- AliModuleType GetType() const;
- G4bool GetProcessConfig() const;
-
- protected:
- AliSingleModuleConstruction();
-
- private:
- // static data members
- static G4VPhysicalVolume* fgWorld; //top (world) physical volume
-
- // data members
- G4int fVersion; //module version
- AliModuleType fType; //module type (detector/structure)
- G4bool fProcessConfig; //control for processing Config.C
-};
-
-// inline methods
-
-inline G4VPhysicalVolume* AliSingleModuleConstruction::GetWorld()
-{ return fgWorld; }
-
-inline void AliSingleModuleConstruction::SetWorld(G4VPhysicalVolume* world)
-{ fgWorld = world; }
-
-inline void AliSingleModuleConstruction::SetProcessConfig(G4bool processConfig)
-{ fProcessConfig = processConfig; }
-
-inline void AliSingleModuleConstruction::SetModuleFrameName(G4String name)
-{ fModuleFrameName = name; }
-
-inline void AliSingleModuleConstruction::SetModuleType(AliModuleType type)
-{ fType = type; }
-
-inline G4int AliSingleModuleConstruction::GetVersion() const
-{ return fVersion; }
-
-inline AliModuleType AliSingleModuleConstruction::GetType() const
-{ return fType; }
-
-inline G4bool AliSingleModuleConstruction::GetProcessConfig() const
-{ return fProcessConfig; }
-
-#endif //ALI_SINGLE_MODULE_CONSTRUCTION_H