Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 22.0.49_test
  • Nov22Survey
  • alma9-dev
  • centos7-legacy
  • cosmic
  • fasermc-dev
  • fasermc-simtag
  • faserrec-align
  • faserrec-dev
  • faserrec-noisy
  • faserrec-p0013
  • faserrec-procdev
  • faserrec-proctag
  • faserrec-r0021
  • faserrec-r0022
  • faserrec-recotag
  • geantinomapping
  • geantinoscan
  • jwspence_README-fix
  • master
  • master-loose-truth
  • master-muondetector
  • master_pgun
  • materialmapping
  • overlay-particle-gun
  • pilotanalysis
  • pilotrunanalysis
  • revert-5b4d74b1
  • simtag
  • sshively-Cosmics
  • torrence-calonu
  • torrence-dev
  • 22.0.14
  • 22.0.15
  • 22.0.18
  • 22.0.19
  • master-centos7
  • reco/p0008
  • reco/p0009
  • reco/p0010
  • reco/p0011
  • reco/p0012
  • reco/p0013
  • reco/r0001
  • reco/r0002
  • reco/r0003
  • reco/r0004
  • reco/r0005
  • reco/r0006
  • reco/r0007
  • reco/r0008
  • reco/r0009
  • reco/r0010
  • reco/r0011
  • reco/r0012
  • reco/r0013
  • reco/r0014
  • reco/r0015
  • reco/r0016
  • reco/r0017
  • reco/r0018
  • reco/r0019
  • reco/r0020
  • reco/r0021
  • reco/r0022
  • release/22.0.19.final
  • release/22.0.29
  • release/22.0.30
  • release/22.0.31.Passive
  • release/22.0.31.baseline
  • release/22.0.31.final
  • release/22.0.40.final
  • release/22.0.40.initial
  • release/fasernu-02.final
  • sim/s0001
  • sim/s0002
  • sim/s0003
  • sim/s0004
  • sim/s0005
  • sim/s0006
  • sim/s0007
  • sim/s0008
  • sim/s0009
  • sim/s0010
  • sim/s0012
  • sim/s0013
86 results

Target

Select target project
  • amascell/calypso
  • wfilali/calypso
  • andesai/calypso
  • sazhang/calypso
  • yuxu/calypso
  • bewilson/calypso
  • ovaldesm/calypso
  • xai/calypso
  • ymaruya/calypso
  • anburger/calypso
  • seley/calypso
  • sudatta/calypso
  • notarann/calypso
  • hhjelm/calypso
  • tarai/calypso
  • lmccoy/calypso
  • agarabag/calypso
  • fneuhaus/calypso
  • vlian/calypso
  • yechou/calypso
  • vlian/calypso-official
  • fasermc/calypso
  • schsu/calypso
  • maprim/calypso
  • cantel/calypso
  • jwspence/calypso
  • diwang/calypso
  • ccavanag/calypso
  • gwilliam/calypso
  • asalman/calypso
  • toinada/calypso
  • jboyd/calypso
  • abarkley/calypso
  • yafik/calypso
  • cpandini/calypso
  • tboeckh/calypso
  • sshively/calypso
  • keli/calypso
  • dfellers/calypso
  • torrence/calypso
  • coccaro/calypso
  • dcasper/calypso
  • faser/calypso
43 results
Select Git revision
  • 22.0.49_test
  • Nov22Survey
  • add-perf-outputs
  • cosmic
  • fasermc-dev
  • fasermc-mc24
  • fasermc-simtag
  • faserrec-align
  • faserrec-dev
  • faserrec-noisy
  • faserrec-procdev
  • faserrec-proctag
  • faserrec-recotag
  • geantinomapping
  • geantinoscan
  • jwspence_README-fix
  • master
  • master-loose-truth
  • master-muondetector
  • master_pgun
  • materialmapping
  • overlay-particle-gun
  • pilotanalysis
  • pilotrunanalysis
  • revert-5b4d74b1
  • simtag
  • sshively-Cosmics
  • 22.0.14
  • 22.0.15
  • 22.0.18
  • 22.0.19
  • reco/p0008
  • reco/p0009
  • reco/p0010
  • reco/p0011
  • reco/r0001
  • reco/r0002
  • reco/r0003
  • reco/r0004
  • reco/r0005
  • reco/r0006
  • reco/r0007
  • reco/r0008
  • reco/r0009
  • reco/r0010
  • reco/r0011
  • reco/r0012
  • reco/r0013
  • reco/r0014
  • reco/r0015
  • reco/r0016
  • reco/r0017
  • reco/r0018
  • reco/r0019
  • release/22.0.19.final
  • release/22.0.29
  • release/22.0.30
  • release/22.0.31.Passive
  • release/22.0.31.baseline
  • release/22.0.31.final
  • release/22.0.40.final
  • release/22.0.40.initial
  • release/fasernu-02.final
  • sim/s0001
  • sim/s0002
  • sim/s0003
  • sim/s0004
  • sim/s0005
  • sim/s0006
  • sim/s0007
  • sim/s0008
  • sim/s0009
  • sim/s0010
  • sim/s0012
74 results
Show changes
Commits on Source (197)
Showing
with 700 additions and 214 deletions
...@@ -17,35 +17,30 @@ build_image: ...@@ -17,35 +17,30 @@ build_image:
# each branch will have an individual Docker image that will be used # each branch will have an individual Docker image that will be used
# in the following stages of the pipeline for testing the code # in the following stages of the pipeline for testing the code
image: image:
name: gitlab-registry.cern.ch/linuxsupport/cc7-base:latest name: gitlab-registry.cern.ch/linuxsupport/alma9-base:latest
stage: build stage: build
tags: tags:
- k8s-cvmfs - k8s-cvmfs
script: script:
- yum -y install redhat-lsb redhat-lsb-core man uuid-devel libuuid libuuid-devel mesa-libGL-devel libXpm-devel
- mkdir build - mkdir build
- cd build # See if we can run this as the payload to a container
- set +e && source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh; set -e - set +e && export ALRB_CONT_RUNPAYLOAD="asetup --input=asetup.faser Athena,24.0.41; cd build; cmake ..; make -j 3" && set -e
- set +e && asetup --input=../../calypso/asetup.faser Athena,22.0.49; set -e - echo $ALRB_CONT_RUNPAYLOAD
- cmake ../../calypso - set +e && source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh -c alma9 && set -e
- make -j 3
artifacts: artifacts:
paths: paths:
- build/ - build/
test_unittest: test_unittest:
image: image:
name: gitlab-registry.cern.ch/linuxsupport/cc7-base:latest name: gitlab-registry.cern.ch/linuxsupport/alma9-base:latest
stage: test stage: test
tags: tags:
- k8s-cvmfs - k8s-cvmfs
script: script:
- yum -y install man which git make cmake3 gcc-c++ gcc binutils libX11-devel libXpm-devel libXft-devel libXext-devel python openssl-devel - set +e && export ALRB_CONT_RUNPAYLOAD="asetup --input=asetup.faser Athena,24.0.41; source `find . -name 'setup.sh'`; cd build; ctest -j3" && set -e
- cd build - echo $ALRB_CONT_RUNPAYLOAD
- set +e && source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh; set -e - set +e && source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh -c alma9 && set -e
- set +e && asetup --input=../../calypso/asetup.faser Athena,22.0.49; set -e
- set +e && source `find . -name 'setup.sh'`; set -e
- ctest -j3
dependencies: dependencies:
- build_image - build_image
artifacts: artifacts:
......
...@@ -6,11 +6,11 @@ ...@@ -6,11 +6,11 @@
"${workspaceFolder}/**" "${workspaceFolder}/**"
], ],
"defines": [], "defines": [],
"compilerPath": "/cvmfs/sft.cern.ch/lcg/releases/gcc/8.3.0-cebb0/x86_64-centos7/bin/gcc", "compilerPath": "/cvmfs/sft.cern.ch/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/bin/gcc",
"cStandard": "c99", "cStandard": "c11",
"cppStandard": "c++17", "cppStandard": "c++20",
"intelliSenseMode": "clang-x64", "intelliSenseMode": "gcc-x64",
"compileCommands": "${workspaceFolder}/build/compile_commands.json" "compileCommands": "${workspaceFolder}/../build/compile_commands.json"
} }
], ],
"version": 4 "version": 4
......
...@@ -12,6 +12,7 @@ set( ATLAS_PROJECT Athena ...@@ -12,6 +12,7 @@ set( ATLAS_PROJECT Athena
find_package( Athena ) find_package( Athena )
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(ATLAS_GEANT4_USE_LTO OFF)
atlas_ctest_setup() atlas_ctest_setup()
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define CaloGeoModelUtils_CaloDDAthenaComps_H #define CaloGeoModelUtils_CaloDDAthenaComps_H
// Message Stream Member // Message Stream Member
#include "AthenaKernel/MsgStreamMember.h" #include "AthenaBaseComps/AthMessaging.h"
class StoreGateSvc; class StoreGateSvc;
class IGeoDbTagSvc; class IGeoDbTagSvc;
class IRDBAccessSvc; class IRDBAccessSvc;
...@@ -16,18 +16,12 @@ class IGeometryDBSvc; ...@@ -16,18 +16,12 @@ class IGeometryDBSvc;
namespace CaloDD { namespace CaloDD {
/// Class to hold various Athena components. /// Class to hold various Athena components.
class AthenaComps { class AthenaComps : public AthMessaging {
public: public:
AthenaComps(const std::string & msgStreamName); AthenaComps(const std::string & msgStreamName);
//Declaring the Message method for further use
MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
//Declaring the Method providing Verbosity Level
bool msgLvl (MSG::Level lvl) const { return m_msg.get().level() <= lvl; }
void setDetStore(StoreGateSvc *); void setDetStore(StoreGateSvc *);
void setGeoDbTagSvc(IGeoDbTagSvc *); void setGeoDbTagSvc(IGeoDbTagSvc *);
void setRDBAccessSvc(IRDBAccessSvc *); void setRDBAccessSvc(IRDBAccessSvc *);
...@@ -39,9 +33,6 @@ public: ...@@ -39,9 +33,6 @@ public:
IGeometryDBSvc * geomDB() const; IGeometryDBSvc * geomDB() const;
private: private:
//Declaring private message stream member.
mutable Athena::MsgStreamMember m_msg;
StoreGateSvc * m_detStore; StoreGateSvc * m_detStore;
IGeoDbTagSvc * m_geoDbTagSvc; IGeoDbTagSvc * m_geoDbTagSvc;
IRDBAccessSvc * m_rdbAccessSvc; IRDBAccessSvc * m_rdbAccessSvc;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define CALOMATERIALMANAGER_H #define CALOMATERIALMANAGER_H
// Message Stream Member // Message Stream Member
#include "AthenaKernel/MsgStreamMember.h" #include "AthenaBaseComps/AthMessaging.h"
#include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBAccessSvc.h"
class GeoMaterial; class GeoMaterial;
...@@ -30,7 +30,7 @@ namespace CaloDD ...@@ -30,7 +30,7 @@ namespace CaloDD
/// materials with a density such that the the total weight is correct. /// materials with a density such that the the total weight is correct.
class CaloMaterialManager class CaloMaterialManager : public AthMessaging
{ {
public: public:
...@@ -60,7 +60,7 @@ public: ...@@ -60,7 +60,7 @@ public:
const GeoMaterial* getMaterial(const std::string & materialName); const GeoMaterial* getMaterial(const std::string & materialName);
/// Get element from GeoModel material manager /// Get element from GeoModel material manager
const GeoElement* getElement(const std::string & elementName) const; const GeoElement* getElement(const std::string & elementName);
/// Create and get material with a specified density based on an existing material. /// Create and get material with a specified density based on an existing material.
/// If a newName is supplied it creates the new material even if the orginal material /// If a newName is supplied it creates the new material even if the orginal material
...@@ -129,13 +129,6 @@ public: ...@@ -129,13 +129,6 @@ public:
/// Add material /// Add material
void addMaterial(GeoMaterial *material); void addMaterial(GeoMaterial *material);
//Declaring the Message method for further use
MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
//Declaring the Method providing Verbosity Level
bool msgLvl (MSG::Level lvl){ return m_msg.get().level() <= lvl; }
private: private:
class MaterialByWeight { class MaterialByWeight {
...@@ -190,7 +183,7 @@ private: ...@@ -190,7 +183,7 @@ private:
void addWeightTableOld(IRDBRecordset_ptr weightTable, const std::string & space); void addWeightTableOld(IRDBRecordset_ptr weightTable, const std::string & space);
// Internal versions. The public versions allow materials to be have extra scaling. // Internal versions. The public versions allow materials to be have extra scaling.
const GeoMaterial* getMaterialInternal(const std::string & materialName) const; const GeoMaterial* getMaterialInternal(const std::string & materialName);
const GeoMaterial* getMaterialInternal(const std::string & origMaterialName, const GeoMaterial* getMaterialInternal(const std::string & origMaterialName,
double density, double density,
const std::string & newName = ""); const std::string & newName = "");
...@@ -230,9 +223,6 @@ private: ...@@ -230,9 +223,6 @@ private:
typedef std::map<std::string, double > ExtraScaleFactorMap; typedef std::map<std::string, double > ExtraScaleFactorMap;
ExtraScaleFactorMap m_scalingMap; ExtraScaleFactorMap m_scalingMap;
//Declaring private message stream member.
mutable Athena::MsgStreamMember m_msg;
// Has linear weight flag. // Has linear weight flag.
bool m_extraFunctionality; bool m_extraFunctionality;
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#ifndef CaloGeoModelUtils_DetectorFactoryBase_H #ifndef CaloGeoModelUtils_DetectorFactoryBase_H
#define CaloGeoModelUtils_DetectorFactoryBase_H #define CaloGeoModelUtils_DetectorFactoryBase_H
#include "AthenaKernel/MsgStreamMember.h"
#include "GeoModelKernel/GeoVDetectorFactory.h" #include "GeoModelKernel/GeoVDetectorFactory.h"
#include "CaloGeoModelUtils/CaloDDAthenaComps.h" #include "CaloGeoModelUtils/CaloDDAthenaComps.h"
...@@ -15,7 +14,7 @@ class IRDBAccessSvc; ...@@ -15,7 +14,7 @@ class IRDBAccessSvc;
namespace CaloDD { namespace CaloDD {
class DetectorFactoryBase : public GeoVDetectorFactory class DetectorFactoryBase : public GeoVDetectorFactory
{ {
public: public:
...@@ -35,7 +34,7 @@ public: ...@@ -35,7 +34,7 @@ public:
MsgStream& msg (MSG::Level lvl) const { return m_athenaComps->msg(lvl); } MsgStream& msg (MSG::Level lvl) const { return m_athenaComps->msg(lvl); }
//Declaring the Method providing Verbosity Level //Declaring the Method providing Verbosity Level
bool msgLvl (MSG::Level lvl) const { return m_athenaComps->msgLvl(lvl); } bool msgLvl (MSG::Level lvl) { return m_athenaComps->msgLvl(lvl); }
const CaloDD::AthenaComps * getAthenaComps() {return m_athenaComps;} const CaloDD::AthenaComps * getAthenaComps() {return m_athenaComps;}
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
namespace CaloDD { namespace CaloDD {
AthenaComps::AthenaComps(const std::string& msgStreamName) AthenaComps::AthenaComps(const std::string& msgStreamName)
: m_msg(msgStreamName), : AthMessaging(msgStreamName),
m_detStore(0), m_detStore(0),
m_geoDbTagSvc(0), m_geoDbTagSvc(0),
m_rdbAccessSvc(0), m_rdbAccessSvc(0),
......
...@@ -6,17 +6,17 @@ ...@@ -6,17 +6,17 @@
#include "CaloGeoModelUtils/DistortedMaterialManager.h" #include "CaloGeoModelUtils/DistortedMaterialManager.h"
#include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h"
#include "GeoModelFaserUtilities/DecodeFaserVersionKey.h" #include "GeoModelFaserUtilities/DecodeFaserVersionKey.h"
#include "AthenaKernel/MsgStreamMember.h"
#include "StoreGate/StoreGateSvc.h" #include "StoreGate/StoreGateSvc.h"
#include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBAccessSvc.h"
#include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/ISvcLocator.h"
#include "GaudiKernel/MsgStream.h"
#include "GaudiKernel/Bootstrap.h" #include "GaudiKernel/Bootstrap.h"
namespace CaloDD { namespace CaloDD {
DistortedMaterialManager::DistortedMaterialManager() { DistortedMaterialManager::DistortedMaterialManager() {
ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap
Athena::MsgStreamMember log("ExtraMaterialManager"); MsgStream log(Athena::getMessageSvc(), "ExtraMaterialManager");
log << MSG::DEBUG << "Initialized Calo Distorted Material Manager" << endmsg; log << MSG::DEBUG << "Initialized Calo Distorted Material Manager" << endmsg;
StoreGateSvc* detStore; StoreGateSvc* detStore;
......
<IdDictionary name="Calorimeter"> <IdDictionary name="Calorimeter">
<field name="part" > <field name="part" >
<label name="Ecal" value="1" /> <label name="Ecal" value="1" />
<label name="CaloNu" value="2" />
</field> </field>
<field name="row"> <field name="row">
...@@ -23,4 +24,12 @@ ...@@ -23,4 +24,12 @@
<range field="module" values="Starboard Port" wraparound="FALSE" /> <range field="module" values="Starboard Port" wraparound="FALSE" />
<range field="pmt" minvalue="0" maxvalue="1" /> <range field="pmt" minvalue="0" maxvalue="1" />
</region> </region>
<region>
<range field="part" value="CaloNu" />
<range field="row" values="Bottom Top" wraparound="FALSE" />
<range field="module" values="Starboard Port" wraparound="FALSE" />
<range field="pmt" minvalue="0" maxvalue="0" />
</region>
</IdDictionary> </IdDictionary>
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<field name="part" > <field name="part" >
<label name="Ecal" value="1" /> <label name="Ecal" value="1" />
<label name="CaloNu" value="2" />
</field> </field>
<field name="row"> <field name="row">
...@@ -24,4 +25,4 @@ ...@@ -24,4 +25,4 @@
<range field="module" values="Starboard Center Port" wraparound="FALSE" /> <range field="module" values="Starboard Center Port" wraparound="FALSE" />
<range field="pmt" minvalue="0" maxvalue="0" /> <range field="pmt" minvalue="0" maxvalue="0" />
</region> </region>
</IdDictionary> </IdDictionary>
\ No newline at end of file
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
class FaserDetectorID; class FaserDetectorID;
// Message Stream Member // Message Stream Member
#include "AthenaKernel/MsgStreamMember.h" #include "AthenaBaseComps/AthMessaging.h"
#include "CxxUtils/checker_macros.h" #include "CxxUtils/checker_macros.h"
// #include "InDetCondTools/ISiLorentzAngleTool.h" // #include "InDetCondTools/ISiLorentzAngleTool.h"
#include "GeoPrimitives/GeoPrimitives.h" #include "GeoPrimitives/GeoPrimitives.h"
...@@ -26,9 +26,6 @@ class FaserDetectorID; ...@@ -26,9 +26,6 @@ class FaserDetectorID;
#include <mutex> #include <mutex>
// mutable Athena::MsgStreamMember issues warnings.
ATLAS_NO_CHECK_FILE_THREAD_SAFETY;
namespace CaloDD { namespace CaloDD {
/** @class CaloCommonItems /** @class CaloCommonItems
...@@ -42,7 +39,7 @@ namespace CaloDD { ...@@ -42,7 +39,7 @@ namespace CaloDD {
modified: Dave Casper modified: Dave Casper
*/ */
class CaloCommonItems: public RCBase class CaloCommonItems: public RCBase, public AthMessaging
{ {
public: public:
...@@ -52,18 +49,9 @@ namespace CaloDD { ...@@ -52,18 +49,9 @@ namespace CaloDD {
const FaserDetectorID* getIdHelper() const; const FaserDetectorID* getIdHelper() const;
// const HepGeom::Transform3D & solenoidFrame() const; // const HepGeom::Transform3D & solenoidFrame() const;
// void setSolenoidFrame(const HepGeom::Transform3D & transform) const; // void setSolenoidFrame(const HepGeom::Transform3D & transform) const;
//Declaring the Message method for further use
MsgStream& msg (MSG::Level lvl) const { return m_msg.get() << lvl; }
//Declaring the Method providing Verbosity Level
bool msgLvl (MSG::Level lvl) const { return m_msg.get().level() <= lvl; }
private: private:
//Declaring private message stream member.
mutable Athena::MsgStreamMember m_msg;
const FaserDetectorID* m_idHelper; const FaserDetectorID* m_idHelper;
// mutable HepGeom::Transform3D m_solenoidFrame ATLAS_THREAD_SAFE; // Guarded by m_mutex // mutable HepGeom::Transform3D m_solenoidFrame ATLAS_THREAD_SAFE; // Guarded by m_mutex
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "CaloReadoutGeometry/Version.h" #include "CaloReadoutGeometry/Version.h"
#include "CLHEP/Geometry/Transform3D.h" #include "CLHEP/Geometry/Transform3D.h"
// Message Stream Member // Message Stream Member
#include "AthenaKernel/MsgStreamMember.h" #include "AthenaBaseComps/AthMessaging.h"
// IOV SVC for alignment: // IOV SVC for alignment:
#include "AthenaKernel/IIOVSvc.h" #include "AthenaKernel/IIOVSvc.h"
...@@ -41,9 +41,6 @@ class FaserDetectorID; ...@@ -41,9 +41,6 @@ class FaserDetectorID;
class GeoVAlignmentStore; class GeoVAlignmentStore;
class CondAttrListCollection; class CondAttrListCollection;
// mutable Athena::MsgStreamMember issues warnings.
ATLAS_NO_CHECK_FILE_THREAD_SAFETY;
namespace CaloDD { namespace CaloDD {
typedef std::map<std::string, const void*> RawAlignmentObjects; typedef std::map<std::string, const void*> RawAlignmentObjects;
...@@ -63,7 +60,7 @@ namespace CaloDD { ...@@ -63,7 +60,7 @@ namespace CaloDD {
@author: Grant Gorfine @author: Grant Gorfine
- modified & maintained: Nick Styles & Andreas Salzburger - modified & maintained: Nick Styles & Andreas Salzburger
*/ */
class CaloDetectorManagerBase : public GeoVDetectorManager { class CaloDetectorManagerBase : public GeoVDetectorManager, public AthMessaging {
public: public:
...@@ -99,12 +96,6 @@ namespace CaloDD { ...@@ -99,12 +96,6 @@ namespace CaloDD {
/** Check identifier is for this detector */ /** Check identifier is for this detector */
virtual bool identifierBelongs(const Identifier & id) const = 0; virtual bool identifierBelongs(const Identifier & id) const = 0;
/** Declaring the Message method for further use */
MsgStream& msg (MSG::Level lvl) const { return m_msg.get() << lvl; }
/** Declaring the Method providing Verbosity Level */
bool msgLvl (MSG::Level lvl) const { return m_msg.get().level() <= lvl; }
AlignFolderType m_alignfoldertype; AlignFolderType m_alignfoldertype;
protected: protected:
...@@ -188,8 +179,6 @@ namespace CaloDD { ...@@ -188,8 +179,6 @@ namespace CaloDD {
virtual const FaserDetectorID* getIdHelper() const = 0; virtual const FaserDetectorID* getIdHelper() const = 0;
//Declaring private message stream member. //Declaring private message stream member.
mutable Athena::MsgStreamMember m_msg;
Version m_version; Version m_version;
std::map<std::string, LevelInfo> m_keys; std::map<std::string, LevelInfo> m_keys;
std::set<std::string> m_folders; std::set<std::string> m_folders;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
namespace CaloDD { namespace CaloDD {
CaloCommonItems::CaloCommonItems(const FaserDetectorID* const idHelper) CaloCommonItems::CaloCommonItems(const FaserDetectorID* const idHelper)
: m_msg("CaloDetectorElement"), : AthMessaging("CaloDetectorElement"),
m_idHelper(idHelper), m_idHelper(idHelper),
m_mutex{} m_mutex{}
{} {}
......
...@@ -18,8 +18,9 @@ namespace CaloDD ...@@ -18,8 +18,9 @@ namespace CaloDD
{ {
CaloDetectorManagerBase::CaloDetectorManagerBase(StoreGateSvc * detStore, const std::string & name) CaloDetectorManagerBase::CaloDetectorManagerBase(StoreGateSvc * detStore, const std::string & name)
: m_alignfoldertype{none},m_detStore(detStore), : AthMessaging(name+"DetectorManager")
m_msg(name+"DetectorManager") , m_alignfoldertype{none}
, m_detStore(detStore)
{ {
setName(name); setName(name);
} }
......
...@@ -26,7 +26,8 @@ atlas_add_component( EcalGeoModel ...@@ -26,7 +26,8 @@ atlas_add_component( EcalGeoModel
atlas_add_test( EcalGMConfig_test atlas_add_test( EcalGMConfig_test
SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/EcalGMConfig_test.py SCRIPT python ${CMAKE_CURRENT_SOURCE_DIR}/test/EcalGMConfig_test.py
PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR} PROPERTIES WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
PROPERTIES TIMEOUT 300 ) PROPERTIES TIMEOUT 300
POST_EXEC_SCRIPT noerror.sh)
# Decide which ecal gdml file to use based on option; tyvek density reduced in EcalTyvek04.gdml (June 2023) # Decide which ecal gdml file to use based on option; tyvek density reduced in EcalTyvek04.gdml (June 2023)
if (ECAL_GEO_TYVEK) if (ECAL_GEO_TYVEK)
......
...@@ -39,7 +39,7 @@ EcalModule::EcalModule(const std::string & name, ...@@ -39,7 +39,7 @@ EcalModule::EcalModule(const std::string & name,
{ {
std::string resolvedFile = PathResolver::find_file(geometryManager->options().gdmlFile(), "XMLPATH", PathResolver::RecursiveSearch); std::string resolvedFile = PathResolver::find_file(geometryManager->options().gdmlFile(), "XMLPATH", PathResolver::RecursiveSearch);
XercesParser xercesParser; GeoModelTools::XercesParser xercesParser;
xercesParser.ParseFileAndNavigate(resolvedFile); xercesParser.ParseFileAndNavigate(resolvedFile);
std::cout << "done parsing " << resolvedFile << std::endl; std::cout << "done parsing " << resolvedFile << std::endl;
......
...@@ -6,18 +6,19 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration ...@@ -6,18 +6,19 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
if __name__ == "__main__": if __name__ == "__main__":
from AthenaCommon.Configurable import Configurable from AthenaCommon.Configurable import Configurable
Configurable.configurableRun3Behavior=1 Configurable.configurableRun3Behavior=1
from CalypsoConfiguration.AllConfigFlags import ConfigFlags from CalypsoConfiguration.AllConfigFlags import initConfigFlags
from AthenaConfiguration.TestDefaults import defaultTestFiles from AthenaConfiguration.TestDefaults import defaultTestFiles
ConfigFlags.Input.Files = defaultTestFiles.HITS configFlags = initConfigFlags()
ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-01" # Always needed; must match FaserVersion configFlags.Input.Files = [] # Dummy input
ConfigFlags.Detector.EnableEcal = True configFlags.IOVDb.GlobalTag = "OFLCOND-FASER-01" # Always needed; must match FaserVersion
ConfigFlags.GeoModel.Align.Dynamic = False configFlags.Detector.EnableEcal = True
ConfigFlags.lock() #flags.GeoModel.Align.Dynamic = False
configFlags.lock()
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
from EcalGeoModel.EcalGeoModelConfig import EcalGeometryCfg from EcalGeoModel.EcalGeoModelConfig import EcalGeometryCfg
acc = EcalGeometryCfg(ConfigFlags) acc = EcalGeometryCfg(configFlags)
f=open('EcalGeometryCfg.pkl','wb') f=open('EcalGeometryCfg.pkl','wb')
acc.store(f) acc.store(f)
f.close() f.close()
...@@ -11,6 +11,7 @@ find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) ...@@ -11,6 +11,7 @@ find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
# Component(s) in the package: # Component(s) in the package:
atlas_add_library( FaserCaloIdentifier atlas_add_library( FaserCaloIdentifier
src/EcalID.cxx src/EcalID.cxx
src/CaloNuID.cxx
PUBLIC_HEADERS FaserCaloIdentifier PUBLIC_HEADERS FaserCaloIdentifier
PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
LINK_LIBRARIES AthenaKernel FaserDetDescr IdDict Identifier LINK_LIBRARIES AthenaKernel FaserDetDescr IdDict Identifier
......
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
*/
#ifndef CALOIDENTIFIER_CALONUID_H
#define CALOIDENTIFIER_CALONUID_H
/**
* @file CaloNuID.h
*
* @brief This is an Identifier helper class for the CaloNu
* subdetector. This class is a factory for creating compact
* Identifier objects and IdentifierHash or hash ids. And it also
* allows decoding of these ids.
*
*/
//<<<<<< INCLUDES >>>>>>
#include "FaserDetDescr/FaserDetectorID.h"
#include "Identifier/Identifier.h"
#include "Identifier/IdentifierHash.h"
#include "Identifier/Range.h"
#include "Identifier/IdHelper.h"
#include "IdDict/IdDictFieldImplementation.h"
#include "AthenaKernel/CLASS_DEF.h"
#include <string>
#include <assert.h>
#include <algorithm>
//<<<<<< PUBLIC DEFINES >>>>>>
//<<<<<< PUBLIC CONSTANTS >>>>>>
//<<<<<< PUBLIC TYPES >>>>>>
class IdDictDictionary;
//<<<<<< PUBLIC VARIABLES >>>>>>
//<<<<<< PUBLIC FUNCTIONS >>>>>>
//<<<<<< CLASS DECLARATIONS >>>>>>
/**
** @class CaloNuID
**
** @brief This is an Identifier helper class for the CaloNu
** subdetector. This class is a factory for creating compact
** Identifier objects and IdentifierHash or hash ids. And it also
** allows decoding of these ids.
**
** Definition and the range of values for the levels of the
** identifier are:
**
** @verbatim
** element range meaning
** ------- ----- -------
**
** row 0 - 1 vertical location of module (bottom, top)
** module 0 - 1 horizontal location of module in row (left, right)
** pmt 0 single pmt per module
**
** @endverbatim
**
*/
class CaloNuID : public FaserDetectorID
{
public:
/// @name public typedefs
//@{
typedef Identifier::size_type size_type;
typedef std::vector<Identifier>::const_iterator const_id_iterator;
typedef MultiRange::const_identifier_factory const_expanded_id_iterator;
//@}
/// @name strutors
//@{
CaloNuID(void);
virtual ~CaloNuID(void) = default;
//@}
/// @name Creators for module ids and pmt ids
//@{
/// For a single row
Identifier row_id ( int row ) const;
Identifier row_id ( int row,
bool checks) const;
/// For a row from a module id
Identifier row_id ( const Identifier& module_id ) const;
/// For a single module
Identifier module_id ( int row,
int module ) const;
Identifier module_id ( int row,
int module,
bool checks) const;
/// For a single module from a pmt id
Identifier module_id ( const Identifier& pmt_id ) const;
/// From hash - optimized
Identifier module_id ( IdentifierHash module_hash ) const;
/// For an individual pmt
Identifier pmt_id ( int row,
int module,
int pmt ) const;
Identifier pmt_id ( int row,
int module,
int pmt,
bool check ) const;
Identifier pmt_id ( const Identifier& module_id,
int pmt ) const;
//@}
/// @name Hash table maximum sizes
//@{
size_type module_hash_max (void) const;
size_type pmt_hash_max (void) const;
//@}
/// @name Access to all ids
//@{
/// Iterators over full set of ids. Module iterator is sorted
const_id_iterator module_begin (void) const;
const_id_iterator module_end (void) const;
/// For pmt ids, only expanded id iterators are available. Use
/// following "pmt_id" method to obtain a compact identifier
const_expanded_id_iterator pmt_begin (void) const;
const_expanded_id_iterator pmt_end (void) const;
//@}
/// @name Optimized accessors - ASSUMES id IS an CaloNu id, i.e. NOT other
//@{
/// module hash from id - optimized
IdentifierHash module_hash (Identifier module_id) const;
/// Values of different levels (failure returns 0)
int row (const Identifier& id) const;
int module (const Identifier& id) const;
int pmt (const Identifier& id) const;
/// Max/Min values for each field (-999 == failure)
int row_max (const Identifier& id) const;
int module_max (const Identifier& id) const;
int pmt_max (const Identifier& id) const;
//@}
/// @name module navigation
//@{
// /// Previous in z
// int get_prev_in_z(const IdentifierHash& id, IdentifierHash& prev) const;
// /// Next in z
// int get_next_in_z(const IdentifierHash& id, IdentifierHash& next) const;
/// Previous module hash in phi (return == 0 for neighbor found)
int get_prev_in_phi (const IdentifierHash& id, IdentifierHash& prev) const;
/// Next module hash in phi (return == 0 for neighbor found)
int get_next_in_phi (const IdentifierHash& id, IdentifierHash& next) const;
/// Previous module hash in eta (return == 0 for neighbor found)
int get_prev_in_eta (const IdentifierHash& id, IdentifierHash& prev) const;
// /// Next module hash in eta (return == 0 for neighbor found)
int get_next_in_eta (const IdentifierHash& id, IdentifierHash& next) const;
// /// Wafer hash on other side
// int get_other_side (const IdentifierHash& id, IdentifierHash& other) const;
// Check limits
bool is_phi_module_max(const Identifier& id) const;
bool is_phi_module_min(const Identifier& id) const;
bool is_eta_module_min(const Identifier& id) const;
bool is_eta_module_max(const Identifier& id) const;
//@}
/// @name contexts to distinguish module id from pmt id
//@{
IdContext module_context (void) const;
IdContext pmt_context (void) const;
//@}
/// @name methods from abstract interface - slower than opt version
//@{
/// Create compact id from hash id (return == 0 for OK)
virtual int get_id (const IdentifierHash& hash_id,
Identifier& id,
const IdContext* context = 0) const;
/// Create hash id from compact id (return == 0 for OK)
virtual int get_hash (const Identifier& id,
IdentifierHash& hash_id,
const IdContext* context = 0) const;
//@}
/// Return the lowest bit position used in the channel id
int base_bit (void) const;
/// Calculate a channel offset between the two identifiers.
Identifier::diff_type calc_offset(const Identifier& base,
const Identifier& target) const;
/// Create an identifier with a given base and channel offset
Identifier pmt_id_offset(const Identifier& base,
Identifier::diff_type offset) const;
/// @name interaction with id dictionary
//@{
/// Create strip Identifier from expanded id, which is returned by the
/// id_iterators
Identifier pmt_id (const ExpandedIdentifier& pmt_id) const;
/// Create expanded id from compact id (return == 0 for OK)
void get_expanded_id (const Identifier& id,
ExpandedIdentifier& exp_id,
const IdContext* context = 0) const;
/// Initialization from the identifier dictionary
virtual int initialize_from_dictionary(const IdDictMgr& dict_mgr);
/// Tests of packing
void test_module_packing (void) const;
//@}
private:
enum {NOT_VALID_HASH = 64000};
typedef std::vector<Identifier> id_vec;
typedef id_vec::const_iterator id_vec_it;
typedef std::vector<unsigned short> hash_vec;
typedef hash_vec::const_iterator hash_vec_it;
void module_id_checks ( int row,
int module ) const;
void pmt_id_checks ( int row,
int module,
int pmt ) const;
int initLevelsFromDict(void);
int init_hashes(void);
int init_neighbors(void);
// Temporary method for adapting an identifier for the MultiRange
// check - MR is missing the InnerDetector level
// Identifier idForCheck (const Identifier& id) const;
size_type m_calonu_region_index;
size_type m_CALO_INDEX;
size_type m_CALONU_INDEX;
size_type m_ROW_INDEX;
size_type m_MODULE_INDEX;
size_type m_PMT_INDEX;
const IdDictDictionary* m_dict;
MultiRange m_full_module_range;
MultiRange m_full_pmt_range;
size_type m_module_hash_max;
size_type m_pmt_hash_max;
// Range::field m_barrel_field;
id_vec m_module_vec;
// hash_vec m_prev_z_plate_vec;
// hash_vec m_next_z_plate_vec;
hash_vec m_prev_phi_module_vec;
hash_vec m_next_phi_module_vec;
hash_vec m_prev_eta_module_vec;
hash_vec m_next_eta_module_vec;
// bool m_hasRows ;
IdDictFieldImplementation m_calo_impl ;
IdDictFieldImplementation m_calonu_impl ;
IdDictFieldImplementation m_row_impl ;
IdDictFieldImplementation m_module_impl ;
IdDictFieldImplementation m_pmt_impl ;
};
//<<<<<< INLINE PUBLIC FUNCTIONS >>>>>>
/////////////////////////////////////////////////////////////////////////////
//<<<<<< INLINE MEMBER FUNCTIONS >>>>>>
/////////////////////////////////////////////////////////////////////////////
//using the macros below we can assign an identifier (and a version)
//This is required and checked at compile time when you try to record/retrieve
CLASS_DEF(CaloNuID, 167327975, 1)
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::row_id ( int row,
bool checks) const
{
// Build identifier
Identifier result((Identifier::value_type)0);
// Pack fields independently
m_calo_impl.pack (calo_field_value(), result);
m_calonu_impl.pack (calonu_field_value(), result);
m_row_impl.pack (row, result);
// Do checks
if(checks)
{
module_id_checks ( row, 0 );
}
return result;
}
inline Identifier
CaloNuID::row_id ( int row ) const
{
return row_id (row, do_checks());
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::row_id ( const Identifier& module_id ) const
{
Identifier result(module_id);
// Reset the module and pmt fields
m_module_impl.reset(result);
m_pmt_impl.reset(result);
return (result);
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::module_id ( int row,
int module,
bool checks) const
{
// Build identifier
Identifier result((Identifier::value_type)0);
// Pack fields independently
m_calo_impl.pack (calo_field_value(), result);
m_calonu_impl.pack (calonu_field_value(), result);
m_row_impl.pack (row, result);
m_module_impl.pack (module, result);
// Do checks
if(checks)
{
module_id_checks ( row, module );
}
return result;
}
inline Identifier
CaloNuID::module_id ( int row,
int module ) const
{
return module_id (row, module, do_checks());
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::module_id ( const Identifier& pmt_id ) const
{
Identifier result(pmt_id);
// reset the pmt field
m_pmt_impl.reset(result);
return (result);
}
//----------------------------------------------------------------------------
inline Identifier CaloNuID::module_id ( IdentifierHash module_hash ) const
{
return (m_module_vec[module_hash]);
}
//----------------------------------------------------------------------------
inline IdentifierHash CaloNuID::module_hash (Identifier module_id) const
{
// MsgStream log(m_msgSvc, "CaloNuID");
// log << MSG::VERBOSE << "m_module_vec size: " << m_module_vec.size() << endmsg;
// log << MSG::VERBOSE << "input id = " << module_id << endmsg;
// for (size_t i = 0; i < m_module_vec.size(); i++)
// {
// log << MSG::VERBOSE << "Hash = " << i << " : ID = " << m_module_vec[i] << endmsg;
// }
id_vec_it it = std::lower_bound(m_module_vec.begin(),
m_module_vec.end(),
module_id);
// Require that module_id matches the one in vector
if (it != m_module_vec.end() && module_id == (*it)) {
return (it - m_module_vec.begin());
}
IdentifierHash result;
return (result); // return hash in invalid state
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::pmt_id ( int row,
int module,
int pmt,
bool checks) const
{
// Build identifier
Identifier result((Identifier::value_type)0);
// Pack fields independently
m_calo_impl.pack (calo_field_value(), result);
m_calonu_impl.pack (calonu_field_value(), result);
m_row_impl.pack (row, result);
m_module_impl.pack (module, result);
m_pmt_impl.pack (pmt, result);
// Do checks
if(checks) {
pmt_id_checks ( row, module, pmt );
}
return result;
}
inline Identifier
CaloNuID::pmt_id ( int row,
int module,
int pmt ) const
{
return pmt_id (row, module, pmt, do_checks());
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::pmt_id (const ExpandedIdentifier& id) const
{
// Build identifier
Identifier result((Identifier::value_type)0);
// Pack fields independently
m_calo_impl.pack (calo_field_value(), result);
m_calonu_impl.pack (calonu_field_value(), result);
m_row_impl.pack (id[m_ROW_INDEX], result);
m_module_impl.pack (id[m_MODULE_INDEX], result);
m_pmt_impl.pack (id[m_PMT_INDEX], result);
// Do checks
if(m_do_checks)
{
pmt_id_checks ( id[m_ROW_INDEX],
id[m_MODULE_INDEX],
id[m_PMT_INDEX]);
}
return result;
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::pmt_id ( const Identifier& module_id, int pmt ) const
{
// Build identifier
Identifier result(module_id);
// Reset pmt and then add in value
m_pmt_impl.reset (result);
m_pmt_impl.pack (pmt, result);
if(m_do_checks)
{
pmt_id_checks ( row(result),
module(result),
pmt );
}
return result;
}
//----------------------------------------------------------------------------
inline Identifier::diff_type
CaloNuID::calc_offset(const Identifier& base, const Identifier& target) const
{
Identifier::diff_type tval = static_cast<Identifier::diff_type>(target.get_compact() >> base_bit());
Identifier::diff_type bval = static_cast<Identifier::diff_type>(base.get_compact() >> base_bit());
return (tval - bval);
}
//----------------------------------------------------------------------------
inline Identifier
CaloNuID::pmt_id_offset(const Identifier& base,
Identifier::diff_type offset) const
{
Identifier::value_type bval = base.get_compact() >> base_bit();
return Identifier((bval + offset) << base_bit());
}
//----------------------------------------------------------------------------
inline int
CaloNuID::base_bit ( void ) const
{
int base = static_cast<int>(m_pmt_impl.shift()); // lowest field base
return (base > 32) ? 32 : base;
// max base is 32 so we can still read old strip id's and differences
// from non-SLHC releases.
}
//----------------------------------------------------------------------------
inline IdContext
CaloNuID::module_context (void) const
{
ExpandedIdentifier id;
return (IdContext(id, 0, m_MODULE_INDEX));
}
//----------------------------------------------------------------------------
inline IdContext
CaloNuID::pmt_context (void) const
{
ExpandedIdentifier id;
return (IdContext(id, 0, m_PMT_INDEX));
}
//----------------------------------------------------------------------------
inline int
CaloNuID::row (const Identifier& id) const
{
return (m_row_impl.unpack(id));
}
//----------------------------------------------------------------------------
inline int
CaloNuID::module (const Identifier& id) const
{
return (m_module_impl.unpack(id));
}
//----------------------------------------------------------------------------
inline int
CaloNuID::pmt (const Identifier& id) const
{
return (m_pmt_impl.unpack(id));
}
#endif // CALOIDENTIFIER_CALONUID_H