Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
9 #ifndef MUONCALIBR4_MDTCALIBDBALGR4_H
10 #define MUONCALIBR4_MDTCALIBDBALGR4_H
11 
13 
18 
21 
22 #include <nlohmann/json.hpp>
23 
24 
25 class TTree;
26 
27 namespace MuonCalibR4 {
29  public:
30 
31  using AthReentrantAlgorithm::AthReentrantAlgorithm;
32  virtual ~MdtCalibDbAlg() = default;
33 
34  virtual StatusCode initialize() override;
35  virtual StatusCode execute(const EventContext& ctx) const override;
36  virtual bool isReEntrant() const override { return false; }
37 
38  private:
39 
43 
44  /*** @brief Translates a r-t JSON payload into Mdt calibration constants
45  * @param rtBlob: JSON payload to translated
46  * @param outContainer: Container into which the Rt relations are appended */
48  MuonCalib::MdtCalibDataContainer& outContainer) const;
49 
53  StatusCode parseRtPayload(TTree& rtTree,
54  MuonCalib::MdtCalibDataContainer& outContainer) const;
58  MuonCalib::IRtRelationPtr makeRt(const std::string& rtType,
59  const std::vector<double>& pars) const;
63  MuonCalib::ITrRelationPtr makeTr(const std::string& trType,
64  const std::vector<double>& pars) const;
69  MuonCalib::IRtResolutionPtr makeReso(const std::string& resoType,
70  const std::vector<double>& pars,
71  MuonCalib::IRtRelationPtr rt) const;
76  MuonCalib::MdtCalibDataContainer& outContainer) const;
77 
81  StatusCode parseT0Payload(TTree& t0Tree,
82  MuonCalib::MdtCalibDataContainer& outContainer) const;
83 
84 
85  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
87  "Conditions object containing the calibrations"};
88 
90  Gaudi::Property<std::string> m_rtJSON{this, "RtJSON", ""};
91  Gaudi::Property<std::string> m_t0JSON{this, "TubeT0JSON", ""};
92 
93  Gaudi::Property<std::string> m_rtRootFile{this, "RtROOT", "",
94  "Path to an external root file to read the Rt relation from"};
95  Gaudi::Property<std::string> m_t0RootFile{this, "TubeT0ROOT", "",
96  "Path to an external root file to read the T0 constants from"};
97 
98  Gaudi::Property<std::string> m_rtTreeName{this, "RtTreeName", "RtCalibConstants"};
99  Gaudi::Property<std::string> m_t0TreeName{this, "T0TreeName", "T0CalibConstants"};
100 
101  SG::ReadCondHandleKey<CondAttrListCollection> m_readKeyRt{this, "ReadKeyRt", "/MDT/RTJSON", "DB folder containing the RT calibrations"};
102  SG::ReadCondHandleKey<CondAttrListCollection> m_readKeyTube{this, "ReadKeyTube", "/MDT/T0JSON", "DB folder containing the tube constants"};
103  Gaudi::Property<std::string> m_dbPayloadType {this, "dbPayloadType","TTree", "specify the format of the payload in the database. Can be TTree or JSON"};
104 
105  Gaudi::Property<double> m_prop_beta{this, "PropagationSpeedBeta", 1., "Speed of the signal propagation"};
107  Gaudi::Property<unsigned> m_t0CalibPrec{this, "T0CalibPrecision", 4};
108 
109  Gaudi::Property<bool> m_create_b_field_function{this, "CreateBFieldFunctions", false,
110  "If set to true, the B-field correction functions are initialized for each rt-relation that is loaded."};
111 
112  Gaudi::Property<bool> m_createSlewingFunction{this, "CreateSlewingFunctions", false,
113  "If set to true, the slewing correction functions are initialized for each rt-relation that is loaded."};
114 
115 
116  };
117 }
118 #endif
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
GeoModel::TransientConstSharedPtr< MdtCorFuncSet >
MuonCalib::MdtCalibDataContainer::CorrectionPtr
MdtFullCalibData::CorrectionPtr CorrectionPtr
Definition: MdtCalibDataContainer.h:22
MuonCalibR4::MdtCalibDbAlg::m_rtTreeName
Gaudi::Property< std::string > m_rtTreeName
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:98
MuonCalibR4::MdtCalibDbAlg::parseT0Payload
StatusCode parseT0Payload(const nlohmann::json &t0Blob, MuonCalib::MdtCalibDataContainer &outContainer) const
Trnaslates a t0 - JSON payload into transient memory.
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:448
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
MuonCalibR4::MdtCalibDbAlg::parseRtPayload
StatusCode parseRtPayload(const nlohmann::json &rtBlob, MuonCalib::MdtCalibDataContainer &outContainer) const
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:333
MuonCalibR4::MdtCalibDbAlg::m_t0TreeName
Gaudi::Property< std::string > m_t0TreeName
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:99
MuonCalibR4::MdtCalibDbAlg::m_t0RootFile
Gaudi::Property< std::string > m_t0RootFile
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:95
json
nlohmann::json json
Definition: HistogramDef.cxx:9
MdtCalibDataContainer.h
WriteCondHandleKey.h
MuonCalibR4::MdtCalibDbAlg::m_readKeyTube
SG::ReadCondHandleKey< CondAttrListCollection > m_readKeyTube
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:102
MuonCalibR4::MdtCalibDbAlg
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:28
MuonCalibR4::MdtCalibDbAlg::m_t0JSON
Gaudi::Property< std::string > m_t0JSON
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:91
MuonCalibR4::MdtCalibDbAlg::isReEntrant
virtual bool isReEntrant() const override
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:36
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
MuonCalib::MdtCalibDataContainer::TubeContainerPtr
MdtFullCalibData::TubeContainerPtr TubeContainerPtr
Definition: MdtCalibDataContainer.h:24
MuonCalibR4::MdtCalibDbAlg::m_dbPayloadType
Gaudi::Property< std::string > m_dbPayloadType
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:103
MuonCalibR4::MdtCalibDbAlg::makeReso
MuonCalib::IRtResolutionPtr makeReso(const std::string &resoType, const std::vector< double > &pars, MuonCalib::IRtRelationPtr rt) const
Creates a new resoltuion function from the typeName & the list of parameters.
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:319
MuonCalib::MdtCalibDataContainer::RtRelationPtr
MdtFullCalibData::RtRelationPtr RtRelationPtr
Definition: MdtCalibDataContainer.h:23
MuonCalibR4::MdtCalibDbAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:93
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonDetectorManager.h
MuonCalibR4::MdtCalibDbAlg::m_readKeyRt
SG::ReadCondHandleKey< CondAttrListCollection > m_readKeyRt
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:101
MuonCalibR4
Definition: MdtAnalyticRtCalibAlg.cxx:24
ReadCondHandleKey.h
AthReentrantAlgorithm.h
MuonCalibR4::MdtCalibDbAlg::initialize
virtual StatusCode initialize() override
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:57
MuonCalibR4::MdtCalibDbAlg::m_rtRootFile
Gaudi::Property< std::string > m_rtRootFile
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:93
MuonCalibR4::MdtCalibDbAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:85
SG::ReadCondHandleKey< CondAttrListCollection >
MuonCalibR4::MdtCalibDbAlg::m_prop_beta
Gaudi::Property< double > m_prop_beta
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:105
MuonCalibR4::MdtCalibDbAlg::m_create_b_field_function
Gaudi::Property< bool > m_create_b_field_function
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:109
MuonCalibR4::MdtCalibDbAlg::makeRt
MuonCalib::IRtRelationPtr makeRt(const std::string &rtType, const std::vector< double > &pars) const
Creates a new rt function from the typeName & the list of parameters.
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:285
MuonCalib::MdtCalibDataContainer
Definition: MdtCalibDataContainer.h:20
MuonCalibR4::MdtCalibDbAlg::m_writeKey
SG::WriteCondHandleKey< MuonCalib::MdtCalibDataContainer > m_writeKey
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:86
MuonCalibR4::MdtCalibDbAlg::~MdtCalibDbAlg
virtual ~MdtCalibDbAlg()=default
MuonCalibR4::MdtCalibDbAlg::makeTr
MuonCalib::ITrRelationPtr makeTr(const std::string &trType, const std::vector< double > &pars) const
Creates a new tr function from the typeName & the list of parameters.
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.cxx:303
SG::WriteCondHandleKey< MuonCalib::MdtCalibDataContainer >
MuonCalibR4::MdtCalibDbAlg::m_rtJSON
Gaudi::Property< std::string > m_rtJSON
External Rt & T0 JSON files.
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:90
MuonCalibR4::MdtCalibDbAlg::m_createSlewingFunction
Gaudi::Property< bool > m_createSlewingFunction
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:112
IMuonIdHelperSvc.h
MuonCalibR4::MdtCalibDbAlg::m_t0CalibPrec
Gaudi::Property< unsigned > m_t0CalibPrec
Precision cut off to treat 2 t0 constants as equivalent.
Definition: MuonPhaseII/MuonConditions/MuonCondAlgR4/src/MdtCalibDbAlg.h:107
ServiceHandle< Muon::IMuonIdHelperSvc >