ATLAS Offline Software
TileCondToolMuID.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Tile includes
9 
10 // Calo includes
12 
13 // Athena includes
16 
17 
18 //
19 //____________________________________________________________________
20 static const InterfaceID IID_TileCondToolMuID("TileCondToolMuID", 1, 0);
21 const InterfaceID&
23  return IID_TileCondToolMuID;
24 }
25 
26 //
27 //____________________________________________________________________
28 TileCondToolMuID::TileCondToolMuID(const std::string& type, const std::string& name, const IInterface* parent)
30  , m_caloID(nullptr)
31 {
32  declareInterface<TileCondToolMuID>(this);
33 }
34 
35 //
36 //____________________________________________________________________
38 }
39 
40 //
41 //____________________________________________________________________
43 
44  ATH_MSG_DEBUG( "In initialize()" );
45 
46  //=== Initialize MuID conditions data key
47  ATH_CHECK( m_calibMuIdKey.initialize() );
48 
49  // Retrieve CaloIdManager
51 
52  return StatusCode::SUCCESS;
53 }
54 
55 //
56 //____________________________________________________________________
58  ATH_MSG_DEBUG( "finalize called" );
59  return StatusCode::SUCCESS;
60 }
61 
62 //
63 //____________________________________________________________________
64 void TileCondToolMuID::getLowThreshold(Identifier & id, int & ros, int & module, int & index) const {
65 
66  module = m_caloID->module(id);
67 
69 
70  if (m_caloID->sample(id) == 0) {
71  index = m_caloID->tower(id);
72  }
73 
74  if (m_caloID->sample(id) == 1) {
75  index = m_caloID->tower(id) + 10;
76  }
77 
78  if (m_caloID->sample(id) == 2) {
79  index = m_caloID->tower(id) / 2 + 19;
80  }
81 
82  ros = 1;
83 
84  }
85 
87 
88  if (m_caloID->sample(id) == 0) {
89  index = m_caloID->tower(id);
90  }
91 
92  if (m_caloID->sample(id) == 1) {
93  index = m_caloID->tower(id) + 10;
94  }
95 
96  if (m_caloID->sample(id) == 2) {
97  index = m_caloID->tower(id) / 2 + 19;
98  }
99 
100  ros = 2;
101 
102  }
103 
105 
106  if (m_caloID->sample(id) == 0) {
107  index = m_caloID->tower(id) - 11;
108  }
109 
110  if (m_caloID->sample(id) == 1) {
111  index = m_caloID->tower(id) - 4;
112  }
113 
114  if (m_caloID->sample(id) == 2) {
115  index = m_caloID->tower(id) / 2 + 7;
116  }
117 
118  ros = 3;
119 
120  }
121 
122  if (m_caloID->is_tile_gap(id) && m_caloID->is_tile_positive(id)) {
123 
124  if (m_caloID->sample(id) == 1) {
125  index = 5;
126  }
127 
128  if (m_caloID->sample(id) == 2) {
129  index = 11;
130  }
131 
132  ros = 3;
133 
134  }
135 
137 
138  if (m_caloID->sample(id) == 0) {
139  index = m_caloID->tower(id) - 11;
140  }
141 
142  if (m_caloID->sample(id) == 1) {
143  index = m_caloID->tower(id) - 4;
144  }
145 
146  if (m_caloID->sample(id) == 2) {
147  index = m_caloID->tower(id) / 2 + 7;
148  }
149 
150  ros = 4;
151 
152  }
153 
154  if (m_caloID->is_tile_gap(id) && m_caloID->is_tile_negative(id)) {
155 
156  if (m_caloID->sample(id) == 1) {
157  index = 5;
158  }
159 
160  if (m_caloID->sample(id) == 2) {
161  index = 11;
162  }
163 
164  ros = 4;
165 
166  }
167 
168 }
169 
170 //
171 //____________________________________________________________________
172 void TileCondToolMuID::getHighThreshold(Identifier & id, int & ros, int & module, int & index) const {
173 
174  index = ros = -999;
175  module = m_caloID->module(id);
176 
178 
179  if (m_caloID->sample(id) == 0) {
180  index = m_caloID->tower(id) + 23;
181  }
182 
183  if (m_caloID->sample(id) == 1) {
184  index = m_caloID->tower(id) + 10 + 23;
185  }
186 
187  if (m_caloID->sample(id) == 2) {
188  index = m_caloID->tower(id) / 2 + 19 + 23;
189  }
190 
191  ros = 1;
192 
193  }
194 
196 
197  if (m_caloID->sample(id) == 0) {
198  index = m_caloID->tower(id) + 23;
199  }
200 
201  if (m_caloID->sample(id) == 1) {
202  index = m_caloID->tower(id) + 10 + 23;
203  }
204 
205  if (m_caloID->sample(id) == 2) {
206  index = m_caloID->tower(id) / 2 + 19 + 23;
207  }
208 
209  ros = 2;
210 
211  }
212 
214 
215  if (m_caloID->sample(id) == 0) {
216  index = m_caloID->tower(id) - 11 + 14;
217  }
218 
219  if (m_caloID->sample(id) == 1) {
220  index = m_caloID->tower(id) - 4 + 14;
221  }
222 
223  if (m_caloID->sample(id) == 2) {
224  index = m_caloID->tower(id) / 2 + 7 + 14;
225  }
226 
227  ros = 3;
228 
229  }
230 
231  if (m_caloID->is_tile_gap(id) && m_caloID->is_tile_positive(id)) {
232 
233  if (m_caloID->sample(id) == 1) {
234  index = 5 + 14;
235  }
236 
237  if (m_caloID->sample(id) == 2) {
238  index = 11 + 14;
239  }
240 
241  ros = 3;
242 
243  }
244 
246 
247  if (m_caloID->sample(id) == 0) {
248  index = m_caloID->tower(id) - 11 + 14;
249  }
250 
251  if (m_caloID->sample(id) == 1) {
252  index = m_caloID->tower(id) - 4 + 14;
253  }
254 
255  if (m_caloID->sample(id) == 2) {
256  index = m_caloID->tower(id) / 2 + 7 + 14;
257  }
258 
259  ros = 4;
260 
261  }
262 
263  if (m_caloID->is_tile_gap(id) && m_caloID->is_tile_negative(id)) {
264 
265  if (m_caloID->sample(id) == 1) {
266  index = 5 + 14;
267  }
268 
269  if (m_caloID->sample(id) == 2) {
270  index = 11 + 14;
271  }
272 
273  ros = 4;
274 
275  }
276 
277 }
278 
279 //
280 //____________________________________________________________________
282 
283  int ros;
284  int module;
285  int index;
286 
288 
289  unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, module);
290 
292  int nValues = calibMuID->getCalibDrawer(drawerIdx)->getObjSizeUint32();
293 
294 
295  if (index >= nValues) {
296  ATH_MSG_ERROR( "getLowThresholdValue: index out of range! -> ros/mod/num_values/ind "
297  << ros << " " << module << " " << nValues << " " << index );
298  return -999.;
299  } else {
300  ATH_MSG_DEBUG( "getLowThresholdValue: ros/mod/drawer_ind/num_values/ind " << ros << " "
301  << module << " " << drawerIdx << " " << nValues << " " << index );
302 
303  return calibMuID->getCalibDrawer(drawerIdx)->getData(0, 0, index);
304  }
305 }
306 
307 //
308 //____________________________________________________________________
310 
311  int ros;
312  int module;
313  int index;
314 
316 
317  unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, module);
318 
320  int nValues = calibMuID->getCalibDrawer(drawerIdx)->getObjSizeUint32();
321 
322  if (index >= nValues) {
323  ATH_MSG_ERROR( "getHighThresholdValue: index out of range! -> ros/mod/num_values/ind "
324  << ros << " " << module << " " << nValues << " " << index );
325 
326  return -999.;
327  } else {
328  ATH_MSG_DEBUG( "getHighThresholdValue: ros/mod/drawer_ind/num_values/ind " << ros << " "
329  << module << " " << drawerIdx << " " << nValues << " " << index );
330 
331  return calibMuID->getCalibDrawer(drawerIdx)->getData(0, 0, index);
332 
333  }
334 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TileCalibDrawerFlt.h
CaloCell_Base_ID::tower
int tower(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
TileCondToolMuID::interfaceID
static const InterfaceID & interfaceID()
Definition: TileCondToolMuID.cxx:22
index
Definition: index.py:1
TileCalibUtils.h
CaloCell_Base_ID::module
int module(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
CaloCell_Base_ID::is_tile_barrel
bool is_tile_barrel(const Identifier id) const
test if the id belongs to the Tiles barrel
TileCondToolMuID::finalize
virtual StatusCode finalize() override
Definition: TileCondToolMuID.cxx:57
ReadCondHandle.h
CaloCell_ID.h
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
python.PyAthena.module
module
Definition: PyAthena.py:134
TileCondToolMuID::getHighThreshold
void getHighThreshold(Identifier &id, int &ros, int &module, int &index) const
Definition: TileCondToolMuID.cxx:172
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloCell_Base_ID::sample
int sample(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
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
TileCondToolMuID::TileCondToolMuID
TileCondToolMuID(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TileCondToolMuID.cxx:28
CaloCell_Base_ID::is_tile_extbarrel
bool is_tile_extbarrel(const Identifier id) const
test if the id belongs to the Tiles extended barrel
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileCondToolMuID.h
CaloCell_Base_ID::is_tile_positive
bool is_tile_positive(const Identifier id) const
test if the id belongs to the Tiles positive side
TileCondToolMuID::~TileCondToolMuID
virtual ~TileCondToolMuID()
Definition: TileCondToolMuID.cxx:37
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
errorcheck.h
Helpers for checking error return status codes and reporting errors.
TileCondToolMuID::getHighThresholdValue
float getHighThresholdValue(Identifier id) const
Definition: TileCondToolMuID.cxx:309
DeMoScan.index
string index
Definition: DeMoScan.py:362
TileCondToolMuID::getLowThresholdValue
float getLowThresholdValue(Identifier id) const
Definition: TileCondToolMuID.cxx:281
CaloCell_Base_ID::is_tile_negative
bool is_tile_negative(const Identifier id) const
test if the id belongs to the Tiles negative side
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileCondToolMuID::m_caloID
const CaloCell_ID * m_caloID
Definition: TileCondToolMuID.h:38
TileCalibUtils::getDrawerIdx
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Definition: TileCalibUtils.cxx:60
TileCondToolMuID::initialize
virtual StatusCode initialize() override
Definition: TileCondToolMuID.cxx:42
AthAlgTool
Definition: AthAlgTool.h:26
CaloCell_Base_ID::is_tile_gap
bool is_tile_gap(const Identifier id) const
test if the id belongs to the Tiles gap
TileCondToolMuID::getLowThreshold
void getLowThreshold(Identifier &id, int &ros, int &module, int &index) const
Definition: TileCondToolMuID.cxx:64
TileCondToolMuID::m_calibMuIdKey
SG::ReadCondHandleKey< TileCalibDataFlt > m_calibMuIdKey
Definition: TileCondToolMuID.h:41