ATLAS Offline Software
TRT_ConditionsSummarySvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
9 #ifndef TRT_ConditionsSummarySvc_h
10 #define TRT_ConditionsSummarySvc_h
11 
12 //STL includes
13 #include <vector>
14 #include <string>
15 //Gaudi Includes
17 #include "GaudiKernel/ServiceHandle.h"
18 
19 //interface includes
22 
23 //forward declarations
24 class ISvcLocator;
25 class Identifier;
26 class IdentifierHash;
27 class StatusCode;
28 class TRT_ID;
29 namespace InDetDD {
30  class TRT_DetectorManager;
31 }
32 
39  virtual public IInDetConditionsSvc,
40  public AthService
41 {
42  public:
43  TRT_ConditionsSummarySvc( const std::string& name, ISvcLocator* svc );
45  //@name Gaudi Service Implementation
47  static const InterfaceID & interfaceID();
48  virtual StatusCode initialize();
49  virtual StatusCode finalize();
50  virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
52 
53  //@name reimplemented from IInDetConditionsSvc
55  virtual bool isActive(const Identifier & elementId, const InDetConditions::Hierarchy h=InDetConditions::DEFAULT);
56  virtual bool isActive(const IdentifierHash & elementHash);
57  virtual bool isActive(const IdentifierHash & elementHash, const Identifier & elementId);
58  virtual double activeFraction(const IdentifierHash & elementHash, const Identifier & idStart, const Identifier & idEnd);
59  virtual bool isGood(const Identifier & elementId, const InDetConditions::Hierarchy h=InDetConditions::DEFAULT);
60  virtual bool isGood(const IdentifierHash & elementHash);
61  virtual bool isGood(const IdentifierHash & elementHash, const Identifier & elementId);
62  virtual double goodFraction(const IdentifierHash & elementHash, const Identifier & idStart, const Identifier & idEnd);
64 
65 private:
66  ServiceHandleArray<ITRT_ConditionsSvc> m_svcCollection;
68 
70  const TRT_ID* m_trtid;
71 
72 };
73 
74 inline const InterfaceID & TRT_ConditionsSummarySvc::interfaceID(){
76 }
77 
78 // From s.binet
79 // Query the interfaces.
80 // Input: riid, Requested interface ID
81 // ppvInterface, Pointer to requested interface
82 // Return: StatusCode indicating SUCCESS or FAILURE.
83 // N.B. Don't forget to release the interface after use!!!
84 inline StatusCode TRT_ConditionsSummarySvc::queryInterface(const InterfaceID& riid, void** ppvInterface)
85 {
86  if ( IInDetConditionsSvc::interfaceID().versionMatch(riid) ) {
87  *ppvInterface = dynamic_cast<IInDetConditionsSvc*>(this);
88  } else {
89  // Interface is not directly available : try out a base class
90  return AthService::queryInterface(riid, ppvInterface);
91  }
92  addRef();
93  return StatusCode::SUCCESS;
94 }
95 
96 #endif // TRT_ConditionsSummarySvc_h
IInDetConditionsSvc
Definition: IInDetConditionsSvc.h:24
TRT_ConditionsSummarySvc::condSummaryStatus
InDet::TRT_CondFlag condSummaryStatus(const Identifier &ident)
Definition: TRT_ConditionsSummarySvc.cxx:253
TRT_ConditionsSummarySvc::m_svcCollection
ServiceHandleArray< ITRT_ConditionsSvc > m_svcCollection
Definition: TRT_ConditionsSummarySvc.h:66
IInDetConditionsSvc::interfaceID
static const InterfaceID & interfaceID()
reimplemented from IInterface
Definition: IInDetConditionsSvc.h:52
TRT_ConditionsSummarySvc::~TRT_ConditionsSummarySvc
virtual ~TRT_ConditionsSummarySvc()
InDetConditions::Hierarchy
Hierarchy
Definition: InDetHierarchy.h:14
TRT_ConditionsSummarySvc::goodFraction
virtual double goodFraction(const IdentifierHash &elementHash, const Identifier &idStart, const Identifier &idEnd)
goodFraction method gives the fraction of good elements in the range of identifiers
Definition: TRT_ConditionsSummarySvc.cxx:232
ITRT_ConditionsSvc.h
TRT_ConditionsSummarySvc::activeFraction
virtual double activeFraction(const IdentifierHash &elementHash, const Identifier &idStart, const Identifier &idEnd)
activeFraction method gives the fraction of active elements in the range of identifiers
Definition: TRT_ConditionsSummarySvc.cxx:150
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthService
Definition: AthService.h:32
TRT_ConditionsSummarySvc::isGood
virtual bool isGood(const Identifier &elementId, const InDetConditions::Hierarchy h=InDetConditions::DEFAULT)
Definition: TRT_ConditionsSummarySvc.cxx:172
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
TRT_ConditionsSummarySvc::TRT_ConditionsSummarySvc
TRT_ConditionsSummarySvc(const std::string &name, ISvcLocator *svc)
Service constructor.
Definition: TRT_ConditionsSummarySvc.cxx:21
TRT_ConditionsSummarySvc::finalize
virtual StatusCode finalize()
Service finalize.
Definition: TRT_ConditionsSummarySvc.cxx:85
TRT_ConditionsSummarySvc::m_manager
const InDetDD::TRT_DetectorManager * m_manager
Definition: TRT_ConditionsSummarySvc.h:69
TRT_ConditionsSummarySvc::initialize
virtual StatusCode initialize()
Service init.
Definition: TRT_ConditionsSummarySvc.cxx:36
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TRT_ConditionsSummarySvc::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface)
Definition: TRT_ConditionsSummarySvc.h:84
TRT::Hit::ident
@ ident
Definition: HitInfo.h:77
TRT_ConditionsSummarySvc::isActive
virtual bool isActive(const Identifier &elementId, const InDetConditions::Hierarchy h=InDetConditions::DEFAULT)
Definition: TRT_ConditionsSummarySvc.cxx:90
TRT_ConditionsSummarySvc::m_trtid
const TRT_ID * m_trtid
Definition: TRT_ConditionsSummarySvc.h:70
IInDetConditionsSvc.h
TRT_ID
Definition: TRT_ID.h:84
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:69
h
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
AthService.h
InDet::TRT_CondFlag
TRT_CondFlag
status flag to be derived from the inheriting tool's conditions info
Definition: ITRT_ConditionsSvc.h:19
IdentifierHash
Definition: IdentifierHash.h:38
TRT_ConditionsSummarySvc
Definition: TRT_ConditionsSummarySvc.h:41
InDetConditions::DEFAULT
@ DEFAULT
Definition: InDetHierarchy.h:14
TRT_ConditionsSummarySvc::interfaceID
static const InterfaceID & interfaceID()
reimplemented from Service->IService->IInterface inheritance
Definition: TRT_ConditionsSummarySvc.h:74