 |
ATLAS Offline Software
|
#include <MuFastSteering.h>
|
| | MuFastSteering (const std::string &name, ISvcLocator *svc) |
| | Constructor. More...
|
| |
| virtual StatusCode | initialize () override |
| |
| virtual StatusCode | stop () override |
| |
| virtual StatusCode | execute (const EventContext &ctx) const override |
| | execute(), main code of the algorithm for AthenaMT More...
|
| |
| StatusCode | findMuonSignature (const std::vector< const TrigRoiDescriptor * > &roi, const std::vector< const xAOD::MuonRoI * > &muonRoIs, DataVector< xAOD::L2StandAloneMuon > &outputTracks, xAOD::TrigCompositeContainer *outputMuonCal, TrigRoiDescriptorCollection &outputID, TrigRoiDescriptorCollection &outputMS, const bool dynamicDeltaRpc, const EventContext &ctx) const |
| | findMuonSignature(), includes reconstract algorithms More...
|
| |
| StatusCode | findMuonSignatureIO (const xAOD::TrackParticleContainer &idtracks, const std::vector< const TrigRoiDescriptor * > &roids, const std::vector< const xAOD::MuonRoI * > &muonRoIs, DataVector< xAOD::L2CombinedMuon > &outputCBs, DataVector< xAOD::L2StandAloneMuon > &outputSAs, const bool dynamicDeltaRpc, const EventContext &ctx) const |
| | findMuonSignatureIO(), includes reconstract algorithms for inside-out mode More...
|
| |
| StatusCode | findMultiTrackSignature (const std::vector< const TrigRoiDescriptor * > &roi, const std::vector< const xAOD::MuonRoI * > &muonRoIs, DataVector< xAOD::L2StandAloneMuon > &outputTracks, const bool dynamicDeltaRpc, const EventContext &ctx) const |
| | findMultiTrackSignature(), includes reconstract algorithms for multi-track mode More...
|
| |
| int | L2MuonAlgoMap (const std::string &name) const |
| |
| virtual void | handle (const Incident &incident) override |
| |
| virtual StatusCode | sysInitialize () override |
| | Override sysInitialize. More...
|
| |
| virtual bool | isClonable () const override |
| | Specify if the algorithm is clonable. More...
|
| |
| virtual unsigned int | cardinality () const override |
| | Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
| |
| virtual StatusCode | sysExecute (const EventContext &ctx) override |
| | Execute an algorithm. More...
|
| |
| virtual const DataObjIDColl & | extraOutputDeps () const override |
| | Return the list of extra output dependencies. More...
|
| |
| virtual bool | filterPassed (const EventContext &ctx) const |
| |
| virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
| |
| 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, V, H > &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 |
| |
|
| bool | updateOutputObjects (const xAOD::MuonRoI *roi, const TrigRoiDescriptor *roids, const TrigL2MuonSA::MuonRoad &muonRoad, const TrigL2MuonSA::MdtRegion &mdtRegion, const TrigL2MuonSA::RpcHits &rpcHits, const TrigL2MuonSA::TgcHits &tgcHits, const TrigL2MuonSA::RpcFitResult &rpcFitResult, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::CscHits &cscHits, const TrigL2MuonSA::StgcHits &stgcHits, const TrigL2MuonSA::MmHits &mmHits, const std::vector< TrigL2MuonSA::TrackPattern > &trackPatterns, DataVector< xAOD::L2StandAloneMuon > &outputTracks, TrigRoiDescriptorCollection &outputID, TrigRoiDescriptorCollection &outputMS, const EventContext &ctx) const |
| | Called at the end of the algorithm processing to set the steering navigation properly. More...
|
| |
| bool | storeMuonSA (const xAOD::MuonRoI *roi, const TrigRoiDescriptor *roids, const TrigL2MuonSA::MuonRoad &muonRoad, const TrigL2MuonSA::MdtRegion &mdtRegion, const TrigL2MuonSA::RpcHits &rpcHits, const TrigL2MuonSA::TgcHits &tgcHits, const TrigL2MuonSA::RpcFitResult &rpcFitResult, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::CscHits &cscHits, const TrigL2MuonSA::StgcHits &stgcHits, const TrigL2MuonSA::MmHits &mmHits, const TrigL2MuonSA::TrackPattern &pattern, DataVector< xAOD::L2StandAloneMuon > &outputTracks, const EventContext &ctx) const |
| |
| bool | storeMSRoiDescriptor (const TrigRoiDescriptor *roids, const TrigL2MuonSA::TrackPattern &pattern, const DataVector< xAOD::L2StandAloneMuon > &outputTracks, TrigRoiDescriptorCollection &outputMS) const |
| |
| bool | storeIDRoiDescriptor (const TrigRoiDescriptor *roids, const TrigL2MuonSA::TrackPattern &pattern, const DataVector< xAOD::L2StandAloneMuon > &outputTracks, TrigRoiDescriptorCollection &outputID) const |
| |
| StatusCode | updateMonitor (const xAOD::MuonRoI *roi, const TrigL2MuonSA::MdtHits &mdtHits, std::vector< TrigL2MuonSA::TrackPattern > &trackPatterns) const |
| | Update monitoring variables. More...
|
| |
| 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...
|
| |
|
| float | getRoiSizeForID (bool isEta, const xAOD::L2StandAloneMuon *muonSA) const |
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
| |
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| | specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
| |
|
| ServiceHandle< IIncidentSvc > | m_incidentSvc {this, "IncidentSvc", "IncidentSvc"} |
| |
| ServiceHandle< Gaudi::Interfaces::IOptionsSvc > | m_jobOptionsSvc {this, "JobOptionsSvc", "JobOptionsSvc", "Job options service to retrieve DataFlowConfig" } |
| |
| Gaudi::Property< float > | m_scaleRoadBarrelInner { this, "Scale_Road_BarrelInner", 1 } |
| |
| Gaudi::Property< float > | m_scaleRoadBarrelMiddle { this, "Scale_Road_BarrelMiddle", 1 } |
| |
| Gaudi::Property< float > | m_scaleRoadBarrelOuter { this, "Scale_Road_BarrelOuter", 1 } |
| |
| Gaudi::Property< bool > | m_use_mcLUT { this, "UseLUTForMC", true} |
| |
| Gaudi::Property< bool > | m_use_new_segmentfit { this, "USE_NEW_SEGMENTFIT", true} |
| |
| Gaudi::Property< bool > | m_use_rpc { this, "USE_RPC", true} |
| |
| Gaudi::Property< bool > | m_use_stgc { this, "USE_STGC", true} |
| |
| Gaudi::Property< bool > | m_use_mm { this, "USE_MM", true} |
| |
| Gaudi::Property< bool > | m_use_RoIBasedDataAccess_MDT { this, "USE_ROIBASEDACCESS_MDT", true} |
| |
| Gaudi::Property< bool > | m_use_RoIBasedDataAccess_RPC { this, "USE_ROIBASEDACCESS_RPC", true} |
| |
| Gaudi::Property< bool > | m_use_RoIBasedDataAccess_TGC { this, "USE_ROIBASEDACCESS_TGC", true} |
| |
| Gaudi::Property< bool > | m_use_RoIBasedDataAccess_CSC { this, "USE_ROIBASEDACCESS_CSC", true} |
| |
| Gaudi::Property< bool > | m_use_RoIBasedDataAccess_STGC { this, "USE_ROIBASEDACCESS_STGC", true} |
| |
| Gaudi::Property< bool > | m_use_RoIBasedDataAccess_MM { this, "USE_ROIBASEDACCESS_MM", true} |
| |
| Gaudi::Property< bool > | m_doCalStream { this, "DoCalibrationStream", true} |
| |
| Gaudi::Property< bool > | m_calDataScouting { this, "MuonCalDataScouting", false} |
| |
| Gaudi::Property< bool > | m_rpcErrToDebugStream { this, "RpcErrToDebugStream", false} |
| |
| Gaudi::Property< bool > | m_use_endcapInnerFromBarrel { this, "UseEndcapInnerFromBarrel", false} |
| |
| Gaudi::Property< int > | m_esd_rpc_size { this, "ESD_RPC_size", 100 } |
| |
| Gaudi::Property< int > | m_esd_tgc_size { this, "ESD_TGC_size", 50 } |
| |
| Gaudi::Property< int > | m_esd_mdt_size { this, "ESD_MDT_size", 100 } |
| |
| Gaudi::Property< int > | m_esd_csc_size { this, "ESD_CSC_size", 100 } |
| |
| Gaudi::Property< int > | m_esd_stgc_size { this, "ESD_STGC_size", 100 } |
| |
| Gaudi::Property< int > | m_esd_mm_size { this, "ESD_MM_size", 100 } |
| |
| Gaudi::Property< double > | m_rWidth_RPC_Failed { this, "R_WIDTH_RPC_FAILED", 400 } |
| |
| Gaudi::Property< double > | m_rWidth_TGC_Failed { this, "R_WIDTH_TGC_FAILED", 200 } |
| |
| Gaudi::Property< double > | m_winPt { this, "WinPt", 4.0 } |
| |
| Gaudi::Property< bool > | m_insideOut { this, "InsideOutMode", false, "" } |
| |
| Gaudi::Property< bool > | m_multiTrack { this, "multitrackMode", false, "" } |
| |
| Gaudi::Property< bool > | m_doEndcapForl2mt { this, "doEndcapForl2mt", false, "" } |
| |
| Gaudi::Property< float > | m_ftfminPt { this, "FTFminPt", 3500, "pT [MeV] threshold to FTF tracks for L2Muon Inside-out mode" } |
| |
| Gaudi::Property< bool > | m_topoRoad { this, "topoRoad", false, "create road in barrel not to highly overlap surrounding L1 RoIs" } |
| |
| Gaudi::Property< float > | m_dPhisurrRoI { this, "dPhisurrRoI", 99, "phi range to find surrounding L1 RoIs" } |
| |
| Gaudi::Property< float > | m_dEtasurrRoI { this, "dEtasurrRoI", 99, "eta range to find surrounding L1 RoIs" } |
| |
| Gaudi::Property< bool > | m_allowOksConfig { this, "AllowOksConfig", true} |
| |
| Gaudi::Property< std::string > | m_calBufferName { this, "MuonCalBufferName", "/tmp/testOutput"} |
| |
| Gaudi::Property< int > | m_calBufferSize { this, "MuonCalBufferSize", 1024*1024} |
| |
| Gaudi::Property< bool > | m_fill_FSIDRoI { this, "FILL_FSIDRoI", false, "Fill FS RoI for ID (will be used in cosmic run)"} |
| |
| Gaudi::Property< bool > | m_useRun3Config { this, "UseRun3Config", false, "use Run3 L1Muon EDM; xAOD::MuonRoI"} |
| |
| SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfoKey |
| |
| SG::ReadHandleKey< TrigRoiDescriptorCollection > | m_roiCollectionKey |
| |
| SG::ReadHandleKey< DataVector< LVL1::RecMuonRoI > > | m_run2recRoiCollectionKey |
| |
| SG::ReadHandleKey< xAOD::MuonRoIContainer > | m_recRoiCollectionKey |
| |
| SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_FTFtrackKey |
| |
| SG::WriteHandleKey< xAOD::L2StandAloneMuonContainer > | m_muFastContainerKey |
| |
| SG::WriteHandleKey< xAOD::TrigCompositeContainer > | m_muCompositeContainerKey |
| |
| SG::WriteHandleKey< TrigRoiDescriptorCollection > | m_muIdContainerKey |
| |
| SG::WriteHandleKey< TrigRoiDescriptorCollection > | m_muMsContainerKey |
| |
| SG::WriteHandleKey< xAOD::L2CombinedMuonContainer > | m_outputCBmuonCollKey |
| |
| ToolHandle< GenericMonitoringTool > | m_monTool { this, "MonTool", "", "Monitoring tool" } |
| |
| DataObjIDColl | m_extendedExtraObjects |
| | Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
| |
| 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 |
| |
Definition at line 44 of file MuFastSteering.h.
◆ StoreGateSvc_t
◆ anonymous enum
| Enumerator |
|---|
| ITIMER_DATA_PREPARATOR | |
| ITIMER_PATTERN_FINDER | |
| ITIMER_STATION_FITTER | |
| ITIMER_TRACK_FITTER | |
| ITIMER_TRACK_EXTRAPOLATOR | |
| ITIMER_CALIBRATION_STREAMER | |
| ITIMER_TOTAL_PROCESSING | |
Definition at line 47 of file MuFastSteering.h.
◆ MuFastSteering()
| MuFastSteering::MuFastSteering |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svc |
|
) |
| |
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
| name | Name of the property. |
| hndl | Object holding the property value. |
| doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
| name | Name of the property. |
| hndl | Object holding the property value. |
| doc | Documentation 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.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
| name | Name of the property. |
| property | Object holding the property value. |
| doc | Documentation 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.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
| name | Name of the property. |
| property | Object holding the property value. |
| doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
| StatusCode MuFastSteering::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
execute(), main code of the algorithm for AthenaMT
Definition at line 228 of file MuFastSteering.cxx.
231 ATH_MSG_ERROR(
"You are not supposed to run trigger on RUN2 layout anymore.");
232 return StatusCode::FAILURE;
241 if (!roiCollectionHandle.isValid()){
243 return StatusCode::FAILURE;
248 if (!recRoiCollectionHandle.isValid()){
250 return StatusCode::FAILURE;
253 std::vector< const TrigRoiDescriptor* > internalRoI;
257 for(; p_roids != p_roidsEn; ++p_roids ) {
258 internalRoI.push_back(*p_roids);
259 ATH_MSG_DEBUG(
"REGTEST: " <<
m_roiCollectionKey.
key() <<
" eta = " <<
"(" << (*p_roids)->etaMinus() <<
")" << (*p_roids)->eta() <<
"(" << (*p_roids)->etaPlus() <<
")");
260 ATH_MSG_DEBUG(
"REGTEST: " <<
m_roiCollectionKey.
key() <<
" phi = " <<
"(" << (*p_roids)->phiMinus() <<
")" << (*p_roids)->phi() <<
"(" << (*p_roids)->phiPlus() <<
")");
261 ATH_MSG_DEBUG(
"REGTEST: " <<
m_roiCollectionKey.
key() <<
" zed = " <<
"(" << (*p_roids)->zedMinus() <<
")" << (*p_roids)->zed() <<
"(" << (*p_roids)->zedPlus() <<
")");
266 std::vector< const xAOD::MuonRoI* > recRoIVector;
267 std::vector< const xAOD::MuonRoI* > surrRoIs;
271 if( recRoI ==
nullptr )
continue;
272 recRoIVector.push_back(recRoI);
277 bool dynamicDeltaRpc =
false;
278 int nPassedBarrelSurrRoi = 0;
280 for(
const auto recRoI: *recRoiCollection ){
281 if(
std::find(recRoIVector.begin(), recRoIVector.end(), recRoI) != recRoIVector.end())
continue;
283 bool surrounding =
false;
284 for(
const auto matchedRoI: recRoIVector ){
285 float deta = std::abs(recRoI->
eta() - matchedRoI->eta());
286 float dphi = std::abs(recRoI->
phi() - matchedRoI->phi());
287 if( dphi >
M_PI )dphi = 2.*
M_PI - dphi;
293 surrRoIs.push_back(recRoI);
297 for(
const auto recRoI: surrRoIs ){
299 if( std::abs((recRoI)->
eta()) <= 1.05 && (recRoI)->getThrNumber() >= 1 )nPassedBarrelSurrRoi++;
301 ATH_MSG_DEBUG(
"nPassedBarrelSurrRoi = " << nPassedBarrelSurrRoi);
303 if( nPassedBarrelSurrRoi >= 1 )
304 dynamicDeltaRpc =
true;
309 ATH_CHECK(muFastContainer.record(std::make_unique<xAOD::L2StandAloneMuonContainer>(), std::make_unique<xAOD::L2StandAloneMuonAuxContainer>()));
314 ATH_CHECK(wh_muCompositeCont.record(std::make_unique<xAOD::TrigCompositeContainer>(), std::make_unique<xAOD::TrigCompositeAuxContainer>()));
315 muCompositeContainer = wh_muCompositeCont.ptr();
319 ATH_CHECK(muIdContainer.record(std::make_unique<TrigRoiDescriptorCollection>()));
322 ATH_CHECK(muMsContainer.record(std::make_unique<TrigRoiDescriptorCollection>()));
330 ATH_CHECK( muonCBColl.record (std::make_unique<xAOD::L2CombinedMuonContainer>(),
331 std::make_unique<xAOD::L2CombinedMuonAuxContainer>()) );
334 if (!trackHandle.isValid()){
336 return StatusCode::FAILURE;
341 *muonCBColl, *muFastContainer, dynamicDeltaRpc, ctx ));
345 for (
const auto p_CBmuon : *muonCBColl){
357 *muFastContainer, muCompositeContainer, *muIdContainer, *muMsContainer, dynamicDeltaRpc, ctx));
365 for (
auto p_muon : *muFastContainer) {
371 for (
auto p_muonID : *muIdContainer) {
376 for (
auto p_muonMS : *muMsContainer) {
381 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::execute() success");
382 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ findMultiTrackSignature()
findMultiTrackSignature(), includes reconstract algorithms for multi-track mode
Definition at line 1030 of file MuFastSteering.cxx.
1036 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMultiTrackSignature start");
1041 std::vector<TrigL2MuonSA::RpcFitResult> clusterFitResults;
1042 std::vector< TrigL2MuonSA::MuonRoad > clusterRoad;
1043 std::vector<TrigL2MuonSA::MdtHits> mdtHits_cluster_normal;
1054 trackFitterTimer, trackExtraTimer, calibrationTimer );
1071 p_roids = roids.begin();
1072 for (p_roi=(muonRoIs).
begin(); p_roi!=(muonRoIs).
end(); ++p_roi) {
1075 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
1080 rpcFitResult.
Clear();
1081 tgcFitResult.
Clear();
1087 clusterFitResults.clear();
1088 clusterRoad.clear();
1089 mdtHits_cluster_normal.clear();
1105 mdtHits_cluster_normal,
1108 if (!
sc.isSuccess()) {
1116 for(
unsigned int i_road = 0; i_road < clusterRoad.size(); i_road++){
1118 std::vector<TrigL2MuonSA::TrackPattern> tmp_trkPats; tmp_trkPats.clear();
1120 patternTimer.start();
1122 clusterRoad.at(i_road),
1123 mdtHits_cluster_normal.at(i_road),
1125 if (!
sc.isSuccess()) {
1129 patternTimer.stop();
1132 stationFitterTimer.start();
1134 clusterFitResults.at(i_road),
1136 if (!
sc.isSuccess()) {
1141 stationFitterTimer.stop();
1144 trackFitterTimer.start();
1146 clusterFitResults.at(i_road),
1149 if (!
sc.isSuccess()) {
1153 trackFitterTimer.stop();
1156 const float ETA_LIMIT = 2.8;
1157 const float DELTA_ETA_LIMIT = 1.0;
1159 float roiEta = (*p_roi)->eta();
1161 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
1167 trackExtraTimer.start();
1172 if (
sc != StatusCode::SUCCESS) {
1177 trackExtraTimer.stop();
1179 if(tmp_trkPats.size() > 0){
1180 ATH_MSG_DEBUG(
"temp pT calculated 2mu-in-1RoI alg = " << tmp_trkPats[0].
pt <<
" GeV");
1181 if( (std::abs(tmp_trkPats[0].barrelSagitta) <
ZERO_LIMIT &&
1185 trackPatterns.push_back(tmp_trkPats[0]);
1188 storeMuonSA(*p_roi, *p_roids, clusterRoad.at(i_road), mdtRegion, rpcHits, tgcHits,
1189 clusterFitResults.at(i_road), tgcFitResult, mdtHits_cluster_normal.at(i_road), cscHits,
1190 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1193 if(trackPatterns.empty()){
1194 ATH_MSG_DEBUG(
"multi-track SA falied to reconstruct muons");
1196 trackPatterns.push_back(trackPattern);
1197 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1198 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1199 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1206 ATH_MSG_DEBUG(
"multi-track SA does nothings and skips for EndcapRoI");
1222 if (!
sc.isSuccess()) {
1225 trackPatterns.push_back(trackPattern);
1227 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1228 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1229 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1235 patternTimer.start();
1245 if (!
sc.isSuccess()) {
1248 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1249 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1250 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1253 patternTimer.stop();
1256 stationFitterTimer.start();
1273 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
1275 if (!
sc.isSuccess()) {
1277 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1278 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1279 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1283 stationFitterTimer.stop();
1286 trackFitterTimer.start();
1292 if (!
sc.isSuccess()) {
1294 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1295 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1296 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1299 trackFitterTimer.stop();
1302 const float ETA_LIMIT = 2.8;
1303 const float DELTA_ETA_LIMIT = 1.0;
1305 float roiEta = (*p_roi)->eta();
1307 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
1313 trackExtraTimer.start();
1317 if (
sc != StatusCode::SUCCESS) {
1319 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1320 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1321 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1324 trackExtraTimer.stop();
1326 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1327 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1328 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1333 if (
sc != StatusCode::SUCCESS) {
1338 if (p_roids==roids.end())
break;
1341 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMultiTrackSignature success");
1342 return StatusCode::SUCCESS;
◆ findMuonSignature()
findMuonSignature(), includes reconstract algorithms
Definition at line 388 of file MuFastSteering.cxx.
397 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignature start");
408 trackFitterTimer, trackExtraTimer, calibrationTimer );
425 p_roids = roids.begin();
426 for (p_roi=(muonRoIs).
begin(); p_roi!=(muonRoIs).
end(); ++p_roi) {
429 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
434 rpcFitResult.
Clear();
435 tgcFitResult.
Clear();
459 if (!
sc.isSuccess()) {
462 trackPatterns.push_back(std::move(trackPattern));
465 rpcFitResult, tgcFitResult, mdtHits, cscHits,
467 trackPatterns, outputTracks, outputID, outputMS, ctx);
473 patternTimer.start();
478 if (!
sc.isSuccess()) {
482 rpcFitResult, tgcFitResult, mdtHits, cscHits,
484 trackPatterns, outputTracks, outputID, outputMS, ctx);
490 stationFitterTimer.start();
494 if (!
sc.isSuccess()) {
498 rpcFitResult, tgcFitResult, mdtHits, cscHits,
500 trackPatterns, outputTracks, outputID, outputMS, ctx);
503 stationFitterTimer.stop();
506 trackFitterTimer.start();
511 if (!
sc.isSuccess()) {
515 rpcFitResult, tgcFitResult, mdtHits, cscHits,
517 trackPatterns, outputTracks, outputID, outputMS, ctx);
520 trackFitterTimer.stop();
540 if (!
sc.isSuccess()) {
543 trackPatterns.push_back(trackPattern);
546 rpcFitResult, tgcFitResult, mdtHits, cscHits,
548 trackPatterns, outputTracks, outputID, outputMS, ctx);
554 patternTimer.start();
562 if (!
sc.isSuccess()) {
566 rpcFitResult, tgcFitResult, mdtHits, cscHits,
568 trackPatterns, outputTracks, outputID, outputMS, ctx);
574 stationFitterTimer.start();
592 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
594 if (!
sc.isSuccess()) {
598 rpcFitResult, tgcFitResult, mdtHits, cscHits,
600 trackPatterns, outputTracks, outputID, outputMS, ctx);
604 stationFitterTimer.stop();
607 trackFitterTimer.start();
613 if (!
sc.isSuccess()) {
617 rpcFitResult, tgcFitResult, mdtHits, cscHits,
619 trackPatterns, outputTracks, outputID, outputMS, ctx);
622 trackFitterTimer.stop();
626 const float ETA_LIMIT = 2.8;
627 const float DELTA_ETA_LIMIT = 1.0;
630 float roiEta = (*p_roi)->eta();
632 ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
638 trackExtraTimer.start();
642 if (
sc != StatusCode::SUCCESS) {
646 rpcFitResult, tgcFitResult, mdtHits, cscHits,
648 trackPatterns, outputTracks, outputID, outputMS, ctx);
651 trackExtraTimer.stop();
655 if (
sc != StatusCode::SUCCESS) {
659 rpcFitResult, tgcFitResult, mdtHits, cscHits,
661 trackPatterns, outputTracks, outputID, outputMS, ctx);
667 rpcFitResult, tgcFitResult, mdtHits, cscHits,
669 trackPatterns, outputTracks, outputID, outputMS, ctx);
677 std::vector<uint32_t> localBuffer;
684 if (
sc != StatusCode::SUCCESS ) {
690 ATH_MSG_DEBUG(
"Retrieved the buffer, with size: " << localBuffer.size());
697 ATH_MSG_DEBUG(
"The size of the TrigCompositeContainer is: " << outputMuonCal->
size() );
700 return StatusCode::FAILURE;
705 tc->setDetail(
"muCalibDS", localBuffer );
710 if (p_roids==roids.end())
break;
713 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignature success");
714 return StatusCode::SUCCESS;
◆ findMuonSignatureIO()
findMuonSignatureIO(), includes reconstract algorithms for inside-out mode
Definition at line 722 of file MuFastSteering.cxx.
730 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignatureIO start");
742 trackFitterTimer, trackExtraTimer, calibrationTimer );
757 p_roids = roids.begin();
758 for (
const auto p_roi : muonRoIs) {
759 ATH_MSG_DEBUG(
"roi eta/phi: " << (*p_roi).eta() <<
"/" << (*p_roi).phi());
762 if ( (idtracks).
empty() )
ATH_MSG_DEBUG(
"IO TEST: xAOD::TrackParticleContainer has 0 tracks --> Can not use FTF tracks...");
763 else ATH_MSG_DEBUG(
"IO TEST: xAOD::TrackParticleContainer has " << (idtracks).
size() <<
" tracks --> Start inside-out mode!");
765 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
766 int idtrack_idx = -1;
767 for (
auto idtrack : idtracks) {
783 rpcFitResult.
Clear();
784 tgcFitResult.
Clear();
789 trackPatterns.clear();
792 if (!
sc.isSuccess()) {
799 if ( std::abs(idtrack->eta()) < 1.05 ){
800 ATH_MSG_DEBUG(
"FTF track at IP is in Barrel: " << idtrack->eta());
802 ATH_MSG_DEBUG(
"FTF track at IP is in Endcap: " << idtrack->eta());
825 if (!
sc.isSuccess()) {
834 patternTimer.start();
839 if (!
sc.isSuccess()) {
846 stationFitterTimer.start();
850 if (!
sc.isSuccess()) {
854 stationFitterTimer.stop();
857 trackFitterTimer.start();
861 if (!
sc.isSuccess()) {
865 trackFitterTimer.stop();
885 if (!
sc.isSuccess()) {
894 patternTimer.start();
901 if (!
sc.isSuccess()) {
908 stationFitterTimer.start();
916 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
917 if (!
sc.isSuccess()) {
921 stationFitterTimer.stop();
924 trackFitterTimer.start();
929 if (!
sc.isSuccess()) {
933 trackFitterTimer.stop();
939 const float ETA_LIMIT = 2.8;
940 const float DELTA_ETA_LIMIT = 1.0;
941 float roiEta = (*p_roi).eta();
943 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
944 trackPatterns.back().etaMap =
roiEta;
949 if (
sc != StatusCode::SUCCESS) {
954 if ( std::abs(trackPatterns.back().pt) >
ZERO_LIMIT ) {
955 storeMuonSA(p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
956 rpcFitResult, tgcFitResult, mdtHits, cscHits,
958 trackPatterns.back(), outputSAs, ctx);
963 muonCB->
setPt(idtrack->pt());
964 muonCB->
setEta(idtrack->eta());
965 muonCB->
setPhi(idtrack->phi());
976 if(outputSAs.
size()==0) {
982 rpcFitResult.
Clear();
983 tgcFitResult.
Clear();
988 trackPatterns.clear();
990 storeMuonSA(p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
991 rpcFitResult, tgcFitResult, mdtHits, cscHits,
993 trackPattern, outputSAs, ctx);
1009 for (
auto outputSA : outputSAs){
1010 ATH_MSG_DEBUG(
"outputSA pt/eta/phi: " << outputSA->pt() <<
"/" << outputSA->etaMS() <<
"/" << outputSA->phiMS());
1014 for (
auto outputCB : outputCBs){
1015 ATH_MSG_DEBUG(
"outputCB pt/eta/phi: " << outputCB->pt() <<
"/" << outputCB->eta() <<
"/" << outputCB->phi());
1019 if (p_roids==roids.end())
break;
1022 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignatureIO success");
1023 return StatusCode::SUCCESS;
◆ getRoiSizeForID()
Definition at line 1962 of file MuFastSteering.cxx.
1967 float pt = muonSA->
pt();
1970 const int N_PARAMS = 2;
1973 const float etaMinWin_brl = 0.10;
1974 const float etaMinWin_ec1 = 0.10;
1975 const float etaMinWin_ec2 = 0.10;
1976 const float etaMinWin_ec3 = 0.10;
1977 const float etaMinWin_ecA = 0.10;
1978 const float etaMinWin_ecB = 0.10;
1980 const float etaMaxWin_brl = 0.20;
1981 const float etaMaxWin_ec1 = 0.20;
1982 const float etaMaxWin_ec2 = 0.20;
1983 const float etaMaxWin_ec3 = 0.20;
1984 const float etaMaxWin_ecA = 0.20;
1985 const float etaMaxWin_ecB = 0.20;
1987 const float etaParams_brl[N_PARAMS] = { 0.038, 0.284};
1988 const float etaParams_ec1[N_PARAMS] = { 0.011, 0.519};
1989 const float etaParams_ec2[N_PARAMS] = { 0.023, 0.253};
1990 const float etaParams_ec3[N_PARAMS] = { 0.018, 0.519};
1991 const float etaParams_ecA[N_PARAMS] = { 0.010, 0.431};
1992 const float etaParams_ecB[N_PARAMS] = { 0.023, 0.236};
1995 const float phiMinWin_brl = 0.125;
1996 const float phiMinWin_ec1 = 0.125;
1997 const float phiMinWin_ec2 = 0.125;
1998 const float phiMinWin_ec3 = 0.10;
1999 const float phiMinWin_ecA = 0.15;
2000 const float phiMinWin_ecB = 0.15;
2002 const float phiMaxWin_brl = 0.20;
2003 const float phiMaxWin_ec1 = 0.20;
2004 const float phiMaxWin_ec2 = 0.20;
2005 const float phiMaxWin_ec3 = 0.20;
2006 const float phiMaxWin_ecA = 0.25;
2007 const float phiMaxWin_ecB = 0.20;
2009 const float phiParams_brl[N_PARAMS] = { 0.000, 0.831};
2010 const float phiParams_ec1[N_PARAMS] = { 0.000, 0.885};
2011 const float phiParams_ec2[N_PARAMS] = { 0.015, 0.552};
2012 const float phiParams_ec3[N_PARAMS] = { 0.008, 0.576};
2013 const float phiParams_ecA[N_PARAMS] = { 0.000, 0.830};
2014 const float phiParams_ecB[N_PARAMS] = { 0.006, 1.331};
2023 minWin = etaMinWin_brl;
2024 maxWin = etaMaxWin_brl;
2028 minWin = phiMinWin_brl;
2029 maxWin = phiMaxWin_brl;
2038 minWin = etaMinWin_ecA;
2039 maxWin = etaMaxWin_ecA;
2043 minWin = phiMinWin_ecA;
2044 maxWin = phiMaxWin_ecA;
2050 minWin = etaMinWin_ecB;
2051 maxWin = etaMaxWin_ecB;
2055 minWin = phiMinWin_ecB;
2056 maxWin = phiMaxWin_ecB;
2060 if( std::abs(
eta) < 1.5 ) {
2063 minWin = etaMinWin_ec1;
2064 maxWin = etaMaxWin_ec1;
2068 minWin = phiMinWin_ec1;
2069 maxWin = phiMaxWin_ec1;
2072 else if( std::abs(
eta) < 2.0 ) {
2075 minWin = etaMinWin_ec2;
2076 maxWin = etaMaxWin_ec2;
2080 minWin = phiMinWin_ec2;
2081 maxWin = phiMaxWin_ec2;
2087 minWin = etaMinWin_ec3;
2088 maxWin = etaMaxWin_ec3;
2092 minWin = phiMinWin_ec3;
2093 maxWin = phiMaxWin_ec3;
2102 if(
x < minWin )
retval = minWin;
2103 if(
x > maxWin )
retval = maxWin;
◆ handle()
| void MuFastSteering::handle |
( |
const Incident & |
incident | ) |
|
|
overridevirtual |
◆ initialize()
| StatusCode MuFastSteering::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 31 of file MuFastSteering.cxx.
118 if (
m_jobOptionsSvc->has(
"MuonHltCalibrationConfig.MuonCalBufferName")) {
123 ATH_MSG_DEBUG(
"Could not parse MuonHltCalibrationConfig.MuonCalBufferName from JobOptionsSvc");
125 if (
m_jobOptionsSvc->has(
"MuonHltCalibrationConfig.MuonCalBufferSize")) {
131 ATH_MSG_DEBUG(
"Could not parse MuonHltCalibrationConfig.MuonCalBufferSize from JobOptionsSvc");
146 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ isClonable()
◆ L2MuonAlgoMap()
| int MuFastSteering::L2MuonAlgoMap |
( |
const std::string & |
name | ) |
const |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ renounce()
◆ renounceArray()
◆ setFilterPassed()
◆ stop()
| StatusCode MuFastSteering::stop |
( |
| ) |
|
|
overridevirtual |
Definition at line 149 of file MuFastSteering.cxx.
155 if (
sc != StatusCode::SUCCESS ) {
162 return StatusCode::SUCCESS;
◆ storeIDRoiDescriptor()
Definition at line 1853 of file MuFastSteering.cxx.
1867 const double scalePhiWidthForFailure = 2;
1868 const double scaleRoIforZeroPt = 2;
1876 float phiHalfWidth = 0.1;
1877 float etaHalfWidth = 0.1;
1893 phiHalfWidth *= scalePhiWidthForFailure;
1899 pattern.etaVtx - etaHalfWidth,
1900 pattern.etaVtx + etaHalfWidth,
1902 pattern.phiVtx - phiHalfWidth,
1903 pattern.phiVtx + phiHalfWidth);
1906 <<
"pattern.etaVtx/pattern.phiVtx="
1910 <<
" phi=" << IDroiDescriptor->
phi()
1911 <<
", eta=" << IDroiDescriptor->
eta());
1921 roids->
eta() - (roids->
eta() - roids->
etaMinus()) * scaleRoIforZeroPt,
1922 roids->
eta() + (roids->
etaPlus() - roids->
eta()) * scaleRoIforZeroPt,
1927 ATH_MSG_VERBOSE(
"will Record an RoiDescriptor for Inner Detector in case with zero pT:"
1928 <<
" phi=" << IDroiDescriptor->
phi()
1929 <<
", phi min=" << IDroiDescriptor->
phiMinus()
1930 <<
", phi max=" << IDroiDescriptor->
phiPlus()
1931 <<
", eta=" << IDroiDescriptor->
eta()
1932 <<
", eta min=" << IDroiDescriptor->
etaMinus()
1933 <<
", eta max=" << IDroiDescriptor->
etaPlus());
◆ storeMSRoiDescriptor()
Definition at line 1807 of file MuFastSteering.cxx.
1821 mseta = roids->
eta();
1822 msphi = roids->
phi();
1826 const float phiHalfWidth = 0.1;
1827 const float etaHalfWidth = 0.1;
1833 mseta - etaHalfWidth,
1834 mseta + etaHalfWidth,
1836 msphi - phiHalfWidth,
1837 msphi + phiHalfWidth);
1841 << mseta <<
"/" << msphi);
1844 <<
" phi=" << MSroiDescriptor->
phi()
1845 <<
", eta=" << MSroiDescriptor->
eta());
◆ storeMuonSA()
| bool MuFastSteering::storeMuonSA |
( |
const xAOD::MuonRoI * |
roi, |
|
|
const TrigRoiDescriptor * |
roids, |
|
|
const TrigL2MuonSA::MuonRoad & |
muonRoad, |
|
|
const TrigL2MuonSA::MdtRegion & |
mdtRegion, |
|
|
const TrigL2MuonSA::RpcHits & |
rpcHits, |
|
|
const TrigL2MuonSA::TgcHits & |
tgcHits, |
|
|
const TrigL2MuonSA::RpcFitResult & |
rpcFitResult, |
|
|
const TrigL2MuonSA::TgcFitResult & |
tgcFitResult, |
|
|
const TrigL2MuonSA::MdtHits & |
mdtHits, |
|
|
const TrigL2MuonSA::CscHits & |
cscHits, |
|
|
const TrigL2MuonSA::StgcHits & |
stgcHits, |
|
|
const TrigL2MuonSA::MmHits & |
mmHits, |
|
|
const TrigL2MuonSA::TrackPattern & |
pattern, |
|
|
DataVector< xAOD::L2StandAloneMuon > & |
outputTracks, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
protected |
Set L2 muon algorithm ID
Set input TE ID
Set level-1 ID
Set lumi block
Set muon detector mask
Set RoI ID
Set RoI system ID (or system ID; Barrel=0, Endcap=1, Forward=2)
Set RoI subsystem ID (0=-z,1=+z)
Set RoI sector ID
Set RoI number
Set RoI threshold number
Set RoI eta
Set RoIp phi
Set RoI word
Set size of storages to be reserved
Definition at line 1386 of file MuFastSteering.cxx.
1404 const int currentRoIId = roids->
roiId();
1406 const EventIDBase& eventID = ctx.eventID();
1408 if (!eventInfo.isValid()) {
1418 int barrelinner = 0;
1419 int endcapinner = 3;
1440 ATH_MSG_DEBUG(
"### Hit patterns at the Muon Spectrometer ###");
1446 ATH_MSG_DEBUG(
"pattern#0: # of hits at endcap barrel inner =" <<
pattern.mdtSegments[barrelinner].size());
1450 ATH_MSG_DEBUG(
"pattern#0: # of hits at barrel endcap inner =" <<
pattern.mdtSegments[endcapinner].size());
1452 ATH_MSG_DEBUG(
"### ************************************* ###");
1508 pattern.superPoints[middle].Alin,
pattern.superPoints[middle].Blin,
pattern.superPoints[middle].Chi2);
1515 pattern.superPoints[barrelinner].Alin,
pattern.superPoints[barrelinner].Blin,
pattern.superPoints[barrelinner].Chi2);
1520 pattern.superPoints[endcapinner].Alin,
pattern.superPoints[endcapinner].Blin,
pattern.superPoints[endcapinner].Chi2);
1533 muonSA->
setLvl1Id( eventInfo->extendedLevel1ID() );
1566 std::vector<std::string> mdtId;
1568 if ( mdtHit.isOutlier==0 || mdtHit.isOutlier==1 ) {
1569 muonSA->
setMdtHit(mdtHit.OnlineId, mdtHit.isOutlier, mdtHit.Chamber,
1570 mdtHit.R, mdtHit.Z, mdtHit.cPhi0, mdtHit.Residual,
1571 mdtHit.DriftTime, mdtHit.DriftSpace, mdtHit.DriftSigma);
1572 mdtId.push_back(mdtHit.Id.getString());
1576 accessor_mdthitid( *muonSA ) = mdtId;
1579 std::vector<float> cscResol;
1582 if ( cscHit.isOutlier==0 || cscHit.isOutlier==1 ) {
1583 muonSA->
setCscHit(cscHit.isOutlier, cscHit.Chamber, cscHit.StationName,
1584 cscHit.StationEta, cscHit.StationPhi,
1585 cscHit.ChamberLayer, cscHit.WireLayer, cscHit.MeasuresPhi, cscHit.Strip,
1586 cscHit.eta, cscHit.phi, cscHit.r, cscHit.z,
1587 cscHit.charge, cscHit.time, cscHit.Residual);
1588 cscResol.push_back(cscHit.resolution);
1590 <<
"OL=" << cscHit.isOutlier <<
","
1591 <<
"Ch=" << cscHit.Chamber <<
","
1592 <<
"StationName=" << cscHit.StationName <<
","
1593 <<
"StationEta=" << cscHit.StationEta <<
","
1594 <<
"StationPhi=" << cscHit.StationPhi <<
","
1595 <<
"ChamberLayer=" << cscHit.ChamberLayer <<
","
1596 <<
"WireLayer=" << cscHit.WireLayer <<
","
1597 <<
"MeasuresPhi=" << cscHit.MeasuresPhi <<
","
1598 <<
"Strip=" << cscHit.Strip <<
","
1599 <<
"eta=" << cscHit.eta <<
","
1600 <<
"phi=" << cscHit.phi <<
","
1601 <<
"r=" << cscHit.r <<
","
1602 <<
"z=" << cscHit.z <<
","
1603 <<
"charge=" << cscHit.charge <<
","
1604 <<
"Rs=" << cscHit.Residual <<
","
1605 <<
"t=" << cscHit.time);
1610 accessor_cschitresol( *muonSA ) = cscResol;
1613 float sumbeta[8]={0};
1614 float nhit_layer[8]={0};
1616 muonSA->
setRpcHit(rpcHit.layer, rpcHit.measuresPhi,
1617 rpcHit.x, rpcHit.y, rpcHit.z,
1618 rpcHit.time, rpcHit.distToEtaReadout, rpcHit.distToPhiReadout,
1619 rpcHit.stationName);
1621 <<
"stationName=" << rpcHit.stationName <<
","
1622 <<
"layer=" << rpcHit.layer <<
","
1623 <<
"measuresPhi=" << rpcHit.measuresPhi <<
","
1624 <<
"x=" << rpcHit.x <<
","
1625 <<
"y=" << rpcHit.y <<
","
1626 <<
"y=" << rpcHit.z);
1629 if(dRMS>0.05)
continue;
1631 float Tprop = rpcHit.distToPhiReadout/1000*4.8;
1633 sumbeta[rpcHit.layer]=sumbeta[rpcHit.layer]+
beta;
1634 nhit_layer[rpcHit.layer]=nhit_layer[rpcHit.layer]+1;
1637 std::vector<float> Avebeta_layer;
1638 for(
int i_layer=0;i_layer<8;i_layer++){
1639 if(nhit_layer[i_layer]!=0)Avebeta_layer.push_back( sumbeta[i_layer]/nhit_layer[i_layer] );
1641 if(Avebeta_layer.size()>0) muonSA->
setBeta(
std::accumulate(Avebeta_layer.begin(),Avebeta_layer.end(),0.0)/Avebeta_layer.size() );
1643 Avebeta_layer.clear();
1647 muonSA->
setTgcHit(tgcHit.eta, tgcHit.phi, tgcHit.r, tgcHit.z,
1648 tgcHit.width, tgcHit.sta, tgcHit.isStrip,
1649 tgcHit.bcTag, tgcHit.inRoad);
1651 <<
"eta=" << tgcHit.eta <<
","
1652 <<
"phi=" << tgcHit.phi <<
","
1653 <<
"r=" << tgcHit.r <<
","
1654 <<
"z=" << tgcHit.z <<
","
1655 <<
"width=" << tgcHit.width <<
","
1656 <<
"stationNum=" << tgcHit.sta <<
","
1657 <<
"isStrip=" << tgcHit.isStrip <<
","
1658 <<
"bcTag=" << tgcHit.bcTag <<
","
1659 <<
"inRoad=" << tgcHit.inRoad);
1664 for(
unsigned int i_hit=0; i_hit<stgcHits.size(); i_hit++) {
1665 if ( stgcHits[i_hit].isOutlier==0 || stgcHits[i_hit].isOutlier==1 ) {
1668 muonSA->
setStgcCluster(stgcHits[i_hit].layerNumber, stgcHits[i_hit].isOutlier, stgcHits[i_hit].channelType,
1669 stgcHits[i_hit].
eta, stgcHits[i_hit].
phi, stgcHits[i_hit].
r, stgcHits[i_hit].
z,
1670 stgcHits[i_hit].ResidualR, stgcHits[i_hit].ResidualPhi,
1674 <<
"eta=" << stgcHits[i_hit].
eta <<
","
1675 <<
"phi=" << stgcHits[i_hit].
phi <<
","
1676 <<
"r=" << stgcHits[i_hit].
r <<
","
1677 <<
"z=" << stgcHits[i_hit].
z <<
","
1678 <<
"z=" << stgcHits[i_hit].ResidualR <<
","
1679 <<
"z=" << stgcHits[i_hit].ResidualPhi);
1684 for(
unsigned int i_hit=0; i_hit<mmHits.size(); i_hit++) {
1685 if ( mmHits[i_hit].isOutlier==0 || mmHits[i_hit].isOutlier==1 ) {
1688 muonSA->
setMmCluster(mmHits[i_hit].layerNumber, mmHits[i_hit].isOutlier,
1689 mmHits[i_hit].
eta, mmHits[i_hit].
phi, mmHits[i_hit].
r, mmHits[i_hit].
z,
1690 mmHits[i_hit].ResidualR, mmHits[i_hit].ResidualPhi,
1694 <<
"eta=" << tgcHits[i_hit].
eta <<
","
1695 <<
"phi=" << tgcHits[i_hit].
phi <<
","
1696 <<
"r=" << tgcHits[i_hit].
r <<
","
1697 <<
"z=" << tgcHits[i_hit].
z <<
","
1698 <<
"width=" << tgcHits[i_hit].
width <<
","
1699 <<
"stationNum=" << tgcHits[i_hit].sta <<
","
1700 <<
"isStrip=" << tgcHits[i_hit].
isStrip <<
","
1701 <<
"bcTag=" << tgcHits[i_hit].
bcTag <<
","
1702 <<
"inRoad=" << tgcHits[i_hit].inRoad);
1707 for (
int i_station=0; i_station<8; i_station++) {
1708 for (
int i_sector=0; i_sector<2; i_sector++) {
1709 muonSA->
setRoad(i_station, i_sector, muonRoad.
aw[i_station][i_sector], muonRoad.
bw[i_station][i_sector]);
1710 muonSA->
setRegionZ(i_station, i_sector, mdtRegion.
zMin[i_station][i_sector], mdtRegion.
zMax[i_station][i_sector]);
1711 muonSA->
setRegionR(i_station, i_sector, mdtRegion.
rMin[i_station][i_sector], mdtRegion.
rMax[i_station][i_sector]);
1712 muonSA->
setRegionEta(i_station, i_sector, mdtRegion.
etaMin[i_station][i_sector], mdtRegion.
etaMax[i_station][i_sector]);
1762 double phi1 = tgcFitResult.
tgcMid1[1];
1763 double phi2 = tgcFitResult.
tgcMid2[1];
1764 if ( tgcFitResult.
tgcMid1[3]==0. || tgcFitResult.
tgcMid2[3]==0. ) {
1767 }
else if( phi1*phi2 < 0 && std::abs(phi1)>(
M_PI/2.) ) {
1768 double tmp1 = (phi1>0)? phi1 -
M_PI : phi1 +
M_PI;
1773 phi = (phi2+phi1)/2.;
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
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< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateMonitor()
Update monitoring variables.
Definition at line 2111 of file MuFastSteering.cxx.
2128 std::vector<float> t_eta, t_phi;
2129 std::vector<float> f_eta, f_phi;
2130 std::vector<float> r_inner, r_middle, r_outer;
2131 std::vector<float> f_residuals;
2140 f_residuals.clear();
2152 invalid_rpc_roi_number,
2154 track_eta, track_phi, failed_eta, failed_phi,
2155 res_inner, res_middle, res_outer, fit_residuals );
2159 if( trackPatterns.size() > 0 ) {
2166 float count_inner = 0;
2167 float count_middle = 0;
2168 float count_outer = 0;
2172 if (std::abs(mdtHit.DriftSpace) <
ZERO_LIMIT)
continue;
2174 char st = mdtHit.cType[1];
2178 r_inner.push_back(mdtHit.Residual/
norm);
2179 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2184 r_middle.push_back(mdtHit.Residual/
norm);
2185 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2190 r_outer.push_back(mdtHit.Residual/
norm);
2191 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2195 inner_mdt_hits = count_inner;
2196 middle_mdt_hits = count_middle;
2197 outer_mdt_hits = count_outer;
2200 absolute_pt = std::abs(track_pt);
2203 t_eta.push_back(
pattern.etaMap);
2204 t_phi.push_back(
pattern.phiMS);
2207 f_eta.push_back(roi->
eta());
2208 f_phi.push_back(roi->
phi());
2216 return StatusCode::SUCCESS;
◆ updateOutputObjects()
| bool MuFastSteering::updateOutputObjects |
( |
const xAOD::MuonRoI * |
roi, |
|
|
const TrigRoiDescriptor * |
roids, |
|
|
const TrigL2MuonSA::MuonRoad & |
muonRoad, |
|
|
const TrigL2MuonSA::MdtRegion & |
mdtRegion, |
|
|
const TrigL2MuonSA::RpcHits & |
rpcHits, |
|
|
const TrigL2MuonSA::TgcHits & |
tgcHits, |
|
|
const TrigL2MuonSA::RpcFitResult & |
rpcFitResult, |
|
|
const TrigL2MuonSA::TgcFitResult & |
tgcFitResult, |
|
|
const TrigL2MuonSA::MdtHits & |
mdtHits, |
|
|
const TrigL2MuonSA::CscHits & |
cscHits, |
|
|
const TrigL2MuonSA::StgcHits & |
stgcHits, |
|
|
const TrigL2MuonSA::MmHits & |
mmHits, |
|
|
const std::vector< TrigL2MuonSA::TrackPattern > & |
trackPatterns, |
|
|
DataVector< xAOD::L2StandAloneMuon > & |
outputTracks, |
|
|
TrigRoiDescriptorCollection & |
outputID, |
|
|
TrigRoiDescriptorCollection & |
outputMS, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
protected |
Called at the end of the algorithm processing to set the steering navigation properly.
Definition at line 1348 of file MuFastSteering.cxx.
1367 if( trackPatterns.size() > 0 ) {
1372 storeMuonSA(roi, roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1373 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1380 ATH_MSG_DEBUG(
"Not update output objects because trackPatterns has no object");
◆ updateVHKA()
◆ m_allowOksConfig
| Gaudi::Property< bool > MuFastSteering::m_allowOksConfig { this, "AllowOksConfig", true} |
|
private |
◆ m_backExtrapolatorTool
Initial value:{
this, "BackExtrapolator", "TrigMuonBackExtrapolator", "public tool for back extrapolating the muon tracks to the IV" }
Handle to MuonBackExtrapolator tool.
Definition at line 176 of file MuFastSteering.h.
◆ m_calBufferName
| Gaudi::Property< std::string > MuFastSteering::m_calBufferName { this, "MuonCalBufferName", "/tmp/testOutput"} |
|
private |
◆ m_calBufferSize
| Gaudi::Property< int > MuFastSteering::m_calBufferSize { this, "MuonCalBufferSize", 1024*1024} |
|
private |
◆ m_calDataScouting
| Gaudi::Property< bool > MuFastSteering::m_calDataScouting { this, "MuonCalDataScouting", false} |
|
private |
◆ m_calStreamer
Initial value:{
this, "CalibrationStreamer", "TrigL2MuonSA::MuCalStreamerTool", "calibration stream" }
Definition at line 180 of file MuFastSteering.h.
◆ m_cscsegmaker
Initial value:{
this, "CscSegmentMaker", "TrigL2MuonSA::CscSegmentMaker", "" }
Definition at line 187 of file MuFastSteering.h.
◆ m_dataPreparator
Initial value:{
this, "DataPreparator", "TrigL2MuonSA::MuFastDataPreparator", "data preparator" }
Definition at line 162 of file MuFastSteering.h.
◆ m_dEtasurrRoI
| Gaudi::Property< float > MuFastSteering::m_dEtasurrRoI { this, "dEtasurrRoI", 99, "eta range to find surrounding L1 RoIs" } |
|
private |
◆ m_detStore
◆ m_doCalStream
| Gaudi::Property< bool > MuFastSteering::m_doCalStream { this, "DoCalibrationStream", true} |
|
private |
◆ m_doEndcapForl2mt
| Gaudi::Property< bool > MuFastSteering::m_doEndcapForl2mt { this, "doEndcapForl2mt", false, "" } |
|
private |
◆ m_dPhisurrRoI
| Gaudi::Property< float > MuFastSteering::m_dPhisurrRoI { this, "dPhisurrRoI", 99, "phi range to find surrounding L1 RoIs" } |
|
private |
◆ m_esd_csc_size
| Gaudi::Property< int > MuFastSteering::m_esd_csc_size { this, "ESD_CSC_size", 100 } |
|
private |
◆ m_esd_mdt_size
| Gaudi::Property< int > MuFastSteering::m_esd_mdt_size { this, "ESD_MDT_size", 100 } |
|
private |
◆ m_esd_mm_size
| Gaudi::Property< int > MuFastSteering::m_esd_mm_size { this, "ESD_MM_size", 100 } |
|
private |
◆ m_esd_rpc_size
| Gaudi::Property< int > MuFastSteering::m_esd_rpc_size { this, "ESD_RPC_size", 100 } |
|
private |
◆ m_esd_stgc_size
| Gaudi::Property< int > MuFastSteering::m_esd_stgc_size { this, "ESD_STGC_size", 100 } |
|
private |
◆ m_esd_tgc_size
| Gaudi::Property< int > MuFastSteering::m_esd_tgc_size { this, "ESD_TGC_size", 50 } |
|
private |
◆ m_eventInfoKey
Initial value:{
this, "EventInfo", "EventInfo", "Name of the xAOD::EventInfo object"}
Definition at line 250 of file MuFastSteering.h.
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_fill_FSIDRoI
| Gaudi::Property< bool > MuFastSteering::m_fill_FSIDRoI { this, "FILL_FSIDRoI", false, "Fill FS RoI for ID (will be used in cosmic run)"} |
|
private |
◆ m_ftfminPt
| Gaudi::Property< float > MuFastSteering::m_ftfminPt { this, "FTFminPt", 3500, "pT [MeV] threshold to FTF tracks for L2Muon Inside-out mode" } |
|
private |
◆ m_ftfRoadDefiner
Initial value:{
this, "FtfRoadDefiner", "TrigL2MuonSA::FtfRoadDefiner", "ftf road definer" }
Definition at line 172 of file MuFastSteering.h.
◆ m_FTFtrackKey
Initial value:{
this, "TrackParticlesContainerName", "HLT_xAODTracks_Muon", "Name of the input data on xAOD::TrackParticleContainer produced by FTF for Inside-Out mode"}
Definition at line 264 of file MuFastSteering.h.
◆ m_incidentSvc
| ServiceHandle< IIncidentSvc > MuFastSteering::m_incidentSvc {this, "IncidentSvc", "IncidentSvc"} |
|
private |
◆ m_insideOut
| Gaudi::Property< bool > MuFastSteering::m_insideOut { this, "InsideOutMode", false, "" } |
|
private |
◆ m_jobOptionsSvc
| ServiceHandle<Gaudi::Interfaces::IOptionsSvc> MuFastSteering::m_jobOptionsSvc {this, "JobOptionsSvc", "JobOptionsSvc", "Job options service to retrieve DataFlowConfig" } |
|
private |
◆ m_monTool
◆ m_muCompositeContainerKey
Initial value:{
this, "MuonCalibrationStream", "", "Name of the decisions object attached by MuFastSteering"}
Definition at line 272 of file MuFastSteering.h.
◆ m_muFastContainerKey
Initial value:{
this, "MuonL2SAInfo", "MuonL2SAInfo", "Name of the output data on xAOD::L2StandAloneMuonContainer"}
Definition at line 268 of file MuFastSteering.h.
◆ m_muIdContainerKey
Initial value:{
this, "forID", "forID", "Name of the output data for Inner Detector"}
Definition at line 276 of file MuFastSteering.h.
◆ m_multiTrack
| Gaudi::Property< bool > MuFastSteering::m_multiTrack { this, "multitrackMode", false, "" } |
|
private |
◆ m_muMsContainerKey
Initial value:{
this, "forMS", "forMS", "Name of the output data for MS"}
Definition at line 280 of file MuFastSteering.h.
◆ m_outputCBmuonCollKey
Initial value:{
this, "L2IOCB", "MuonL2CBInfo", "output CB Muon container name"}
Definition at line 284 of file MuFastSteering.h.
◆ m_patternFinder
Initial value:{
this, "PatternFinder", "TrigL2MuonSA::MuFastPatternFinder", "pattern finder" }
Definition at line 164 of file MuFastSteering.h.
◆ m_recMuonRoIUtils
◆ m_recRoiCollectionKey
Initial value:{
this, "RecMuonRoI", "LVL1MuonRoIs", "Name of the input data on xAOD::MuonRoI"}
Definition at line 260 of file MuFastSteering.h.
◆ m_roiCollectionKey
Initial value:{
this, "MuRoIs", "HLT_MURoIs", "Name of the input data from HLTSeeding"}
Definition at line 254 of file MuFastSteering.h.
◆ m_rpcErrToDebugStream
| Gaudi::Property< bool > MuFastSteering::m_rpcErrToDebugStream { this, "RpcErrToDebugStream", false} |
|
private |
◆ m_run2recRoiCollectionKey
Initial value:{
this, "Run2RecMuonRoI", "HLT_RecMURoIs", "Name of the input data on LVL1::RecMuonRoI produced by HLTSeeding"}
Definition at line 258 of file MuFastSteering.h.
◆ m_rWidth_RPC_Failed
| Gaudi::Property< double > MuFastSteering::m_rWidth_RPC_Failed { this, "R_WIDTH_RPC_FAILED", 400 } |
|
private |
◆ m_rWidth_TGC_Failed
| Gaudi::Property< double > MuFastSteering::m_rWidth_TGC_Failed { this, "R_WIDTH_TGC_FAILED", 200 } |
|
private |
◆ m_scaleRoadBarrelInner
| Gaudi::Property< float > MuFastSteering::m_scaleRoadBarrelInner { this, "Scale_Road_BarrelInner", 1 } |
|
private |
◆ m_scaleRoadBarrelMiddle
| Gaudi::Property< float > MuFastSteering::m_scaleRoadBarrelMiddle { this, "Scale_Road_BarrelMiddle", 1 } |
|
private |
◆ m_scaleRoadBarrelOuter
| Gaudi::Property< float > MuFastSteering::m_scaleRoadBarrelOuter { this, "Scale_Road_BarrelOuter", 1 } |
|
private |
◆ m_stationFitter
Initial value:{
this, "StationFitter", "TrigL2MuonSA::MuFastStationFitter", "station fitter" }
Definition at line 166 of file MuFastSteering.h.
◆ m_topoRoad
| Gaudi::Property< bool > MuFastSteering::m_topoRoad { this, "topoRoad", false, "create road in barrel not to highly overlap surrounding L1 RoIs" } |
|
private |
◆ m_trackExtrapolator
Initial value:{
this, "TrackExtrapolator", "TrigL2MuonSA::MuFastTrackExtrapolator", "track extrapolator" }
Definition at line 170 of file MuFastSteering.h.
◆ m_trackFitter
Initial value:{
this, "TrackFitter", "TrigL2MuonSA::MuFastTrackFitter", "track fitter" }
Definition at line 168 of file MuFastSteering.h.
◆ m_use_endcapInnerFromBarrel
| Gaudi::Property< bool > MuFastSteering::m_use_endcapInnerFromBarrel { this, "UseEndcapInnerFromBarrel", false} |
|
private |
◆ m_use_mcLUT
| Gaudi::Property< bool > MuFastSteering::m_use_mcLUT { this, "UseLUTForMC", true} |
|
private |
◆ m_use_mm
| Gaudi::Property< bool > MuFastSteering::m_use_mm { this, "USE_MM", true} |
|
private |
◆ m_use_new_segmentfit
| Gaudi::Property< bool > MuFastSteering::m_use_new_segmentfit { this, "USE_NEW_SEGMENTFIT", true} |
|
private |
◆ m_use_RoIBasedDataAccess_CSC
| Gaudi::Property< bool > MuFastSteering::m_use_RoIBasedDataAccess_CSC { this, "USE_ROIBASEDACCESS_CSC", true} |
|
private |
◆ m_use_RoIBasedDataAccess_MDT
| Gaudi::Property< bool > MuFastSteering::m_use_RoIBasedDataAccess_MDT { this, "USE_ROIBASEDACCESS_MDT", true} |
|
private |
◆ m_use_RoIBasedDataAccess_MM
| Gaudi::Property< bool > MuFastSteering::m_use_RoIBasedDataAccess_MM { this, "USE_ROIBASEDACCESS_MM", true} |
|
private |
◆ m_use_RoIBasedDataAccess_RPC
| Gaudi::Property< bool > MuFastSteering::m_use_RoIBasedDataAccess_RPC { this, "USE_ROIBASEDACCESS_RPC", true} |
|
private |
◆ m_use_RoIBasedDataAccess_STGC
| Gaudi::Property< bool > MuFastSteering::m_use_RoIBasedDataAccess_STGC { this, "USE_ROIBASEDACCESS_STGC", true} |
|
private |
◆ m_use_RoIBasedDataAccess_TGC
| Gaudi::Property< bool > MuFastSteering::m_use_RoIBasedDataAccess_TGC { this, "USE_ROIBASEDACCESS_TGC", true} |
|
private |
◆ m_use_rpc
| Gaudi::Property< bool > MuFastSteering::m_use_rpc { this, "USE_RPC", true} |
|
private |
◆ m_use_stgc
| Gaudi::Property< bool > MuFastSteering::m_use_stgc { this, "USE_STGC", true} |
|
private |
◆ m_useRun3Config
| Gaudi::Property< bool > MuFastSteering::m_useRun3Config { this, "UseRun3Config", false, "use Run3 L1Muon EDM; xAOD::MuonRoI"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_winPt
| Gaudi::Property< double > MuFastSteering::m_winPt { this, "WinPt", 4.0 } |
|
private |
The documentation for this class was generated from the following files:
Gaudi::Property< bool > m_use_mm
Gaudi::Property< bool > m_use_RoIBasedDataAccess_CSC
ServiceHandle< Gaudi::Interfaces::IOptionsSvc > m_jobOptionsSvc
void setDeltaEta(float value)
Set error of eta.
ToolHandle< TrigL2MuonSA::CscSegmentMaker > m_cscsegmaker
bool storeMuonSA(const xAOD::MuonRoI *roi, const TrigRoiDescriptor *roids, const TrigL2MuonSA::MuonRoad &muonRoad, const TrigL2MuonSA::MdtRegion &mdtRegion, const TrigL2MuonSA::RpcHits &rpcHits, const TrigL2MuonSA::TgcHits &tgcHits, const TrigL2MuonSA::RpcFitResult &rpcFitResult, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::CscHits &cscHits, const TrigL2MuonSA::StgcHits &stgcHits, const TrigL2MuonSA::MmHits &mmHits, const TrigL2MuonSA::TrackPattern &pattern, DataVector< xAOD::L2StandAloneMuon > &outputTracks, const EventContext &ctx) const
constexpr uint8_t stationPhi
station Phi 1 to 8
void setMmClustersCapacity(const int value)
Set size of storage for MM clusters.
void setStrategy(int value)
set algorithm strategy flag
bool storeIDRoiDescriptor(const TrigRoiDescriptor *roids, const TrigL2MuonSA::TrackPattern &pattern, const DataVector< xAOD::L2StandAloneMuon > &outputTracks, TrigRoiDescriptorCollection &outputID) const
ToolHandle< TrigL2MuonSA::MuFastDataPreparator > m_dataPreparator
Const iterator class for DataVector/DataList.
Group
Properties of a chain group.
void setTgcMidF(float rhoChi2, long rhoN, float phiChi2, long phiN)
void setScales(double inner, double middle, double outer)
Scalar phi() const
phi method
void setEtaBin(int value)
Set eta bin of pT LUT.
void setEndcapAlpha(float value)
Set the fitted value in the endcap.
float etaMS() const
Get the eta at muon spectrometer.
std::string find(const std::string &s)
return a remapped string
void setEtaMap(float value)
Set eta used to refer pT LUT.
std::vector< RpcHitData > RpcHits
void setRegionEta(int station, int sector, float min, float max)
Eta range.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.
Gaudi::Property< float > m_dEtasurrRoI
Helper class to provide type-safe access to aux data.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
void setPhi(float phi)
Set the azimuthal angle ( ) of the muon.
ToolHandle< TrigL2MuonSA::MuFastTrackExtrapolator > m_trackExtrapolator
void setPhiBin(int value)
Set phi bin of pT LUT.
Class describing standalone muons reconstructed in the LVL2 trigger.
Scalar eta() const
pseudorapidity method
void setAlgoId(int value)
ToolHandle< TrigL2MuonSA::MuFastTrackFitter > m_trackFitter
ToolHandle< TrigL2MuonSA::MuCalStreamerTool > m_calStreamer
SG::WriteHandleKey< xAOD::L2CombinedMuonContainer > m_outputCBmuonCollKey
Gaudi::Property< std::string > m_calBufferName
TrigL2MuonSA::RecMuonRoIUtils m_recMuonRoIUtils
accumulate
Update flags based on parser line args.
T wrapToPi(T phi)
Wrap angle in radians to [-pi, pi].
void setIsRpcFailure(int value)
Set flag to record if RPC is properly read.
@ BEE
BEE measurement point.
@ EndcapExtra
Extra station in the endcap spectrometer.
Scalar theta() const
theta method
void setRoiSubsystem(uint32_t value)
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)
ToolHandle< ITrigMuonBackExtrapolator > m_backExtrapolatorTool
Handle to MuonBackExtrapolator tool.
ToolHandle< TrigL2MuonSA::MuFastPatternFinder > m_patternFinder
std::vector< MdtHitData > MdtHits
std::vector< TgcHitData > TgcHits
bool storeMSRoiDescriptor(const TrigRoiDescriptor *roids, const TrigL2MuonSA::TrackPattern &pattern, const DataVector< xAOD::L2StandAloneMuon > &outputTracks, TrigRoiDescriptorCollection &outputMS) const
double bw[N_STATION][N_SECTOR]
void setTgcInn(float eta, float phi, float r, float z)
Set the results of TGC fit.
Gaudi::Property< bool > m_topoRoad
StatusCode findMuonSignature(const std::vector< const TrigRoiDescriptor * > &roi, const std::vector< const xAOD::MuonRoI * > &muonRoIs, DataVector< xAOD::L2StandAloneMuon > &outputTracks, xAOD::TrigCompositeContainer *outputMuonCal, TrigRoiDescriptorCollection &outputID, TrigRoiDescriptorCollection &outputMS, const bool dynamicDeltaRpc, const EventContext &ctx) const
findMuonSignature(), includes reconstract algorithms
void setMdtHit(uint32_t onlineId, int isOutier, int chamber, float r, float z, float phi, float residual, float time, float space, float sigma)
Set the properties of each MDT tube.
void setPt(float pt)
Set the transverse momentum ( ) of the muon.
@ BME
BME measurement point.
virtual unsigned int roiWord() const override final
Gaudi::Property< float > m_scaleRoadBarrelInner
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
@ BarrelInner
Inner station in the barrel spectrometer.
float eta() const
The pseudorapidity ( ) of the muon candidate.
std::vector< SG::VarHandleKeyArray * > m_vhka
ServiceHandle< IIncidentSvc > m_incidentSvc
Gaudi::Property< bool > m_doEndcapForl2mt
void setRoiSector(uint32_t value)
bool msgLvl(const MSG::Level lvl) const
ToolHandle< TrigL2MuonSA::MuFastStationFitter > m_stationFitter
void setDeltaPhi(float value)
Set error of phi.
void setSuperPoint(int chamber, float r, float z, float slope, float intercept=0., float chi2=0.)
Set the properties of one particular super point measurement.
void setPhiMS(float value)
Set the phi at muon spectrometer.
void setEtaMS(float value)
Set the eta at muon spectrometer.
void setRpcFitInn(float phi, float slope, float offset)
Set the results of RPC fit.
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
float phiMS() const
Get the phi at muon spectrometer.
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber roiEta
SG::WriteHandleKey< TrigRoiDescriptorCollection > m_muMsContainerKey
setSAddress setEtaMS setDirPhiMS setDirZMS barrelRadius
void setCharge(float value)
set seeding muon charge
Gaudi::Property< int > m_esd_csc_size
StatusCode findMuonSignatureIO(const xAOD::TrackParticleContainer &idtracks, const std::vector< const TrigRoiDescriptor * > &roids, const std::vector< const xAOD::MuonRoI * > &muonRoIs, DataVector< xAOD::L2CombinedMuon > &outputCBs, DataVector< xAOD::L2StandAloneMuon > &outputSAs, const bool dynamicDeltaRpc, const EventContext &ctx) const
findMuonSignatureIO(), includes reconstract algorithms for inside-out mode
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_FTFtrackKey
Hemisphere getHemisphere() const
Returns the hemisphere that detected the muon candidate.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
std::string to_string(const SectorProjector proj)
Gaudi::Property< bool > m_use_rpc
int workerID() const
assigned worker ID from processing unit
std::vector< CscHitData > CscHits
void setRMS(float value)
Set the R at muon spectrometer.
double aw[N_STATION][N_SECTOR]
void setEta(float eta)
Set the pseudorapidity ( ) of the muon.
float getRoiSizeForID(bool isEta, const xAOD::L2StandAloneMuon *muonSA) const
void setTgcHitsCapacity(int value)
Set size of storage for TGC hits.
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
virtual void setOwner(IDataHandleHolder *o)=0
An algorithm that can be simultaneously executed in multiple threads.
void setTgcInnF(float rhoStd, long rhoN, float phiStd, long phiN)
Gaudi::Property< bool > m_fill_FSIDRoI
Class describing combined muon reconstructed in the LVL2 trigger.
Gaudi::Property< bool > m_doCalStream
void setPtEndcapBeta(float value)
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Gaudi::Property< bool > m_use_RoIBasedDataAccess_RPC
void setBeta(float value)
Set beta.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Gaudi::Property< bool > m_calDataScouting
SG::ReadHandleKey< xAOD::MuonRoIContainer > m_recRoiCollectionKey
@ ITIMER_CALIBRATION_STREAMER
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
void setEta(float eta)
Set the pseudorapidity ( ) of the muon.
void efficiency(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")
StatusCode updateMonitor(const xAOD::MuonRoI *roi, const TrigL2MuonSA::MdtHits &mdtHits, std::vector< TrigL2MuonSA::TrackPattern > &trackPatterns) const
Update monitoring variables.
Gaudi::Property< bool > m_useRun3Config
void setRoad(int station, int sector, float aw, float bw)
Road.
double rMax[N_STATION][N_SECTOR]
Gaudi::Property< bool > m_use_stgc
Gaudi::Property< bool > m_multiTrack
void setPhi(float phi)
Set the azimuthal angle ( ) of the muon.
void setBarrelSagitta(float value)
Set the fitted sagitta of the muon in the barrel.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
int sAddress() const
Get the station address of the muon.
Gaudi::Property< float > m_scaleRoadBarrelMiddle
void setMmCluster(const unsigned int layer, const int isOutlier, const float eta, const float phi, const float r, const float z, const float residualR, const float residualPhi, const int stationEta, const int stationPhi, const int stationName)
Set MM hits.
Gaudi::Property< bool > m_use_new_segmentfit
void setSAddress(int value)
Set the station address of the muon.
ToolHandle< GenericMonitoringTool > m_monTool
void setRoiSystem(uint32_t value)
Gaudi::Property< float > m_ftfminPt
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
void setRoiId(uint32_t value)
void setChamberType2(int station, int sector, int chamberType)
void setPtEndcapAlpha(float value)
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
bool isBarrel(const LVL1::RecMuonRoI *p_roi) const
Class describing a LVL1 muon region of interest.
RoISource getSource() const
Returns the system that detected the muon candidate.
StatusCode findMultiTrackSignature(const std::vector< const TrigRoiDescriptor * > &roi, const std::vector< const xAOD::MuonRoI * > &muonRoIs, DataVector< xAOD::L2StandAloneMuon > &outputTracks, const bool dynamicDeltaRpc, const EventContext &ctx) const
findMultiTrackSignature(), includes reconstract algorithms for multi-track mode
virtual unsigned int l1Id() const override final
SG::ReadHandleKey< TrigRoiDescriptorCollection > m_roiCollectionKey
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Gaudi::Property< bool > m_use_endcapInnerFromBarrel
AthROOTErrorHandlerSvc * svc
SG::WriteHandleKey< TrigRoiDescriptorCollection > m_muIdContainerKey
int L2MuonAlgoMap(const std::string &name) const
double etaMin[N_STATION][N_SECTOR]
Class used to describe composite objects in the HLT.
int getRoI() const
Get the "RoI number" (position inside the sector)
void setCscHit(int isOutlier, int chamber, uint32_t stationName, int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip, float eta, float phi, float r, float z, int charge, float time, float residual)
Set the properties of each CSC tube.
void setRegionZ(int station, int sector, float min, float max)
Z range.
void setRpcFitOut(float phi, float slope, float offset)
void setMuonDetMask(uint32_t value)
void setChamberType1(int station, int sector, int chamberType)
Set the muon road information.
virtual void renounce()=0
Gaudi::Property< int > m_esd_rpc_size
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void setStgcCluster(const unsigned int layer, const int isOutlier, const int type, const float eta, const float phi, const float r, const float z, const float residualR, const float residualPhi, const int stationEta, const int stationPhi, const int stationName)
Set sTGC hits.
ElementLink implementation for ROOT usage.
Gaudi::Property< bool > m_insideOut
void setIsTgcFailure(int value)
Set flag to record if TGC is properly read.
@ EndcapMiddle
Middle station in the endcap spectrometer.
Gaudi::Property< bool > m_use_RoIBasedDataAccess_MM
void setEndcapBeta(float value)
Set the fitted value in the endcap.
void setIdTrackLink(const ElementLink< xAOD::TrackParticleContainer > &link)
set ID track used to make the CB muon
Gaudi::Property< int > m_esd_tgc_size
void setDirPhiMS(float value)
Set tan phi at muon spectrometer.
void setRpcHitsCapacity(int value)
Size of storage to be reserved.
void setBarrelRadius(float value)
Set the fitted radius of the muon in the barrel.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
void makePrivateStore()
Create a new (empty) private store for this object.
void setRpcHit(uint32_t layer, uint32_t measuresPhi, float x, float y, float z, float time, float distEta, float distPhi, const std::string &stationName)
Set RPC hits.
void setMdtHitsCapacity(int value)
Set size of storage for MDT hits.
ToolHandle< TrigL2MuonSA::FtfRoadDefiner > m_ftfRoadDefiner
L2CombinedMuon_v1 L2CombinedMuon
Define the latest version of the muon CB class.
Gaudi::Property< float > m_scaleRoadBarrelOuter
static const std::string & type()
Incident type.
Gaudi::Property< double > m_rWidth_TGC_Failed
void setMuSATrackLink(const ElementLink< xAOD::L2StandAloneMuonContainer > &link)
set SA muon used to make the CB muon
Gaudi::Property< double > m_winPt
virtual unsigned int roiId() const override final
these quantities probably don't need to be used any more
double zMin[N_STATION][N_SECTOR]
void setPt(float pt)
Set the transverse momentum ( ) of the muon.
void setRoiEta(float value)
Gaudi::Property< float > m_dPhisurrRoI
void setZMS(float value)
Set the Z at muon spectrometer.
void setRoiThreshold(uint32_t value)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
double zMax[N_STATION][N_SECTOR]
bool updateOutputObjects(const xAOD::MuonRoI *roi, const TrigRoiDescriptor *roids, const TrigL2MuonSA::MuonRoad &muonRoad, const TrigL2MuonSA::MdtRegion &mdtRegion, const TrigL2MuonSA::RpcHits &rpcHits, const TrigL2MuonSA::TgcHits &tgcHits, const TrigL2MuonSA::RpcFitResult &rpcFitResult, const TrigL2MuonSA::TgcFitResult &tgcFitResult, const TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::CscHits &cscHits, const TrigL2MuonSA::StgcHits &stgcHits, const TrigL2MuonSA::MmHits &mmHits, const std::vector< TrigL2MuonSA::TrackPattern > &trackPatterns, DataVector< xAOD::L2StandAloneMuon > &outputTracks, TrigRoiDescriptorCollection &outputID, TrigRoiDescriptorCollection &outputMS, const EventContext &ctx) const
Called at the end of the algorithm processing to set the steering navigation properly.
void setRpcFitMid(float phi, float slope, float offset)
const LVL1::RecMuonRoI * matchingRecRoI(uint32_t roiWord, const DataVector< LVL1::RecMuonRoI > &collection)
virtual double etaPlus() const override final
gets eta at zedPlus
@ ITIMER_TRACK_EXTRAPOLATOR
void setTgcPt(float value)
std::vector< MmHitData > MmHits
bool empty() const noexcept
#define ATH_MSG_WARNING(x)
virtual double phi() const override final
Methods to retrieve data members.
double rMin[N_STATION][N_SECTOR]
@ EndcapInner
Inner station in the endcap spectrometer.
@ BarrelOuter
Outer station in the barrel spectrometer.
std::vector< StgcHitData > StgcHits
void setRegionR(int station, int sector, float min, float max)
R range.
unsigned bcTag(unsigned bcBitMap)
Gaudi::Property< bool > m_use_mcLUT
SG::WriteHandleKey< xAOD::L2StandAloneMuonContainer > m_muFastContainerKey
void setRoiNumber(uint32_t value)
SG::ReadHandleKey< DataVector< LVL1::RecMuonRoI > > m_run2recRoiCollectionKey
void setLvl1Id(uint32_t value)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double eta() const override final
void setPtCSC(float value)
virtual double pt() const
The transverse momentum ( ) of the particle.
virtual StatusCode sysInitialize() override
Override sysInitialize.
Athena::TPCnvVers::Current TrigRoiDescriptor
void setRoIWord(uint32_t value)
Set the RoI ID of the seeding LVL1 muon.
Gaudi::Property< double > m_rWidth_RPC_Failed
const T * at(size_type n) const
Access an element, as an rvalue.
Gaudi::Property< int > m_calBufferSize
int getSectorID() const
Get the sector ID number.
Declare a monitored scalar variable.
Gaudi::Property< bool > m_use_RoIBasedDataAccess_MDT
double etaMax[N_STATION][N_SECTOR]
virtual double phiPlus() const override final
gets phiPlus
constexpr uint8_t stationEta
1 to 3
void setTgcHit(float eta, float phi, float r, float z, float width, int stationNum, bool isStrip, int bcTag, bool inRoad)
Set TGC hits.
void setCscHitsCapacity(int value)
Set size of storage for CSC hits.
L2StandAloneMuon_v2 L2StandAloneMuon
Define the latest version of the muon SA class.
virtual double etaMinus() const override final
gets eta at zMinus
void setStgcClustersCapacity(const int value)
Set size of storage for sTGC clusters.
void setPtEndcapRadius(float value)
void setDirZMS(float value)
Set dRdZ at muon spectrometer.
int getThrNumber() const
Get the logic number of the highest threshold this RoI passed.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
void setErrorFlag(int value)
set algorithm error flag
void setPhiMap(float value)
Set phi used to refer pT LUT.
void setEndcapRadius(float value)
Set the fitted radius of the muon in the endcap.
Gaudi::Property< int > m_esd_mdt_size
virtual double phiMinus() const override final
gets phiMinus
void setDeltaPt(float value)
Set error of pT.
Gaudi::Property< int > m_esd_mm_size
size_type size() const noexcept
Returns the number of elements in the collection.
@ BarrelMiddle
Middle station in the barrel spectrometer.
@ ITIMER_TOTAL_PROCESSING
void setLumiBlock(uint32_t value)
@ EndcapOuter
Outer station in the endcap spectrometer.
Gaudi::Property< int > m_esd_stgc_size
uint32_t roiWord() const
The "raw" RoI word describing the muon candidate.
Gaudi::Property< bool > m_use_RoIBasedDataAccess_TGC
void setTgcMid2(float eta, float phi, float r, float z)
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
void setTgcMid1(float eta, float phi, float r, float z)
void setTrackPosition(float r, float z, float eta, float phi)
Set position of muon track.
int chamberType[N_STATION][N_SECTOR][2]
void setRoiPhi(float value)
SG::WriteHandleKey< xAOD::TrigCompositeContainer > m_muCompositeContainerKey
ECRegions whichECRegion(const float eta, const float phi)
float phi() const
The azimuthal angle ( ) of the muon candidate.
Gaudi::Property< bool > m_use_RoIBasedDataAccess_STGC