diff --git a/Control/CalypsoConfiguration/python/DetectorConfigFlags.py b/Control/CalypsoConfiguration/python/DetectorConfigFlags.py index 8ffa4ccd860fb3a8f37ae45bb544d7e2e6b2eb4c..b2588ba84ef16b18af9084a029cdccbcbe8fae8f 100644 --- a/Control/CalypsoConfiguration/python/DetectorConfigFlags.py +++ b/Control/CalypsoConfiguration/python/DetectorConfigFlags.py @@ -46,7 +46,7 @@ def createDetectorConfigFlags(): # Trench (disabled by default) dcf.addFlag('Detector.GeometryTrench',False) - dcf.addFlag('Detector.GeometryCavern', lambda prevFlags : (prevFlags.Detector.GeometryTrench )) + dcf.addFlag('Detector.GeometryFaserCavern', lambda prevFlags : (prevFlags.Detector.GeometryTrench )) # dcf.addFlag('Detector.GeometryFaser', lambda prevFlags : (prevFlags.Detector.GeometryDecayVolume or # prevFlags.Detector.GeometryScintillator or diff --git a/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py b/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py index 5e47a915a1dd2d06baa44642ffa85c8ca1de1e50..af1ed16dcb630fd08948f6a648d9deb6d46756e2 100644 --- a/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py +++ b/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py @@ -122,6 +122,11 @@ def _setupGeoModel(): geoModelSvc.DetectorTools += [ ecalDetectorTool ] + if "FASERNU-03" in DDversion: + from TrenchGeoModel.TrenchGeoModelConf import TrenchDetectorTool + trenchDetectorTool = TrenchDetectorTool( ) + + geoModelSvc.DetectorTools += [ trenchDetectorTool ] pass diff --git a/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.cxx b/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.cxx index 668af4a0b37dc81a8dff6bbb9f93a843875f7491..3862cc8c601539ad51b4b849ad7d21de4a26c82f 100644 --- a/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.cxx +++ b/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.cxx @@ -60,13 +60,19 @@ void TrenchDetectorFactory::create(GeoPhysVol *world) } std::string resolvedFile = PathResolver::find_file(gdmlFile, "XMLPATH", PathResolver::RecursiveSearch); + + XMLHandlerStore::GetHandlerStore()->clear(); + + GDMLController controller {"TrenchGDMLController"}; + std::cout << "creating parser" << std::endl; XercesParser xercesParser; + std::cout << "parsing " << resolvedFile << std::endl; xercesParser.ParseFileAndNavigate(resolvedFile); std::cout << "done parsing " << resolvedFile << std::endl; - const GeoLogVol* trenchLog = m_controller.retrieveLogicalVolume("Trench").first; + const GeoLogVol* trenchLog = controller.retrieveLogicalVolume("Trench").first; GeoPhysVol* trenchPhys = new GeoPhysVol(trenchLog); GeoNameTag *tag = new GeoNameTag("Trench"); world->add(tag); diff --git a/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.h b/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.h index 07dcad5cfe65a4c143e9785fc6f9fcebf9b6ecc9..14cdbaa18bdc8cc941fb894c9085298ec4191f38 100644 --- a/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.h +++ b/FaserGeometryCommon/TrenchGeoModel/src/TrenchDetectorFactory.h @@ -49,7 +49,7 @@ class TrenchDetectorFactory : public GeoVDetectorFactory std::string m_versionTag; std::string m_versionNode; - GDMLController m_controller {"TrenchGDMLController"}; +// GDMLController m_controller {"TrenchGDMLController"}; }; diff --git a/Simulation/G4Faser/G4FaserTools/python/G4GeometryToolConfig.py b/Simulation/G4Faser/G4FaserTools/python/G4GeometryToolConfig.py index 8e9bb2aa14f9c63a5e6e6822f2aeaf8544c2a747..4e6f59490a97baee0020453bb9572fab2b090fbc 100644 --- a/Simulation/G4Faser/G4FaserTools/python/G4GeometryToolConfig.py +++ b/Simulation/G4Faser/G4FaserTools/python/G4GeometryToolConfig.py @@ -228,7 +228,7 @@ def getFASER_RegionCreatorList(ConfigFlags): if ConfigFlags.Detector.GeometryFaserCalo: regionCreatorList += [EcalPhysicsRegionToolCfg(ConfigFlags)] - if ConfigFlags.Detector.GeometryCavern: + if ConfigFlags.Detector.GeometryFaserCavern: regionCreatorList += [CavernPhysicsRegionToolCfg(ConfigFlags)] return regionCreatorList diff --git a/graphics/VTI12/VTI12Algs/share/vti12.py b/graphics/VTI12/VTI12Algs/share/vti12.py index 3878899db88d845cd247602b91faf6a1204cee7b..07a3a97a2ca79ae0f920f1516590a03c55a2a13b 100644 --- a/graphics/VTI12/VTI12Algs/share/vti12.py +++ b/graphics/VTI12/VTI12Algs/share/vti12.py @@ -32,7 +32,8 @@ if not 'vp1NoSortDBReplicas' in dir(): vp1NoSortDBReplicas=False if not 'vp1FilterEvents' in dir(): vp1FilterEvents="" if not 'vp1NoGui' in dir(): vp1NoGui=False if not 'vp1SpacePoints' in dir(): vp1SpacePoints=False -if not 'vp1Cavern' in dir(): vp1Cavern=False +# if not 'vp1Cavern' in dir(): vp1Cavern=False +vp1Cavern=True if not 'vp1NoAutoConf' in dir(): vp1NoAutoConf=False if not 'vp1Trig' in dir(): vp1Trig=False if not 'vp1NSW' in dir(): vp1NSW=False diff --git a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/VTI12GeometrySystems/VP1GeoFlags.h b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/VTI12GeometrySystems/VP1GeoFlags.h index 0ec7c0ef46679d0489a79260c3944c5f584d075d..8aefd8e48631325fefad9f9a25253e5c2f147a13 100644 --- a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/VTI12GeometrySystems/VP1GeoFlags.h +++ b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/VTI12GeometrySystems/VP1GeoFlags.h @@ -36,6 +36,7 @@ public: Dipole = 0x00000040, Ecal = 0x00000080, + CavernInfra = 0x00000100, // Pixel = 0x00000001, // bit 0 // SCT = 0x00000002, // 1 // TRT = 0x00000004, // 2 diff --git a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/GeoSysController.cxx b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/GeoSysController.cxx index dd4c44c1d3e18c91f8d054f513f538f0df365b6a..fbb27a254fe2aa6454d1e5b80060e083804ffc1e 100644 --- a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/GeoSysController.cxx +++ b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/GeoSysController.cxx @@ -162,6 +162,9 @@ GeoSysController::GeoSysController(IVP1System * sys) // Calorimeter m_d->subSysCheckBoxMap[VP1GeoFlags::Ecal] = m_d->ui.checkBox_Ecal; + // Cavern + m_d->subSysCheckBoxMap[VP1GeoFlags::CavernInfra] = m_d->ui.checkBox_CavernInfra; + // MISCELLANEOUS // OTHER m_d->subSysCheckBoxMap[VP1GeoFlags::AllUnrecognisedVolumes] = m_d->ui.checkBox_other; diff --git a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VP1GeometrySystem.cxx b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VP1GeometrySystem.cxx index dfcff299ea576ef32004e9a07b44786d42b57c92..e5c0eed5d6622562488cc3075dc3115659796fcc 100644 --- a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VP1GeometrySystem.cxx +++ b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VP1GeometrySystem.cxx @@ -336,6 +336,7 @@ QWidget * VP1GeometrySystem::buildController() m_d->addSubSystem( VP1GeoFlags::SCT, "SCT"); m_d->addSubSystem( VP1GeoFlags::Dipole, "Dipole"); m_d->addSubSystem( VP1GeoFlags::Ecal, "Ecal"); + m_d->addSubSystem( VP1GeoFlags::CavernInfra, "Cavern"); @@ -1146,6 +1147,13 @@ void VP1GeometrySystem::Imp::createPathExtras(const VolumeHandle* volhandle, QSt entries.push("Ecal::Ecal"); return; } + case VP1GeoFlags::CavernInfra:{ + prefix = QString("Cavern::"); + entries.push("CAVERN::CAVERN"); + entries.push("Trench::Trench"); + return; + } + case VP1GeoFlags::None: case VP1GeoFlags::AllUnrecognisedVolumes: default:{ diff --git a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VolumeTreeModel.cxx b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VolumeTreeModel.cxx index eae1d4d88e5caa8188bb232d1e7f009f21f76024..ea681cdd6fe6b261a90d6701c5b8fa864777b39c 100644 --- a/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VolumeTreeModel.cxx +++ b/graphics/VTI12/VTI12Systems/VTI12GeometrySystems/src/VolumeTreeModel.cxx @@ -31,7 +31,7 @@ class VolumeTreeModel::Imp { public: //Static definitions of sections and which subsystems goes in which sections: - enum SECTION { UNKNOWN, NEUTRINO, SCINT, TRACKER, CALO, MISC }; + enum SECTION { UNKNOWN, NEUTRINO, SCINT, TRACKER, CALO, MISC, CAVERN }; static std::map<SECTION,QString> section2string; static std::map<VP1GeoFlags::SubSystemFlag,SECTION> subsysflag2section; static std::map<VP1GeoFlags::SubSystemFlag,QString> subsysflag2string; @@ -108,6 +108,7 @@ VolumeTreeModel::VolumeTreeModel( QObject * parent ) Imp::section2string[Imp::SCINT] = "Scintillators"; Imp::section2string[Imp::TRACKER] = "Tracker"; Imp::section2string[Imp::CALO] = "Calorimeter"; + Imp::section2string[Imp::CAVERN] = "Cavern"; Imp::section2string[Imp::MISC] = "Miscellaneous"; } if (Imp::subsysflag2section.empty()) { @@ -124,6 +125,8 @@ VolumeTreeModel::VolumeTreeModel( QObject * parent ) Imp::defineSubSystem(VP1GeoFlags::Dipole, "Dipole", Imp::TRACKER); // Calorimeter Imp::defineSubSystem(VP1GeoFlags::Ecal, "Ecal", Imp::CALO); + // Cavern + Imp::defineSubSystem(VP1GeoFlags::CavernInfra, "Cavern", Imp::CAVERN); } } diff --git a/graphics/VTI12/VTI12Utils/VTI12Utils/VP1JobConfigInfo.h b/graphics/VTI12/VTI12Utils/VTI12Utils/VP1JobConfigInfo.h index 97ae89ccb047a66d002994df67885f66db2ae6ea..96c80ac470dedb37562dc2b6d7e1c38ff5bec9c3 100644 --- a/graphics/VTI12/VTI12Utils/VTI12Utils/VP1JobConfigInfo.h +++ b/graphics/VTI12/VTI12Utils/VTI12Utils/VP1JobConfigInfo.h @@ -43,6 +43,8 @@ public: static bool hasEcalGeometry(); + static bool hasCavernInfraGeometry(); + //Top geomodel volume link (not strictly "JobConfig", but here it is): static const GeoPVConstLink * geoModelWorld();//might return 0 diff --git a/graphics/VTI12/VTI12Utils/src/VP1JobConfigInfo.cxx b/graphics/VTI12/VTI12Utils/src/VP1JobConfigInfo.cxx index f572356186e0956ab46642654c505141af4aa7bb..bd325e0d306fb4c93cdc23b82683cf6ac5244e7a 100644 --- a/graphics/VTI12/VTI12Utils/src/VP1JobConfigInfo.cxx +++ b/graphics/VTI12/VTI12Utils/src/VP1JobConfigInfo.cxx @@ -99,6 +99,8 @@ void VP1JobConfigInfo::Imp::ensureInit() VP1Msg::messageVerbose("VTI12JobConfigInfo => hasSCTGeometry = "+QString(hasSCTGeometry?"On":"Off")); VP1Msg::messageVerbose("VTI12JobConfigInfo => hasEcalGeometry = "+QString(hasEcalGeometry?"On":"Off")); + VP1Msg::messageVerbose("VTI12JobConfigInfo => hasCavernInfraGeometry = "+QString(hasCavernInfraGeometry?"On":"Off")); + } } @@ -114,6 +116,7 @@ bool VP1JobConfigInfo::hasPreshowerGeometry() { if (!Imp::initialised) Imp::ensu bool VP1JobConfigInfo::hasSCTGeometry() { if (!Imp::initialised) Imp::ensureInit(); return Imp::hasSCTGeometry; } bool VP1JobConfigInfo::hasEcalGeometry() { if (!Imp::initialised) Imp::ensureInit(); return Imp::hasEcalGeometry; } +bool VP1JobConfigInfo::hasCavernInfraGeometry() { if (!Imp::initialised) Imp::ensureInit(); return Imp::hasCavernInfraGeometry; } //____________________________________________________________________ bool VP1JobConfigInfo::Imp::actualInit( StoreGateSvc* detStore ) @@ -169,6 +172,7 @@ bool VP1JobConfigInfo::Imp::actualInit( StoreGateSvc* detStore ) if ( !hasPreshowerGeometry && name=="Preshower") hasPreshowerGeometry = true; if ( !hasSCTGeometry && name=="SCT") hasSCTGeometry = true; if ( !hasEcalGeometry && name=="Ecal") hasEcalGeometry = true; + if ( !hasCavernInfraGeometry && name == "Trench") hasCavernInfraGeometry = true; //FIXME: Look for CavernInfra as well!!!