 |
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 1025 of file MuFastSteering.cxx.
1031 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMultiTrackSignature start");
1036 std::vector<TrigL2MuonSA::RpcFitResult> clusterFitResults;
1037 std::vector< TrigL2MuonSA::MuonRoad > clusterRoad;
1038 std::vector<TrigL2MuonSA::MdtHits> mdtHits_cluster_normal;
1049 trackFitterTimer, trackExtraTimer, calibrationTimer );
1066 p_roids = roids.begin();
1067 for (p_roi=(muonRoIs).
begin(); p_roi!=(muonRoIs).
end(); ++p_roi) {
1070 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
1075 rpcFitResult.
Clear();
1076 tgcFitResult.
Clear();
1082 clusterFitResults.clear();
1083 clusterRoad.clear();
1084 mdtHits_cluster_normal.clear();
1099 mdtHits_cluster_normal,
1102 if (!
sc.isSuccess()) {
1110 for(
unsigned int i_road = 0; i_road < clusterRoad.size(); i_road++){
1112 std::vector<TrigL2MuonSA::TrackPattern> tmp_trkPats; tmp_trkPats.clear();
1114 patternTimer.start();
1116 mdtHits_cluster_normal.at(i_road),
1118 if (!
sc.isSuccess()) {
1122 patternTimer.stop();
1125 stationFitterTimer.start();
1127 clusterFitResults.at(i_road),
1129 if (!
sc.isSuccess()) {
1134 stationFitterTimer.stop();
1137 trackFitterTimer.start();
1139 clusterFitResults.at(i_road),
1142 if (!
sc.isSuccess()) {
1146 trackFitterTimer.stop();
1149 const float ETA_LIMIT = 2.8;
1150 const float DELTA_ETA_LIMIT = 1.0;
1152 float roiEta = (*p_roi)->eta();
1154 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
1160 trackExtraTimer.start();
1165 if (
sc != StatusCode::SUCCESS) {
1170 trackExtraTimer.stop();
1172 if(tmp_trkPats.size() > 0){
1173 ATH_MSG_DEBUG(
"temp pT calculated 2mu-in-1RoI alg = " << tmp_trkPats[0].
pt <<
" GeV");
1174 if( (std::abs(tmp_trkPats[0].barrelSagitta) <
ZERO_LIMIT &&
1178 trackPatterns.push_back(tmp_trkPats[0]);
1181 storeMuonSA(*p_roi, *p_roids, clusterRoad.at(i_road), mdtRegion, rpcHits, tgcHits,
1182 clusterFitResults.at(i_road), tgcFitResult, mdtHits_cluster_normal.at(i_road), cscHits,
1183 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1186 if(trackPatterns.empty()){
1187 ATH_MSG_DEBUG(
"multi-track SA falied to reconstruct muons");
1189 trackPatterns.push_back(trackPattern);
1190 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1191 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1192 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1199 ATH_MSG_DEBUG(
"multi-track SA does nothings and skips for EndcapRoI");
1214 if (!
sc.isSuccess()) {
1217 trackPatterns.push_back(trackPattern);
1219 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1220 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1221 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1227 patternTimer.start();
1236 if (!
sc.isSuccess()) {
1239 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1240 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1241 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1244 patternTimer.stop();
1247 stationFitterTimer.start();
1264 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
1266 if (!
sc.isSuccess()) {
1268 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1269 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1270 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1274 stationFitterTimer.stop();
1277 trackFitterTimer.start();
1283 if (!
sc.isSuccess()) {
1285 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1286 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1287 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1290 trackFitterTimer.stop();
1293 const float ETA_LIMIT = 2.8;
1294 const float DELTA_ETA_LIMIT = 1.0;
1296 float roiEta = (*p_roi)->eta();
1298 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
1304 trackExtraTimer.start();
1308 if (
sc != StatusCode::SUCCESS) {
1310 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1311 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1312 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1315 trackExtraTimer.stop();
1317 storeMuonSA(*p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1318 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1319 stgcHits, mmHits, trackPatterns.back(), outputTracks, ctx);
1324 if (
sc != StatusCode::SUCCESS) {
1329 if (p_roids==roids.end())
break;
1332 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMultiTrackSignature success");
1333 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();
461 if (!
sc.isSuccess()) {
464 trackPatterns.push_back(std::move(trackPattern));
467 rpcFitResult, tgcFitResult, mdtHits, cscHits,
469 trackPatterns, outputTracks, outputID, outputMS, ctx);
475 patternTimer.start();
479 if (!
sc.isSuccess()) {
483 rpcFitResult, tgcFitResult, mdtHits, cscHits,
485 trackPatterns, outputTracks, outputID, outputMS, ctx);
491 stationFitterTimer.start();
495 if (!
sc.isSuccess()) {
499 rpcFitResult, tgcFitResult, mdtHits, cscHits,
501 trackPatterns, outputTracks, outputID, outputMS, ctx);
504 stationFitterTimer.stop();
507 trackFitterTimer.start();
512 if (!
sc.isSuccess()) {
516 rpcFitResult, tgcFitResult, mdtHits, cscHits,
518 trackPatterns, outputTracks, outputID, outputMS, ctx);
521 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();
561 if (!
sc.isSuccess()) {
565 rpcFitResult, tgcFitResult, mdtHits, cscHits,
567 trackPatterns, outputTracks, outputID, outputMS, ctx);
573 stationFitterTimer.start();
591 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
593 if (!
sc.isSuccess()) {
597 rpcFitResult, tgcFitResult, mdtHits, cscHits,
599 trackPatterns, outputTracks, outputID, outputMS, ctx);
603 stationFitterTimer.stop();
606 trackFitterTimer.start();
612 if (!
sc.isSuccess()) {
616 rpcFitResult, tgcFitResult, mdtHits, cscHits,
618 trackPatterns, outputTracks, outputID, outputMS, ctx);
621 trackFitterTimer.stop();
625 const float ETA_LIMIT = 2.8;
626 const float DELTA_ETA_LIMIT = 1.0;
629 float roiEta = (*p_roi)->eta();
631 ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
637 trackExtraTimer.start();
641 if (
sc != StatusCode::SUCCESS) {
645 rpcFitResult, tgcFitResult, mdtHits, cscHits,
647 trackPatterns, outputTracks, outputID, outputMS, ctx);
650 trackExtraTimer.stop();
654 if (
sc != StatusCode::SUCCESS) {
658 rpcFitResult, tgcFitResult, mdtHits, cscHits,
660 trackPatterns, outputTracks, outputID, outputMS, ctx);
666 rpcFitResult, tgcFitResult, mdtHits, cscHits,
668 trackPatterns, outputTracks, outputID, outputMS, ctx);
676 std::vector<uint32_t> localBuffer;
683 if (
sc != StatusCode::SUCCESS ) {
689 ATH_MSG_DEBUG(
"Retrieved the buffer, with size: " << localBuffer.size());
696 ATH_MSG_DEBUG(
"The size of the TrigCompositeContainer is: " << outputMuonCal->
size() );
699 return StatusCode::FAILURE;
704 tc->setDetail(
"muCalibDS", localBuffer );
709 if (p_roids==roids.end())
break;
712 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignature success");
713 return StatusCode::SUCCESS;
◆ findMuonSignatureIO()
findMuonSignatureIO(), includes reconstract algorithms for inside-out mode
Definition at line 721 of file MuFastSteering.cxx.
729 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignatureIO start");
741 trackFitterTimer, trackExtraTimer, calibrationTimer );
756 p_roids = roids.begin();
757 for (
const auto p_roi : muonRoIs) {
758 ATH_MSG_DEBUG(
"roi eta/phi: " << (*p_roi).eta() <<
"/" << (*p_roi).phi());
761 if ( (idtracks).
empty() )
ATH_MSG_DEBUG(
"IO TEST: xAOD::TrackParticleContainer has 0 tracks --> Can not use FTF tracks...");
762 else ATH_MSG_DEBUG(
"IO TEST: xAOD::TrackParticleContainer has " << (idtracks).
size() <<
" tracks --> Start inside-out mode!");
764 std::vector<TrigL2MuonSA::TrackPattern> trackPatterns;
765 int idtrack_idx = -1;
766 for (
auto idtrack : idtracks) {
782 rpcFitResult.
Clear();
783 tgcFitResult.
Clear();
788 trackPatterns.clear();
791 if (!
sc.isSuccess()) {
798 if ( std::abs(idtrack->eta()) < 1.05 ){
799 ATH_MSG_DEBUG(
"FTF track at IP is in Barrel: " << idtrack->eta());
801 ATH_MSG_DEBUG(
"FTF track at IP is in Endcap: " << idtrack->eta());
823 if (!
sc.isSuccess()) {
832 patternTimer.start();
836 if (!
sc.isSuccess()) {
843 stationFitterTimer.start();
847 if (!
sc.isSuccess()) {
851 stationFitterTimer.stop();
854 trackFitterTimer.start();
858 if (!
sc.isSuccess()) {
862 trackFitterTimer.stop();
881 if (!
sc.isSuccess()) {
890 patternTimer.start();
896 if (!
sc.isSuccess()) {
903 stationFitterTimer.start();
911 m_cscsegmaker->FindSuperPointCsc(cscHits,trackPatterns,tgcFitResult,muonRoad);
912 if (!
sc.isSuccess()) {
916 stationFitterTimer.stop();
919 trackFitterTimer.start();
924 if (!
sc.isSuccess()) {
928 trackFitterTimer.stop();
934 const float ETA_LIMIT = 2.8;
935 const float DELTA_ETA_LIMIT = 1.0;
936 float roiEta = (*p_roi).eta();
938 && ( std::abs(
track.etaMap) > ETA_LIMIT || std::abs(
track.etaMap-
roiEta) > DELTA_ETA_LIMIT ) ) {
939 trackPatterns.back().etaMap =
roiEta;
944 if (
sc != StatusCode::SUCCESS) {
949 if ( std::abs(trackPatterns.back().pt) >
ZERO_LIMIT ) {
950 storeMuonSA(p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
951 rpcFitResult, tgcFitResult, mdtHits, cscHits,
953 trackPatterns.back(), outputSAs, ctx);
958 muonCB->
setPt(idtrack->pt());
959 muonCB->
setEta(idtrack->eta());
960 muonCB->
setPhi(idtrack->phi());
971 if(outputSAs.
size()==0) {
977 rpcFitResult.
Clear();
978 tgcFitResult.
Clear();
983 trackPatterns.clear();
985 storeMuonSA(p_roi, *p_roids, muonRoad, mdtRegion, rpcHits, tgcHits,
986 rpcFitResult, tgcFitResult, mdtHits, cscHits,
988 trackPattern, outputSAs, ctx);
1004 for (
auto outputSA : outputSAs){
1005 ATH_MSG_DEBUG(
"outputSA pt/eta/phi: " << outputSA->pt() <<
"/" << outputSA->etaMS() <<
"/" << outputSA->phiMS());
1009 for (
auto outputCB : outputCBs){
1010 ATH_MSG_DEBUG(
"outputCB pt/eta/phi: " << outputCB->pt() <<
"/" << outputCB->eta() <<
"/" << outputCB->phi());
1014 if (p_roids==roids.end())
break;
1017 ATH_MSG_DEBUG(
"StatusCode MuFastSteering::findMuonSignatureIO success");
1018 return StatusCode::SUCCESS;
◆ getRoiSizeForID()
Definition at line 1953 of file MuFastSteering.cxx.
1958 float pt = muonSA->
pt();
1961 const int N_PARAMS = 2;
1964 const float etaMinWin_brl = 0.10;
1965 const float etaMinWin_ec1 = 0.10;
1966 const float etaMinWin_ec2 = 0.10;
1967 const float etaMinWin_ec3 = 0.10;
1968 const float etaMinWin_ecA = 0.10;
1969 const float etaMinWin_ecB = 0.10;
1971 const float etaMaxWin_brl = 0.20;
1972 const float etaMaxWin_ec1 = 0.20;
1973 const float etaMaxWin_ec2 = 0.20;
1974 const float etaMaxWin_ec3 = 0.20;
1975 const float etaMaxWin_ecA = 0.20;
1976 const float etaMaxWin_ecB = 0.20;
1978 const float etaParams_brl[N_PARAMS] = { 0.038, 0.284};
1979 const float etaParams_ec1[N_PARAMS] = { 0.011, 0.519};
1980 const float etaParams_ec2[N_PARAMS] = { 0.023, 0.253};
1981 const float etaParams_ec3[N_PARAMS] = { 0.018, 0.519};
1982 const float etaParams_ecA[N_PARAMS] = { 0.010, 0.431};
1983 const float etaParams_ecB[N_PARAMS] = { 0.023, 0.236};
1986 const float phiMinWin_brl = 0.125;
1987 const float phiMinWin_ec1 = 0.125;
1988 const float phiMinWin_ec2 = 0.125;
1989 const float phiMinWin_ec3 = 0.10;
1990 const float phiMinWin_ecA = 0.15;
1991 const float phiMinWin_ecB = 0.15;
1993 const float phiMaxWin_brl = 0.20;
1994 const float phiMaxWin_ec1 = 0.20;
1995 const float phiMaxWin_ec2 = 0.20;
1996 const float phiMaxWin_ec3 = 0.20;
1997 const float phiMaxWin_ecA = 0.25;
1998 const float phiMaxWin_ecB = 0.20;
2000 const float phiParams_brl[N_PARAMS] = { 0.000, 0.831};
2001 const float phiParams_ec1[N_PARAMS] = { 0.000, 0.885};
2002 const float phiParams_ec2[N_PARAMS] = { 0.015, 0.552};
2003 const float phiParams_ec3[N_PARAMS] = { 0.008, 0.576};
2004 const float phiParams_ecA[N_PARAMS] = { 0.000, 0.830};
2005 const float phiParams_ecB[N_PARAMS] = { 0.006, 1.331};
2014 minWin = etaMinWin_brl;
2015 maxWin = etaMaxWin_brl;
2019 minWin = phiMinWin_brl;
2020 maxWin = phiMaxWin_brl;
2029 minWin = etaMinWin_ecA;
2030 maxWin = etaMaxWin_ecA;
2034 minWin = phiMinWin_ecA;
2035 maxWin = phiMaxWin_ecA;
2041 minWin = etaMinWin_ecB;
2042 maxWin = etaMaxWin_ecB;
2046 minWin = phiMinWin_ecB;
2047 maxWin = phiMaxWin_ecB;
2051 if( std::abs(
eta) < 1.5 ) {
2054 minWin = etaMinWin_ec1;
2055 maxWin = etaMaxWin_ec1;
2059 minWin = phiMinWin_ec1;
2060 maxWin = phiMaxWin_ec1;
2063 else if( std::abs(
eta) < 2.0 ) {
2066 minWin = etaMinWin_ec2;
2067 maxWin = etaMaxWin_ec2;
2071 minWin = phiMinWin_ec2;
2072 maxWin = phiMaxWin_ec2;
2078 minWin = etaMinWin_ec3;
2079 maxWin = etaMaxWin_ec3;
2083 minWin = phiMinWin_ec3;
2084 maxWin = phiMaxWin_ec3;
2093 if(
x < minWin )
retval = minWin;
2094 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 1844 of file MuFastSteering.cxx.
1858 const double scalePhiWidthForFailure = 2;
1859 const double scaleRoIforZeroPt = 2;
1867 float phiHalfWidth = 0.1;
1868 float etaHalfWidth = 0.1;
1884 phiHalfWidth *= scalePhiWidthForFailure;
1890 pattern.etaVtx - etaHalfWidth,
1891 pattern.etaVtx + etaHalfWidth,
1893 pattern.phiVtx - phiHalfWidth,
1894 pattern.phiVtx + phiHalfWidth);
1897 <<
"pattern.etaVtx/pattern.phiVtx="
1901 <<
" phi=" << IDroiDescriptor->
phi()
1902 <<
", eta=" << IDroiDescriptor->
eta());
1912 roids->
eta() - (roids->
eta() - roids->
etaMinus()) * scaleRoIforZeroPt,
1913 roids->
eta() + (roids->
etaPlus() - roids->
eta()) * scaleRoIforZeroPt,
1918 ATH_MSG_VERBOSE(
"will Record an RoiDescriptor for Inner Detector in case with zero pT:"
1919 <<
" phi=" << IDroiDescriptor->
phi()
1920 <<
", phi min=" << IDroiDescriptor->
phiMinus()
1921 <<
", phi max=" << IDroiDescriptor->
phiPlus()
1922 <<
", eta=" << IDroiDescriptor->
eta()
1923 <<
", eta min=" << IDroiDescriptor->
etaMinus()
1924 <<
", eta max=" << IDroiDescriptor->
etaPlus());
◆ storeMSRoiDescriptor()
Definition at line 1798 of file MuFastSteering.cxx.
1812 mseta = roids->
eta();
1813 msphi = roids->
phi();
1817 const float phiHalfWidth = 0.1;
1818 const float etaHalfWidth = 0.1;
1824 mseta - etaHalfWidth,
1825 mseta + etaHalfWidth,
1827 msphi - phiHalfWidth,
1828 msphi + phiHalfWidth);
1832 << mseta <<
"/" << msphi);
1835 <<
" phi=" << MSroiDescriptor->
phi()
1836 <<
", 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 1377 of file MuFastSteering.cxx.
1395 const int currentRoIId = roids->
roiId();
1397 const EventIDBase& eventID = ctx.eventID();
1399 if (!eventInfo.isValid()) {
1409 int barrelinner = 0;
1410 int endcapinner = 3;
1431 ATH_MSG_DEBUG(
"### Hit patterns at the Muon Spectrometer ###");
1437 ATH_MSG_DEBUG(
"pattern#0: # of hits at endcap barrel inner =" <<
pattern.mdtSegments[barrelinner].size());
1441 ATH_MSG_DEBUG(
"pattern#0: # of hits at barrel endcap inner =" <<
pattern.mdtSegments[endcapinner].size());
1443 ATH_MSG_DEBUG(
"### ************************************* ###");
1499 pattern.superPoints[middle].Alin,
pattern.superPoints[middle].Blin,
pattern.superPoints[middle].Chi2);
1506 pattern.superPoints[barrelinner].Alin,
pattern.superPoints[barrelinner].Blin,
pattern.superPoints[barrelinner].Chi2);
1511 pattern.superPoints[endcapinner].Alin,
pattern.superPoints[endcapinner].Blin,
pattern.superPoints[endcapinner].Chi2);
1524 muonSA->
setLvl1Id( eventInfo->extendedLevel1ID() );
1557 std::vector<std::string> mdtId;
1559 if ( mdtHit.isOutlier==0 || mdtHit.isOutlier==1 ) {
1560 muonSA->
setMdtHit(mdtHit.OnlineId, mdtHit.isOutlier, mdtHit.Chamber,
1561 mdtHit.R, mdtHit.Z, mdtHit.cPhi0, mdtHit.Residual,
1562 mdtHit.DriftTime, mdtHit.DriftSpace, mdtHit.DriftSigma);
1563 mdtId.push_back(mdtHit.Id.getString());
1567 accessor_mdthitid( *muonSA ) = mdtId;
1570 std::vector<float> cscResol;
1573 if ( cscHit.isOutlier==0 || cscHit.isOutlier==1 ) {
1574 muonSA->
setCscHit(cscHit.isOutlier, cscHit.Chamber, cscHit.StationName,
1575 cscHit.StationEta, cscHit.StationPhi,
1576 cscHit.ChamberLayer, cscHit.WireLayer, cscHit.MeasuresPhi, cscHit.Strip,
1577 cscHit.eta, cscHit.phi, cscHit.r, cscHit.z,
1578 cscHit.charge, cscHit.time, cscHit.Residual);
1579 cscResol.push_back(cscHit.resolution);
1581 <<
"OL=" << cscHit.isOutlier <<
","
1582 <<
"Ch=" << cscHit.Chamber <<
","
1583 <<
"StationName=" << cscHit.StationName <<
","
1584 <<
"StationEta=" << cscHit.StationEta <<
","
1585 <<
"StationPhi=" << cscHit.StationPhi <<
","
1586 <<
"ChamberLayer=" << cscHit.ChamberLayer <<
","
1587 <<
"WireLayer=" << cscHit.WireLayer <<
","
1588 <<
"MeasuresPhi=" << cscHit.MeasuresPhi <<
","
1589 <<
"Strip=" << cscHit.Strip <<
","
1590 <<
"eta=" << cscHit.eta <<
","
1591 <<
"phi=" << cscHit.phi <<
","
1592 <<
"r=" << cscHit.r <<
","
1593 <<
"z=" << cscHit.z <<
","
1594 <<
"charge=" << cscHit.charge <<
","
1595 <<
"Rs=" << cscHit.Residual <<
","
1596 <<
"t=" << cscHit.time);
1601 accessor_cschitresol( *muonSA ) = cscResol;
1604 float sumbeta[8]={0};
1605 float nhit_layer[8]={0};
1607 muonSA->
setRpcHit(rpcHit.layer, rpcHit.measuresPhi,
1608 rpcHit.x, rpcHit.y, rpcHit.z,
1609 rpcHit.time, rpcHit.distToEtaReadout, rpcHit.distToPhiReadout,
1610 rpcHit.stationName);
1612 <<
"stationName=" << rpcHit.stationName <<
","
1613 <<
"layer=" << rpcHit.layer <<
","
1614 <<
"measuresPhi=" << rpcHit.measuresPhi <<
","
1615 <<
"x=" << rpcHit.x <<
","
1616 <<
"y=" << rpcHit.y <<
","
1617 <<
"y=" << rpcHit.z);
1620 if(dRMS>0.05)
continue;
1622 float Tprop = rpcHit.distToPhiReadout/1000*4.8;
1624 sumbeta[rpcHit.layer]=sumbeta[rpcHit.layer]+
beta;
1625 nhit_layer[rpcHit.layer]=nhit_layer[rpcHit.layer]+1;
1628 std::vector<float> Avebeta_layer;
1629 for(
int i_layer=0;i_layer<8;i_layer++){
1630 if(nhit_layer[i_layer]!=0)Avebeta_layer.push_back( sumbeta[i_layer]/nhit_layer[i_layer] );
1632 if(Avebeta_layer.size()>0) muonSA->
setBeta(
std::accumulate(Avebeta_layer.begin(),Avebeta_layer.end(),0.0)/Avebeta_layer.size() );
1634 Avebeta_layer.clear();
1638 muonSA->
setTgcHit(tgcHit.eta, tgcHit.phi, tgcHit.r, tgcHit.z,
1639 tgcHit.width, tgcHit.sta, tgcHit.isStrip,
1640 tgcHit.bcTag, tgcHit.inRoad);
1642 <<
"eta=" << tgcHit.eta <<
","
1643 <<
"phi=" << tgcHit.phi <<
","
1644 <<
"r=" << tgcHit.r <<
","
1645 <<
"z=" << tgcHit.z <<
","
1646 <<
"width=" << tgcHit.width <<
","
1647 <<
"stationNum=" << tgcHit.sta <<
","
1648 <<
"isStrip=" << tgcHit.isStrip <<
","
1649 <<
"bcTag=" << tgcHit.bcTag <<
","
1650 <<
"inRoad=" << tgcHit.inRoad);
1655 for(
unsigned int i_hit=0; i_hit<stgcHits.size(); i_hit++) {
1656 if ( stgcHits[i_hit].isOutlier==0 || stgcHits[i_hit].isOutlier==1 ) {
1659 muonSA->
setStgcCluster(stgcHits[i_hit].layerNumber, stgcHits[i_hit].isOutlier, stgcHits[i_hit].channelType,
1660 stgcHits[i_hit].
eta, stgcHits[i_hit].
phi, stgcHits[i_hit].
r, stgcHits[i_hit].
z,
1661 stgcHits[i_hit].ResidualR, stgcHits[i_hit].ResidualPhi,
1665 <<
"eta=" << stgcHits[i_hit].
eta <<
","
1666 <<
"phi=" << stgcHits[i_hit].
phi <<
","
1667 <<
"r=" << stgcHits[i_hit].
r <<
","
1668 <<
"z=" << stgcHits[i_hit].
z <<
","
1669 <<
"z=" << stgcHits[i_hit].ResidualR <<
","
1670 <<
"z=" << stgcHits[i_hit].ResidualPhi);
1675 for(
unsigned int i_hit=0; i_hit<mmHits.size(); i_hit++) {
1676 if ( mmHits[i_hit].isOutlier==0 || mmHits[i_hit].isOutlier==1 ) {
1679 muonSA->
setMmCluster(mmHits[i_hit].layerNumber, mmHits[i_hit].isOutlier,
1680 mmHits[i_hit].
eta, mmHits[i_hit].
phi, mmHits[i_hit].
r, mmHits[i_hit].
z,
1681 mmHits[i_hit].ResidualR, mmHits[i_hit].ResidualPhi,
1685 <<
"eta=" << tgcHits[i_hit].
eta <<
","
1686 <<
"phi=" << tgcHits[i_hit].
phi <<
","
1687 <<
"r=" << tgcHits[i_hit].
r <<
","
1688 <<
"z=" << tgcHits[i_hit].
z <<
","
1689 <<
"width=" << tgcHits[i_hit].
width <<
","
1690 <<
"stationNum=" << tgcHits[i_hit].sta <<
","
1691 <<
"isStrip=" << tgcHits[i_hit].
isStrip <<
","
1692 <<
"bcTag=" << tgcHits[i_hit].
bcTag <<
","
1693 <<
"inRoad=" << tgcHits[i_hit].inRoad);
1698 for (
int i_station=0; i_station<8; i_station++) {
1699 for (
int i_sector=0; i_sector<2; i_sector++) {
1700 muonSA->
setRoad(i_station, i_sector, muonRoad.
aw[i_station][i_sector], muonRoad.
bw[i_station][i_sector]);
1701 muonSA->
setRegionZ(i_station, i_sector, mdtRegion.
zMin[i_station][i_sector], mdtRegion.
zMax[i_station][i_sector]);
1702 muonSA->
setRegionR(i_station, i_sector, mdtRegion.
rMin[i_station][i_sector], mdtRegion.
rMax[i_station][i_sector]);
1703 muonSA->
setRegionEta(i_station, i_sector, mdtRegion.
etaMin[i_station][i_sector], mdtRegion.
etaMax[i_station][i_sector]);
1753 double phi1 = tgcFitResult.
tgcMid1[1];
1754 double phi2 = tgcFitResult.
tgcMid2[1];
1755 if ( tgcFitResult.
tgcMid1[3]==0. || tgcFitResult.
tgcMid2[3]==0. ) {
1758 }
else if( phi1*phi2 < 0 && std::abs(phi1)>(
M_PI/2.) ) {
1759 double tmp1 = (phi1>0)? phi1 -
M_PI : phi1 +
M_PI;
1764 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 2102 of file MuFastSteering.cxx.
2119 std::vector<float> t_eta, t_phi;
2120 std::vector<float> f_eta, f_phi;
2121 std::vector<float> r_inner, r_middle, r_outer;
2122 std::vector<float> f_residuals;
2131 f_residuals.clear();
2143 invalid_rpc_roi_number,
2145 track_eta, track_phi, failed_eta, failed_phi,
2146 res_inner, res_middle, res_outer, fit_residuals );
2150 if( trackPatterns.size() > 0 ) {
2157 float count_inner = 0;
2158 float count_middle = 0;
2159 float count_outer = 0;
2163 if (std::abs(mdtHit.DriftSpace) <
ZERO_LIMIT)
continue;
2165 char st = mdtHit.cType[1];
2169 r_inner.push_back(mdtHit.Residual/
norm);
2170 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2175 r_middle.push_back(mdtHit.Residual/
norm);
2176 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2181 r_outer.push_back(mdtHit.Residual/
norm);
2182 if (mdtHit.isOutlier==0) f_residuals.push_back(mdtHit.Residual/
norm);
2186 inner_mdt_hits = count_inner;
2187 middle_mdt_hits = count_middle;
2188 outer_mdt_hits = count_outer;
2191 absolute_pt = std::abs(track_pt);
2194 t_eta.push_back(
pattern.etaMap);
2195 t_phi.push_back(
pattern.phiMS);
2198 f_eta.push_back(roi->
eta());
2199 f_phi.push_back(roi->
phi());
2207 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 1339 of file MuFastSteering.cxx.
1358 if( trackPatterns.size() > 0 ) {
1363 storeMuonSA(roi, roids, muonRoad, mdtRegion, rpcHits, tgcHits,
1364 rpcFitResult, tgcFitResult, mdtHits, cscHits,
1371 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