ATLAS Offline Software
TileCablingSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILECONDITIONS_TILECABLINGSVC_H
6 #define TILECONDITIONS_TILECABLINGSVC_H
7 
8 // Tile includes
10 
11 // Athena includes
14 #include "Identifier/Identifier.h"
16 
17 // Gaudi includes
18 #include "GaudiKernel/ServiceHandle.h"
19 
20 // Forward declaration
21 class StoreGateSvc;
22 
23 template<class TYPE> class SvcFactory;
24 //NGO This is a quick hack to make TileCablingService self contained, i.e. this
25 //NGO wrapper tool takes care of the initialization.
26 //NGO At some point TileCablingService should be made a tool, but this will introduce
27 //NGO many upstream code changes.
28 
29 class TileCablingSvc: public AthService {
30  friend class SvcFactory<TileCablingSvc> ;
31 
32  public:
33  static const InterfaceID& interfaceID();
34  TileCablingSvc(const std::string& name, ISvcLocator* pSvcLocator);
35  virtual ~TileCablingSvc() {
36  }
37 
39  virtual StatusCode finalize() override;
40  virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface) override;
41 
43  return m_cablingService;
44  }
45 
46  const std::vector<std::string> & connectedDrawers() const {
47  return m_connectedDrawers;
48  }
49  const std::vector<Identifier> & disconnectedCells() const {
50  return m_disconnectedCells;
51  }
52 
53  private:
54 
56 
57  std::vector<std::string> m_connectedDrawers; // list of connected drawers
58  // we assume that list contains even number of elements - pairs of (begin,end) range,
59  // e.g. all drawers connected looks like this:
60  // [ "0x100", "0x13F", "0x200", "0x23F", "0x300", "0x33F", "0x400", "0x43F" ]
61  // and this is the list for few drawers in LBA connected:
62  // [ "0x10A", "0x10C", "0x121", "0x123" ]
63  // empty list is equivalent to list with all drawers connected
64 
66 
68 
69  //Use cache for channel_id to cell_id conversion
70  bool m_useCache;
71 
72  std::vector<Identifier> m_disconnectedCells; // list of disconnected cells
73  // the cells which appear in this list are:
74  // missing D4 in EBA15, EBC18
75  // 16 E3 cells in EBA (disconnected because of MBTS)
76  // 20 E3 cells in EBC (16 disconnected because of MBTS and 4 due to other reasons)
77 
79 };
80 
81 #endif
TileCablingSvc::finalize
virtual StatusCode finalize() override
Definition: TileCablingSvc.cxx:639
TileCablingSvc::ATLAS_NOT_THREAD_SAFE
virtual StatusCode initialize ATLAS_NOT_THREAD_SAFE() override
TileCablingSvc::connectedDrawers
const std::vector< std::string > & connectedDrawers() const
Definition: TileCablingSvc.h:46
TileCablingSvc::~TileCablingSvc
virtual ~TileCablingSvc()
Definition: TileCablingSvc.h:35
initialize
void initialize()
Definition: run_EoverP.cxx:894
SvcFactory
Definition: AthCnvSvc.h:28
TileCablingSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: TileCablingSvc.cxx:31
TileCablingSvc::disconnectedCells
const std::vector< Identifier > & disconnectedCells() const
Definition: TileCablingSvc.h:49
TileCablingSvc::m_connectedDrawers
std::vector< std::string > m_connectedDrawers
Definition: TileCablingSvc.h:57
TileCablingSvc::m_cablingService
const TileCablingService * m_cablingService
Definition: TileCablingSvc.h:55
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
TileCablingService.h
TileCablingSvc
Definition: TileCablingSvc.h:29
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthService
Definition: AthService.h:32
TileCablingSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition: TileCablingSvc.h:65
TileCablingSvc::m_disconnectedCells
std::vector< Identifier > m_disconnectedCells
Definition: TileCablingSvc.h:72
TileCablingService
Definition: TileCablingService.h:23
TileCablingSvc::MAX_TILE_CELLS_UPGRADEBC
@ MAX_TILE_CELLS_UPGRADEBC
Definition: TileCablingSvc.h:78
TileCablingSvc::MAX_TILE_CELLS_UPGRADEA
@ MAX_TILE_CELLS_UPGRADEA
Definition: TileCablingSvc.h:78
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TileCablingSvc::cablingService
const TileCablingService * cablingService() const
Definition: TileCablingSvc.h:42
TileCablingSvc::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface) override
Definition: TileCablingSvc.cxx:49
TileCablingSvc::MAX_TILE_CELLS_UPGRADEABC
@ MAX_TILE_CELLS_UPGRADEABC
Definition: TileCablingSvc.h:78
TileCablingSvc::MAX_TILE_CELLS
MAX_TILE_CELLS
Definition: TileCablingSvc.h:78
AthService.h
TileCablingSvc::m_cablingType
int m_cablingType
Definition: TileCablingSvc.h:67
IOVSvcDefs.h
defines and typedefs for IOVSvc
checker_macros.h
Define macros for attributes used to control the static checker.
TileCablingSvc::TileCablingSvc
TileCablingSvc(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TileCablingSvc.cxx:37
TileCablingSvc::m_useCache
bool m_useCache
Definition: TileCablingSvc.h:70
ServiceHandle< StoreGateSvc >