ATLAS Offline Software
TileCosmicsTrigger.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //*****************************************************************************
6 // Filename : TileCosmicsTrigger.cxx
7 // Author : jose.maneira@cern.ch
8 // Created : Nov 2005
9 // Reviewed : March 2007 remove std.alone ntp, output to TileEvent/TileTrigger
10 // May 2007 set 8 boards
11 //
12 // DESCRIPTION:
13 // Implement the algorithm
14 //
15 // HISTORY:
16 //
17 // BUGS:
18 //
19 //*****************************************************************************
20 
21 //TileCalo include
24 
25 // Calo include
27 
28 // Athena includes
30 #include "StoreGate/ReadHandle.h"
31 #include "StoreGate/WriteHandle.h"
32 
33 //Gaudi includes
34 #include "GaudiKernel/Bootstrap.h"
35 #include "GaudiKernel/ISvcLocator.h"
36 #include "GaudiKernel/IDataProviderSvc.h"
37 #include "GaudiKernel/SmartDataPtr.h"
38 
40 
41 TileCosmicsTrigger::TileCosmicsTrigger(const std::string& name, ISvcLocator* pSvcLocator)
42  : AthAlgorithm(name, pSvcLocator)
43  , m_TThreshold(5.0)
44  , m_NBOARDS(8)
45  , m_NDRAWERSPERBOARD(12)
46  //, m_NTOWERSPERDRAWER(8)
47  , m_TT_ID(0)
48  , m_TTHash(0)
49 {
50  for (int iboard = 0; iboard < m_NBOARDS; iboard++) {
51  m_connectedDrawers[iboard].resize(m_NDRAWERSPERBOARD);
60  }
61 
62 //------------------------------------------------------------------
63 // Setting default configuration
64 // See talk by Christophe Clement March 1, 2007
65 // -----------------------------------------------------------------
66 // Board Connected to
67 // 1 bottom LBA
68 // 2 bottom EBA
69 // 3 top LBA
70 // 4 top EBA
71 // 5 bottom LBC
72 // 6 bottom EBC
73 // 7 top LBC
74 // 8 top EBC
75 //-------------------------------------------------------------------
76 
77  m_connectedDrawers1[0] = "LBA43";
78  m_connectedDrawers1[1] = "LBA44";
79  m_connectedDrawers1[2] = "LBA45";
80  m_connectedDrawers1[3] = "LBA46";
81  m_connectedDrawers1[4] = "LBA47";
82  m_connectedDrawers1[5] = "LBA48";
83  m_connectedDrawers1[6] = "LBA49";
84  m_connectedDrawers1[7] = "LBA50";
85  m_connectedDrawers1[8] = "LBA51";
86  m_connectedDrawers1[9] = "LBA52";
87  m_connectedDrawers1[10] = "LBA53";
88  m_connectedDrawers1[11] = "LBA54";
89 
90  m_connectedDrawers2[0] = "EBA43";
91  m_connectedDrawers2[1] = "EBA44";
92  m_connectedDrawers2[2] = "EBA45";
93  m_connectedDrawers2[3] = "EBA46";
94  m_connectedDrawers2[4] = "EBA47";
95  m_connectedDrawers2[5] = "EBA48";
96  m_connectedDrawers2[6] = "EBA49";
97  m_connectedDrawers2[7] = "EBA50";
98  m_connectedDrawers2[8] = "EBA51";
99  m_connectedDrawers2[9] = "EBA52";
100  m_connectedDrawers2[10] = "EBA53";
101  m_connectedDrawers2[11] = "EBA54";
102 
103  m_connectedDrawers3[0] = "LBA11";
104  m_connectedDrawers3[1] = "LBA12";
105  m_connectedDrawers3[2] = "LBA13";
106  m_connectedDrawers3[3] = "LBA14";
107  m_connectedDrawers3[4] = "LBA15";
108  m_connectedDrawers3[5] = "LBA16";
109  m_connectedDrawers3[6] = "LBA17";
110  m_connectedDrawers3[7] = "LBA18";
111  m_connectedDrawers3[8] = "LBA19";
112  m_connectedDrawers3[9] = "LBA20";
113  m_connectedDrawers3[10] = "LBA21";
114  m_connectedDrawers3[11] = "LBA22";
115 
116  m_connectedDrawers4[0] = "EBA11";
117  m_connectedDrawers4[1] = "EBA12";
118  m_connectedDrawers4[2] = "EBA13";
119  m_connectedDrawers4[3] = "EBA14";
120  m_connectedDrawers4[4] = "EBA15";
121  m_connectedDrawers4[5] = "EBA16";
122  m_connectedDrawers4[6] = "EBA17";
123  m_connectedDrawers4[7] = "EBA18";
124  m_connectedDrawers4[8] = "EBA19";
125  m_connectedDrawers4[9] = "EBA20";
126  m_connectedDrawers4[10] = "EBA21";
127  m_connectedDrawers4[11] = "EBA22";
128 
129  m_connectedDrawers5[0] = "LBC43";
130  m_connectedDrawers5[1] = "LBC44";
131  m_connectedDrawers5[2] = "LBC45";
132  m_connectedDrawers5[3] = "LBC46";
133  m_connectedDrawers5[4] = "LBC47";
134  m_connectedDrawers5[5] = "LBC48";
135  m_connectedDrawers5[6] = "LBC49";
136  m_connectedDrawers5[7] = "LBC50";
137  m_connectedDrawers5[8] = "LBC51";
138  m_connectedDrawers5[9] = "LBC52";
139  m_connectedDrawers5[10] = "LBC53";
140  m_connectedDrawers5[11] = "LBC54";
141 
142  m_connectedDrawers6[0] = "EBC43";
143  m_connectedDrawers6[1] = "EBC44";
144  m_connectedDrawers6[2] = "EBC45";
145  m_connectedDrawers6[3] = "EBC46";
146  m_connectedDrawers6[4] = "EBC47";
147  m_connectedDrawers6[5] = "EBC48";
148  m_connectedDrawers6[6] = "EBC49";
149  m_connectedDrawers6[7] = "EBC50";
150  m_connectedDrawers6[8] = "EBC51";
151  m_connectedDrawers6[9] = "EBC52";
152  m_connectedDrawers6[10] = "EBC53";
153  m_connectedDrawers6[11] = "EBC54";
154 
155  m_connectedDrawers7[0] = "LBC11";
156  m_connectedDrawers7[1] = "LBC12";
157  m_connectedDrawers7[2] = "LBC13";
158  m_connectedDrawers7[3] = "LBC14";
159  m_connectedDrawers7[4] = "LBC15";
160  m_connectedDrawers7[5] = "LBC16";
161  m_connectedDrawers7[6] = "LBC17";
162  m_connectedDrawers7[7] = "LBC18";
163  m_connectedDrawers7[8] = "LBC19";
164  m_connectedDrawers7[9] = "LBC20";
165  m_connectedDrawers7[10] = "LBC21";
166  m_connectedDrawers7[11] = "LBC22";
167 
168  m_connectedDrawers8[0] = "EBC11";
169  m_connectedDrawers8[1] = "EBC12";
170  m_connectedDrawers8[2] = "EBC13";
171  m_connectedDrawers8[3] = "EBC14";
172  m_connectedDrawers8[4] = "EBC15";
173  m_connectedDrawers8[5] = "EBC16";
174  m_connectedDrawers8[6] = "EBC17";
175  m_connectedDrawers8[7] = "EBC18";
176  m_connectedDrawers8[8] = "EBC19";
177  m_connectedDrawers8[9] = "EBC20";
178  m_connectedDrawers8[10] = "EBC21";
179  m_connectedDrawers8[11] = "EBC22";
180 
181  declareProperty("ConnectedDrawers1", m_connectedDrawers1);
182  declareProperty("ConnectedDrawers2", m_connectedDrawers2);
183  declareProperty("ConnectedDrawers3", m_connectedDrawers3);
184  declareProperty("ConnectedDrawers4", m_connectedDrawers4);
185  declareProperty("ConnectedDrawers5", m_connectedDrawers5);
186  declareProperty("ConnectedDrawers6", m_connectedDrawers6);
187  declareProperty("ConnectedDrawers7", m_connectedDrawers7);
188  declareProperty("ConnectedDrawers8", m_connectedDrawers8);
189  declareProperty("Threshold", m_TThreshold);
190 
191  // fix coverity complaints about these not being initialized in constructor
192  for (int i = 0; i < m_NMaxTowers; i++) {
193  m_connectedTowers[i] = 0;
194  m_firedTowers[i] = 0;
195  m_towerSum[i] = 0.0;
196  m_boardOfTower[i] = 0;
197  }
198 }
199 
201 }
202 
203 //****************************************************************************
204 //* Initialization
205 //****************************************************************************
206 
208 
209 
210 // retrieve TileID helper from det store
211 
213 
214 
215 // convert string input into vector
216 
217  m_TTHash = new TileTTL1Hash();
219  for (int i = 0; i < m_NMaxTowers; i++)
220  m_connectedTowers[i] = 0;
221 
222  for (int idrawer = 0; idrawer < m_NDRAWERSPERBOARD; idrawer++) {
223  m_connectedDrawers[0][idrawer] = m_connectedDrawers1[idrawer];
224  m_connectedDrawers[1][idrawer] = m_connectedDrawers2[idrawer];
225  m_connectedDrawers[2][idrawer] = m_connectedDrawers3[idrawer];
226  m_connectedDrawers[3][idrawer] = m_connectedDrawers4[idrawer];
227  m_connectedDrawers[4][idrawer] = m_connectedDrawers5[idrawer];
228  m_connectedDrawers[5][idrawer] = m_connectedDrawers6[idrawer];
229  m_connectedDrawers[6][idrawer] = m_connectedDrawers7[idrawer];
230  m_connectedDrawers[7][idrawer] = m_connectedDrawers8[idrawer];
231  }
232  for (int iboard = 0; iboard < m_NBOARDS; iboard++) {
233  for (int idrawer = 0; idrawer < m_NDRAWERSPERBOARD; idrawer++) {
234  if (m_connectedDrawers[iboard][idrawer] == "") continue;
235  bool failure = 0;
236  int section = 0;
237  int side = 0;
238  // get section (long or extended barrel)
239  if (m_connectedDrawers[iboard][idrawer][0] == 'L'
240  || m_connectedDrawers[iboard][idrawer][0] == 'l') {
241  section = 1;
242  } else if (m_connectedDrawers[iboard][idrawer][0] == 'E'
243  || m_connectedDrawers[iboard][idrawer][0] == 'e') {
244  section = 2;
245  } else {
246  failure = 1;
247  }
248  // get side (positive or negative)
249  if (m_connectedDrawers[iboard][idrawer][2] == 'A'
250  || m_connectedDrawers[iboard][idrawer][2] == 'a') {
251  side = 1;
252  } else if (m_connectedDrawers[iboard][idrawer][2] == 'C'
253  || m_connectedDrawers[iboard][idrawer][2] == 'c') {
254  side = -1;
255  } else {
256  failure = 1;
257  }
258  int phi = -1 + atoi(m_connectedDrawers[iboard][idrawer].substr(3, m_connectedDrawers[iboard][idrawer].length() - 3).c_str());
259 
260  if (phi < 0 || phi > 63) failure = 1;
261 
262  if (failure) {
263  ATH_MSG_ERROR( "Invalid Tile Drawer " << m_connectedDrawers[iboard][idrawer] );
264  return StatusCode::FAILURE;
265  }
266  int mineta, maxeta;
267  if (section == 1) {
268  mineta = 0;
269  maxeta = 7;
270  } else {
271  mineta = 9;
272  maxeta = 14;
273  }
274  ATH_MSG_DEBUG( "Board " << iboard
275  << " Drawer " << idrawer
276  << " " << m_connectedDrawers[iboard][idrawer]
277  << " Section " << section
278  << " Side " << side
279  << " Phi " << phi );
280 
281  for (int ieta = mineta; ieta <= maxeta; ieta++) {
282  Identifier ttid = m_TT_ID->tower_id(side, 1, 0, ieta, phi);
283  int index = m_TTHash->operator()(m_TT_ID->tower_hash(ttid));
285  m_boardOfTower[index] = iboard;
286  }
287  }
288  }
289 
290  int nt = 0;
291  for (int i = 0; i < m_NMaxTowers; i++) {
292  ATH_MSG_DEBUG( "tower " << i << " connected " << m_connectedTowers[i] );
293  if (m_connectedTowers[i] == 1) nt++;
294  }
295 
296  ATH_CHECK( m_ttl1ContainerKey.initialize() );
297  ATH_CHECK( m_triggerContainerKey.initialize() );
298 
299  ATH_MSG_INFO( "Initialization completed, number of towers " << nt );
300 
301  return StatusCode::SUCCESS;
302 }
303 
304 //****************************************************************************
305 //* Execution
306 //****************************************************************************
307 
309 
310  // step1: read TileTTL1s from TDS
311  SG::ReadHandle<TileTTL1Container> ttl1Container;
312  ATH_CHECK( ttl1Container.isValid() );
313  ATH_MSG_DEBUG( "Loaded TileTTL1Container: " << ttl1Container.key() );
314 
316  ATH_CHECK( triggerContainer.record(std::make_unique<TileTriggerContainer>()) );
317 
318  // step2: reset towers
319  for (int i = 0; i < m_NMaxTowers; i++) {
320  m_firedTowers[i] = 0;
321  m_towerSum[i] = 0.;
322  }
323 
324  int nbacktowers = 0;
325  int nchan = 0;
326 
327  Identifier p_maxTowerID;
328  double p_maxTowerSum = 0;
329  std::vector<Identifier> p_boardTowerID;
330  std::vector<double> p_boardTowerSum;
331  std::vector<Identifier> p_backTowerID;
332  std::vector<double> p_backTowerSum;
333  p_boardTowerID.resize(m_NBOARDS);
334  p_boardTowerSum.resize(m_NBOARDS);
335  p_backTowerID.resize(NMAXTOWERS);
336  p_backTowerSum.resize(NMAXTOWERS);
337 
338  // step3: check which towers fired the discriminator
339  TileTTL1Container::const_iterator it = ttl1Container->begin();
340  TileTTL1Container::const_iterator end = ttl1Container->end();
341 
342  for (; it != end; ++it) {
343  const TileTTL1 * cinp = (*it);
344  Identifier id = cinp->TTL1_ID();
345 
346  std::vector<float> samples = cinp->fsamples();
347  samples.resize(1);
348 
349  ATH_MSG_VERBOSE( " ichan=" << nchan
350  << " " << m_TT_ID->pos_neg_z(id)
351  << " /"<< m_TT_ID->eta(id)
352  << " /" << m_TT_ID->phi(id)
353  << " peak =" << samples[0] );
354 
355 
356  if (samples[0] > m_TThreshold) {
357  int index = m_TTHash->operator()(m_TT_ID->tower_hash(id));
358  if (m_connectedTowers[index]) {
359  m_firedTowers[index] = 1;
360  m_towerSum[index] = samples[0];
361  if (samples[0] > p_maxTowerSum) {
362  p_maxTowerSum = samples[0];
363  p_maxTowerID = id;
364  }
365  }
366  }
367 
368  nchan++;
369  if (nchan >= m_NMaxTowers) {
370  ATH_MSG_DEBUG( "Number of ttl1s exceeds maximum (" << m_NMaxTowers << "), ignore all the rest" );
371  break;
372  }
373  }
374 
375  // step4: compute tower coincidence logic
376  int phi1, phi2;
377  phi1 = phi2 = 0;
378 
379  Identifier id1;
380  Identifier id2;
381  // register maximum tower in each board
382  for (int i = 0; i < m_NMaxTowers; i++) {
383  if (m_firedTowers[i] == 0) continue;
385  if (m_towerSum[i] > p_boardTowerSum[m_boardOfTower[i]]) {
387  p_boardTowerID[m_boardOfTower[i]] = id1;
388  p_boardTowerSum[m_boardOfTower[i]] = m_towerSum[i];
389  }
390  }
391 
392  // loop through all tower pairs for back-to-back coincidence
393  for (int i = 0; i < m_NMaxTowers - 1; i++) {
394  if (m_firedTowers[i] == 0) continue;
396  for (int j = i + 1; j < m_NMaxTowers; j++) {
397  // check back-to-back trigger
398  if (m_firedTowers[j] == 0) continue;
400  phi1 = m_TT_ID->phi(id1);
401  phi2 = m_TT_ID->phi(id2);
402  if ((std::max(phi1, phi2) - std::min(phi1, phi2)) != 32) continue;
403  if (m_TT_ID->pos_neg_z(id1) == m_TT_ID->pos_neg_z(id2)) continue;
404  p_backTowerID[nbacktowers] = id1;
405  p_backTowerSum[nbacktowers] = m_towerSum[i];
406  nbacktowers++;
407  p_backTowerID[nbacktowers] = id2;
408  p_backTowerSum[nbacktowers] = m_towerSum[j];
409  nbacktowers++;
410  }
411  }
412 
413  p_backTowerID.resize(nbacktowers);
414  p_backTowerSum.resize(nbacktowers);
415 
416  triggerContainer->push_back(std::make_unique<TileTrigger>(p_maxTowerID, p_maxTowerSum,
417  p_boardTowerID, p_boardTowerSum,
418  p_backTowerID, p_backTowerSum));
419 
420  ATH_MSG_DEBUG( "TileTriggerContainer registered successfully (" << triggerContainer.key() << ")" );
421  // Execution completed.
422  ATH_MSG_DEBUG( "execute() completed successfully" );
423 
424  return StatusCode::SUCCESS;
425 }
426 
427 //****************************************************************************
428 //* Finalize
429 //****************************************************************************
430 
432 
433  ATH_MSG_INFO( "finalize() completed successfully" );
434 
435  return StatusCode::SUCCESS;
436 }
437 
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
TileCosmicsTrigger::m_boardOfTower
int m_boardOfTower[NMAXTOWERS]
Definition: TileCosmicsTrigger.h:95
max
#define max(a, b)
Definition: cfImp.cxx:41
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TileTTL1::TTL1_ID
const Identifier & TTL1_ID() const
Definition: TileTTL1.cxx:66
TileCosmicsTrigger::m_towerSum
float m_towerSum[NMAXTOWERS]
Definition: TileCosmicsTrigger.h:94
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
TileTTL1::fsamples
const std::vector< float > & fsamples() const
Definition: TileTTL1.cxx:77
TileCosmicsTrigger.h
skel.it
it
Definition: skel.GENtoEVGEN.py:423
TileCosmicsTrigger::initialize
StatusCode initialize()
Definition: TileCosmicsTrigger.cxx:207
TileTTL1Hash::identifier
ID identifier(int i) const
reverse conversion
Definition: TileTTL1Hash.cxx:64
TileTTL1
Definition: TileTTL1.h:26
TileCosmicsTrigger::m_connectedDrawers6
std::vector< std::string > m_connectedDrawers6
Definition: TileCosmicsTrigger.h:80
PlotCalibFromCool.nchan
nchan
Definition: PlotCalibFromCool.py:564
TileCosmicsTrigger::m_NBOARDS
int m_NBOARDS
Definition: TileCosmicsTrigger.h:88
TileCosmicsTrigger::m_NMaxTowers
static const int m_NMaxTowers
Definition: TileCosmicsTrigger.h:87
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
TileCosmicsTrigger::m_connectedDrawers
std::vector< std::string > m_connectedDrawers[8]
Definition: TileCosmicsTrigger.h:74
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
TRT::Hit::side
@ side
Definition: HitInfo.h:83
CaloLVL1_ID::phi
int phi(const Identifier id) const
return phi according to :
Definition: CaloLVL1_ID.h:659
WriteHandle.h
Handle class for recording to StoreGate.
TileCosmicsTrigger::finalize
StatusCode finalize()
Definition: TileCosmicsTrigger.cxx:431
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TileTTL1Hash::initialize
void initialize(const CaloLVL1_ID *caloLVL1_ID)
Definition: TileTTL1Hash.cxx:37
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:564
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
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
TileCosmicsTrigger::m_connectedDrawers1
std::vector< std::string > m_connectedDrawers1
Definition: TileCosmicsTrigger.h:75
TileTTL1Hash.h
TileCosmicsTrigger::m_connectedDrawers2
std::vector< std::string > m_connectedDrawers2
Definition: TileCosmicsTrigger.h:76
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
TileCosmicsTrigger::m_triggerContainerKey
SG::WriteHandleKey< TileTriggerContainer > m_triggerContainerKey
Definition: TileCosmicsTrigger.h:104
AthAlgorithm
Definition: AthAlgorithm.h:47
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TileCosmicsTrigger::m_connectedDrawers7
std::vector< std::string > m_connectedDrawers7
Definition: TileCosmicsTrigger.h:81
min
#define min(a, b)
Definition: cfImp.cxx:40
TileCosmicsTrigger::m_connectedTowers
bool m_connectedTowers[NMAXTOWERS]
Definition: TileCosmicsTrigger.h:92
TileCosmicsTrigger::m_firedTowers
bool m_firedTowers[NMAXTOWERS]
Definition: TileCosmicsTrigger.h:93
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
errorcheck.h
Helpers for checking error return status codes and reporting errors.
CaloLVL1_ID::eta
int eta(const Identifier id) const
return eta according to :
Definition: CaloLVL1_ID.h:653
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
TileCosmicsTrigger::m_TT_ID
const CaloLVL1_ID * m_TT_ID
Definition: TileCosmicsTrigger.h:100
SG::VarHandleBase::key
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx:64
CaloLVL1_ID::pos_neg_z
int pos_neg_z(const Identifier id) const
return pos_neg_z according to :
Definition: CaloLVL1_ID.h:635
TileCosmicsTrigger::m_connectedDrawers8
std::vector< std::string > m_connectedDrawers8
Definition: TileCosmicsTrigger.h:82
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
DeMoScan.index
string index
Definition: DeMoScan.py:362
CaloLVL1_ID.h
TileCosmicsTrigger::m_connectedDrawers4
std::vector< std::string > m_connectedDrawers4
Definition: TileCosmicsTrigger.h:78
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
TileTTL1Hash
Hash table for TileTTL1 identifiers
Definition: TileTTL1Hash.h:38
TileCosmicsTrigger::TileCosmicsTrigger
TileCosmicsTrigger(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TileCosmicsTrigger.cxx:41
TileCosmicsTrigger::m_TThreshold
float m_TThreshold
Definition: TileCosmicsTrigger.h:83
CxxUtils::atoi
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
Definition: Control/CxxUtils/Root/StringUtils.cxx:85
CaloLVL1_ID::tower_hash
IdentifierHash tower_hash(Identifier towerId) const
create hash id from tower id
Definition: CaloLVL1_ID.h:728
beamspotnt.nt
def nt
Definition: bin/beamspotnt.py:1063
TileCosmicsTrigger::m_connectedDrawers3
std::vector< std::string > m_connectedDrawers3
Definition: TileCosmicsTrigger.h:77
ReadHandle.h
Handle class for reading from StoreGate.
section
void section(const std::string &sec)
Definition: TestTriggerMenuAccess.cxx:22
TileCosmicsTrigger::m_ttl1ContainerKey
SG::ReadHandleKey< TileTTL1Container > m_ttl1ContainerKey
Definition: TileCosmicsTrigger.h:103
CaloLVL1_ID::tower_id
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
Definition: CaloLVL1_ID.h:429
TileCosmicsTrigger::~TileCosmicsTrigger
virtual ~TileCosmicsTrigger()
Definition: TileCosmicsTrigger.cxx:200
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
NMAXTOWERS
#define NMAXTOWERS
Definition: TileCosmicsTrigger.h:43
TileCosmicsTrigger::execute
StatusCode execute()
Definition: TileCosmicsTrigger.cxx:308
TileCosmicsTrigger::m_TTHash
TileTTL1Hash * m_TTHash
Definition: TileCosmicsTrigger.h:101
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
TileCosmicsTrigger::m_NDRAWERSPERBOARD
int m_NDRAWERSPERBOARD
Definition: TileCosmicsTrigger.h:89
TileCosmicsTrigger::m_connectedDrawers5
std::vector< std::string > m_connectedDrawers5
Definition: TileCosmicsTrigger.h:79