ATLAS Offline Software
Loading...
Searching...
No Matches
IBLParameterSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// IBLParameterSvc.h
7// Header file for class IBLParameterSvc
9// (c) ATLAS Detector software
11//
12
13#ifndef PIXELGEOMODEL_IBLPARAMETERSVC_H
14#define PIXELGEOMODEL_IBLPARAMETERSVC_H
15
17#include "GaudiKernel/ToolHandle.h"
18#include "Gaudi/Property.h"
19#include "GaudiKernel/Service.h"
21#include "GaudiKernel/IInterface.h"
22
23class IGeoDbTagSvc;
24class IRDBAccessSvc;
25
27 : public extends<AthService, IIBLParameterSvc>
28{
29public:
30 // Standard Constructor
31 IBLParameterSvc(const std::string& name, ISvcLocator* svc);
32 // Standard Destructor
33 virtual ~IBLParameterSvc();
34
35 virtual StatusCode initialize() override;
36 virtual StatusCode finalize() override;
37
38 virtual bool containsIBL() override {return m_IBLpresent;}
39 virtual bool contains3D() override {return m_LayerFEsPerHalfModule_3d>0;}
40 virtual bool containsDBM() override {return m_DBMpresent;}
41
42 std::string setStringParameters(const std::string& param,const std::string& paramName) {
43 if (m_IBLpresent) {
44 if (m_disableAllClusterSplitting && paramName=="clusterSplitter") return "";
45 }
46 return param;
47 }
48
49 void setCablingParameters(std::vector<int> &columnsPerFE,std::vector<int> &rowsPerFE,std::vector<std::vector<int> > &FEsPerHalfModule,int *DBMColumnsPerFE=NULL,int *DBMRowsPerFE=NULL,int *DBMFEsPerHalfModule=NULL) {
50 if (m_IBLpresent) {
51 columnsPerFE=std::vector<int>(1);
52 rowsPerFE=std::vector<int>(1);
53 columnsPerFE[0]=m_LayerColumnsPerFE;
54 rowsPerFE[0]=m_LayerRowsPerFE;
55 FEsPerHalfModule.clear();
56 FEsPerHalfModule.push_back(m_LayerFEsPerHalfModule);
57 if (m_DBMpresent) {
58 if (DBMColumnsPerFE) *DBMColumnsPerFE=m_LayerColumnsPerFE;
59 if (DBMRowsPerFE) *DBMRowsPerFE=m_LayerRowsPerFE;
60 if (DBMFEsPerHalfModule) *DBMFEsPerHalfModule=m_LayerFEsPerHalfModule_3d ? m_LayerFEsPerHalfModule_3d : m_LayerFEsPerHalfModule_planar;
61 }
62 }
63 }
64
65 virtual
66 void setBoolParameters(bool& param, const std::string& paramName) override
67 {
68 if (m_IBLpresent) {
69 if (m_disablePixMapCondDB && paramName=="UsePixMapCondDB") param=false;
70 if (m_disableSpecialPixels && paramName=="EnableSpecialPixels") param=false;
71 if (m_disableAlignable && paramName=="alignable") param=false;
72 if (m_disableAllClusterSplitting && paramName=="applyNNcorrection") param = false;
73 if (m_disableAllClusterSplitting && paramName=="doPixelClusterSplitting") param = false;
74 if (m_disableDCS && paramName=="useDCS") param=false;
75 if (paramName=="IBLAbsent") param=false;
76 }
77 }
78protected:
79
80private:
83 std::vector<int> m_LayerFEsPerHalfModule;
84
91
92 StatusCode setIblParameters();
93};
94
95#endif
StatusCode setIblParameters()
virtual bool contains3D() override
std::string setStringParameters(const std::string &param, const std::string &paramName)
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
virtual StatusCode initialize() override
Initialize Service.
virtual bool containsIBL() override
bool m_disableAllClusterSplitting
virtual void setBoolParameters(bool &param, const std::string &paramName) override
int m_LayerFEsPerHalfModule_planar
virtual StatusCode finalize() override
void setCablingParameters(std::vector< int > &columnsPerFE, std::vector< int > &rowsPerFE, std::vector< std::vector< int > > &FEsPerHalfModule, int *DBMColumnsPerFE=NULL, int *DBMRowsPerFE=NULL, int *DBMFEsPerHalfModule=NULL)
IBLParameterSvc(const std::string &name, ISvcLocator *svc)
Constructor(s)
virtual bool containsDBM() override
virtual ~IBLParameterSvc()
std::vector< int > m_LayerFEsPerHalfModule
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...