ATLAS Offline Software
Loading...
Searching...
No Matches
CalibT0DbOperations.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CalibT0DbOperations_h
6#define CalibT0DbOperations_h
7
10#include <GaudiKernel/ServiceHandle.h>
11#include <string>
12#include <vector>
13
14namespace coral {
15 class IQuery;
16 class AttributeList;
17 class ITableDataEditor;
18} // namespace coral
19
20namespace MuonCalib {
21
24 class NtupleStationId;
26 class MuonFixedId;
28
30 public:
31 //=====================constructor - destructor=================================
33 virtual ~CalibT0DbOperations() = default;
34 //=====================publlic member functions=================================
35 // load t0 for chamber
36 MdtStationT0Container *LoadT0Calibration(const NtupleStationId &id, int head_id, std::string &site_name);
37 // load data for validation
38 MdtTubeFitContainer *LoadT0Validation(const NtupleStationId &id, int head_id, std::string &site_name);
39 // write t0 for chamber/set validation flag
40 // validation_flag[tb_nr]!=3 write complete tube entry
41 // if validation_flag.size()==0: all tubes are new
42 bool WriteT0Chamber(const NtupleStationId &id, const MdtTubeFitContainer *t0, std::vector<int> &validation_flag, int head_id,
43 const std::string &site_name);
44 // read for storage in a conditinos database
45 bool ReadForConditions(const std::string& site_name, int head_id, IConditionsStorage &storage);
46
47 private:
48 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "CalibT0DbOperations"};
49 //=====================private data members====================================
50 // db connection
52 coral::IQuery *m_query{nullptr};
53 //=====================private functions=======================================
54 inline void initRowBuffer(std::vector<coral::AttributeList> &rowBuffer, const NtupleStationId &id, const int head_id,
55 const std::string &site_name, const MdtTubeFitContainer *t0);
56 inline void fillRowBuffer(std::vector<coral::AttributeList> &rowBuffer, const MdtTubeFitContainer *t0, const int ml1,
57 const int ly, const int ml2, const MuonFixedId &fixId);
58 bool setValidFlag(const std::string &site_name, const int head_id, const int tube_id, const int new_validflag,
59 coral::ITableDataEditor &editor);
60 // insert all tubes of chamber
61 bool insertTubes(const std::string &site_name, int head_id, const NtupleStationId &id, const MdtTubeFitContainer *t0,
62 const std::vector<int> &validation_flag, coral::ITableDataEditor *editor[]);
63 bool setValidationFlag(const std::string &site_name, int head_id, const NtupleStationId &id, int from, int to,
64 coral::ITableDataEditor &editor);
65 // check if data already existsd in db
66 inline bool checkTubesPresent(const int head_id, const std::string &site_name, const NtupleStationId &id,
67 const std::vector<int> &validflag);
68 }; // class
69
70} // namespace MuonCalib
71
72#endif
static Double_t t0
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
MdtStationT0Container * LoadT0Calibration(const NtupleStationId &id, int head_id, std::string &site_name)
void initRowBuffer(std::vector< coral::AttributeList > &rowBuffer, const NtupleStationId &id, const int head_id, const std::string &site_name, const MdtTubeFitContainer *t0)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
bool setValidationFlag(const std::string &site_name, int head_id, const NtupleStationId &id, int from, int to, coral::ITableDataEditor &editor)
CalibT0DbOperations(CalibDbConnection &db_conn)
bool insertTubes(const std::string &site_name, int head_id, const NtupleStationId &id, const MdtTubeFitContainer *t0, const std::vector< int > &validation_flag, coral::ITableDataEditor *editor[])
bool checkTubesPresent(const int head_id, const std::string &site_name, const NtupleStationId &id, const std::vector< int > &validflag)
virtual ~CalibT0DbOperations()=default
bool setValidFlag(const std::string &site_name, const int head_id, const int tube_id, const int new_validflag, coral::ITableDataEditor &editor)
bool WriteT0Chamber(const NtupleStationId &id, const MdtTubeFitContainer *t0, std::vector< int > &validation_flag, int head_id, const std::string &site_name)
bool ReadForConditions(const std::string &site_name, int head_id, IConditionsStorage &storage)
void fillRowBuffer(std::vector< coral::AttributeList > &rowBuffer, const MdtTubeFitContainer *t0, const int ml1, const int ly, const int ml2, const MuonFixedId &fixId)
MdtTubeFitContainer * LoadT0Validation(const NtupleStationId &id, int head_id, std::string &site_name)
Holds single-tube full calibration information of one chamber.
Implements fixed identifiers not dependent upon Athena Identifier for internal use in the calibration...
Definition MuonFixedId.h:50
Station Identifier for sorting calibration data.
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.