ATLAS Offline Software
Loading...
Searching...
No Matches
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
13
15
16//Athena includes
19
20SCT_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
40StatusCode 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
68 SCT_ID::const_id_iterator waferItr{m_sctId->wafer_begin()};
69 SCT_ID::const_id_iterator waferItrE{m_sctId->wafer_end()};
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// ------------------------------------------------------------------------------
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
This is an Identifier helper class for the SCT subdetector.
Header file for the SCT_MonitorConditionsTestAlg class in package SCT_ConditionsAlgorithms.
const ServiceHandle< StoreGateSvc > & detStore() const
An algorithm that can be simultaneously executed in multiple threads.
std::vector< Identifier >::const_iterator const_id_iterator
Definition SCT_ID.h:73
SCT_MonitorConditionsTestAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode execute(const EventContext &ctx) const override
ToolHandle< ISCT_MonitorConditionsTool > m_pMonitorConditionsTool
virtual StatusCode initialize() override