ATLAS Offline Software
SCT_MonitorConditionsTestAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
15 
16 //Athena includes
18 #include "InDetIdentifier/SCT_ID.h"
19 
20 SCT_MonitorConditionsTestAlg::SCT_MonitorConditionsTestAlg(const std::string& name, ISvcLocator* pSvcLocator) :
21  AthReentrantAlgorithm(name, pSvcLocator)
22 {
23 }
24 
25 // -------------------------------------------------------------------------
26 
28 {
29 
30  ATH_CHECK(detStore()->retrieve(m_sctId, "SCT_ID"));
31  ATH_MSG_DEBUG("Found SCT_ID Tool");
32 
34  ATH_MSG_DEBUG("Found SCT_MoniotorConditinosTool");
35 
36  return StatusCode::SUCCESS;
37 
38 }
39 
40 StatusCode SCT_MonitorConditionsTestAlg::execute(const EventContext& ctx) const
41 {
42  //This method is only used to test the summary service, and only used within this package,
43  // so the INFO level messages have no impact on performance of these services when used by clients
44  // A) Writing conditions data to the database
45  // * This is no longer done in this package so the test has been removed *
46  // B) Reading back in conditions data to analyse it
47  //
48  // 1) Aside from specifying the correct jobOptions, this is
49  // simply done by doing a standard StoreGate retrieve from
50  // the DetectorStore.
51 
52  ATH_MSG_DEBUG(" in execute()");
53 
54  ATH_MSG_DEBUG("Event: [" << ctx.eventID().run_number()
55  << "," << ctx.eventID().event_number()
56  << ":" << ctx.eventID().time_stamp()
57  << "]");
58 
59  std::string defectlist;
60  std::string EfficiencyTable;
61  Identifier stripid1;
62  Identifier waferid1;
63  Identifier moduleid1;
64 
65  // For testing of reading back from database
66  ATH_MSG_DEBUG("Testing isGood() function");
67 
70  int n_bad{0};
71  for (; waferItr != waferItrE; ++waferItr ) {
72  Identifier waferId{*waferItr};
73  for (int i{0}; i<768; i++){
74  Identifier stripId{m_sctId->strip_id(waferId, i)};
75  if (not (m_pMonitorConditionsTool->isGood(stripId, ctx, InDetConditions::SCT_STRIP)))
76  n_bad++;
77  }
78  }
79  ATH_MSG_DEBUG("(MonitorTest): #bad strips(Total) = " << n_bad);
80 
81  // check if strip is noisy
82  stripid1 = m_sctId->strip_id(0, 3, 41, -4, 1, 703);
83  waferid1 = m_sctId->wafer_id(stripid1);
84  moduleid1 = m_sctId->module_id(waferid1);
85  ATH_MSG_DEBUG("(MonitorTest): stripid = " << stripid1);
86  ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
87  // SCT_ComponentIdentifier compid = SCT_ComponentIdentifier(stripid1,"STRIP");
88  // SCT_Conditions::SCT_ComponentIdentifier compid(stripid1,"STRIP");
89  bool isthisGood{m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP)};
90  if (isthisGood) {
91  ATH_MSG_INFO("isGood(): strip(0,3,41,-4,1,703) is not noisy ");
92  } else {
93  ATH_MSG_INFO("isGood(): strip(0,3,41,-4,1,703) is noisy ");
94  }
95 
96  stripid1 = m_sctId->strip_id(0, 3, 41, -4, 0, 703);
97  waferid1 = m_sctId->wafer_id(stripid1);
98  moduleid1 = m_sctId->module_id(waferid1);
99  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
100  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
101  if (isthisGood) {
102  ATH_MSG_INFO("isGood(): strip(0,3,41,-4,0,703) is not noisy ");
103  } else {
104  ATH_MSG_INFO("isGood(): strip(0,3,41,-4,0,703) is noisy ");
105  }
106 
107  // Added 04/06/09
108  stripid1 = m_sctId->strip_id(0, 2, 39, -1, 0, 397);
109  waferid1 = m_sctId->wafer_id(stripid1);
110  moduleid1 = m_sctId->module_id(waferid1);
111  ATH_MSG_DEBUG("(MonitorTest): stripid = " << stripid1);
112  ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
113  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
114  if (isthisGood) {
115  ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,397) is not noisy ");
116  } else {
117  ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,397) is noisy ");
118  }
119 
120  stripid1 = m_sctId->strip_id(0, 2, 39, -1, 0, 396);
121  waferid1 = m_sctId->wafer_id(stripid1);
122  moduleid1 = m_sctId->module_id(waferid1);
123  ATH_MSG_DEBUG("(MonitorTest): stripid = " << stripid1);
124  ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
125  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
126  if (isthisGood) {
127  ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,396) is not noisy ");
128  } else {
129  ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,396) is noisy ");
130  }
131 
132  stripid1 = m_sctId->strip_id(0, 2, 39, -1, 0, 398);
133  waferid1 = m_sctId->wafer_id(stripid1);
134  moduleid1 = m_sctId->module_id(waferid1);
135  ATH_MSG_DEBUG("(MonitorTest): stripid = " << stripid1);
136  ATH_MSG_DEBUG("(MonitorTest): moduleid = " << moduleid1);
137  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
138  if (isthisGood) {
139  ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,398) is not noisy ");
140  } else {
141  ATH_MSG_INFO("isGood(): strip(0,2,39,-1,0,398) is noisy ");
142  }
143 
144  stripid1 = m_sctId->strip_id(0, 3, 13, -3, 0, 567);
145  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
146  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
147  if (isthisGood) {
148  ATH_MSG_INFO("isGood(): strip(0,3,13,-3,0,567) is not noisy ");
149  } else {
150  ATH_MSG_INFO("isGood(): strip(0,3,13,-3,0,567) is noisy ");
151  }
152 
153  stripid1 = m_sctId->strip_id(0, 3, 13, -3, 0, 566);
154  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
155  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
156  if (isthisGood) {
157  ATH_MSG_INFO("isGood(): strip(0,3,13,-3,0,566) is not noisy ");
158  } else {
159  ATH_MSG_INFO("isGood(): strip(0,3,13,-3,0,566) is noisy ");
160  }
161 
162  stripid1 = m_sctId->strip_id(0, 3, 13, -3, 1, 567);
163  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
164  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
165  if (isthisGood) {
166  ATH_MSG_INFO("isGood(): strip(0,3,13,-3,1,567) is not noisy ");
167  } else {
168  ATH_MSG_INFO("isGood(): strip(0,3,13,-3,1,567) is noisy ");
169  }
170 
171  stripid1 = m_sctId->strip_id(0, 0, 7, 2, 0, 700);
172  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
173  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
174  if (isthisGood) {
175  ATH_MSG_INFO("isGood(): strip(0,0,7,2,0,700) is not noisy ");
176  } else {
177  ATH_MSG_INFO("isGood(): strip(0,0,7,2,0,700) is noisy ");
178  }
179 
180  stripid1 = m_sctId->strip_id(0, 0, 7, 2, 1, 700);
181  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"STRIP");
182  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_STRIP);
183  if (isthisGood) {
184  ATH_MSG_INFO("isGood(): strip(0,0,7,2,1,700) is not noisy ");
185  } else {
186  ATH_MSG_INFO("isGood(): strip(0,0,7,2,1,700) is noisy ");
187  }
188 
189  // check if chip is noisy
190  stripid1 = m_sctId->strip_id(0, 0, 8, -4, 0, 100);
191  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"CHIP");
192  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_CHIP);
193  if (isthisGood) {
194  ATH_MSG_INFO("isGood(): chip(0,0,8,-4,0,100) is not noisy ");
195  } else {
196  ATH_MSG_INFO("isGood(): chip(0,0,8,-4,0,100) is noisy ");
197  }
198 
199  stripid1 = m_sctId->strip_id(0, 3, 13, -3, 0, 567);
200  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"CHIP");
201  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_CHIP);
202  if (isthisGood) {
203  ATH_MSG_INFO("isGood(): chip(0,3,13,-3,0,567) is not noisy ");
204  } else {
205  ATH_MSG_INFO("isGood(): chip(0,3,13,-3,0,567) is noisy ");
206  }
207 
208  // check if wafer is noisy
209  stripid1 = m_sctId->strip_id(0, 0, 8, -4, 0, 100);
210  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"WAFER");
211  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_SIDE);
212  if (isthisGood) {
213  ATH_MSG_INFO("isGood(): wafer(0,0,8,-4,0,100) is not noisy ");
214  } else {
215  ATH_MSG_INFO("isGood(): wafer(0,0,8,-4,0,100) is noisy ");
216  }
217 
218  // check if module is noisy
219  stripid1 = m_sctId->strip_id(0, 0, 8, -4, 0, 100);
220  // compid = SCT_Conditions::SCT_ComponentIdentifier(stripid1,"MODULE");
221  isthisGood = m_pMonitorConditionsTool->isGood(stripid1, ctx, InDetConditions::SCT_MODULE);
222  if (isthisGood) {
223  ATH_MSG_INFO("isGood(): module(0,0,8,-4,0,100) is not noisy ");
224  } else {
225  ATH_MSG_INFO("isGood(): module(0,0,8,-4,0,100) is noisy ");
226  }
227 
228  ATH_MSG_DEBUG("(MonitorTest): execute finished successfully.");
229  return StatusCode::SUCCESS;
230 }
231 
233 {
234  ATH_MSG_DEBUG("SCT_MonitorConditionsTestAlg::finalize");
235 
236  return StatusCode::SUCCESS;
237 }
238 
239 // ------------------------------------------------------------------------------
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
SCT_ID.h
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
InDetConditions::SCT_CHIP
@ SCT_CHIP
Definition: InDetHierarchy.h:14
SCT_ID::wafer_begin
const_id_iterator wafer_begin(void) const
Iterators over full set of ids. Wafer iterator is sorted.
Definition: SCT_ID.cxx:648
SCT_ID::const_id_iterator
std::vector< Identifier >::const_iterator const_id_iterator
Definition: SCT_ID.h:73
SCT_MonitorConditionsTestAlg::finalize
virtual StatusCode finalize() override
Definition: SCT_MonitorConditionsTestAlg.cxx:232
SCT_MonitorConditionsTestAlg::initialize
virtual StatusCode initialize() override
Definition: SCT_MonitorConditionsTestAlg.cxx:27
SCT_MonitorConditionsTestAlg::SCT_MonitorConditionsTestAlg
SCT_MonitorConditionsTestAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: SCT_MonitorConditionsTestAlg.cxx:20
SCT_ID::module_id
Identifier module_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: SCT_ID.h:416
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
SCT_MonitorConditionsTestAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: SCT_MonitorConditionsTestAlg.cxx:40
InDetConditions::SCT_MODULE
@ SCT_MODULE
Definition: InDetHierarchy.h:14
lumiFormat.i
int i
Definition: lumiFormat.py:92
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
SCT_MonitorConditionsTestAlg::m_sctId
const SCT_ID * m_sctId
Definition: SCT_MonitorConditionsTestAlg.h:44
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
IdentifierHash.h
SCT_MonitorConditionsTestAlg::m_pMonitorConditionsTool
ToolHandle< ISCT_MonitorConditionsTool > m_pMonitorConditionsTool
Definition: SCT_MonitorConditionsTestAlg.h:43
SCT_MonitorConditionsTestAlg.h
Header file for the SCT_MonitorConditionsTestAlg class in package SCT_ConditionsAlgorithms.
SCT_ID::wafer_end
const_id_iterator wafer_end(void) const
Definition: SCT_ID.cxx:652
SCT_ID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
Definition: SCT_ID.h:464
InDetConditions::SCT_STRIP
@ SCT_STRIP
Definition: InDetHierarchy.h:14
InDetConditions::SCT_SIDE
@ SCT_SIDE
Definition: InDetHierarchy.h:14
SCT_ID::strip_id
Identifier strip_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side, int strip) const
For an individual strip.
Definition: SCT_ID.h:535