 |
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 231 of file MuFastSteering.cxx.
234 ATH_MSG_ERROR(
"You are not supposed to run trigger on RUN2 layout anymore.");
235 return StatusCode::FAILURE;
244 if (!roiCollectionHandle.isValid()){
246 return StatusCode::FAILURE;
251 if (!recRoiCollectionHandle.isValid()){
253 return StatusCode::FAILURE;
256 std::vector< const TrigRoiDescriptor* > internalRoI;
260 for(; p_roids != p_roidsEn; ++p_roids ) {
261 internalRoI.push_back(*p_roids);
262 ATH_MSG_DEBUG(
"REGTEST: " <<
m_roiCollectionKey.
key() <<
" eta = " <<
"(" << (*p_roids)->etaMinus() <<
")" << (*p_roids)->eta() <<
"(" << (*p_roids)->etaPlus() <<
")");
263 ATH_MSG_DEBUG(
"REGTEST: " <<
m_roiCollectionKey.
key() <<
" phi = " <<
"(" << (*p_roids)->phiMinus() <<
")" << (*p_roids)->phi() <<
"(" << (*p_roids)->phiPlus() <<
")");
264 ATH_MSG_DEBUG(
"REGTEST: " <<
m_roiCollectionKey.
key() <<
" zed = " <<
"(" << (*p_roids)->zedMinus() <<
")" << (*p_roids)->zed() <<
"(" << (*p_roids)->zedPlus() <<
")");
269 std::vector< const xAOD::MuonRoI* > recRoIVector;
270 std::vector< const xAOD::MuonRoI* > surrRoIs;
274 if( recRoI ==
nullptr )
continue;
275 recRoIVector.push_back(recRoI);
280 bool dynamicDeltaRpc =
false;
281 int nPassedBarrelSurrRoi = 0;
283 for(
const auto recRoI: *recRoiCollection ){
284 if(
std::find(recRoIVector.begin(), recRoIVector.end(), recRoI) != recRoIVector.end())
continue;
286 bool surrounding =
false;
287 for(
const auto matchedRoI: recRoIVector ){
288 float deta = std::abs(recRoI->
eta() - matchedRoI->eta());
289 float dphi = std::abs(recRoI->
phi() - matchedRoI->phi());
290 if( dphi >
M_PI )dphi = 2.*
M_PI - dphi;
296 surrRoIs.push_back(recRoI);
300 for(
const auto recRoI: surrRoIs ){
302 if( std::abs((recRoI)->
eta()) <= 1.05 && (recRoI)->getThrNumber() >= 1 )nPassedBarrelSurrRoi++;
304 ATH_MSG_DEBUG(
"nPassedBarrelSurrRoi = " << nPassedBarrelSurrRoi);
306 if( nPassedBarrelSurrRoi >= 1 )
307 dynamicDeltaRpc =
true;
312 ATH_CHECK(muFastContainer.record(std::make_unique<xAOD::L2StandAloneMuonContainer>(), std::make_unique<xAOD::L2StandAloneMuonAuxContainer>()));
317 ATH_CHECK(wh_muCompositeCont.record(std::make_unique<xAOD::TrigCompositeContainer>(), std::make_unique<xAOD::TrigCompositeAuxContainer>()));
318 muCompositeContainer = wh_muCompositeCont.ptr();
322 ATH_CHECK(muIdContainer.record(std::make_unique<TrigRoiDescriptorCollection>()));
325 ATH_CHECK(muMsContainer.record(std::make_unique<TrigRoiDescriptorCollection>()));
333 ATH_CHECK( muonCBColl.record (std::make_unique<xAOD::L2CombinedMuonContainer>(),
334 std::make_unique<xAOD::L2CombinedMuonAuxContainer>()) );
337 if (!trackHandle.isValid()){
339 return StatusCode::FAILURE;
344 *muonCBColl, *muFastContainer, dynamicDeltaRpc, ctx ));
348 for (
const auto p_CBmuon : *muonCBColl){
360 *muFastContainer, muCompositeContainer, *muIdContainer, *muMsContainer, dynamicDeltaRpc, ctx));
368 for (
auto p_muon : *muFastContainer) {
374 for (
auto p_muonID : *muIdContainer) {
379 for (
auto p_muonMS : *muMsContainer) {
384 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::execute() success");
385 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 1033 of file MuFastSteering.cxx.
1039 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMultiTrackSignature start");
1044 std::vector<TrigL2MuonSA::RpcFitResult> clusterFitResults;
1045 std::vector< TrigL2MuonSA::MuonRoad > clusterRoad;
1046 std::vector<TrigL2MuonSA::MdtHits> mdtHits_cluster_normal;
1057 trackFitterTimer, trackExtraTimer, calibrationTimer );
1074 p_roids = roids.begin();
1075 for (p_roi=(muonRoIs).
begin(); p_roi!=(muonRoIs).
end(); ++p_roi) {
1078 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
1083 rpcFitResult.
Clear();
1084 tgcFitResult.
Clear();
1090 clusterFitResults.clear();
1091 clusterRoad.clear();
1092 mdtHits_cluster_normal.clear();
1108 mdtHits_cluster_normal,
1111 if (!
sc.isSuccess()) {
1119 for(
unsigned int i_road = 0; i_road < clusterRoad.size(); i_road++){
1121 std::vector<TrigL2MuonSA::TrackPattern> tmp_trkPats; tmp_trkPats.clear();
1123 patternTimer.start();
1125 clusterRoad.at(i_road),
1126 mdtHits_cluster_normal.at(i_road),
1128 if (!
sc.isSuccess()) {
1132 patternTimer.stop();
1135 stationFitterTimer.start();
1137 clusterFitResults.at(i_road),
1139 if (!
sc.isSuccess()) {
1144 stationFitterTimer.stop();
1147 trackFitterTimer.start();
1149 clusterFitResults.at(i_road),
1152 if (!
sc.isSuccess()) {
1156 trackFitterTimer.stop();
1159 const float ETA_LIMIT = 2.8;
1160 const float DELTA_ETA_LIMIT = 1.0;
1162 float roiEta = (*p_roi)->eta();
1164 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
1170 trackExtraTimer.start();
1175 if (
sc != StatusCode::SUCCESS) {
1180 trackExtraTimer.stop();
1182 if(tmp_trkPats.size() > 0){
1183 ATH_MSG_DEBUG(
"temp pT calculated 2mu-in-1RoI alg = " << tmp_trkPats[0].
pt <<
" GeV");
1184 if( (std::abs(tmp_trkPats[0].barrelSagitta) <
ZERO_LIMIT &&
1188 trackPatterns.push_back(tmp_trkPats[0]);
1191 storeMuonSA(*p_roi, *p_roids, clusterRoad.at(i_road), mdtRegion, rpcHits, tgcHits,
1192 clusterFitResults.at(i_road), tgcFitResult, mdtHits_cluster_normal.at(i_road), cscHits,
1193 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1196 if(trackPatterns.empty()){
1197 ATH_MSG_DEBUG(
"multi-track SA falied to reconstruct muons");
1199 trackPatterns.push_back(trackPattern);
1200 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1201 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1202 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1209 ATH_MSG_DEBUG(
"multi-track SA does nothings and skips for EndcapRoI");
1225 if (!
sc.isSuccess()) {
1228 trackPatterns.push_back(trackPattern);
1230 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1231 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1232 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1238 patternTimer.start();
1248 if (!
sc.isSuccess()) {
1251 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1252 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1253 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1256 patternTimer.stop();
1259 stationFitterTimer.start();
1276 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
1278 if (!
sc.isSuccess()) {
1280 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1281 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1282 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1286 stationFitterTimer.stop();
1289 trackFitterTimer.start();
1295 if (!
sc.isSuccess()) {
1297 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1298 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1299 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1302 trackFitterTimer.stop();
1305 const float ETA_LIMIT = 2.8;
1306 const float DELTA_ETA_LIMIT = 1.0;
1308 float roiEta = (*p_roi)->eta();
1310 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
1316 trackExtraTimer.start();
1320 if (
sc != StatusCode::SUCCESS) {
1322 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1323 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1324 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1327 trackExtraTimer.stop();
1329 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1330 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1331 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1336 if (
sc != StatusCode::SUCCESS) {
1341 if (p_roids==roids.end())
break;
1344 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMultiTrackSignature success");
1345 return StatusCode::SUCCESS;
◆ findMuonSignature()
findMuonSignature(), includes reconstract algorithms
Definition at line 391 of file MuFastSteering.cxx.
400 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignature start");
411 trackFitterTimer, trackExtraTimer, calibrationTimer );
428 p_roids = roids.begin();
429 for (p_roi=(muonRoIs).
begin(); p_roi!=(muonRoIs).
end(); ++p_roi) {
432 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
437 rpcFitResult.
Clear();
438 tgcFitResult.
Clear();
462 if (!
sc.isSuccess()) {
465 trackPatterns.push_back(std::move(trackPattern));
468 rpcFitResult, tgcFitResult, mdtHits, cscHits,
470 trackPatterns, outputTracks, outputID, outputMS, ctx);
476 patternTimer.start();
481 if (!
sc.isSuccess()) {
485 rpcFitResult, tgcFitResult, mdtHits, cscHits,
487 trackPatterns, outputTracks, outputID, outputMS, ctx);
493 stationFitterTimer.start();
497 if (!
sc.isSuccess()) {
501 rpcFitResult, tgcFitResult, mdtHits, cscHits,
503 trackPatterns, outputTracks, outputID, outputMS, ctx);
506 stationFitterTimer.stop();
509 trackFitterTimer.start();
514 if (!
sc.isSuccess()) {
518 rpcFitResult, tgcFitResult, mdtHits, cscHits,
520 trackPatterns, outputTracks, outputID, outputMS, ctx);
523 trackFitterTimer.stop();
543 if (!
sc.isSuccess()) {
546 trackPatterns.push_back(trackPattern);
549 rpcFitResult, tgcFitResult, mdtHits, cscHits,
551 trackPatterns, outputTracks, outputID, outputMS, ctx);
557 patternTimer.start();
565 if (!
sc.isSuccess()) {
569 rpcFitResult, tgcFitResult, mdtHits, cscHits,
571 trackPatterns, outputTracks, outputID, outputMS, ctx);
577 stationFitterTimer.start();
595 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
597 if (!
sc.isSuccess()) {
601 rpcFitResult, tgcFitResult, mdtHits, cscHits,
603 trackPatterns, outputTracks, outputID, outputMS, ctx);
607 stationFitterTimer.stop();
610 trackFitterTimer.start();
616 if (!
sc.isSuccess()) {
620 rpcFitResult, tgcFitResult, mdtHits, cscHits,
622 trackPatterns, outputTracks, outputID, outputMS, ctx);
625 trackFitterTimer.stop();
629 const float ETA_LIMIT = 2.8;
630 const float DELTA_ETA_LIMIT = 1.0;
633 float roiEta = (*p_roi)->eta();
635 ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
641 trackExtraTimer.start();
645 if (
sc != StatusCode::SUCCESS) {
649 rpcFitResult, tgcFitResult, mdtHits, cscHits,
651 trackPatterns, outputTracks, outputID, outputMS, ctx);
654 trackExtraTimer.stop();
658 if (
sc != StatusCode::SUCCESS) {
662 rpcFitResult, tgcFitResult, mdtHits, cscHits,
664 trackPatterns, outputTracks, outputID, outputMS, ctx);
670 rpcFitResult, tgcFitResult, mdtHits, cscHits,
672 trackPatterns, outputTracks, outputID, outputMS, ctx);
680 std::vector<uint32_t> localBuffer;
687 if (
sc != StatusCode::SUCCESS ) {
693 ATH_MSG_DEBUG(
"Retrieved the buffer, with size: " << localBuffer.size());
700 ATH_MSG_DEBUG(
"The size of the TrigCompositeContainer is: " << outputMuonCal->
size() );
703 return StatusCode::FAILURE;
708 tc->setDetail(
"muCalibDS", localBuffer );
713 if (p_roids==roids.end())
break;
716 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignature success");
717 return StatusCode::SUCCESS;
◆ findMuonSignatureIO()
findMuonSignatureIO(), includes reconstract algorithms for inside-out mode
Definition at line 725 of file MuFastSteering.cxx.
733 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignatureIO start");
745 trackFitterTimer, trackExtraTimer, calibrationTimer );
760 p_roids = roids.begin();
761 for (
const auto p_roi : muonRoIs) {
762 ATH_MSG_DEBUG(
"roi eta/phi: " << (*p_roi).eta() <<
"/" << (*p_roi).phi());
765 if ( (idtracks).
empty() )
ATH_MSG_DEBUG(
"IO TEST: xAOD::TrackParticleContainer has 0 tracks --> Can not use FTF tracks...");
766 else ATH_MSG_DEBUG(
"IO TEST: xAOD::TrackParticleContainer has " << (idtracks).
size() <<
" tracks --> Start inside-out mode!");
768 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
769 int idtrack_idx = -1;
770 for (
auto idtrack : idtracks) {
786 rpcFitResult.
Clear();
787 tgcFitResult.
Clear();
792 trackPatterns.clear();
795 if (!
sc.isSuccess()) {
802 if ( std::abs(idtrack->eta()) < 1.05 ){
803 ATH_MSG_DEBUG(
"FTF track at IP is in Barrel: " << idtrack->eta());
805 ATH_MSG_DEBUG(
"FTF track at IP is in Endcap: " << idtrack->eta());
828 if (!
sc.isSuccess()) {
837 patternTimer.start();
842 if (!
sc.isSuccess()) {
849 stationFitterTimer.start();
853 if (!
sc.isSuccess()) {
857 stationFitterTimer.stop();
860 trackFitterTimer.start();
864 if (!
sc.isSuccess()) {
868 trackFitterTimer.stop();
888 if (!
sc.isSuccess()) {
897 patternTimer.start();
904 if (!
sc.isSuccess()) {
911 stationFitterTimer.start();
919 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
920 if (!
sc.isSuccess()) {
924 stationFitterTimer.stop();
927 trackFitterTimer.start();
932 if (!
sc.isSuccess()) {
936 trackFitterTimer.stop();
942 const float ETA_LIMIT = 2.8;
943 const float DELTA_ETA_LIMIT = 1.0;
944 float roiEta = (*p_roi).eta();
946 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
947 trackPatterns.back().etaMap =
roiEta;
952 if (
sc != StatusCode::SUCCESS) {
957 if ( std::abs(trackPatterns.back().pt) >
ZERO_LIMIT ) {
958 storeMuonSA(p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
959 rpcFitResult, tgcFitResult, mdtHits, cscHits,
961 trackPatterns.back(), outputSAs, ctx);
966 muonCB->
setPt(idtrack->pt());
967 muonCB->
setEta(idtrack->eta());
968 muonCB->
setPhi(idtrack->phi());
979 if(outputSAs.
size()==0) {
985 rpcFitResult.
Clear();
986 tgcFitResult.
Clear();
991 trackPatterns.clear();
993 storeMuonSA(p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
994 rpcFitResult, tgcFitResult, mdtHits, cscHits,
996 trackPattern, outputSAs, ctx);
1012 for (
auto outputSA : outputSAs){
1013 ATH_MSG_DEBUG(
"outputSA pt/eta/phi: " << outputSA->pt() <<
"/" << outputSA->etaMS() <<
"/" << outputSA->phiMS());
1017 for (
auto outputCB : outputCBs){
1018 ATH_MSG_DEBUG(
"outputCB pt/eta/phi: " << outputCB->pt() <<
"/" << outputCB->eta() <<
"/" << outputCB->phi());
1022 if (p_roids==roids.end())
break;
1025 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignatureIO success");
1026 return StatusCode::SUCCESS;
◆ getRoiSizeForID()
Definition at line 1965 of file MuFastSteering.cxx.
1970 float pt = muonSA->
pt();
1973 const int N_PARAMS = 2;
1976 const float etaMinWin_brl = 0.10;
1977 const float etaMinWin_ec1 = 0.10;
1978 const float etaMinWin_ec2 = 0.10;
1979 const float etaMinWin_ec3 = 0.10;
1980 const float etaMinWin_ecA = 0.10;
1981 const float etaMinWin_ecB = 0.10;
1983 const float etaMaxWin_brl = 0.20;
1984 const float etaMaxWin_ec1 = 0.20;
1985 const float etaMaxWin_ec2 = 0.20;
1986 const float etaMaxWin_ec3 = 0.20;
1987 const float etaMaxWin_ecA = 0.20;
1988 const float etaMaxWin_ecB = 0.20;
1990 const float etaParams_brl[N_PARAMS] = { 0.038, 0.284};
1991 const float etaParams_ec1[N_PARAMS] = { 0.011, 0.519};
1992 const float etaParams_ec2[N_PARAMS] = { 0.023, 0.253};
1993 const float etaParams_ec3[N_PARAMS] = { 0.018, 0.519};
1994 const float etaParams_ecA[N_PARAMS] = { 0.010, 0.431};
1995 const float etaParams_ecB[N_PARAMS] = { 0.023, 0.236};
1998 const float phiMinWin_brl = 0.125;
1999 const float phiMinWin_ec1 = 0.125;
2000 const float phiMinWin_ec2 = 0.125;
2001 const float phiMinWin_ec3 = 0.10;
2002 const float phiMinWin_ecA = 0.15;
2003 const float phiMinWin_ecB = 0.15;
2005 const float phiMaxWin_brl = 0.20;
2006 const float phiMaxWin_ec1 = 0.20;
2007 const float phiMaxWin_ec2 = 0.20;
2008 const float phiMaxWin_ec3 = 0.20;
2009 const float phiMaxWin_ecA = 0.25;
2010 const float phiMaxWin_ecB = 0.20;
2012 const float phiParams_brl[N_PARAMS] = { 0.000, 0.831};
2013 const float phiParams_ec1[N_PARAMS] = { 0.000, 0.885};
2014 const float phiParams_ec2[N_PARAMS] = { 0.015, 0.552};
2015 const float phiParams_ec3[N_PARAMS] = { 0.008, 0.576};
2016 const float phiParams_ecA[N_PARAMS] = { 0.000, 0.830};
2017 const float phiParams_ecB[N_PARAMS] = { 0.006, 1.331};
2026 minWin = etaMinWin_brl;
2027 maxWin = etaMaxWin_brl;
2031 minWin = phiMinWin_brl;
2032 maxWin = phiMaxWin_brl;
2041 minWin = etaMinWin_ecA;
2042 maxWin = etaMaxWin_ecA;
2046 minWin = phiMinWin_ecA;
2047 maxWin = phiMaxWin_ecA;
2053 minWin = etaMinWin_ecB;
2054 maxWin = etaMaxWin_ecB;
2058 minWin = phiMinWin_ecB;
2059 maxWin = phiMaxWin_ecB;
2063 if( std::abs(
eta) < 1.5 ) {
2066 minWin = etaMinWin_ec1;
2067 maxWin = etaMaxWin_ec1;
2071 minWin = phiMinWin_ec1;
2072 maxWin = phiMaxWin_ec1;
2075 else if( std::abs(
eta) < 2.0 ) {
2078 minWin = etaMinWin_ec2;
2079 maxWin = etaMaxWin_ec2;
2083 minWin = phiMinWin_ec2;
2084 maxWin = phiMaxWin_ec2;
2090 minWin = etaMinWin_ec3;
2091 maxWin = etaMaxWin_ec3;
2095 minWin = phiMinWin_ec3;
2096 maxWin = phiMaxWin_ec3;
2105 if(
x < minWin )
retval = minWin;
2106 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.
119 if (
m_jobOptionsSvc->has(
"MuonHltCalibrationConfig.MuonCalBufferName")) {
124 ATH_MSG_DEBUG(
"Could not parse MuonHltCalibrationConfig.MuonCalBufferName from JobOptionsSvc");
126 if (
m_jobOptionsSvc->has(
"MuonHltCalibrationConfig.MuonCalBufferSize")) {
132 ATH_MSG_DEBUG(
"Could not parse MuonHltCalibrationConfig.MuonCalBufferSize from JobOptionsSvc");
149 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 152 of file MuFastSteering.cxx.
158 if (
sc != StatusCode::SUCCESS ) {
165 return StatusCode::SUCCESS;
◆ storeIDRoiDescriptor()
Definition at line 1856 of file MuFastSteering.cxx.
1870 const double scalePhiWidthForFailure = 2;
1871 const double scaleRoIforZeroPt = 2;
1879 float phiHalfWidth = 0.1;
1880 float etaHalfWidth = 0.1;
1896 phiHalfWidth *= scalePhiWidthForFailure;
1902 pattern.etaVtx - etaHalfWidth,
1903 pattern.etaVtx + etaHalfWidth,
1905 pattern.phiVtx - phiHalfWidth,
1906 pattern.phiVtx + phiHalfWidth);
1909 <<
"pattern.etaVtx/pattern.phiVtx="
1913 <<
" phi=" << IDroiDescriptor->
phi()
1914 <<
", eta=" << IDroiDescriptor->
eta());
1924 roids->
eta() - (roids->
eta() - roids->
etaMinus()) * scaleRoIforZeroPt,
1925 roids->
eta() + (roids->
etaPlus() - roids->
eta()) * scaleRoIforZeroPt,
1930 ATH_MSG_VERBOSE(
"will Record an RoiDescriptor for Inner Detector in case with zero pT:"
1931 <<
" phi=" << IDroiDescriptor->
phi()
1932 <<
", phi min=" << IDroiDescriptor->
phiMinus()
1933 <<
", phi max=" << IDroiDescriptor->
phiPlus()
1934 <<
", eta=" << IDroiDescriptor->
eta()
1935 <<
", eta min=" << IDroiDescriptor->
etaMinus()
1936 <<
", eta max=" << IDroiDescriptor->
etaPlus());
◆ storeMSRoiDescriptor()
Definition at line 1810 of file MuFastSteering.cxx.
1824 mseta = roids->
eta();
1825 msphi = roids->
phi();
1829 const float phiHalfWidth = 0.1;
1830 const float etaHalfWidth = 0.1;
1836 mseta - etaHalfWidth,
1837 mseta + etaHalfWidth,
1839 msphi - phiHalfWidth,
1840 msphi + phiHalfWidth);
1844 << mseta <<
"/" << msphi);
1847 <<
" phi=" << MSroiDescriptor->
phi()
1848 <<
", 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 1389 of file MuFastSteering.cxx.
1407 const int currentRoIId = roids->
roiId();
1409 const EventIDBase& eventID = ctx.eventID();
1411 if (!eventInfo.isValid()) {
1421 int barrelinner = 0;
1422 int endcapinner = 3;
1443 ATH_MSG_DEBUG(
"### Hit patterns at the Muon Spectrometer ###");
1449 ATH_MSG_DEBUG(
"pattern#0: # of hits at endcap barrel inner =" <<
pattern.mdtSegments[barrelinner].size());
1453 ATH_MSG_DEBUG(
"pattern#0: # of hits at barrel endcap inner =" <<
pattern.mdtSegments[endcapinner].size());
1455 ATH_MSG_DEBUG(
"### ************************************* ###");
1511 pattern.superPoints[middle].Alin,
pattern.superPoints[middle].Blin,
pattern.superPoints[middle].Chi2);
1518 pattern.superPoints[barrelinner].Alin,
pattern.superPoints[barrelinner].Blin,
pattern.superPoints[barrelinner].Chi2);
1523 pattern.superPoints[endcapinner].Alin,
pattern.superPoints[endcapinner].Blin,
pattern.superPoints[endcapinner].Chi2);
1536 muonSA->
setLvl1Id( eventInfo->extendedLevel1ID() );
1569 std::vector<std::string> mdtId;
1571 if ( mdtHit.isOutlier==0 || mdtHit.isOutlier==1 ) {
1572 muonSA->
setMdtHit(mdtHit.OnlineId, mdtHit.isOutlier, mdtHit.Chamber,
1573 mdtHit.R, mdtHit.Z, mdtHit.cPhi0, mdtHit.Residual,
1574 mdtHit.DriftTime, mdtHit.DriftSpace, mdtHit.DriftSigma);
1575 mdtId.push_back(mdtHit.Id.getString());
1579 accessor_mdthitid( *muonSA ) = mdtId;
1582 std::vector<float> cscResol;
1585 if ( cscHit.isOutlier==0 || cscHit.isOutlier==1 ) {
1586 muonSA->
setCscHit(cscHit.isOutlier, cscHit.Chamber, cscHit.StationName,
1587 cscHit.StationEta, cscHit.StationPhi,
1588 cscHit.ChamberLayer, cscHit.WireLayer, cscHit.MeasuresPhi, cscHit.Strip,
1589 cscHit.eta, cscHit.phi, cscHit.r, cscHit.z,
1590 cscHit.charge, cscHit.time, cscHit.Residual);
1591 cscResol.push_back(cscHit.resolution);
1593 <<
"OL=" << cscHit.isOutlier <<
","
1594 <<
"Ch=" << cscHit.Chamber <<
","
1595 <<
"StationName=" << cscHit.StationName <<
","
1596 <<
"StationEta=" << cscHit.StationEta <<
","
1597 <<
"StationPhi=" << cscHit.StationPhi <<
","
1598 <<
"ChamberLayer=" << cscHit.ChamberLayer <<
","
1599 <<
"WireLayer=" << cscHit.WireLayer <<
","
1600 <<
"MeasuresPhi=" << cscHit.MeasuresPhi <<
","
1601 <<
"Strip=" << cscHit.Strip <<
","
1602 <<
"eta=" << cscHit.eta <<
","
1603 <<
"phi=" << cscHit.phi <<
","
1604 <<
"r=" << cscHit.r <<
","
1605 <<
"z=" << cscHit.z <<
","
1606 <<
"charge=" << cscHit.charge <<
","
1607 <<
"Rs=" << cscHit.Residual <<
","
1608 <<
"t=" << cscHit.time);
1613 accessor_cschitresol( *muonSA ) = cscResol;
1616 float sumbeta[8]={0};
1617 float nhit_layer[8]={0};
1619 muonSA->
setRpcHit(rpcHit.layer, rpcHit.measuresPhi,
1620 rpcHit.x, rpcHit.y, rpcHit.z,
1621 rpcHit.time, rpcHit.distToEtaReadout, rpcHit.distToPhiReadout,
1622 rpcHit.stationName);
1624 <<
"stationName=" << rpcHit.stationName <<
","
1625 <<
"layer=" << rpcHit.layer <<
","
1626 <<
"measuresPhi=" << rpcHit.measuresPhi <<
","
1627 <<
"x=" << rpcHit.x <<
","
1628 <<
"y=" << rpcHit.y <<
","
1629 <<
"y=" << rpcHit.z);
1632 if(dRMS>0.05)
continue;
1634 float Tprop = rpcHit.distToPhiReadout/1000*4.8;
1636 sumbeta[rpcHit.layer]=sumbeta[rpcHit.layer]+
beta;
1637 nhit_layer[rpcHit.layer]=nhit_layer[rpcHit.layer]+1;
1640 std::vector<float> Avebeta_layer;
1641 for(
int i_layer=0;i_layer<8;i_layer++){
1642 if(nhit_layer[i_layer]!=0)Avebeta_layer.push_back( sumbeta[i_layer]/nhit_layer[i_layer] );
1644 if(Avebeta_layer.size()>0) muonSA->
setBeta(
std::accumulate(Avebeta_layer.begin(),Avebeta_layer.end(),0.0)/Avebeta_layer.size() );
1646 Avebeta_layer.clear();
1650 muonSA->
setTgcHit(tgcHit.eta, tgcHit.phi, tgcHit.r, tgcHit.z,
1651 tgcHit.width, tgcHit.sta, tgcHit.isStrip,
1652 tgcHit.bcTag, tgcHit.inRoad);
1654 <<
"eta=" << tgcHit.eta <<
","
1655 <<
"phi=" << tgcHit.phi <<
","
1656 <<
"r=" << tgcHit.r <<
","
1657 <<
"z=" << tgcHit.z <<
","
1658 <<
"width=" << tgcHit.width <<
","
1659 <<
"stationNum=" << tgcHit.sta <<
","
1660 <<
"isStrip=" << tgcHit.isStrip <<
","
1661 <<
"bcTag=" << tgcHit.bcTag <<
","
1662 <<
"inRoad=" << tgcHit.inRoad);
1667 for(
unsigned int i_hit=0; i_hit<stgcHits.size(); i_hit++) {
1668 if ( stgcHits[i_hit].isOutlier==0 || stgcHits[i_hit].isOutlier==1 ) {
1671 muonSA->
setStgcCluster(stgcHits[i_hit].layerNumber, stgcHits[i_hit].isOutlier, stgcHits[i_hit].channelType,
1672 stgcHits[i_hit].
eta, stgcHits[i_hit].
phi, stgcHits[i_hit].
r, stgcHits[i_hit].
z,
1673 stgcHits[i_hit].ResidualR, stgcHits[i_hit].ResidualPhi,
1677 <<
"eta=" << stgcHits[i_hit].
eta <<
","
1678 <<
"phi=" << stgcHits[i_hit].
phi <<
","
1679 <<
"r=" << stgcHits[i_hit].
r <<
","
1680 <<
"z=" << stgcHits[i_hit].
z <<
","
1681 <<
"z=" << stgcHits[i_hit].ResidualR <<
","
1682 <<
"z=" << stgcHits[i_hit].ResidualPhi);
1687 for(
unsigned int i_hit=0; i_hit<mmHits.size(); i_hit++) {
1688 if ( mmHits[i_hit].isOutlier==0 || mmHits[i_hit].isOutlier==1 ) {
1691 muonSA->
setMmCluster(mmHits[i_hit].layerNumber, mmHits[i_hit].isOutlier,
1692 mmHits[i_hit].
eta, mmHits[i_hit].
phi, mmHits[i_hit].
r, mmHits[i_hit].
z,
1693 mmHits[i_hit].ResidualR, mmHits[i_hit].ResidualPhi,
1697 <<
"eta=" << tgcHits[i_hit].
eta <<
","
1698 <<
"phi=" << tgcHits[i_hit].
phi <<
","
1699 <<
"r=" << tgcHits[i_hit].
r <<
","
1700 <<
"z=" << tgcHits[i_hit].
z <<
","
1701 <<
"width=" << tgcHits[i_hit].
width <<
","
1702 <<
"stationNum=" << tgcHits[i_hit].sta <<
","
1703 <<
"isStrip=" << tgcHits[i_hit].
isStrip <<
","
1704 <<
"bcTag=" << tgcHits[i_hit].
bcTag <<
","
1705 <<
"inRoad=" << tgcHits[i_hit].inRoad);
1710 for (
int i_station=0; i_station<8; i_station++) {
1711 for (
int i_sector=0; i_sector<2; i_sector++) {
1712 muonSA->
setRoad(i_station, i_sector, muonRoad.
aw[i_station][i_sector], muonRoad.
bw[i_station][i_sector]);
1713 muonSA->
setRegionZ(i_station, i_sector, mdtRegion.
zMin[i_station][i_sector], mdtRegion.
zMax[i_station][i_sector]);
1714 muonSA->
setRegionR(i_station, i_sector, mdtRegion.
rMin[i_station][i_sector], mdtRegion.
rMax[i_station][i_sector]);
1715 muonSA->
setRegionEta(i_station, i_sector, mdtRegion.
etaMin[i_station][i_sector], mdtRegion.
etaMax[i_station][i_sector]);
1765 double phi1 = tgcFitResult.
tgcMid1[1];
1766 double phi2 = tgcFitResult.
tgcMid2[1];
1767 if ( tgcFitResult.
tgcMid1[3]==0. || tgcFitResult.
tgcMid2[3]==0. ) {
1770 }
else if( phi1*phi2 < 0 && std::abs(phi1)>(
M_PI/2.) ) {
1771 double tmp1 = (phi1>0)? phi1 -
M_PI : phi1 +
M_PI;
1776 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 2114 of file MuFastSteering.cxx.
2131 std::vector<float> t_eta, t_phi;
2132 std::vector<float> f_eta, f_phi;
2133 std::vector<float> r_inner, r_middle, r_outer;
2134 std::vector<float> f_residuals;
2143 f_residuals.clear();
2155 invalid_rpc_roi_number,
2157 track_eta, track_phi, failed_eta, failed_phi,
2158 res_inner, res_middle, res_outer, fit_residuals );
2162 if( trackPatterns.size() > 0 ) {
2169 float count_inner = 0;
2170 float count_middle = 0;
2171 float count_outer = 0;
2175 if (std::abs(mdtHit.DriftSpace) <
ZERO_LIMIT)
continue;
2177 char st = mdtHit.cType[1];
2181 r_inner.push_back(mdtHit.Residual/
norm);
2182 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2187 r_middle.push_back(mdtHit.Residual/
norm);
2188 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2193 r_outer.push_back(mdtHit.Residual/
norm);
2194 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2198 inner_mdt_hits = count_inner;
2199 middle_mdt_hits = count_middle;
2200 outer_mdt_hits = count_outer;
2203 absolute_pt = std::abs(track_pt);
2206 t_eta.push_back(
pattern.etaMap);
2207 t_phi.push_back(
pattern.phiMS);
2210 f_eta.push_back(roi->
eta());
2211 f_phi.push_back(roi->
phi());
2219 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 1351 of file MuFastSteering.cxx.
1370 if( trackPatterns.size() > 0 ) {
1375 storeMuonSA(roi, roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1376 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1383 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
@ ITIMER_TRACK_EXTRAPOLATOR
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
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.
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
@ ITIMER_CALIBRATION_STREAMER
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
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="")
@ ITIMER_TOTAL_PROCESSING
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
std::string to_string(const DetectorType &type)
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
accumulate
Update flags based on parser line args.
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.
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