ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::TRT_StrawStatus Class Reference

#include <TRT_StrawStatus.h>

Inheritance diagram for InDet::TRT_StrawStatus:
Collaboration diagram for InDet::TRT_StrawStatus:

Public Member Functions

 TRT_StrawStatus (const std::string &name, ISvcLocator *pSvcLocator)
 Standard Athena-Algorithm Constructor. More...
 
 ~TRT_StrawStatus ()
 Default Destructor. More...
 
StatusCode initialize ()
 standard Athena-Algorithm method More...
 
StatusCode execute ()
 standard Athena-Algorithm method More...
 
StatusCode finalize ()
 standard Athena-Algorithm method More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef std::array< std::array< std::array< std::array< int, 6 >, 5482 >, 32 >, 2 > ACCHITS_t
 accumulate hits, last index: 0 - all hits, 1 - hits on track, 2 - all HT (TR) hits, 3 - HT (TR) hits on track More...
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void clear ()
 
StatusCode reportResults ()
 
void printDetailedInformation ()
 
void myStrawIndex (Identifier id, int *index)
 function that returns straw index (in range 0-5481; 0-1641 for barrel, the rest for endcap) same convention as for TRT_monitoring (copied from there) More...
 
int barrelStrawNumber (int strawNumber, int strawlayerNumber, int LayerNumber)
 
int endcapStrawNumber (int strawNumber, int strawLayerNumber, int LayerNumber)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ServiceHandle< ITRT_HWMappingSvcm_mapSvc {this,"HWMapSvc","TRT_HWMappingSvc","" }
 
ServiceHandle< ITRT_DCS_ConditionsSvcm_DCSSvc {this,"InDetTRT_DCS_ConditionsSvc","TRT_DCS_ConditionsSvc","" }
 
ServiceHandle< ITRT_StrawNeighbourSvcm_TRTStrawNeighbourSvc {this,"TRT_StrawNeighbourSvc","TRT_StrawNeighbourSvc","retrieve barrel and end-cap straw number later on, as well as DTMROC" }
 
ToolHandle< ITRT_StrawStatusSummaryToolm_TRTStrawStatusSummaryTool {this, "TRT_StrawStatusSummaryTool", "ITRT_StrawStatusSummaryTool", ""}
 
ToolHandle< Trk::ITrackHoleSearchToolm_trt_hole_finder {this, "trt_hole_finder", "Trk::ITrackHoleSearchTool", ""}
 
PublicToolHandle< Trk::IUpdatorm_updator {this, "KalmanUpdator", "Trk::KalmanUpdator/TrkKalmanUpdator",""}
 
Gaudi::Property< double > m_locR_cut {this, "locR_cut", 1.4, ""}
 
Gaudi::Property< int > m_skipBusyEvents {this, "skipBusyEvents", 0, ""}
 
Gaudi::Property< int > m_printDetailedInformation {this, "printDetailedInformation", 0, ""}
 
Gaudi::Property< std::string > m_fileName {this, "outputFileName", "TRT_StrawStatusOutput", ""}
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {this,"EventInfoKey","EventInfo","RHK to retrieve xAOD::EventInfo"}
 
SG::ReadHandleKey< TRT_RDO_Containerm_rdoContainerKey {this,"RDO_ContainerKey","TRT_RDOs","RHK to retrieve TRT RDO's"}
 
SG::ReadHandleKey< DataVector< Trk::Track > > m_tracksName {this,"tracksCollectionKey","CombinedInDetTracks","RHK to retrieve CombinedInDetTracks"}
 
SG::ReadHandleKey< xAOD::VertexContainerm_vxContainerKey {this,"VxContainerKey","PrimaryVertices","RHK to retrieve VX Primary candidates"}
 
int m_nEvents
 returns index of hardware units: board, chip, pad private fix for now, will call TRTStrawNeighbourSvc when available number boards 0-9 barrel, 0-19 endcap (first 12 on A wheels, ordering from smaller to larger |z|) number chips 0-103 barrel, 0-239 endcap number pads: chips x 2 More...
 
int m_runNumber
 
std::unique_ptr< ACCHITS_tm_accumulateHits
 
const TRT_IDm_TRTHelper
 
std::atomic< int > m_printStatusCount {0}
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

This algorithm finds dead or hot TRT straws / chips / boards based on
occupancy and hits on track. To be used in calibration stream (to mask off dead regions before processing)

Author
Sasa Fratina sasa..nosp@m.frat.nosp@m.ina@c.nosp@m.ern..nosp@m.ch

Definition at line 56 of file TRT_StrawStatus.h.

Member Typedef Documentation

◆ ACCHITS_t

typedef std::array<std::array<std::array<std::array<int,6>,5482>,32>,2> InDet::TRT_StrawStatus::ACCHITS_t
private

accumulate hits, last index: 0 - all hits, 1 - hits on track, 2 - all HT (TR) hits, 3 - HT (TR) hits on track

Definition at line 113 of file TRT_StrawStatus.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TRT_StrawStatus()

InDet::TRT_StrawStatus::TRT_StrawStatus ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Standard Athena-Algorithm Constructor.

Definition at line 39 of file TRT_StrawStatus.cxx.

40 :
41 AthAlgorithm(name,pSvcLocator),
42 m_nEvents(0), m_runNumber(0),
43 m_TRTHelper(nullptr)
44 {}

◆ ~TRT_StrawStatus()

InDet::TRT_StrawStatus::~TRT_StrawStatus ( )

Default Destructor.

Definition at line 48 of file TRT_StrawStatus.cxx.

49 {}

Member Function Documentation

◆ barrelStrawNumber()

int InDet::TRT_StrawStatus::barrelStrawNumber ( int  strawNumber,
int  strawlayerNumber,
int  LayerNumber 
)
private

◆ clear()

void InDet::TRT_StrawStatus::clear ( )
private

Definition at line 280 of file TRT_StrawStatus.cxx.

280  {
281  m_nEvents = 0;
282  *m_accumulateHits = {};
283  return;
284 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ endcapStrawNumber()

int InDet::TRT_StrawStatus::endcapStrawNumber ( int  strawNumber,
int  strawLayerNumber,
int  LayerNumber 
)
private

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode InDet::TRT_StrawStatus::execute ( )

standard Athena-Algorithm method

Definition at line 89 of file TRT_StrawStatus.cxx.

89  {
90 
92  StatusCode sc = StatusCode::SUCCESS;
93  if (not eventInfo.isValid()) {
94  ATH_MSG_ERROR( "Unable to retrieve Event Info " );
95  return StatusCode::FAILURE;
96  }
97  int runNumber = (int) eventInfo->runNumber();
98  if (runNumber != m_runNumber) {
99  if (m_nEvents) { ATH_CHECK( reportResults() ); clear(); }
101  }
102  int lumiBlock0 =eventInfo->lumiBlock();
104 
105  if (not rdoContainer.isValid()) {
106  ATH_MSG_ERROR( "no TRT_RDO container available " );
107  return StatusCode::FAILURE;
108  }
110  if (not trkCollection.isValid()) {
111  ATH_MSG_ERROR( "Could not find Tracks Collection: " << m_tracksName );
112  return StatusCode::FAILURE;
113  }
114 
115  //================ Event selection
116 
118  if (not vertices.isValid()) {
119  ATH_MSG_DEBUG ("Couldn't retrieve VertexContainer with key: PrimaryVertices");
120  return StatusCode::SUCCESS; // just skip to next event in case of no vertexcontainer
121  }
122 
123  int countVertices(0);
124  for (const xAOD::Vertex* vx : *(vertices.cptr()) ) {
125  if (vx->vertexType() == xAOD::VxType::PriVtx) {
126  if ( vx-> nTrackParticles() >= 3) countVertices++;
127  }
128  }
129  if (countVertices < 1) {
130  ATH_MSG_INFO( "no vertices with at least 3 tracks found" );
131  return StatusCode::SUCCESS;
132  }
133 
134  if (m_skipBusyEvents) { // cosmic running
135  int countRDOhitsInEvent(0);
136  for (TRT_RDO_Container::const_iterator rdoIt = rdoContainer->begin(); rdoIt != rdoContainer->end(); ++rdoIt) {
137  const InDetRawDataCollection<TRT_RDORawData>* TRTCollection(*rdoIt);
138  if (not TRTCollection) continue;
139  for (DataVector<TRT_RDORawData>::const_iterator trtIt = TRTCollection->begin(); trtIt != TRTCollection->end(); ++trtIt) {
140  countRDOhitsInEvent++;
141  }
142  }
143  if (countRDOhitsInEvent>100000) {
144  ATH_MSG_INFO( "N RDO hits in event greater than 100000: " << countRDOhitsInEvent << ", exiting" );
145  return sc;
146  }
147 
148  if (trkCollection->size() > 10) {
149  ATH_MSG_INFO( "N tracks greater than 10: " << trkCollection->size() << ", exiting" );
150  return sc;
151  }
152  }
153 
154  //================ End event selection
155 
156  //================ Loop over all tracks, accumulate hits on track, also find holes on track
157 
158  std::vector<Identifier> holeIdentifiers;
159  std::vector<Identifier> holeIdentifiersWithHits; // holes on straws that have hits, it is just that the hit was not associalted to a track
160  for ( DataVector<Trk::Track>::const_iterator trackIt = trkCollection->begin(); trackIt != trkCollection->end(); ++trackIt) {
161  const Trk::Track *track = *trackIt;
162  //=== select track
163  const Trk::Perigee* perigee = (*trackIt)->perigeeParameters();
164  if ( not perigee ) { ATH_MSG_ERROR( "Trk::Perigee missing" ); continue; }
165  if ( std::abs(perigee->pT())/CLHEP::GeV < 1. ) continue; // 1 GeV pT cut
166 
167  const DataVector<const Trk::TrackStateOnSurface>* trackStates = (**trackIt).trackStateOnSurfaces();
168  if ( not trackStates ) { ATH_MSG_ERROR( "Trk::TrackStateOnSurface empty" ); continue; }
169 
170  int n_pixel_hits(0), n_sct_hits(0), n_trt_hits(0); // count hits, require minimal number of all hits
171  for ( DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStatesIt = trackStates->begin(); trackStatesIt != trackStates->end(); ++trackStatesIt ) {
172  if ( *trackStatesIt == nullptr ) { ATH_MSG_ERROR( "*trackStatesIt == 0" ); continue; }
173 
174  if ( !((*trackStatesIt)->type(Trk::TrackStateOnSurface::Measurement)) ) continue; // this skips outliers
175 
176  if ( dynamic_cast<const InDet::TRT_DriftCircleOnTrack*> ( (*trackStatesIt)->measurementOnTrack() ) ) n_trt_hits++;
177  else if ( dynamic_cast<const InDet::SCT_ClusterOnTrack*> ( (*trackStatesIt)->measurementOnTrack() ) ) n_sct_hits++;
178  else if( dynamic_cast<const InDet::PixelClusterOnTrack*> ( (*trackStatesIt)->measurementOnTrack() ) ) n_pixel_hits++;
179  }
180  if (n_pixel_hits<2 || n_sct_hits < 6 || n_trt_hits<15) continue; // end count hits
181 
182  //=== end select track
183 
184  //=== loop over all hits on track, accumulate them
185 
186  for ( DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStatesIt = trackStates->begin(); trackStatesIt != trackStates->end(); ++trackStatesIt ) {
187 
188  if ( *trackStatesIt == nullptr ) { ATH_MSG_ERROR( "*trackStatesIt == 0" ); continue; }
189 
190  if ( !((*trackStatesIt)->type(Trk::TrackStateOnSurface::Measurement)) ) continue; // this skips outliers
191 
192  const InDet::TRT_DriftCircleOnTrack *driftCircleOnTrack = dynamic_cast<const InDet::TRT_DriftCircleOnTrack *>( (*trackStatesIt)->measurementOnTrack() );
193  if ( not driftCircleOnTrack ) continue; // not TRT measurement - this way, keep both hits and outliers
194 
195  const Trk::TrackStateOnSurface& hit = **trackStatesIt;
196 
197  const Trk::TrackParameters* unbiased_track_parameters = m_updator->removeFromState( *(hit.trackParameters()),
200 
201  double unbiased_locR = unbiased_track_parameters->parameters()[Trk::locR];
202  if ( std::abs(unbiased_locR) > m_locR_cut ) continue; // same cut as the default hole search cut
203 
204  const InDet::TRT_DriftCircle *driftCircle = driftCircleOnTrack->prepRawData();
205  if ( driftCircle == nullptr ) { ATH_MSG_ERROR( "driftCircle == 0" ); continue; }
206 
207  Identifier id = driftCircle->identify();
208  int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index
209  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][1]++; // accumulate hits on track
210  if (driftCircle->highLevel()) (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][3]++; // accumulate hits on track
211 
212  } // end trackStatesIt loop
213 
214  // add holeIdentifiers - fill vector
215 
216  std::unique_ptr<const Trk::TrackStates> holes (m_trt_hole_finder->getHolesOnTrack( *track ));
217  if ( holes==nullptr ) continue; // no holes found
218  for (const Trk::TrackStateOnSurface* trackStates : *holes) {
219 
220  if ( !trackStates->type( Trk::TrackStateOnSurface::Hole ) ) { ATH_MSG_ERROR( "m_trt_hole_finder returned something that is not a hole" ); continue; }
221 
222  const Trk::TrackParameters* track_parameters = trackStates->trackParameters();
223  if (!track_parameters) { ATH_MSG_WARNING( "m_trt_hole_finder track_parameters missing" ); continue; }
224 
226  if ( !(m_TRTHelper->is_trt(id)) ) { ATH_MSG_ERROR( "m_trt_hole_finder returned something that is not a TRT hole" ); continue; }
227 
228  // add se same 1.4 mm locR selection, in case it is not on by default
229  if ( std::abs( track_parameters->parameters()[Trk::locR] ) > m_locR_cut ) continue;
230 
231  holeIdentifiers.push_back( id );
232  } // end add holeIdentifiers
233 
234  } // end trackIt loop
235 
236  //================ End loop over all tracks
237 
238  //================ Loop over all hits - it includes hits from dead straws that are masked off in drift circle creation
239 
240  for (TRT_RDO_Container::const_iterator rdoIt = rdoContainer->begin(); rdoIt != rdoContainer->end(); ++rdoIt) {
241  const InDetRawDataCollection<TRT_RDORawData>* TRTCollection(*rdoIt);
242  if (TRTCollection==nullptr) continue;
243  for (DataVector<TRT_RDORawData>::const_iterator trtIt = TRTCollection->begin(); trtIt != TRTCollection->end(); ++trtIt) {
244  Identifier id = (*trtIt)->identify();
245  int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index
246  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][0]++; // accumulate all hits
247  if ((*trtIt)->highLevel()) (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][2]++; // accumulate TR hits
248 
249  if (std::find(holeIdentifiers.begin(), holeIdentifiers.end(), id) != holeIdentifiers.end()) // a hole was found on the same straw, but hits is there
250  holeIdentifiersWithHits.push_back( id );
251  }
252  }
253 
254  //================ End loop over all hits
255 
256  //================ End loop over all holes, each time also save whether the straw with a hole had a hit
257 
258  for (unsigned int i=0; i<holeIdentifiers.size(); i++) {
259 
260  Identifier id = holeIdentifiers[i];
261 
262  int index[6]; myStrawIndex(id, index); // side, layer, phi, straw_layer, straw_within_layer, straw_index
263 
264  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][4]++;
265 
266  if (std::find(holeIdentifiersWithHits.begin(), holeIdentifiersWithHits.end(), id) != holeIdentifiersWithHits.end())
267  (*m_accumulateHits)[(index[0]>0)?0:1][index[2]][index[5]][5]++;
268  }
269 
270  //================ End loop over all hits
271 
272  m_nEvents++;
273  last_lumiBlock0 = lumiBlock0;
274  if (m_nEvents%1000==0 && msgLvl(MSG::DEBUG)) ATH_CHECK( reportResults() );
275  return sc;
276 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode InDet::TRT_StrawStatus::finalize ( )

standard Athena-Algorithm method

Definition at line 79 of file TRT_StrawStatus.cxx.

79  {
82  // Code entered here will be executed once at the end of the program run.
83  m_accumulateHits.reset();
84  return StatusCode::SUCCESS;
85 }

◆ initialize()

StatusCode InDet::TRT_StrawStatus::initialize ( )

standard Athena-Algorithm method

Definition at line 54 of file TRT_StrawStatus.cxx.

55 {
56 
57  m_accumulateHits = std::make_unique<ACCHITS_t>();
58  assert( (*m_accumulateHits)[0][0].size() == nAllStraws );
59  clear();
60 
61  // Code entered here will be executed once at program start.
62  // Initialize ReadHandleKey
64  ATH_CHECK(m_rdoContainerKey.initialize());
66  ATH_CHECK(m_vxContainerKey.initialize());
67  ATH_CHECK( detStore()->retrieve(m_TRTHelper, "TRT_ID"));
68  ATH_CHECK( m_TRTStrawNeighbourSvc.retrieve()) ;
69  ATH_CHECK( m_trt_hole_finder.retrieve() );
70  ATH_CHECK(m_updator.retrieve());
71  ATH_CHECK( m_mapSvc.retrieve());
72  ATH_CHECK( m_DCSSvc.retrieve());
73  ATH_MSG_DEBUG( "initialize() successful in " << name() << ", retrieved: ..., locR_cut = " << m_locR_cut << " mm." );
74  return StatusCode::SUCCESS;
75 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ myStrawIndex()

void InDet::TRT_StrawStatus::myStrawIndex ( Identifier  id,
int *  index 
)
private

function that returns straw index (in range 0-5481; 0-1641 for barrel, the rest for endcap) same convention as for TRT_monitoring (copied from there)

Definition at line 337 of file TRT_StrawStatus.cxx.

337  {
338  int side = m_TRTHelper->barrel_ec(id);
339  int layerNumber = m_TRTHelper->layer_or_wheel(id);
340  int strawLayerNumber = m_TRTHelper->straw_layer(id);
341  int strawNumber = m_TRTHelper->straw(id);
342  int straw(0);
343 
344  const int numberOfStraws[74] = { 0, 15, 31, 47, 63, 79, 96, 113, 130, 147, 164, 182, 200, 218, 236, 254, 273, 292, 311, 329, // layer 0, 329 straws, strawlayers 0-18
345  348, 368, 388, 408, 428, 448, 469, 490, 511, 532, 553, 575, 597, 619, 641, 663, 686, 709, 732, 755, 778, 802, 826, 849, // layer 1, 520 straws, strawLayers 0-23
346  872, 896, 920, 944, 968, 993, 1018, 1043, 1068, 1093, 1119, 1145, 1171, 1197, 1223, 1250, 1277, 1304, 1331, 1358, 1386, 1414, 1442, 1470, 1498, 1527, 1556, 1585, 1614, 1642 }; // layer 2
347 
348  if (abs(side)==1) { // barrel unique straw number
349  if (layerNumber==1) strawLayerNumber+= 19;
350  else if (layerNumber==2) strawLayerNumber+= 43;
351  straw = ( numberOfStraws[strawLayerNumber+1] - strawNumber -1 );
352  } else { // end-cap unique straw number
353  int board = layerNumber;
354  if (board<6) { board *= 2; if (strawLayerNumber>7) board++; }
355  else { board += 6; }
356  straw = board * 192 + strawNumber * 8 + strawLayerNumber % 8 ;
357  straw += 1642;
358  }
359  index[0] = side;
360  index[1] = layerNumber;
361  index[2] = m_TRTHelper->phi_module(id);
362  index[3] = strawLayerNumber;
363  index[4] = strawNumber;
364  index[5] = straw;
365  return;
366 }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ printDetailedInformation()

void InDet::TRT_StrawStatus::printDetailedInformation ( )
private

Definition at line 307 of file TRT_StrawStatus.cxx.

307  {
308  ATH_MSG_INFO( "InDet::TRT_StrawStatus::printDetailedInformation() " );
309  char fileName[300];
310  snprintf(fileName, 299,"%s.%07d_printDetailedInformation.txt", m_fileName.value().c_str(), m_runNumber);
311  FILE *f = fopen(fileName, "w");
312  for (std::vector<Identifier>::const_iterator it = m_TRTHelper->straw_layer_begin(); it != m_TRTHelper->straw_layer_end(); ++it ) {
313  for (int i=0; i<=m_TRTHelper->straw_max( *it); i++) {
314  Identifier id = m_TRTHelper->straw_id( *it, i);
315  int index[6];
316  myStrawIndex(id, index);
317  int chip, HVpad;
318  m_TRTStrawNeighbourSvc->getChip(id, chip);
319  m_TRTStrawNeighbourSvc->getPad(id, HVpad);
320  if (!m_printStatusCount) {
321  ATH_MSG_INFO( "if the code crashes on the next line, there is a problem with m_TRTStrawStatusSummarySvc not being loaded " );
322  ATH_MSG_INFO( "in that case, running with reco turned on normally solves the problem, know of no better solution at the moment" );
323  ATH_MSG_INFO( "if you do not need the detailed print information, you can also just set printDetailedInformation to 0 to avoid this crash" );
325  }
326  int status = m_TRTStrawStatusSummaryTool->get_status( id, Gaudi::Hive::currentContext() );
327  int statusTemporary = m_TRTStrawStatusSummaryTool->getStatus( id, Gaudi::Hive::currentContext() );
328  int statusPermanent = m_TRTStrawStatusSummaryTool->getStatusPermanent( id, Gaudi::Hive::currentContext() );
329  for (int j=0; j<6; j++) fprintf(f, "%d ", index[j]);
330  fprintf(f, "%d %d %d %d %d\n", chip, HVpad, status, statusTemporary, statusPermanent);
331  }
332  }
333  fclose(f);
334  return;
335 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ reportResults()

StatusCode InDet::TRT_StrawStatus::reportResults ( )
private

Definition at line 286 of file TRT_StrawStatus.cxx.

286  {
287  ATH_MSG_INFO( "InDet::TRT_StrawStatus::reportResults() for " << m_nEvents << " events." );
288  char fileName[300];
289  snprintf(fileName, 299,"%s.%07d_newFormat.txt", m_fileName.value().c_str(), m_runNumber);
290  FILE *f = fopen(fileName, "w");
291  if (!f) {
292  ATH_MSG_ERROR( "InDet::TRT_StrawStatus::reportResults: Cannot open " << fileName << " for write" );
293  return StatusCode::FAILURE;
294  }
295  fprintf(f, "%d %d %d %d %d %d %d %d %d \n", 0, 0, 0, 0, 0, 0, 0, 0, m_nEvents);
296  for (size_t i=0; i<2; i++) for (size_t j=0; j<32; j++) for (size_t k=0; k<nAllStraws; k++) {
297  int side = (i>0)?-1:1;
298  if (k>=1642) side *= 2;
299  fprintf(f, "%d %zu %zu", side, j, k);
300  for (int m=0; m<6; m++) fprintf(f, " %d", (*m_accumulateHits)[i][j][k][m]);
301  fprintf(f, "\n");
302  }
303  fclose(f);
304  return StatusCode::SUCCESS;
305 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_accumulateHits

std::unique_ptr<ACCHITS_t> InDet::TRT_StrawStatus::m_accumulateHits
private

Definition at line 114 of file TRT_StrawStatus.h.

◆ m_DCSSvc

ServiceHandle<ITRT_DCS_ConditionsSvc> InDet::TRT_StrawStatus::m_DCSSvc {this,"InDetTRT_DCS_ConditionsSvc","TRT_DCS_ConditionsSvc","" }
private

Definition at line 76 of file TRT_StrawStatus.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> InDet::TRT_StrawStatus::m_eventInfoKey {this,"EventInfoKey","EventInfo","RHK to retrieve xAOD::EventInfo"}
private

Definition at line 88 of file TRT_StrawStatus.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fileName

Gaudi::Property<std::string> InDet::TRT_StrawStatus::m_fileName {this, "outputFileName", "TRT_StrawStatusOutput", ""}
private

Definition at line 85 of file TRT_StrawStatus.h.

◆ m_locR_cut

Gaudi::Property<double> InDet::TRT_StrawStatus::m_locR_cut {this, "locR_cut", 1.4, ""}
private

Definition at line 82 of file TRT_StrawStatus.h.

◆ m_mapSvc

ServiceHandle<ITRT_HWMappingSvc> InDet::TRT_StrawStatus::m_mapSvc {this,"HWMapSvc","TRT_HWMappingSvc","" }
private

Definition at line 75 of file TRT_StrawStatus.h.

◆ m_nEvents

int InDet::TRT_StrawStatus::m_nEvents
private

returns index of hardware units: board, chip, pad private fix for now, will call TRTStrawNeighbourSvc when available number boards 0-9 barrel, 0-19 endcap (first 12 on A wheels, ordering from smaller to larger |z|) number chips 0-103 barrel, 0-239 endcap number pads: chips x 2

Definition at line 109 of file TRT_StrawStatus.h.

◆ m_printDetailedInformation

Gaudi::Property<int> InDet::TRT_StrawStatus::m_printDetailedInformation {this, "printDetailedInformation", 0, ""}
private

Definition at line 84 of file TRT_StrawStatus.h.

◆ m_printStatusCount

std::atomic<int> InDet::TRT_StrawStatus::m_printStatusCount {0}
mutableprivate

Definition at line 117 of file TRT_StrawStatus.h.

◆ m_rdoContainerKey

SG::ReadHandleKey<TRT_RDO_Container> InDet::TRT_StrawStatus::m_rdoContainerKey {this,"RDO_ContainerKey","TRT_RDOs","RHK to retrieve TRT RDO's"}
private

Definition at line 89 of file TRT_StrawStatus.h.

◆ m_runNumber

int InDet::TRT_StrawStatus::m_runNumber
private

Definition at line 110 of file TRT_StrawStatus.h.

◆ m_skipBusyEvents

Gaudi::Property<int> InDet::TRT_StrawStatus::m_skipBusyEvents {this, "skipBusyEvents", 0, ""}
private

Definition at line 83 of file TRT_StrawStatus.h.

◆ m_tracksName

SG::ReadHandleKey<DataVector<Trk::Track> > InDet::TRT_StrawStatus::m_tracksName {this,"tracksCollectionKey","CombinedInDetTracks","RHK to retrieve CombinedInDetTracks"}
private

Definition at line 90 of file TRT_StrawStatus.h.

◆ m_trt_hole_finder

ToolHandle<Trk::ITrackHoleSearchTool> InDet::TRT_StrawStatus::m_trt_hole_finder {this, "trt_hole_finder", "Trk::ITrackHoleSearchTool", ""}
private

Definition at line 79 of file TRT_StrawStatus.h.

◆ m_TRTHelper

const TRT_ID* InDet::TRT_StrawStatus::m_TRTHelper
private

Definition at line 116 of file TRT_StrawStatus.h.

◆ m_TRTStrawNeighbourSvc

ServiceHandle<ITRT_StrawNeighbourSvc> InDet::TRT_StrawStatus::m_TRTStrawNeighbourSvc {this,"TRT_StrawNeighbourSvc","TRT_StrawNeighbourSvc","retrieve barrel and end-cap straw number later on, as well as DTMROC" }
private

Definition at line 77 of file TRT_StrawStatus.h.

◆ m_TRTStrawStatusSummaryTool

ToolHandle<ITRT_StrawStatusSummaryTool> InDet::TRT_StrawStatus::m_TRTStrawStatusSummaryTool {this, "TRT_StrawStatusSummaryTool", "ITRT_StrawStatusSummaryTool", ""}
private

Definition at line 78 of file TRT_StrawStatus.h.

◆ m_updator

PublicToolHandle<Trk::IUpdator> InDet::TRT_StrawStatus::m_updator {this, "KalmanUpdator", "Trk::KalmanUpdator/TrkKalmanUpdator",""}
private

Definition at line 80 of file TRT_StrawStatus.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_vxContainerKey

SG::ReadHandleKey<xAOD::VertexContainer> InDet::TRT_StrawStatus::m_vxContainerKey {this,"VxContainerKey","PrimaryVertices","RHK to retrieve VX Primary candidates"}
private

Definition at line 91 of file TRT_StrawStatus.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDet::TRT_StrawStatus::m_rdoContainerKey
SG::ReadHandleKey< TRT_RDO_Container > m_rdoContainerKey
Definition: TRT_StrawStatus.h:89
Trk::TrackStateOnSurface::trackParameters
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
TRT::Hit::straw
@ straw
Definition: HitInfo.h:82
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
TRT_ID::straw_max
int straw_max(const Identifier &id) const
Definition: TRT_ID.cxx:803
InDet::TRT_StrawStatus::m_DCSSvc
ServiceHandle< ITRT_DCS_ConditionsSvc > m_DCSSvc
Definition: TRT_StrawStatus.h:76
InDet::TRT_StrawStatus::m_mapSvc
ServiceHandle< ITRT_HWMappingSvc > m_mapSvc
Definition: TRT_StrawStatus.h:75
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
InDet::TRT_StrawStatus::m_accumulateHits
std::unique_ptr< ACCHITS_t > m_accumulateHits
Definition: TRT_StrawStatus.h:114
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
index
Definition: index.py:1
Trk::ParametersBase::associatedSurface
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetDD::holes
@ holes
Definition: InDetDD_Defs.h:17
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::Surface::associatedDetectorElementIdentifier
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
last_lumiBlock0
int last_lumiBlock0
Definition: TRT_StrawStatus.cxx:31
skel.it
it
Definition: skel.GENtoEVGEN.py:407
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::TrackStateOnSurface::measurementOnTrack
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
InDet::TRT_StrawStatus::clear
void clear()
Definition: TRT_StrawStatus.cxx:280
Trk::locR
@ locR
Definition: ParamDefs.h:44
AtlasDetectorID::is_trt
bool is_trt(Identifier id) const
Definition: AtlasDetectorID.h:782
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::TRT_StrawStatus::m_fileName
Gaudi::Property< std::string > m_fileName
Definition: TRT_StrawStatus.h:85
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
TRT_ID::straw_layer_end
const_id_iterator straw_layer_end(void) const
Definition: TRT_ID.h:961
InDet::TRT_StrawStatus::m_TRTStrawStatusSummaryTool
ToolHandle< ITRT_StrawStatusSummaryTool > m_TRTStrawStatusSummaryTool
Definition: TRT_StrawStatus.h:78
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDet::TRT_StrawStatus::m_nEvents
int m_nEvents
returns index of hardware units: board, chip, pad private fix for now, will call TRTStrawNeighbourSvc...
Definition: TRT_StrawStatus.h:109
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
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TRT::Hit::side
@ side
Definition: HitInfo.h:83
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
nAllStraws
const size_t nAllStraws
Definition: TRT_StrawStatus.cxx:35
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Trk::TrackStateOnSurface::Hole
@ Hole
A hole on the track - this is defined in the following way.
Definition: TrackStateOnSurface.h:128
lumiFormat.i
int i
Definition: lumiFormat.py:85
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
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:572
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
hist_file_dump.f
f
Definition: hist_file_dump.py:141
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:79
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
InDet::TRT_StrawStatus::myStrawIndex
void myStrawIndex(Identifier id, int *index)
function that returns straw index (in range 0-5481; 0-1641 for barrel, the rest for endcap) same conv...
Definition: TRT_StrawStatus.cxx:337
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
InDet::TRT_StrawStatus::m_vxContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vxContainerKey
Definition: TRT_StrawStatus.h:91
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
InDet::TRT_StrawStatus::m_tracksName
SG::ReadHandleKey< DataVector< Trk::Track > > m_tracksName
Definition: TRT_StrawStatus.h:90
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
InDet::TRT_StrawStatus::m_updator
PublicToolHandle< Trk::IUpdator > m_updator
Definition: TRT_StrawStatus.h:80
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
columnar::ContainerId::eventInfo
@ eventInfo
InDet::TRT_StrawStatus::m_TRTHelper
const TRT_ID * m_TRTHelper
Definition: TRT_StrawStatus.h:116
InDet::TRT_StrawStatus::m_skipBusyEvents
Gaudi::Property< int > m_skipBusyEvents
Definition: TRT_StrawStatus.h:83
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
InDet::TRT_StrawStatus::m_runNumber
int m_runNumber
Definition: TRT_StrawStatus.h:110
a
TList * a
Definition: liststreamerinfos.cxx:10
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::PixelClusterOnTrack
Definition: PixelClusterOnTrack.h:51
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DEBUG
#define DEBUG
Definition: page_access.h:11
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
InDet::TRT_StrawStatus::m_TRTStrawNeighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_TRTStrawNeighbourSvc
Definition: TRT_StrawStatus.h:77
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
InDet::TRT_StrawStatus::m_printDetailedInformation
Gaudi::Property< int > m_printDetailedInformation
Definition: TRT_StrawStatus.h:84
merge.status
status
Definition: merge.py:17
TRT_ID::straw_layer_begin
const_id_iterator straw_layer_begin(void) const
Iterators over full set of straw_layer ids. Straw_layer ids are sorted.
Definition: TRT_ID.h:953
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
jobOptions.fileName
fileName
Definition: jobOptions.SuperChic_ALP2.py:39
InDet::TRT_StrawStatus::reportResults
StatusCode reportResults()
Definition: TRT_StrawStatus.cxx:286
InDet::TRT_StrawStatus::m_trt_hole_finder
ToolHandle< Trk::ITrackHoleSearchTool > m_trt_hole_finder
Definition: TRT_StrawStatus.h:79
InDet::TRT_StrawStatus::m_locR_cut
Gaudi::Property< double > m_locR_cut
Definition: TRT_StrawStatus.h:82
InDet::TRT_StrawStatus::m_printStatusCount
std::atomic< int > m_printStatusCount
Definition: TRT_StrawStatus.h:117
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Trk::driftCircle
@ driftCircle
Definition: MeasurementType.h:25
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
TRT_ID::straw_id
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw:
Definition: TRT_ID.h:581
InDet::SCT_ClusterOnTrack
Definition: SCT_ClusterOnTrack.h:44
InDet::TRT_StrawStatus::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: TRT_StrawStatus.h:88
ServiceHandle< ICondSvc >
InDet::TRT_StrawStatus::printDetailedInformation
void printDetailedInformation()
Definition: TRT_StrawStatus.cxx:307
Identifier
Definition: IdentifierFieldParser.cxx:14