ATLAS Offline Software
Loading...
Searching...
No Matches
TrigL2MuonSA::MdtDataPreparator Class Reference

#include <MdtDataPreparator.h>

Inheritance diagram for TrigL2MuonSA::MdtDataPreparator:
Collaboration diagram for TrigL2MuonSA::MdtDataPreparator:

Public Member Functions

virtual StatusCode initialize () override
StatusCode prepareData (const EventContext &ctx, const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::RpcFitResult &rpcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MdtHits &mdtHits) const
StatusCode prepareData (const EventContext &ctx, const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MdtHits &mdtHits) const
void setRpcGeometry (bool use_rpc)
void setRoIBasedDataAccess (bool use_RoIBasedDataAccess)
 AthAlgTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor with parameters:
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () 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
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.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode getMdtHits (const EventContext &ctx, const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits) const
StatusCode collectMdtHitsFromPrepData (const EventContext &ctx, const std::vector< IdentifierHash > &v_idHash, TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::MuonRoad &muonRoad) const
void initDeadChannels (const MuonGM::MdtReadoutElement *mydetEl)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
ToolHandle< IRegSelToolm_regionSelector {this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"}
ToolHandle< MdtRegionDefinerm_mdtRegionDefiner
SG::ReadHandleKey< Muon::MdtPrepDataContainerm_mdtPrepContainerKey
Gaudi::Property< bool > m_isPhase2 {this, "isPhase2", false, "if the phase 2 geometry is setup"}
Gaudi::Property< bool > m_use_RoIBasedDataAccess {this, "use_RoIBasedDataAccess", false}
int m_BMGid {0}
std::unordered_set< Identifierm_DeadChannels {}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 37 of file MdtDataPreparator.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Function Documentation

◆ AthAlgTool()

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

Constructor with parameters:

Definition at line 31 of file AthAlgTool.cxx.

◆ collectMdtHitsFromPrepData()

StatusCode TrigL2MuonSA::MdtDataPreparator::collectMdtHitsFromPrepData ( const EventContext & ctx,
const std::vector< IdentifierHash > & v_idHash,
TrigL2MuonSA::MdtHits & mdtHits,
const TrigL2MuonSA::MuonRoad & muonRoad ) const
private

Endcap

Barrel

Definition at line 146 of file MdtDataPreparator.cxx.

150{
151
152 // Get MDT container
153 if (v_idHash.empty()) {
154 ATH_MSG_DEBUG("Hash list is empty");
155 return StatusCode::SUCCESS;
156 }
157 SG::ReadHandle mdtPrds{m_mdtPrepContainerKey, ctx};
158 ATH_CHECK(mdtPrds.isPresent());
159
160 for(const IdentifierHash& id : v_idHash) {
161
162 // Get MDT collections
163 auto mdtCol = mdtPrds->indexFindPtr(id);
164
165 if( mdtCol == nullptr ) {
166 ATH_MSG_DEBUG("MDT prep data collection not found in Hash ID" << (int)id);
167 continue;
168 }
169 if( mdtCol->size() == 0 ) {
170 ATH_MSG_DEBUG("MDT prep data collection is empty in Hash ID" << (int)id);
171 continue;
172 }
173
174 ATH_MSG_DEBUG("Selected Mdt Collection: "
175 << m_idHelperSvc->toStringChamber(mdtCol->identify())
176 << " with size " << mdtCol->size()
177 << "in Hash ID" << (int)id);
178
179 mdtHits.reserve( mdtHits.size() + mdtCol->size() );
180
181 for( const Muon::MdtPrepData* mdt : *mdtCol ) {
182
183 Identifier id = mdt->identify();
184
185 if(m_idHelperSvc->mdtIdHelper().stationName(id) == m_BMGid && m_DeadChannels.count(id)) {
186 ATH_MSG_DEBUG("Skipping tube with identifier " << m_idHelperSvc->toString(id) );
187 continue;
188 }
189
190 const MuonGM::MdtReadoutElement* mdtReadout = mdt->detectorElement();
191 const MuonGM::MuonStation* muonStation = mdtReadout->parentMuonStation();
192
193 TrigL2MuonSA::MdtHitData tmp;
194 tmp.Id = id;
195
196 int TubeLayers = mdtReadout->getNLayers();
197 tmp.TubeLayer = m_idHelperSvc->mdtIdHelper().tubeLayer(id);
198 if(tmp.TubeLayer > TubeLayers) tmp.TubeLayer -= TubeLayers;
199 tmp.Tube = m_idHelperSvc->mdtIdHelper().tube(id);
200 tmp.Multilayer = mdtReadout->getMultilayer();
201 int Layer = (tmp.Multilayer-1)*TubeLayers + tmp.TubeLayer;
202 tmp.Layer = Layer - 1;
203
204 if(Layer==0 or tmp.Tube ==0) continue;
205
206 int drift = mdt->tdc();
207 tmp.DriftTime = drift;
208 tmp.LeadingCoarseTime = (drift>>5) & 0xfff;
209 tmp.LeadingFineTime = drift & 0x1f;
210 tmp.Adc = mdt->adc();
211
212 tmp.name = m_idHelperSvc->mdtIdHelper().stationName(id);
213 tmp.StationEta = mdtReadout->getStationEta();
214 tmp.StationPhi = mdtReadout->getStationPhi();
215
216 std::string chamberType = mdtReadout->getStationType();
217 std::copy_n(chamberType.begin(), std::min<size_t>(4, chamberType.size()), tmp.cType.begin());
218 tmp.readEle = mdtReadout;
219
220 int& chamber {tmp.Chamber};
221 char st = chamberType[1];
222 if (chamberType[0]=='E') {
228 }
229 else {
234 if (st=='E' && chamberType[2]=='E') chamber = xAOD::L2MuonParameters::Chamber::BEE;
235 if (st=='M' && chamberType[2]=='E') chamber = xAOD::L2MuonParameters::Chamber::BME;
236 if (st=='M' && chamberType[2]=='G') chamber = xAOD::L2MuonParameters::Chamber::Backup;
237 }
238
239 double &cXmid{tmp.cXmid}, &cYmid{tmp.cYmid}, &cPhip{tmp.cPhip};
240 Amg::Transform3D trans = muonStation->getNominalAmdbLRSToGlobal();
241 if(!muonStation->endcap()){
242 cXmid = (trans.translation()).z();
243 cYmid = ((trans.translation()).perp() + muonStation->RsizeMdtStation()/2.);
244 }else{
245 cXmid = (trans.translation()).perp();
246 cYmid = (trans.translation()).z();
247 if(cYmid>0) cYmid += muonStation->RsizeMdtStation()/2.;
248 else cYmid -= muonStation->RsizeMdtStation()/2.;
249 }
250 cPhip = (trans.translation()).phi();
251
252 double &R {tmp.R}, &Z {tmp.Z};
253 R = -99999.; Z = -99999.;
254 R = mdtReadout->center(tmp.TubeLayer, tmp.Tube).perp();
255 Z = mdtReadout->center(tmp.TubeLayer, tmp.Tube).z();
256
257 double dphi = 0;
258 double cphi = muonRoad.phi[chamber][0];
259 if( cPhip*cphi>0 ) {
260 dphi = std::abs(cPhip - cphi);
261 } else {
262 if(std::abs(cphi) > M_PI/2.) {
263 double phi1 = (cPhip>0.)? cPhip-M_PI : cPhip+M_PI;
264 double phi2 = (cphi >0.)? cphi -M_PI : cphi +M_PI;
265 dphi = std::abs(phi1) + std::abs(phi2);
266 }
267 else {
268 dphi = std::abs(cPhip) + std::abs(cphi);
269 }
270 }
271
272 if(muonStation->endcap()==1) R = R *std::hypot(1, std::tan(dphi));
273
274 double Rmin = (trans * muonStation->getBlineFixedPointInAmdbLRS()).perp();
275 double OrtoRadialPos = mdtReadout->getStationS();
276 tmp.cInCo = 1./std::cos(std::atan(OrtoRadialPos/Rmin));
277 tmp.cPhi0 = cPhip - std::atan(OrtoRadialPos/Rmin);
278 if(cPhip<0. && (std::abs(M_PI+cPhip) < 0.05) ) cPhip = M_PI;
279
280 ATH_MSG_DEBUG(" ...MDT hit Z/R/chamber/MultiLater/TubeLayer/Tube/Layer/adc/tdc = "
281 << Z << "/" << R << "/" << chamber << "/" << tmp.Multilayer << "/" << tmp.TubeLayer << "/"
282 << tmp.Tube << "/" << Layer << "/" << tmp.Adc << "/" << drift);
283
284 mdtHits.push_back(std::move(tmp));
285
286 } // end of MdtPrepDataCollection loop
287 } // end of hashList loop
288
289 return StatusCode::SUCCESS;
290}
#define M_PI
Scalar perp() const
perp method - perpendicular length
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
int getNLayers() const
Returns the number of tube layers inside the multilayer.
int getMultilayer() const
Returns the multilayer represented by the readout element.
virtual const Amg::Vector3D & center(const Identifier &) const override final
Return the center of the surface associated with this identifier In the case of silicon it returns th...
double getStationS() const
Seems to be exclusively used by the MDTs --> Move it to MdtReadoutElement.
const Amg::Transform3D & getNominalAmdbLRSToGlobal() const
const Amg::Vector3D & getBlineFixedPointInAmdbLRS() const
double RsizeMdtStation() const
bool isPresent() const
Is the referenced object present in SG?
std::unordered_set< Identifier > m_DeadChannels
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_mdtPrepContainerKey
double phi[N_STATION][N_SECTOR]
Definition MuonRoad.h:85
Eigen::Affine3d Transform3D
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
@ BarrelInner
Inner station in the barrel spectrometer.
@ EndcapOuter
Outer station in the endcap spectrometer.
@ BarrelMiddle
Middle station in the barrel spectrometer.
@ EndcapMiddle
Middle station in the endcap spectrometer.
@ BEE
BEE measurement point.
@ EndcapExtra
Extra station in the endcap spectrometer.
@ BarrelOuter
Outer station in the barrel spectrometer.
@ BME
BME measurement point.
@ EndcapInner
Inner station in the endcap spectrometer.

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ 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.

◆ evtStore()

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.

◆ 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

◆ getMdtHits()

StatusCode TrigL2MuonSA::MdtDataPreparator::getMdtHits ( const EventContext & ctx,
const TrigRoiDescriptor * p_roids,
TrigL2MuonSA::MuonRoad & muonRoad,
TrigL2MuonSA::MdtHits & mdtHits ) const
private

Definition at line 113 of file MdtDataPreparator.cxx.

118{
119 std::vector<IdentifierHash> mdtHashList;
120
122
123 ATH_MSG_DEBUG("Use RoI based data access");
124
125 m_regionSelector->lookup(ctx)->HashIDList(*p_roids, mdtHashList);
126 ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
127
128 } else {
129
130 ATH_MSG_DEBUG("Use full data access");
131
132 TrigRoiDescriptor fullscan_roi( true );
133 m_regionSelector->lookup( ctx )->HashIDList(fullscan_roi, mdtHashList);
134 ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
135
136 }
137
138 ATH_CHECK( collectMdtHitsFromPrepData(ctx, mdtHashList, mdtHits, muonRoad) );
139
140 return StatusCode::SUCCESS;
141}
Athena::TPCnvVers::Current TrigRoiDescriptor
StatusCode collectMdtHitsFromPrepData(const EventContext &ctx, const std::vector< IdentifierHash > &v_idHash, TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::MuonRoad &muonRoad) const
Gaudi::Property< bool > m_use_RoIBasedDataAccess
ToolHandle< IRegSelTool > m_regionSelector

◆ initDeadChannels()

void TrigL2MuonSA::MdtDataPreparator::initDeadChannels ( const MuonGM::MdtReadoutElement * mydetEl)
private

Definition at line 295 of file MdtDataPreparator.cxx.

295 {
296 PVConstLink cv = mydetEl->getMaterialGeom(); // it is "Multilayer"
297 int nGrandchildren = cv->getNChildVols();
298 if(nGrandchildren <= 0) return;
299
300 std::vector<int> tubes;
301 geoGetIds ([&] (int id) { tubes.push_back (id); }, cv);
302 std::sort (tubes.begin(), tubes.end());
303
304 Identifier detElId = mydetEl->identify();
305
306 int name = m_idHelperSvc->mdtIdHelper().stationName(detElId);
307 int eta = m_idHelperSvc->mdtIdHelper().stationEta(detElId);
308 int phi = m_idHelperSvc->mdtIdHelper().stationPhi(detElId);
309 int ml = m_idHelperSvc->mdtIdHelper().multilayer(detElId);
310
311 std::vector<int>::iterator it = tubes.begin();
312 for(int layer = 1; layer <= mydetEl->getNLayers(); layer++){
313 for(int tube = 1; tube <= mydetEl->getNtubesperlayer(); tube++){
314 int want_id = layer*maxNTubesPerLayer + tube;
315 if (it != tubes.end() && *it == want_id) {
316 ++it;
317 }
318 else {
319 it = std::lower_bound (tubes.begin(), tubes.end(), want_id);
320 if (it != tubes.end() && *it == want_id) {
321 ++it;
322 }
323 else {
324 Identifier deadTubeId = m_idHelperSvc->mdtIdHelper().channelID( name, eta, phi, ml, layer, tube );
325 m_DeadChannels.insert(deadTubeId);
326 ATH_MSG_VERBOSE("adding dead tube (" << tube << "), layer(" << layer
327 << "), phi(" << phi << "), eta(" << eta << "), name(" << name
328 << "), multilayerId(" << ml << ") and identifier " << deadTubeId <<" .");
329 }
330 }
331 }
332 }
333}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_VERBOSE(x)
void geoGetIds(FUNCTION f, const GeoGraphNode *node, int depthLimit=1)
Template helper for running the visitor.
Definition GeoGetIds.h:82
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
@ layer
Definition HitInfo.h:79
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ initialize()

StatusCode TrigL2MuonSA::MdtDataPreparator::initialize ( )
overridevirtual

Definition at line 32 of file MdtDataPreparator.cxx.

33{
34
35 // Locate RegionSelector
36 ATH_CHECK( m_regionSelector.retrieve());
37
38 ATH_CHECK( m_mdtRegionDefiner.retrieve() );
39 ATH_MSG_DEBUG("Retrieved service " << m_mdtRegionDefiner);
40
41 ATH_CHECK( m_idHelperSvc.retrieve() );
42 ATH_CHECK(m_mdtPrepContainerKey.initialize());
43
44 if(!m_isPhase2){
45
46 const MuonGM::MuonDetectorManager* muonDetMgr=nullptr;
47 ATH_CHECK( detStore()->retrieve(muonDetMgr) );
48 ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
49
50 if(m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG") != -1){ //if we have BMGs
51
52 ATH_MSG_INFO("Processing configuration for layouts with BMG chambers.");
53 m_BMGid = m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG");
54 for(int phi=6; phi<8; phi++) { // phi sectors - BMGs are ony in (6 aka 12) and (7 aka 14)
55 for(int eta=1; eta<4; eta++) { // eta sectors - BMGs are in eta 1 to 3
56 for(int side=-1; side<2; side+=2) { // side - both sides have BMGs
57 if( !muonDetMgr->getMuonStation("BMG", side*eta, phi) ) continue;
58 for(int roe=1; roe<=( muonDetMgr->getMuonStation("BMG", side*eta, phi) )->nMuonReadoutElements(); roe++) { // iterate on readout elemets
59 const MuonGM::MdtReadoutElement* mdtRE =
60 dynamic_cast<const MuonGM::MdtReadoutElement*> ( ( muonDetMgr->getMuonStation("BMG", side*eta, phi) )->getMuonReadoutElement(roe) ); // has to be an MDT
61 if(mdtRE) initDeadChannels(mdtRE);
62 }
63 }
64 }
65 }
66 }
67 }
68 return StatusCode::SUCCESS;
69}
#define ATH_MSG_INFO(x)
const ServiceHandle< StoreGateSvc > & detStore() const
const MuonStation * getMuonStation(const std::string &stName, int eta, int phi) const
void initDeadChannels(const MuonGM::MdtReadoutElement *mydetEl)
Gaudi::Property< bool > m_isPhase2
ToolHandle< MdtRegionDefiner > m_mdtRegionDefiner
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ 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()

const InterfaceID & TrigL2MuonSA::MdtDataPreparator::interfaceID ( )
static

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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.

◆ prepareData() [1/2]

StatusCode TrigL2MuonSA::MdtDataPreparator::prepareData ( const EventContext & ctx,
const TrigRoiDescriptor * p_roids,
const TrigL2MuonSA::RpcFitResult & rpcFitResult,
TrigL2MuonSA::MuonRoad & muonRoad,
TrigL2MuonSA::MdtRegion & mdtRegion,
TrigL2MuonSA::MdtHits & mdtHits ) const

Definition at line 74 of file MdtDataPreparator.cxx.

81{
82 // define regions
83 ATH_CHECK( m_mdtRegionDefiner->getMdtRegions(p_roids, rpcFitResult, muonRoad, mdtRegion) );
84
85 ATH_CHECK( getMdtHits(ctx, p_roids, muonRoad, mdtHits) );
86
87 return StatusCode::SUCCESS;
88}
StatusCode getMdtHits(const EventContext &ctx, const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits) const

◆ prepareData() [2/2]

StatusCode TrigL2MuonSA::MdtDataPreparator::prepareData ( const EventContext & ctx,
const TrigRoiDescriptor * p_roids,
const TrigL2MuonSA::TgcFitResult & tgcFitResult,
TrigL2MuonSA::MuonRoad & muonRoad,
TrigL2MuonSA::MdtRegion & mdtRegion,
TrigL2MuonSA::MdtHits & mdtHits ) const

Definition at line 93 of file MdtDataPreparator.cxx.

100{
101 // define regions
102 ATH_CHECK( m_mdtRegionDefiner->getMdtRegions(p_roids, tgcFitResult, muonRoad, mdtRegion) );
103
104 ATH_CHECK( getMdtHits(ctx, p_roids, muonRoad, mdtHits) );
105
106 return StatusCode::SUCCESS;
107}

◆ 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();
384 }
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)

◆ 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 {
366 }

◆ setRoIBasedDataAccess()

void TrigL2MuonSA::MdtDataPreparator::setRoIBasedDataAccess ( bool use_RoIBasedDataAccess)
inline

Definition at line 62 of file MdtDataPreparator.h.

62{m_use_RoIBasedDataAccess = use_RoIBasedDataAccess;};

◆ setRpcGeometry()

void TrigL2MuonSA::MdtDataPreparator::setRpcGeometry ( bool use_rpc)
inline

Definition at line 61 of file MdtDataPreparator.h.

61{m_mdtRegionDefiner->setRpcGeometry(use_rpc);};

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_BMGid

int TrigL2MuonSA::MdtDataPreparator::m_BMGid {0}
private

Definition at line 96 of file MdtDataPreparator.h.

96{0};

◆ m_DeadChannels

std::unordered_set<Identifier> TrigL2MuonSA::MdtDataPreparator::m_DeadChannels {}
private

Definition at line 97 of file MdtDataPreparator.h.

97{};

◆ 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_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> TrigL2MuonSA::MdtDataPreparator::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 80 of file MdtDataPreparator.h.

80{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};

◆ m_isPhase2

Gaudi::Property<bool> TrigL2MuonSA::MdtDataPreparator::m_isPhase2 {this, "isPhase2", false, "if the phase 2 geometry is setup"}
private

Definition at line 93 of file MdtDataPreparator.h.

93{this, "isPhase2", false, "if the phase 2 geometry is setup"};

◆ m_mdtPrepContainerKey

SG::ReadHandleKey<Muon::MdtPrepDataContainer> TrigL2MuonSA::MdtDataPreparator::m_mdtPrepContainerKey
private
Initial value:
{
this, "MDTPrepDataContainer","MDT_DriftCircles", "Name of the MDTContainer to read in"}

Definition at line 90 of file MdtDataPreparator.h.

90 {
91 this, "MDTPrepDataContainer","MDT_DriftCircles", "Name of the MDTContainer to read in"};

◆ m_mdtRegionDefiner

ToolHandle<MdtRegionDefiner> TrigL2MuonSA::MdtDataPreparator::m_mdtRegionDefiner
private
Initial value:
{
this, "MdtRegionDefiner", "TrigL2MuonSA::MdtRegionDefiner"}

Definition at line 86 of file MdtDataPreparator.h.

86 {
87 this, "MdtRegionDefiner", "TrigL2MuonSA::MdtRegionDefiner"};

◆ m_regionSelector

ToolHandle<IRegSelTool> TrigL2MuonSA::MdtDataPreparator::m_regionSelector {this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"}
private

Definition at line 83 of file MdtDataPreparator.h.

83{this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"};

◆ m_use_RoIBasedDataAccess

Gaudi::Property<bool> TrigL2MuonSA::MdtDataPreparator::m_use_RoIBasedDataAccess {this, "use_RoIBasedDataAccess", false}
private

Definition at line 94 of file MdtDataPreparator.h.

94{this, "use_RoIBasedDataAccess", false};

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