ATLAS Offline Software
Loading...
Searching...
No Matches
CscCondDbAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONCONDALG_CSCCONDDBALG_H
6#define MUONCONDALG_CSCCONDDBALG_H
7
8// STL includes
9#include <zlib.h>
10
11#include <sstream>
12#include <string>
13#include <vector>
14
15// Gaudi includes
16#include "GaudiKernel/ServiceHandle.h"
17
18// Athena includes
26
28public:
29 CscCondDbAlg(const std::string &name, ISvcLocator *svc);
30 virtual ~CscCondDbAlg() = default;
31 virtual StatusCode initialize() override;
32 virtual StatusCode execute(const EventContext &) const override;
33
34private:
36
37 StatusCode loadDataHv(writeHandle_t &, CscCondDbData *, const EventContext &) const;
38
39 StatusCode loadData(CscCondDbData *, const CondAttrListCollection *, const std::string&, bool = false) const;
40
41 StatusCode loadDataF001(writeHandle_t &, CscCondDbData *, const EventContext &) const;
42 StatusCode loadDataNoise(writeHandle_t &, CscCondDbData *, const EventContext &) const;
43 StatusCode loadDataPed(writeHandle_t &, CscCondDbData *, const EventContext &) const;
44 StatusCode loadDataPSlope(writeHandle_t &, CscCondDbData *, const EventContext &) const;
45 StatusCode loadDataRMS(writeHandle_t &, CscCondDbData *, const EventContext &) const;
46 StatusCode loadDataStatus(writeHandle_t &, CscCondDbData *, const EventContext &) const;
47 StatusCode loadDataT0Base(writeHandle_t &, CscCondDbData *, const EventContext &) const;
48 StatusCode loadDataT0Phase(writeHandle_t &, CscCondDbData *, const EventContext &) const;
49
50 StatusCode cache(const std::string&, CscCondDbData *, const std::string&) const;
51 StatusCode cacheASM(const std::string&, CscCondDbData *, const std::string&) const;
52 StatusCode getAsmScope(int, int &, int &, int &, int &, int &) const;
53
54 StatusCode recordParameter(unsigned int, const std::string&, CscCondDbData *, const std::string&) const;
55 StatusCode recordParameter(IdentifierHash, const std::string&, CscCondDbData *, const std::string&) const;
56
57 StatusCode recordParameterF001(IdentifierHash, std::string, CscCondDbData *) const;
58 StatusCode recordParameterNoise(IdentifierHash, std::string, CscCondDbData *) const;
59 StatusCode recordParameterPed(IdentifierHash, std::string, CscCondDbData *) const;
60 StatusCode recordParameterPSlope(IdentifierHash, std::string, CscCondDbData *) const;
61 StatusCode recordParameterRMS(IdentifierHash, std::string, CscCondDbData *) const;
62 StatusCode recordParameterStatus(IdentifierHash, std::string, CscCondDbData *) const;
63 StatusCode recordParameterT0Base(IdentifierHash, std::string, CscCondDbData *) const;
64 StatusCode recordParameterT0Phase(IdentifierHash, std::string, CscCondDbData *) const;
65
66 Gaudi::Property<bool> m_isOnline{this, "isOnline", false, ""};
67 Gaudi::Property<bool> m_isData{this, "isData", false, ""};
68 Gaudi::Property<bool> m_isRun1{this, "isRun1", false, ""};
69 Gaudi::Property<bool> m_onlineOfflinePhiFlip{this, "onlineOfflinePhiFlip", true, ""};
70 Gaudi::Property<std::string> m_defaultDatabaseReadVersion{this, "defaultDatabaseReadVersion", "02-00", ""};
71
72 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
73
74 SG::WriteCondHandleKey<CscCondDbData> m_writeKey{this, "WriteKey", "CscCondDbData", "Key of output CSC condition data"};
75
77 "Key of input CSC condition data HV"};
79 "Key of input CSC condition data F001"};
81 "Key of input CSC condition data NOISE"};
83 "Key of input CSC condition data PEDESTALS"};
85 "Key of input CSC condition data PSLOPE"};
87 "Key of input CSC condition data RMS"};
89 "Key of input CSC condition data STATUS"};
91 "Key of input CSC condition data T0BASE"};
93 "Key of input CSC condition data T0PHASE"};
94
102 Gaudi::Property<bool> m_pslopeFromDB{
103 this, "ReadPSlopeFromDatabase", false,
104 "read the pslope parameter from the conditions database (if it is not the same value for all channels)"};
105
109 const float m_DEFAULT_PSLOPE = 0.175;
110 Gaudi::Property<float> m_pslope{this, "PSlope", m_DEFAULT_PSLOPE,
111 "in case someone comes up with a new default value for pslope in the future"};
112
113 // getParameter
114 template <typename T> StatusCode getParameter(IdentifierHash chanHash, std::string data, T &token) const {
115 // next element is the status bit
116 std::istringstream iss(data);
117 iss >> token;
118
119 ATH_MSG_VERBOSE("Recorded token " << token << " for channelHash " << chanHash);
120 return StatusCode::SUCCESS;
121 }
122};
123
124#endif
Base class for conditions algorithms.
#define ATH_MSG_VERBOSE(x)
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Base class for conditions algorithms.
This class is a collection of AttributeLists where each one is associated with a channel number.
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_rms
StatusCode recordParameterT0Phase(IdentifierHash, std::string, CscCondDbData *) const
StatusCode recordParameterRMS(IdentifierHash, std::string, CscCondDbData *) const
StatusCode loadDataPSlope(writeHandle_t &, CscCondDbData *, const EventContext &) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Gaudi::Property< bool > m_isRun1
StatusCode loadDataHv(writeHandle_t &, CscCondDbData *, const EventContext &) const
CscCondDbAlg(const std::string &name, ISvcLocator *svc)
StatusCode recordParameter(unsigned int, const std::string &, CscCondDbData *, const std::string &) const
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_status
StatusCode recordParameterPed(IdentifierHash, std::string, CscCondDbData *) const
StatusCode cacheASM(const std::string &, CscCondDbData *, const std::string &) const
Gaudi::Property< float > m_pslope
StatusCode loadDataT0Base(writeHandle_t &, CscCondDbData *, const EventContext &) const
virtual StatusCode execute(const EventContext &) const override
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_t0base
StatusCode loadDataStatus(writeHandle_t &, CscCondDbData *, const EventContext &) const
virtual StatusCode initialize() override
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_noise
SG::WriteCondHandle< CscCondDbData > writeHandle_t
StatusCode cache(const std::string &, CscCondDbData *, const std::string &) const
StatusCode recordParameterF001(IdentifierHash, std::string, CscCondDbData *) const
Gaudi::Property< bool > m_pslopeFromDB
The pslope is the gain of each CSC channel.
SG::WriteCondHandleKey< CscCondDbData > m_writeKey
Gaudi::Property< bool > m_onlineOfflinePhiFlip
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_t0phase
StatusCode getAsmScope(int, int &, int &, int &, int &, int &) const
StatusCode recordParameterT0Base(IdentifierHash, std::string, CscCondDbData *) const
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_ped
StatusCode recordParameterStatus(IdentifierHash, std::string, CscCondDbData *) const
Gaudi::Property< bool > m_isData
StatusCode loadDataF001(writeHandle_t &, CscCondDbData *, const EventContext &) const
StatusCode loadDataNoise(writeHandle_t &, CscCondDbData *, const EventContext &) const
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_pslope
StatusCode getParameter(IdentifierHash chanHash, std::string data, T &token) const
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_hv
StatusCode loadDataT0Phase(writeHandle_t &, CscCondDbData *, const EventContext &) const
StatusCode loadDataPed(writeHandle_t &, CscCondDbData *, const EventContext &) const
Gaudi::Property< std::string > m_defaultDatabaseReadVersion
const float m_DEFAULT_PSLOPE
The CSC gain was originally 5.304 ADC counts per fC, but later increased to 5.7 ADC counts per fC,...
StatusCode loadDataRMS(writeHandle_t &, CscCondDbData *, const EventContext &) const
StatusCode loadData(CscCondDbData *, const CondAttrListCollection *, const std::string &, bool=false) const
StatusCode recordParameterNoise(IdentifierHash, std::string, CscCondDbData *) const
virtual ~CscCondDbAlg()=default
Gaudi::Property< bool > m_isOnline
StatusCode recordParameterPSlope(IdentifierHash, std::string, CscCondDbData *) const
SG::ReadCondHandleKey< CondAttrListCollection > m_readKey_folder_da_f001
This is a "hash" representation of an Identifier.