ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
NSWL1::StripTdsOfflineTool Class Reference

#include <StripTdsOfflineTool.h>

Inheritance diagram for NSWL1::StripTdsOfflineTool:
Collaboration diagram for NSWL1::StripTdsOfflineTool:

Public Member Functions

 StripTdsOfflineTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~StripTdsOfflineTool ()=default
 
virtual StatusCode initialize () override
 
virtual void handle (const Incident &inc) override
 
virtual StatusCode gather_strip_data (std::vector< std::unique_ptr< StripData >> &strips, const std::vector< std::unique_ptr< PadTrigger >> &padTriggers) const override
 
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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

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 ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode fill_strip_cache (const std::vector< std::unique_ptr< PadTrigger >> &padTriggers, std::vector< std::unique_ptr< StripData >> &strip_cache) const
 
StatusCode book_branches ()
 book the branches to analyze the StripTds behavior More...
 
void clear_ntuple_variables ()
 clear the variables used in the analysis ntuple More...
 
void fill_strip_validation_id (std::vector< std::unique_ptr< StripData >> &strip_cache) const
 fill the ntuple branch for the StripTdsOffline More...
 
bool readStrip (StripData *, const std::vector< std::unique_ptr< PadTrigger >> &) const
 
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< IIncidentSvc > m_incidentSvc {this, "IncidentSvc", "IncidentSvc"}
 Athena/Gaudi incident Service. More...
 
const MuonGM::MuonDetectorManagerm_detManager
 MuonDetectorManager. More...
 
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 
Gaudi::Property< bool > m_doNtuple {this, "DoNtuple", false, "Input StripTds branches into the analysis ntuple"}
 
Gaudi::Property< bool > m_isMC {this, "IsMC", true, "This is MC"}
 
TTree *m_tree ATLAS_THREAD_SAFE {nullptr}
 ntuple for analysis More...
 
int m_nStripHits ATLAS_THREAD_SAFE
 number of STRIP hit delivered More...
 
std::vector< float > *m_stripCharge ATLAS_THREAD_SAFE {nullptr}
 charge of hit STRIPs More...
 
std::vector< float > *m_stripCharge_6bit ATLAS_THREAD_SAFE {nullptr}
 charge of hit STRIPs 6 bit format More...
 
std::vector< float > *m_stripCharge_10bit ATLAS_THREAD_SAFE {nullptr}
 charge of hit STRIPs 10 bit format More...
 
std::vector< float > *m_strip_global_X ATLAS_THREAD_SAFE {nullptr}
 global X position More...
 
std::vector< float > *m_strip_global_Y ATLAS_THREAD_SAFE {nullptr}
 global Y position More...
 
std::vector< float > *m_strip_global_Z ATLAS_THREAD_SAFE {nullptr}
 global Z position More...
 
std::vector< float > *m_strip_local_X ATLAS_THREAD_SAFE {nullptr}
 local X position More...
 
std::vector< float > *m_strip_local_Y ATLAS_THREAD_SAFE {nullptr}
 local Y position More...
 
std::vector< float > *m_strip_layer ATLAS_THREAD_SAFE {nullptr}
 layer More...
 
std::vector< bool > *m_strip_isSmall ATLAS_THREAD_SAFE {nullptr}
 sector type More...
 
std::vector< float > *m_strip_eta ATLAS_THREAD_SAFE {nullptr}
 sector eta More...
 
std::vector< float > *m_strip_phi ATLAS_THREAD_SAFE {nullptr}
 sector phi More...
 
std::vector< bool > *m_strip_readStrip ATLAS_THREAD_SAFE {nullptr}
 read strip status More...
 
std::vector< int > *m_strip_channel ATLAS_THREAD_SAFE {nullptr}
 channel More...
 
std::vector< int > *m_strip_BCID ATLAS_THREAD_SAFE {nullptr}
 BCID. More...
 
std::vector< int > *m_strip_wedge ATLAS_THREAD_SAFE {nullptr}
 multipletId More...
 
std::vector< float > *m_strip_time ATLAS_THREAD_SAFE {nullptr}
 time More...
 
SG::ReadHandleKey< sTgcDigitContainerm_sTgcDigitContainer = {this,"sTGC_DigitContainerName","sTGC_DIGITS","the name of the sTGC digit container"}
 
SG::ReadHandleKey< MuonSimDataCollectionm_sTgcSdoContainer = {this,"sTGC_SdoContainerName","sTGC_SDO","the name of the sTGC SDO container"}
 
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

Definition at line 73 of file StripTdsOfflineTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ StripTdsOfflineTool()

NSWL1::StripTdsOfflineTool::StripTdsOfflineTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 27 of file StripTdsOfflineTool.cxx.

27  :
29  m_incidentSvc("IncidentSvc",name),
30  m_detManager(nullptr),
31  m_tree(nullptr)
32  {
33  declareInterface<NSWL1::IStripTdsTool>(this);
34  }

◆ ~StripTdsOfflineTool()

virtual NSWL1::StripTdsOfflineTool::~StripTdsOfflineTool ( )
virtualdefault

Member Function Documentation

◆ book_branches()

StatusCode NSWL1::StripTdsOfflineTool::book_branches ( )
private

book the branches to analyze the StripTds behavior

Definition at line 80 of file StripTdsOfflineTool.cxx.

80  {
81  m_nStripHits = 0;
82  m_stripCharge= new std::vector< float >();
83  m_stripCharge_6bit= new std::vector< float >();
84  m_stripCharge_10bit= new std::vector< float >();
85  m_strip_global_X= new std::vector< float >();
86  m_strip_global_Y= new std::vector< float >();
87  m_strip_global_Z= new std::vector< float >();
88  m_strip_local_X= new std::vector< float >();
89  m_strip_local_Y= new std::vector< float >();
90  m_strip_layer= new std::vector< float >();
91  m_strip_isSmall= new std::vector< bool >();
92  m_strip_eta= new std::vector< float >();
93  m_strip_phi= new std::vector< float >();
94  m_strip_readStrip = new std::vector<bool >();
95  m_strip_channel= new std::vector< int >();
96  m_strip_BCID= new std::vector< int >();
97  m_strip_wedge= new std::vector< int >();
98  m_strip_time= new std::vector< float >();
99 
100  if (m_tree) {
101  std::string ToolName = name().substr( name().find("::")+2,std::string::npos );
102  const char* n = ToolName.c_str();
103  m_tree->Branch(TString::Format("%s_nStripHits",n).Data(),&m_nStripHits,TString::Format("%s_nStripHits/i",n).Data());
104  m_tree->Branch(TString::Format("%s_charge",n).Data(),&m_stripCharge);
105  m_tree->Branch(TString::Format("%s_charge_6bit",n).Data(),&m_stripCharge_6bit);
106  m_tree->Branch(TString::Format("%s_charge_10bit",n).Data(),&m_stripCharge_10bit);
107  m_tree->Branch(TString::Format("%s_global_X",n).Data(),&m_strip_global_X);
108  m_tree->Branch(TString::Format("%s_global_Y",n).Data(),&m_strip_global_Y);
109  m_tree->Branch(TString::Format("%s_global_Z",n).Data(),&m_strip_global_Z);
110  m_tree->Branch(TString::Format("%s_local_X",n).Data(),&m_strip_local_X);
111  m_tree->Branch(TString::Format("%s_local_Y",n).Data(),&m_strip_local_Y);
112  m_tree->Branch(TString::Format("%s_layer",n).Data(),&m_strip_layer);
113  m_tree->Branch(TString::Format("%s_isSmall",n).Data(),&m_strip_isSmall);
114  m_tree->Branch(TString::Format("%s_eta",n).Data(),&m_strip_eta);
115  m_tree->Branch(TString::Format("%s_phi",n).Data(),&m_strip_phi);
116  m_tree->Branch(TString::Format("%s_readStrip",n).Data(),&m_strip_readStrip);
117  m_tree->Branch(TString::Format("%s_channel",n).Data(),&m_strip_channel);
118  m_tree->Branch(TString::Format("%s_BCID",n).Data(),&m_strip_BCID);
119  m_tree->Branch(TString::Format("%s_wedge",n).Data(),&m_strip_wedge);
120  m_tree->Branch(TString::Format("%s_time",n).Data(),&m_strip_time);
121  }
122  return StatusCode::SUCCESS;
123  }

◆ clear_ntuple_variables()

void NSWL1::StripTdsOfflineTool::clear_ntuple_variables ( )
private

clear the variables used in the analysis ntuple

Definition at line 126 of file StripTdsOfflineTool.cxx.

126  {
127  if(m_tree==0) return;
128  m_nStripHits = 0;
129  m_stripCharge->clear();
130  m_stripCharge_6bit->clear();
131  m_stripCharge_10bit->clear();
132  m_stripCharge->clear();
133  m_stripCharge_6bit->clear();
134  m_stripCharge_10bit->clear();
135  m_strip_global_X->clear();
136  m_strip_global_Y->clear();
137  m_strip_global_Z->clear();
138  m_strip_local_X->clear();
139  m_strip_local_Y->clear();
140  m_strip_layer->clear();
141  m_strip_isSmall->clear();
142  m_strip_eta->clear();
143  m_strip_phi->clear();
144  m_strip_readStrip->clear();
145  m_strip_channel->clear();
146  m_strip_BCID->clear();
147  m_strip_time->clear();
148  m_strip_wedge->clear();
149  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ fill_strip_cache()

StatusCode NSWL1::StripTdsOfflineTool::fill_strip_cache ( const std::vector< std::unique_ptr< PadTrigger >> &  padTriggers,
std::vector< std::unique_ptr< StripData >> &  strip_cache 
) const
private

Definition at line 185 of file StripTdsOfflineTool.cxx.

185  {
186  ATH_MSG_DEBUG( "fill_strip_cache: start filling the cache for STRIP hits" );
187 
188  if(m_isMC){
190  if(!sdo_container.isValid()){
191  ATH_MSG_WARNING("could not retrieve the sTGC SDO container: it will not be possible to associate the MC truth");
192  }
193  }
194 
196  if(!digit_container.isValid()){
197  ATH_MSG_ERROR("could not retrieve the sTGC Digit container: cannot return the STRIP hits");
198  }
199 
200  sTgcDigitContainer::const_iterator it = digit_container->begin();
201  sTgcDigitContainer::const_iterator it_e = digit_container->end();
202 
203  ATH_MSG_DEBUG( "retrieved sTGC Digit Container with " << digit_container->digit_size() << " collection" );
204  int strip_hit_number = 0;
205  for(; it!=it_e; ++it) {
206  const sTgcDigitCollection* coll = *it;
207 
208  ATH_MSG_DEBUG( "processing collection with size " << coll->size() );
209 
210  for (unsigned int item=0; item<coll->size(); item++) {
211  const sTgcDigit* digit = coll->at(item);
212  Identifier Id = digit->identify();
214  int channel_type = m_idHelperSvc->stgcIdHelper().channelType(Id);
215  // process only Strip data
216  if (channel_type!=1) continue;
217 
218  Amg::Vector2D strip_lpos;
219  Amg::Vector3D strip_gpos;
220  rdoEl->stripPosition(Id,strip_lpos);
221  const auto& stripSurface=rdoEl->surface(Id);
222  stripSurface.localToGlobal(strip_lpos, strip_gpos, strip_gpos);
223 
224  std::string stName = m_idHelperSvc->stgcIdHelper().stationNameString(m_idHelperSvc->stgcIdHelper().stationName(Id));
225  int stationEta = m_idHelperSvc->stgcIdHelper().stationEta(Id);
226  int stationPhi = m_idHelperSvc->stgcIdHelper().stationPhi(Id);
227  int wedge = m_idHelperSvc->stgcIdHelper().multilayer(Id);
228  int layer = m_idHelperSvc->stgcIdHelper().gasGap(Id);
229  int channel = m_idHelperSvc->stgcIdHelper().channel(Id);
230  int bctag = digit->bcTag();
231 
232  strip_hit_number++;
233  int strip_eta = 0;
234  int strip_phi = 0;
235 
236  ATH_MSG_DEBUG("sTGC Strip hit " << strip_hit_number << ": Station Name [" << stName << "]"
237  << " Station Eta [" << stationEta << "]"
238  << " Station Phi [" << stationPhi << "]"
239  << " Wedge [" << wedge << "]"
240  << " Layer [" << layer << "]"
241  << " Type [" << channel_type << "]"
242  << " ChNr [" << channel << "]"
243  << " Strip Eta [" << strip_eta << "]"
244  << " Strip Phi [" << strip_phi << "]"
245  << " Strip bcTAg [" << bctag << "]");
246 
247  bool isSmall = m_idHelperSvc->stgcIdHelper().isSmall(Id);
248  int trigger_sector = (isSmall)? stationPhi*2 : stationPhi*2-1;//
249  int cache_index = (stationEta>0)? trigger_sector + 16 : trigger_sector;
250  ATH_MSG_DEBUG("sTGC Strip hit " << strip_hit_number << ": Trigger Sector [" << trigger_sector << "]" << " Cache Index [" << cache_index << "]" );
251 
252  // process STRIP hit time: apply the time delay, set the BC tag for the hit according to the trigger capture window
253  ATH_MSG_DEBUG( "Filling ntuple variables" );
254  if (m_doNtuple) {
255  m_strip_global_X->push_back(strip_gpos.x());
256  m_strip_global_Y->push_back(strip_gpos.y());
257  m_strip_global_Z->push_back(strip_gpos.z());
258  m_strip_local_X->push_back(strip_lpos.x());
259  m_strip_local_Y->push_back(strip_lpos.y());
260  m_strip_layer->push_back(layer);
261  m_strip_isSmall->push_back(isSmall);
262  m_strip_eta->push_back(stationEta);
263  m_strip_phi->push_back(stationPhi);
264  }
265  auto strip=std::make_unique<StripOfflineData>(Id,&m_idHelperSvc->stgcIdHelper(),digit);
266  strip->set_locX(strip_lpos.x());
267  strip->set_locY(strip_lpos.y());
268  int sideid= (stationEta>0) ? 1 : 0;
269  int sectortype= (isSmall==1) ? 0 : 1;
270  int sectorid=stationPhi;
271  int moduleid=std::abs(stationEta);
272  int wedgeid=wedge;
273  int layerid=layer;
274  strip->setSideId(sideid);
275  strip->setSectorType(sectortype);
276  strip->setSectorId(sectorid);
277  strip->setModuleId(moduleid);
278  strip->setWedgeId(wedgeid);
279  strip->setLayerId(layerid);
280  strip->set_globX(strip_gpos.x());
281  strip->set_globY(strip_gpos.y());
282  strip->set_globZ(strip_gpos.z());
283  strip->set_locZ(0);
284 
285  bool read_strip=readStrip(strip.get(),padTriggers);
286  if (read_strip && (strip->bandId() ==-1 || strip->phiId()==-1 ) ) {
287  ATH_MSG_FATAL("StripTdsOfflineTool:NO MATCH ALL " << "\n"
288  << "wedge:" << strip->wedge() << "\n"
289  << "layer:"<< strip->layer() << "\n"
290  << "loc_x:"<< strip->locX()<< "\n");
291  }
292 
293  //set coordinates above ! readStrip needs that variables !
294  strip->set_readStrip(read_strip);
295  strip_cache.push_back(std::move(strip));
296  }//collections
297  }//items
298  if (m_doNtuple) this->fill_strip_validation_id(strip_cache);
299  ATH_MSG_DEBUG( "fill_strip_cache: end of processing" );
300  return StatusCode::SUCCESS;
301  }

◆ fill_strip_validation_id()

void NSWL1::StripTdsOfflineTool::fill_strip_validation_id ( std::vector< std::unique_ptr< StripData >> &  strip_cache) const
private

fill the ntuple branch for the StripTdsOffline

Definition at line 151 of file StripTdsOfflineTool.cxx.

151  {
152  for (const auto &hit : strip_cache) {
153  m_nStripHits++;
154  ATH_MSG_DEBUG("Hits :" << m_nStripHits << " Cache strip " << hit.get() << " " << strip_cache.size() );
155 
156  m_stripCharge->push_back(hit->strip_charge());
157  m_stripCharge_6bit->push_back(hit->strip_charge_6bit());
158  m_stripCharge_10bit->push_back(hit->strip_charge_10bit());
159  m_strip_readStrip->push_back(hit->readStrip());
160  m_strip_channel->push_back(hit->channelId());
161  m_strip_BCID->push_back(hit->trig_BCID());
162  m_strip_time->push_back(hit->time());
163  m_strip_wedge->push_back(hit->wedge());
164  }
165  }

◆ gather_strip_data()

StatusCode NSWL1::StripTdsOfflineTool::gather_strip_data ( std::vector< std::unique_ptr< StripData >> &  strips,
const std::vector< std::unique_ptr< PadTrigger >> &  padTriggers 
) const
overridevirtual

Implements NSWL1::IStripTdsTool.

Definition at line 168 of file StripTdsOfflineTool.cxx.

168  {
169  ATH_MSG_DEBUG( "gather_strip_data: start gathering all strip htis");
170 
171  std::vector<std::unique_ptr<StripData>> strip_cache;
172  ATH_CHECK(fill_strip_cache(padTriggers, strip_cache));
173 
174  // delivering the required collection
175  for (unsigned int i=0; i< strip_cache.size(); i++) {
176  // Check if a stip should be read according to pad triggers
177  strips.push_back(std::move(strip_cache.at(i)));
178  }
179  strip_cache.clear();
180  ATH_MSG_DEBUG( "Delivered n. " << strips.size() << " STRIP hits." );
181  return StatusCode::SUCCESS;
182  }

◆ handle()

void NSWL1::StripTdsOfflineTool::handle ( const Incident &  inc)
overridevirtual

Definition at line 73 of file StripTdsOfflineTool.cxx.

73  {
74  if( inc.type()==IncidentType::BeginEvent ) {
75  this->clear_ntuple_variables();
76  }
77  }

◆ initialize()

StatusCode NSWL1::StripTdsOfflineTool::initialize ( )
overridevirtual

Definition at line 36 of file StripTdsOfflineTool.cxx.

36  {
37  ATH_MSG_DEBUG( "initializing " << name() );
38 
39  ATH_MSG_DEBUG( name() << " configuration:");
40  ATH_MSG_DEBUG(" " << std::setw(32) << std::setfill('.') << std::setiosflags(std::ios::left) << m_doNtuple.name() << ((m_doNtuple)? "[True]":"[False]")
41  << std::setfill(' ') << std::setiosflags(std::ios::right) );
42 
45 
46  const IInterface* parent = this->parent();
47  const INamedInterface* pnamed = dynamic_cast<const INamedInterface*>(parent);
48  const std::string& algo_name = pnamed->name();
49 
50  if ( m_doNtuple ) {
51  if (Gaudi::Concurrency::ConcurrencyFlags::numConcurrentEvents() > 1) {
52  ATH_MSG_ERROR("DoNtuple is not possible in multi-threaded mode");
53  return StatusCode::FAILURE;
54  }
55 
56  ATH_CHECK( m_incidentSvc.retrieve() );
57  m_incidentSvc->addListener(this,IncidentType::BeginEvent);
58 
59  if ( algo_name=="NSWL1Simulation" ) {
60  ITHistSvc* tHistSvc;
61  ATH_CHECK(service("THistSvc", tHistSvc));
62  m_tree = 0;
63  std::string ntuple_name = algo_name+"Tree";
64  ATH_CHECK(tHistSvc->getTree(ntuple_name,m_tree));
65  ATH_CHECK(this->book_branches());
66  }
67  }
69  ATH_CHECK(m_idHelperSvc.retrieve());
70  return StatusCode::SUCCESS;
71  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ interfaceID()

static const InterfaceID& NSWL1::IStripTdsTool::interfaceID ( )
inlinestaticinherited

Definition at line 37 of file IStripTdsTool.h.

37  {
38  static const InterfaceID IID_IStripTdsTool("NSWL1::IStripTdsTool", 1 ,0);
39  return IID_IStripTdsTool;
40  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ readStrip()

bool NSWL1::StripTdsOfflineTool::readStrip ( StripData strip,
const std::vector< std::unique_ptr< PadTrigger >> &  padTriggers 
) const
private

Definition at line 304 of file StripTdsOfflineTool.cxx.

304  {
305 
306  if (strip->bandId() !=-1) {
307  ATH_MSG_DEBUG("StripTdsOfflineTool:ReadStrip: BandId already set\n" << "moduleID:" << strip->moduleId() +1 << "\n"
308  << "sectiorID:" << strip->sectorId() + 1 << "\n" << "layer:" << strip->wedge() << "\n");
309  }
310  if (strip->phiId() !=-1) {
311  ATH_MSG_DEBUG("StripTdsOfflineTool:ReadStrip: PhiId already set\n" << "moduleID:"<< strip->moduleId() +1 << "\n"
312  << "sectiorID:" << strip->sectorId() + 1 << "\n" << "layer:" << strip->wedge() << "\n");
313  }
314  for(const std::unique_ptr<PadTrigger>& trig :padTriggers){
315  //std::shared_ptr<PadData> padIn=trig->firstPadInner();
316  for(const std::shared_ptr<PadData>& pad : trig->m_pads){
317  if (strip->sideId()!=pad->sideId() ||
318  strip->isSmall()==pad->sectorType() || //strip returns 1 pad returns 0
319  strip->sectorId()!=pad->sectorId() ||
320  std::abs(strip->etaCenter() )> trig->etaMax() || //use abs / sideC
321  std::abs(strip->etaCenter() ) < trig->etaMin() ||
322  strip->layer()!=pad->gasGapId()
323  ) continue;
324  else {
325  strip->setBandId(trig->bandId());
326  strip->setPhiId(trig->phiId());
327  return true;
328  }
329  }//pad loop
330  }//padtrigger loop
331  return false;
332  }

◆ 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< AlgTool > >::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< AlgTool > >::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  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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

◆ ATLAS_THREAD_SAFE [1/19]

TTree* m_tree NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

ntuple for analysis

Definition at line 115 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [2/19]

int m_nStripHits NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE
mutableprivate

number of STRIP hit delivered

Definition at line 116 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [3/19]

std::vector<float >* m_stripCharge NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

charge of hit STRIPs

Definition at line 117 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [4/19]

std::vector<float >* m_stripCharge_6bit NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

charge of hit STRIPs 6 bit format

Definition at line 118 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [5/19]

std::vector<float >* m_stripCharge_10bit NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

charge of hit STRIPs 10 bit format

Definition at line 119 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [6/19]

std::vector<float >* m_strip_global_X NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

global X position

Definition at line 120 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [7/19]

std::vector<float >* m_strip_global_Y NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

global Y position

Definition at line 121 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [8/19]

std::vector<float >* m_strip_global_Z NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

global Z position

Definition at line 122 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [9/19]

std::vector<float >* m_strip_local_X NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

local X position

Definition at line 123 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [10/19]

std::vector<float >* m_strip_local_Y NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

local Y position

Definition at line 124 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [11/19]

std::vector<float >* m_strip_layer NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

layer

Definition at line 125 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [12/19]

std::vector<bool >* m_strip_isSmall NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

sector type

Definition at line 126 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [13/19]

std::vector<float >* m_strip_eta NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

sector eta

Definition at line 127 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [14/19]

std::vector<float >* m_strip_phi NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

sector phi

Definition at line 128 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [15/19]

std::vector<bool >* m_strip_readStrip NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

read strip status

Definition at line 129 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [16/19]

std::vector<int >* m_strip_channel NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

channel

Definition at line 130 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [17/19]

std::vector<int >* m_strip_BCID NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

BCID.

Definition at line 131 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [18/19]

std::vector<int >* m_strip_wedge NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

multipletId

Definition at line 132 of file StripTdsOfflineTool.h.

◆ ATLAS_THREAD_SAFE [19/19]

std::vector<float >* m_strip_time NSWL1::StripTdsOfflineTool::ATLAS_THREAD_SAFE {nullptr}
private

time

Definition at line 133 of file StripTdsOfflineTool.h.

◆ m_detManager

const MuonGM::MuonDetectorManager* NSWL1::StripTdsOfflineTool::m_detManager
private

MuonDetectorManager.

Definition at line 102 of file StripTdsOfflineTool.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doNtuple

Gaudi::Property<bool> NSWL1::StripTdsOfflineTool::m_doNtuple {this, "DoNtuple", false, "Input StripTds branches into the analysis ntuple"}
private

Definition at line 106 of file StripTdsOfflineTool.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> NSWL1::StripTdsOfflineTool::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 103 of file StripTdsOfflineTool.h.

◆ m_incidentSvc

ServiceHandle<IIncidentSvc> NSWL1::StripTdsOfflineTool::m_incidentSvc {this, "IncidentSvc", "IncidentSvc"}
private

Athena/Gaudi incident Service.

Definition at line 101 of file StripTdsOfflineTool.h.

◆ m_isMC

Gaudi::Property<bool> NSWL1::StripTdsOfflineTool::m_isMC {this, "IsMC", true, "This is MC"}
private

Definition at line 109 of file StripTdsOfflineTool.h.

◆ m_sTgcDigitContainer

SG::ReadHandleKey<sTgcDigitContainer> NSWL1::StripTdsOfflineTool::m_sTgcDigitContainer = {this,"sTGC_DigitContainerName","sTGC_DIGITS","the name of the sTGC digit container"}
private

Definition at line 135 of file StripTdsOfflineTool.h.

◆ m_sTgcSdoContainer

SG::ReadHandleKey<MuonSimDataCollection> NSWL1::StripTdsOfflineTool::m_sTgcSdoContainer = {this,"sTGC_SdoContainerName","sTGC_SDO","the name of the sTGC SDO container"}
private

Definition at line 136 of file StripTdsOfflineTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
NSWL1::StripTdsOfflineTool::m_detManager
const MuonGM::MuonDetectorManager * m_detManager
MuonDetectorManager.
Definition: StripTdsOfflineTool.h:102
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
NSWL1::StripTdsOfflineTool::fill_strip_validation_id
void fill_strip_validation_id(std::vector< std::unique_ptr< StripData >> &strip_cache) const
fill the ntuple branch for the StripTdsOffline
Definition: StripTdsOfflineTool.cxx:151
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
NSWL1::StripTdsOfflineTool::m_sTgcSdoContainer
SG::ReadHandleKey< MuonSimDataCollection > m_sTgcSdoContainer
Definition: StripTdsOfflineTool.h:136
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Data
@ Data
Definition: BaseObject.h:11
StateLessPT_NewConfig.Format
Format
Definition: StateLessPT_NewConfig.py:146
skel.it
it
Definition: skel.GENtoEVGEN.py:423
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
MuonGM::MuonClusterReadoutElement::surface
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Definition: MuonClusterReadoutElement.h:123
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
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
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
MuonGM::sTgcReadoutElement::stripPosition
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position - should be renamed to channel position If the strip number is outside the range of va...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h:323
sTgcDigit
Definition: sTgcDigit.h:20
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:92
sTgcDigitCollection
Definition: sTgcDigitCollection.h:18
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MuonGM::sTgcReadoutElement
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h:28
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
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
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
NSWL1::StripTdsOfflineTool::fill_strip_cache
StatusCode fill_strip_cache(const std::vector< std::unique_ptr< PadTrigger >> &padTriggers, std::vector< std::unique_ptr< StripData >> &strip_cache) const
Definition: StripTdsOfflineTool.cxx:185
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
NSWL1::StripTdsOfflineTool::m_doNtuple
Gaudi::Property< bool > m_doNtuple
Definition: StripTdsOfflineTool.h:106
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
item
Definition: ItemListSvc.h:43
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Muon::nsw::channel_type
channel_type
Definition: NSWDecodeHelper.h:18
a
TList * a
Definition: liststreamerinfos.cxx:10
h
NSWL1::StripTdsOfflineTool::m_sTgcDigitContainer
SG::ReadHandleKey< sTgcDigitContainer > m_sTgcDigitContainer
Definition: StripTdsOfflineTool.h:135
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
NSWL1::StripTdsOfflineTool::clear_ntuple_variables
void clear_ntuple_variables()
clear the variables used in the analysis ntuple
Definition: StripTdsOfflineTool.cxx:126
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
NSWL1::StripTdsOfflineTool::readStrip
bool readStrip(StripData *, const std::vector< std::unique_ptr< PadTrigger >> &) const
Definition: StripTdsOfflineTool.cxx:304
NSWL1::StripTdsOfflineTool::m_incidentSvc
ServiceHandle< IIncidentSvc > m_incidentSvc
Athena/Gaudi incident Service.
Definition: StripTdsOfflineTool.h:101
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
MuonGM::MuonDetectorManager::getsTgcReadoutElement
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:259
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
Trk::PlaneSurface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
Definition: PlaneSurface.cxx:204
NSWL1::StripTdsOfflineTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: StripTdsOfflineTool.h:103
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
NSWL1::StripTdsOfflineTool::m_isMC
Gaudi::Property< bool > m_isMC
Definition: StripTdsOfflineTool.h:109
NSWL1::StripTdsOfflineTool::book_branches
StatusCode book_branches()
book the branches to analyze the StripTds behavior
Definition: StripTdsOfflineTool.cxx:80
fitman.k
k
Definition: fitman.py:528