|
ATLAS Offline Software
|
EF hypothesis algorithm for B -> mu+ nu_mu X decays: B+ -> mu+ nu_mu anti-D0(-> K+ pi-) B0 -> mu+ nu_mu D*-(-> anti-D0(-> K+ pi-) pi-) B0 -> mu+ nu_mu D-(-> K+ pi- pi-) B_s0 -> mu+ nu_mu D_s-(->phi(-> K+ K-) pi-) anti-Lambda_b0 -> mu+ nu_mu anti-Lambda_c-(-> anti-p K+ pi-)
More...
#include <TrigBmuxComboHypo.h>
|
| TrigBmuxComboHypo (const std::string &name, ISvcLocator *pSvcLocator) |
|
| TrigBmuxComboHypo ()=delete |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute (const EventContext &context) const 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 > &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 |
|
|
StatusCode | findBmuxCandidates (TrigBmuxState &) const |
|
StatusCode | createDecisionObjects (TrigBmuxState &) const |
|
std::unique_ptr< xAOD::Vertex > | fit (const EventContext &context, const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, Decay decay) const |
| Perform a vertex fit on selected tracks. More...
|
|
std::unique_ptr< Trk::VxCascadeInfo > | fitCascade (const EventContext &context, const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, Decay decay) const |
| Perform a cascade vertex fit on selected tracks. More...
|
|
StatusCode | fillTriggerObject (xAOD::TrigBphys &triggerObject, xAOD::TrigBphys::pType type, const xAOD::Vertex &vertex, const std::vector< double > &trkMass) const |
| Fill the trigger object that may be stored for debugging or matching. More...
|
|
StatusCode | fillTriggerObjects (std::vector< xAOD::TrigBphys * > &triggerObjects, xAOD::TrigBphys::pType type, const Trk::VxCascadeInfo &vxCascadeInfo, const Amg::Vector3D &beamSpotPosition) const |
| Fill the trigger object that may be stored for debugging or matching for a cascade vertex. More...
|
|
bool | isIdenticalTracks (const xAOD::TrackParticle *lhs, const xAOD::TrackParticle *rhs) const |
| Returns false for the tracks with opposite charges. More...
|
|
bool | isInSameRoI (const xAOD::Muon *, const xAOD::TrackParticle *) const |
| Checks that the given track is close enough to the muon, i.e. More...
|
|
bool | isInMassRange (double mass, const std::pair< double, double > &range) const |
| Checks that the given mass value falls into the specified range. More...
|
|
double | getTrkImpactParameterZ0 (const EventContext &ctx, const xAOD::TrackParticle &track, const Amg::Vector3D &vertex) const |
| Returns the longitudinal impact parameter z0 of the track w.r.t. More...
|
|
double | Lxy (const Amg::Vector3D &productionVertex, const Amg::Vector3D &decayVertex, const std::vector< TLorentzVector > &momenta) const |
| Returns the transverse decay length of a particle Lxy in [mm]. More...
|
|
StatusCode | copyDecisions (const Combo::LegDecisionsMap &passingLegs, const EventContext &context) const |
| iterates over the inputs and for every object (no filtering) crates output object linked to input moving the decisions that are mentioned in the passing set More...
|
|
StatusCode | extractFeatureAndRoI (const HLT::Identifier &chainLegId, const ElementLink< TrigCompositeUtils::DecisionContainer > &EL, SG::sgkey_t &featureKey, TrigCompositeUtils::Decision::index_type &featureIndex, SG::sgkey_t &roiKey, TrigCompositeUtils::Decision::index_type &roiIndex, bool &roiFullscan, bool &objectRequestsNoMultiplicityCheck, SG::SGKeyMap< std::set< uint32_t >> &priorFeaturesMap) const |
| For a given Decision node from a HypoAlg, extracts type-less identification data on the node's Feature and seeding ROI. More...
|
|
StatusCode | fillDecisionsMap (Combo::LegDecisionsMap &dmap, const EventContext &context) const |
| iterates over all inputs, associating inputs to legs More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_trackParticleContainerKey |
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonContainerKey |
|
SG::WriteHandleKey< xAOD::TrigBphysContainer > | m_trigBphysContainerKey |
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"} |
|
Gaudi::Property< bool > | m_makeCascadeFit |
|
Gaudi::Property< float > | m_cascadeChi2 |
|
Gaudi::Property< double > | m_deltaR |
|
Gaudi::Property< double > | m_trkZ0 |
|
Gaudi::Property< double > | m_roiEtaWidth |
|
Gaudi::Property< double > | m_roiPhiWidth |
|
Gaudi::Property< size_t > | m_fitAttemptsWarningThreshold |
|
Gaudi::Property< size_t > | m_fitAttemptsBreakThreshold |
|
Gaudi::Property< bool > | m_BToD0 |
|
Gaudi::Property< bool > | m_BToD0_makeDstar |
|
Gaudi::Property< double > | m_BToD0_minD0KaonPt |
|
Gaudi::Property< double > | m_BToD0_minD0PionPt |
|
Gaudi::Property< double > | m_BToD0_minD0Pt |
|
Gaudi::Property< double > | m_BToD0_minDstarPt |
|
Gaudi::Property< double > | m_BToD0_minDstarPionPt |
|
Gaudi::Property< double > | m_BToD0_maxDstarPionZ0 |
|
Gaudi::Property< std::pair< double, double > > | m_BToD0_massRange |
|
Gaudi::Property< std::pair< double, double > > | m_BToD0_D0MassRange |
|
Gaudi::Property< std::pair< double, double > > | m_BToD0_DstarMassRange |
|
Gaudi::Property< float > | m_BToD0_chi2 |
|
Gaudi::Property< float > | m_BToD0_LxyB |
|
Gaudi::Property< float > | m_BToD0_LxyBd |
|
Gaudi::Property< float > | m_BToD0_LxyD0 |
|
Gaudi::Property< bool > | m_BdToD |
|
Gaudi::Property< double > | m_BdToD_minKaonPt |
|
Gaudi::Property< double > | m_BdToD_minPionPt |
|
Gaudi::Property< double > | m_BdToD_minDPt |
|
Gaudi::Property< std::pair< double, double > > | m_BdToD_massRange |
|
Gaudi::Property< std::pair< double, double > > | m_BdToD_DMassRange |
|
Gaudi::Property< float > | m_BdToD_chi2 |
|
Gaudi::Property< float > | m_BdToD_LxyBd |
|
Gaudi::Property< float > | m_BdToD_LxyD |
|
Gaudi::Property< bool > | m_BsToDs |
|
Gaudi::Property< double > | m_BsToDs_minKaonPt |
|
Gaudi::Property< double > | m_BsToDs_minPionPt |
|
Gaudi::Property< double > | m_BsToDs_minDsPt |
|
Gaudi::Property< std::pair< double, double > > | m_BsToDs_massRange |
|
Gaudi::Property< std::pair< double, double > > | m_BsToDs_phiMassRange |
|
Gaudi::Property< std::pair< double, double > > | m_BsToDs_DsMassRange |
|
Gaudi::Property< float > | m_BsToDs_chi2 |
|
Gaudi::Property< float > | m_BsToDs_LxyBs |
|
Gaudi::Property< float > | m_BsToDs_LxyDs |
|
Gaudi::Property< bool > | m_LambdaBToLambdaC |
|
Gaudi::Property< double > | m_LambdaBToLambdaC_minProtonPt |
|
Gaudi::Property< double > | m_LambdaBToLambdaC_minKaonPt |
|
Gaudi::Property< double > | m_LambdaBToLambdaC_minPionPt |
|
Gaudi::Property< double > | m_LambdaBToLambdaC_minLambdaCPt |
|
Gaudi::Property< std::pair< double, double > > | m_LambdaBToLambdaC_massRange |
|
Gaudi::Property< std::pair< double, double > > | m_LambdaBToLambdaC_LambdaCMassRange |
|
Gaudi::Property< float > | m_LambdaBToLambdaC_chi2 |
|
Gaudi::Property< float > | m_LambdaBToLambdaC_LxyLb |
|
Gaudi::Property< float > | m_LambdaBToLambdaC_LxyLc |
|
ToolHandle< InDet::VertexPointEstimator > | m_vertexPointEstimator |
|
ToolHandle< Trk::TrkVKalVrtFitter > | m_vertexFitter |
|
ToolHandle< Reco::ITrackToVertex > | m_trackToVertexTool |
|
ToolHandle< GenericMonitoringTool > | m_monTool |
|
TrigCompositeUtils::DecisionIDContainer | m_allowedIDs |
|
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > | m_inputs { this, "HypoInputDecisions", {}, "Input Decisions" } |
|
SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > | m_outputs { this, "HypoOutputDecisions", {}, "Output Decisions" } |
|
Gaudi::Property< bool > | m_requireUniqueROI |
|
Gaudi::Property< Combo::MultiplicityReqMap > | m_multiplicitiesReqMap |
|
Gaudi::Property< Combo::LegMap > | m_legToInputCollectionMap |
|
Gaudi::Property< bool > | m_checkMultiplicityMap |
|
ToolHandleArray< ComboHypoToolBase > | m_hypoTools {this, "ComboHypoTools", {}, "Tools to perform selection"} |
|
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 |
|
|
static const std::vector< std::vector< std::vector< double > > > | s_trkMass |
|
EF hypothesis algorithm for B -> mu+ nu_mu X decays: B+ -> mu+ nu_mu anti-D0(-> K+ pi-) B0 -> mu+ nu_mu D*-(-> anti-D0(-> K+ pi-) pi-) B0 -> mu+ nu_mu D-(-> K+ pi- pi-) B_s0 -> mu+ nu_mu D_s-(->phi(-> K+ K-) pi-) anti-Lambda_b0 -> mu+ nu_mu anti-Lambda_c-(-> anti-p K+ pi-)
Definition at line 89 of file TrigBmuxComboHypo.h.
◆ StoreGateSvc_t
◆ Decay
◆ TrigBmuxComboHypo() [1/2]
TrigBmuxComboHypo::TrigBmuxComboHypo |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ TrigBmuxComboHypo() [2/2]
TrigBmuxComboHypo::TrigBmuxComboHypo |
( |
| ) |
|
|
delete |
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
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 55 of file AthReentrantAlgorithm.cxx.
◆ copyDecisions()
iterates over the inputs and for every object (no filtering) crates output object linked to input moving the decisions that are mentioned in the passing set
Definition at line 86 of file ComboHypo.cxx.
88 for (
auto const& element : passingLegs) {
89 passing.insert(element.first);
92 ATH_MSG_DEBUG(
"Copying "<<passing.size()<<
" positive decision IDs to outputs");
94 for (
size_t input_counter = 0; input_counter <
m_inputs.size(); ++input_counter ) {
97 auto outDecisions = outputHandle.
ptr();
99 if ( inputHandle.isValid() ) {
101 for (
const Decision* inputDecision : *inputHandle) {
108 ATH_MSG_DEBUG(
"Searching this element in the map: ("<<thisEL.dataID() <<
" , " << thisEL.index()<<
")");
113 const std::vector<ElementLink<DecisionContainer>>&
Comb=passingLegs.at(
c);
117 ATH_MSG_DEBUG(
" Adding "<< cID <<
" because EL is found in the passingLegs map");
118 finalIds.insert( cID.
numeric() );
121 finalIds.insert( mainChain.
numeric() );
127 ATH_MSG_DEBUG(
"New decision (Container Index:" << input_counter <<
", Element Index:"<< newDec->
index() <<
") has "
136 ATH_MSG_DEBUG(
"Output Handle " <<
m_outputs.at(input_counter).key() <<
" with " << outputHandle->
size() <<
" Decision objects");
140 ATH_MSG_DEBUG(
" Decision object #" <<
d->index() <<
" with " << objDecisions.size()<<
" positive decision IDs");
148 return StatusCode::SUCCESS;
◆ createDecisionObjects()
StatusCode TrigBmuxComboHypo::createDecisionObjects |
( |
TrigBmuxState & |
state | ) |
const |
|
private |
Definition at line 447 of file TrigBmuxComboHypo.cxx.
453 ATH_MSG_DEBUG(
"Found xAOD::TrigBphys object: mass = " << triggerObject->mass() );
469 std::vector<const DecisionIDContainer*> previousDecisionIDs(1, &
muon.decisionIDs);
472 ATH_CHECK(
tool->decideOnSingleObject(decision, previousDecisionIDs) );
477 return StatusCode::SUCCESS;
◆ decisionsInput()
◆ decisionsOutput()
◆ 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 TrigBmuxComboHypo::execute |
( |
const EventContext & |
context | ) |
const |
|
overridevirtual |
Reimplemented from ComboHypo.
Definition at line 98 of file TrigBmuxComboHypo.cxx.
104 ATH_CHECK( previousDecisionsHandle.isValid() );
105 ATH_MSG_DEBUG(
"Running with " << previousDecisionsHandle->size() <<
" previous decisions" );
110 ATH_CHECK( trigBphysHandle.record(std::make_unique<xAOD::TrigBphysContainer>(),
111 std::make_unique<xAOD::TrigBphysAuxContainer>()) );
116 auto state = std::make_unique<TrigBmuxState>(context, *previousDecisionsHandle, *outputDecisionsHandle, trigBphysHandle.ptr(), *beamSpotHandle);
121 ATH_MSG_DEBUG(
"TrigBmuxComboHypo::execute() terminates with StatusCode::SUCCESS" );
122 return StatusCode::SUCCESS;
◆ extractFeatureAndRoI()
For a given Decision node from a HypoAlg, extracts type-less identification data on the node's Feature and seeding ROI.
- Parameters
-
[in] | chainLegId | The HLT::Identifer of the chain (leg) we're extracting features for. |
[in] | EL | The Decision node from the HypoAlg, expected to have a "feature" link attached to it. Expected to be able to locate a "initialRoI" in its history if RequireUniqueROI=True. |
[out] | featureKey | Type-less SG Key hash of the collection hosting the Decision node's feature . |
[out] | featureIndex | Index inside the featureKey collection. |
[out] | roiKey | Type-less SG Key hash of the collection hosting the Decision node's initial ROI collection. |
[out] | roiIndex | Index inside the roiKey collection. |
[out] | roiIsFullscan | Flag indicating if the located initial ROI has the FullScan flag enabled. Triggers special behaviour allowing the ROI to satisfy arbitrary multiplicities in an arbitrary number of legs. |
[out] | objectRequestsNoMultiplicityCheck | Flag indicating of the DecisionObject requested not be included in the multiplicity computation. Triggers special behaviour allowing the DecisionObject to satisfy arbitrary multiplicities in an arbitrary number of legs. |
[in,out] | priorFeaturesMap | Data structure collating for a given feature (key) what the prior features were integrated over all previous steps (value set). |
Definition at line 379 of file ComboHypo.cxx.
398 ATH_MSG_ERROR(
"We are only expecting to search from a single navigation node in extractFeatureAndRoI");
399 return StatusCode::FAILURE;
403 std::vector<SG::sgkey_t>
keys;
404 std::vector<uint32_t> clids;
405 std::vector<Decision::index_type> indicies;
406 std::vector<const Decision*> sources;
408 std::set<const Decision*> fullyExploredFrom;
413 const Decision* featureSource =
nullptr;
416 featureKey =
keys.at(0);
417 featureIndex = indicies.at(0);
418 featureSource = sources.at(0);
421 objectRequestsNoMultiplicityCheck = (featureSource and featureSource->
hasDetail<int32_t>(
"noCombo") and featureSource->
getDetail<int32_t>(
"noCombo") == 1);
423 if (foundFeature and priorFeaturesMap.count(featureKey + featureIndex) == 0) {
424 const std::string* key_str =
evtStore()->keyToString(featureKey);
425 ATH_MSG_DEBUG(
"Note: Will use feature hash " << featureKey + featureIndex <<
", for " << (key_str ? *key_str :
"UNKNOWN") <<
" index=" << featureIndex);
428 if (
keys.size() > 1) {
429 for (
size_t i = 1;
i <
keys.size(); ++
i) {
431 if (featureKey + featureIndex ==
keys.at(
i) + indicies.at(
i)) {
434 priorFeaturesMap[featureKey + featureIndex].insert(
keys.at(
i) + indicies.at(
i));
437 priorFeaturesMap.insert( std::pair<
uint32_t, std::set<uint32_t>>(featureKey + featureIndex, std::set<uint32_t>()) );
448 roiIsFullscan = (*(roiEL))->isFullscan();
450 const std::string* roi_str =
evtStore()->keyToString(roiKey);
451 ATH_MSG_DEBUG(
"Note: Located fallback-ROI, if used this will have feature hash =" << roiKey + roiIndex <<
", for " << (roi_str ? *roi_str :
"UNKNOWN") <<
" index=" << roiIndex);
455 if (!foundFeature && !foundROI) {
456 ATH_MSG_WARNING(
"Did not find the feature or initialRoI for " << dEL.dataID() <<
" index " << dEL.index());
459 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()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ fillDecisionsMap()
iterates over all inputs, associating inputs to legs
Definition at line 463 of file ComboHypo.cxx.
464 for (
size_t inputContainerIndex = 0; inputContainerIndex <
m_inputs.size(); ++inputContainerIndex ) {
466 if ( !inputHandle.isValid() ) {
467 ATH_MSG_ERROR(
"No input ReadHandle from " << inputHandle.key() );
468 return StatusCode::FAILURE;
470 ATH_MSG_DEBUG(
"-- Found ReadHandle from " << inputHandle.key() <<
" with "<< inputHandle->size() <<
" elements:" );
471 for (
const Decision* decision : *inputHandle ) {
472 ATH_MSG_DEBUG(
"-- -- Input Decision #"<< decision->index() <<
" with "<<
decisionIDs( decision ).
size() <<
" active IDs. Populating the multiplicity map:" );
475 int32_t chainLeg = 0;
484 ATH_MSG_VERBOSE(
"-- -- -- Ignoring the DecsionID " <<
id <<
" on leg " << chainLeg <<
" as it does not correspond to any of the " <<
m_legToInputCollectionMap.size() <<
" chains this Alg is processing.");
489 const std::vector<int>& legToInputCollectionIndex =
it->second;
490 const size_t requiredInputContainerIndex =
static_cast<size_t>(legToInputCollectionIndex.at(chainLeg));
491 if (requiredInputContainerIndex != inputContainerIndex) {
492 ATH_MSG_VERBOSE(
"-- -- -- Ignoring the DecisionID " <<
id <<
" on leg " << chainLeg <<
" as we are only permitted to accept passing objects on leg #" << chainLeg <<
" of " << chainID.
name()
493 <<
" which come from input collection index " << requiredInputContainerIndex <<
" (which is " <<
m_inputs.at(requiredInputContainerIndex).key() <<
")"
494 <<
". Not the current index " << inputContainerIndex <<
" (which is " <<
m_inputs.at(inputContainerIndex).key() <<
")");
507 for (
const auto&
entry: dmap){
509 const std::vector<ElementLink<DecisionContainer>>&
decisions =
entry.second;
512 ATH_MSG_DEBUG(
" Decision: (ContainerKey:"<<
d.dataID()<<
", DecisionElementIndex:"<<
d.index()<<
")");
519 return StatusCode::SUCCESS;
◆ fillTriggerObject()
Fill the trigger object that may be stored for debugging or matching.
- Parameters
-
triggerObject | the trigger object |
type | decay type enumerator. Corresponds to EDM definitions |
trkMass | Track mass hypothesis for mass calculations |
- Returns
- StatusCode to indicate success or failure
Definition at line 594 of file TrigBmuxComboHypo.cxx.
602 std::vector<xAOD::TrackParticle::GenVecFourMom_t> momenta;
605 for (
size_t i = 0;
i <
vertex.vxTrackAtVertex().
size(); ++
i) {
609 momenta.emplace_back(
p.x(),
p.y(),
p.z(),
trkMass[
i]);
626 "TrigBphys object:\n\t " <<
627 "roiId: " << triggerObject.
roiId() <<
"\n\t " <<
628 "particleType: " << triggerObject.
particleType() <<
"\n\t " <<
629 "level: " << triggerObject.
level() <<
"\n\t " <<
630 "eta: " << triggerObject.
eta() <<
"\n\t " <<
631 "phi: " << triggerObject.
phi() <<
"\n\t " <<
632 "mass: " << triggerObject.
mass() <<
"\n\t " <<
633 "fitmass: " << triggerObject.
fitmass() <<
"\n\t " <<
634 "chi2/NDF: " << triggerObject.
fitchi2() <<
" / " << triggerObject.
fitndof() <<
"\n\t " <<
635 "vertex: (" << triggerObject.
fitx() <<
", " << triggerObject.
fity() <<
", " << triggerObject.
fitz() <<
")" );
637 return StatusCode::SUCCESS;
◆ fillTriggerObjects()
Fill the trigger object that may be stored for debugging or matching for a cascade vertex.
- Parameters
-
triggerObjects | the trigger objects for the cascade |
type | decay type enumerator. Corresponds to EDM definitions |
vxCascadeInfo | the cascade info object for the vertex fitter. |
beamSpotPosition | The beamspot position |
- Returns
- StatusCode to indicate success or failure
Definition at line 641 of file TrigBmuxComboHypo.cxx.
647 const std::vector<xAOD::Vertex*>& vertices = vxCascadeInfo.
vertices();
648 const std::vector<std::vector<TLorentzVector>>& momenta = vxCascadeInfo.
getParticleMoms();
649 ATH_CHECK( triggerObjects.size() == vertices.size() );
651 for (
size_t i = 0;
i < vertices.size(); ++
i) {
664 triggerObjects[0]->setLxy(
Lxy(vertices[1]->position(), vertices[0]->position(), momenta[0]));
669 triggerObjects[1]->setParticleType(
type);
670 triggerObjects[1]->setFitchi2(vxCascadeInfo.
fitChi2());
671 triggerObjects[1]->setFitndof(vxCascadeInfo.
nDoF());
672 triggerObjects[1]->setLxy(
Lxy(beamSpotPosition, vertices[1]->position(), momenta[1]));
680 "TrigBphys object:\n\t " <<
682 "chi2/NDF: " << vtx1->
fitchi2() <<
" / " << vtx1->
fitndof() <<
"\n\t " <<
683 "vertex0: (" << vtx0->
fitx() <<
", " << vtx0->
fity() <<
", " << vtx0->
fitz() <<
")\n\t " <<
684 "vertex1: (" << vtx1->
fitx() <<
", " << vtx1->
fity() <<
", " << vtx1->
fitz() <<
")\n\t " <<
685 "Lxy(B): " << vtx1->
lxy() <<
"\n\t " <<
686 "Lxy(D): " << vtx0->
lxy() );
689 return StatusCode::SUCCESS;
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ findBmuxCandidates()
StatusCode TrigBmuxComboHypo::findBmuxCandidates |
( |
TrigBmuxState & |
state | ) |
const |
|
private |
Definition at line 126 of file TrigBmuxComboHypo.cxx.
128 auto& muons = state.
muons;
132 std::vector<int> nTrk;
138 mon_nMuon, mon_nTrk, mon_nBPhysObject);
146 const auto muon = *muonEL;
147 if (!
muon->trackParticle(xAOD::Muon::TrackParticleType::CombinedTrackParticle))
continue;
148 if (!
muon->trackParticle(xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle))
continue;
149 const auto muonInDetTrack =
muon->trackParticle(xAOD::Muon::TrackParticleType::InnerDetectorTrackParticle);
150 auto p_mu = muonInDetTrack->genvecP4();
158 size_t muonIndex = muons.size();
159 muons.push_back({muonEL, decisionEL,
decisionIDs});
161 ATH_MSG_DEBUG(
"Found muon (CombinedTrackParticle) pt/eta/phi/q: " <<
muon->pt() <<
" / " <<
muon->eta() <<
" / " <<
muon->phi() <<
" / " <<
muon->charge() );
165 auto view = *viewLinkInfo.link;
169 const auto roi = *roiLinkInfo.link;
175 std::vector<ElementLink<xAOD::TrackParticleContainer>> tracks;
176 tracks.reserve(tracksHandle->size());
177 for (
size_t idx = 0;
idx < tracksHandle->size(); ++
idx) {
178 const auto track = tracksHandle->get(
idx);
181 tracks.emplace_back(ViewHelper::makeLink<xAOD::TrackParticleContainer>(
view, tracksHandle,
idx));
184 if (tracks.size() < 2)
continue;
185 std::sort(tracks.begin(), tracks.end(), [p_mu](
const auto& lhs,
const auto& rhs){ return ROOT::Math::VectorUtil::DeltaR(p_mu, (*lhs)->genvecP4()) > ROOT::Math::VectorUtil::DeltaR(p_mu, (*rhs)->genvecP4()); });
187 nTrk.push_back(tracks.size());
189 std::sort(tracks.begin(), tracks.end(), [](
const auto& lhs,
const auto& rhs){ return ((*lhs)->pt() > (*rhs)->pt()); });
192 ATH_MSG_DEBUG(
"Dump found tracks before vertex fit: " << tracks.size() <<
" candidates" );
193 for (
const auto& trackEL : tracks) {
199 size_t iterations = 0;
200 bool isOverWarningThreshold =
false;
201 for (
size_t itrk1 = 0; itrk1 < tracks.size(); ++itrk1) {
204 auto charge1 = trk1->
charge();
206 for (
size_t itrk2 = 0; itrk2 < tracks.size(); ++itrk2) {
207 if (itrk2 == itrk1)
continue;
210 auto charge2 = trk2->
charge();
214 std::unique_ptr<xAOD::Vertex> vtx_D0;
217 charge1 * charge2 < 0. &&
223 vtx_D0 =
fit(state.
context(), {muon->inDetTrackParticleLink(), tracks[itrk1], tracks[itrk2]},
kD0);
227 ATH_MSG_DEBUG(
"Partially reconstructed B+ -> mu+ nu_mu anti-D0(-> K+ pi-) candidate has been created from { " << itrk1 <<
", " << itrk2 <<
" }" );
233 std::vector<xAOD::TrigBphys*> triggerObjects = state.
addTriggerObjects(2, muonIndex);
235 p_D0 = ROOT::Math::PtEtaPhiMVector(triggerObjects[0]->
pt(), triggerObjects[0]->
eta(), triggerObjects[0]->
phi(), triggerObjects[0]->fitmass());
249 p_D0 = ROOT::Math::PtEtaPhiMVector(triggerObject->
pt(), triggerObject->
eta(), triggerObject->
phi(), triggerObject->
fitmass());
250 triggerObject->
setMass((p_mu + p_D0).M());
258 for (
size_t itrk3 = 0; itrk3 < tracks.size(); ++itrk3) {
259 if (itrk3 == itrk1 || itrk3 == itrk2)
continue;
264 std::vector<ElementLink<xAOD::TrackParticleContainer>>
trackParticleLinks = {
muon->inDetTrackParticleLink(), tracks[itrk1], tracks[itrk2], tracks[itrk3]};
272 bool makeDstar =
true;
286 std::vector<xAOD::TrigBphys*> triggerObjects = state.
addTriggerObjects(2, muonIndex);
288 triggerObjects[1]->setSecondaryDecayLink(D0);
301 "TrigBphys object:\n\t " <<
302 "roiId: " << Dstar->
roiId() <<
"\n\t " <<
304 "level: " << Dstar->
level() <<
"\n\t " <<
305 "eta: " << Dstar->
eta() <<
"\n\t " <<
306 "phi: " << Dstar->
phi() <<
"\n\t " <<
307 "mass: " << Dstar->
mass() <<
"\n\t " <<
308 "fitmass: " << Dstar->
fitmass() <<
"\n\t " <<
309 "chi2/NDF: " << Dstar->
fitchi2() <<
" / " << Dstar->
fitndof() <<
"\n\t " <<
310 "vertex: (" << Dstar->
fitx() <<
", " << Dstar->
fity() <<
", " << Dstar->
fitz() <<
")" );
320 charge1 * charge2 < 0. && charge2 * charge3 > 0. &&
331 ATH_MSG_DEBUG(
"Partially reconstructed B0 -> mu+ nu_mu D-(-> K+ pi- pi-) candidate has been created from { " << itrk1 <<
", " << itrk2 <<
", " << itrk3 <<
" }" );
339 std::vector<xAOD::TrigBphys*> triggerObjects = state.
addTriggerObjects(2, muonIndex);
348 triggerObject->
setMass((p_mu + p_D).M());
357 charge1 * charge2 < 0. &&
369 ATH_MSG_DEBUG(
"Partially reconstructed B_s0 -> mu+ nu_mu D_s-(->phi(-> K+ K-) pi-) candidate has been created from { " << itrk1 <<
", " << itrk2 <<
", " << itrk3 <<
" }" );
377 std::vector<xAOD::TrigBphys*> triggerObjects = state.
addTriggerObjects(2, muonIndex);
386 triggerObject->
setMass((p_mu + p_Ds).M());
394 charge1 *
charge3 > 0. && charge1 * charge2 < 0. &&
405 ATH_MSG_DEBUG(
"Partially reconstructed Lambda_b0 -> mu+ nu_mu anti-Lambda_c-(-> anti-p K+ pi-) candidate has been created from { " << itrk1 <<
", " << itrk2 <<
", " << itrk3 <<
" }" );
413 std::vector<xAOD::TrigBphys*> triggerObjects = state.
addTriggerObjects(2, muonIndex);
422 triggerObject->
setMass((p_mu + p_LambdaC).M());
434 ATH_MSG_WARNING( iterations <<
" combinations for vertex fitter have been processed; " << mon_nBPhysObject <<
" vertices have been created" );
435 isOverWarningThreshold =
true;
438 ATH_MSG_WARNING(
"the number of fit attempts has exceeded the limit; breaking the loop at this point" );
443 return StatusCode::SUCCESS;
◆ fit()
Perform a vertex fit on selected tracks.
- Parameters
-
context | the event context used to make the vertex threadsafe. |
trackParticleLinks | the trackParticles to fit |
decay | the decay enumerator to specify the mass contraints |
- Returns
- The fitted vertex - null if fit fails or is very low quality
Definition at line 481 of file TrigBmuxComboHypo.cxx.
489 ATH_MSG_WARNING(
"At least muon and two tracks should be given to the vertex fitter" );
490 return std::unique_ptr<xAOD::Vertex>(
nullptr);
493 std::vector<const xAOD::TrackParticle*> tracklist(
trackParticleLinks.size() - 1,
nullptr);
500 const Trk::Perigee& perigee1 = tracklist[0]->perigeeParameters();
501 const Trk::Perigee& perigee2 = tracklist[1]->perigeeParameters();
504 ATH_MSG_DEBUG(
"Starting point: (" << startingPoint(0) <<
", " << startingPoint(1) <<
", " << startingPoint(2) <<
")" );
509 std::unique_ptr<xAOD::Vertex>
vertex(
m_vertexFitter->fit(tracklist, startingPoint, *fitterState));
514 if (
vertex->chiSquared() > 50.) {
515 ATH_MSG_DEBUG(
"Fit is successful, but vertex chi2 is too high, we are not going to save it (chi2 = " <<
vertex->chiSquared() <<
")" );
◆ fitCascade()
Perform a cascade vertex fit on selected tracks.
- Parameters
-
context | the event context used to make the vertex threadsafe. |
trackParticleLinks | the trackParticles to fit |
decay | the decay enumerator to specify the mass contraints |
- Returns
- The fitted vertex - null if fit fails or is very low quality
Definition at line 529 of file TrigBmuxComboHypo.cxx.
536 return std::unique_ptr<Trk::VxCascadeInfo>(
nullptr);
539 std::vector<std::vector<ElementLink<xAOD::TrackParticleContainer>>> vtx_trackParticleLinks;
560 ATH_MSG_WARNING(
"fitCascade(): decay " << decay <<
" has not been defined in McTopologyTool" );
561 return std::unique_ptr<Trk::VxCascadeInfo>(
nullptr);
565 std::vector<std::vector<const xAOD::TrackParticle*>> vtx_tracks(vtx_trackParticleLinks.size());
566 for (
size_t i = 0;
i < vtx_trackParticleLinks.size(); ++
i) {
567 for (
size_t j = 0; j < vtx_trackParticleLinks[
i].size(); ++j) {
568 vtx_tracks[
i].push_back(*vtx_trackParticleLinks[
i][j]);
575 std::vector<Trk::VertexID> precedingVertices(1,
m_vertexFitter->startVertex(vtx_tracks[0],
s_trkMass[
static_cast<size_t>(decay)][0], *state));
576 m_vertexFitter->nextVertex(vtx_tracks[1],
s_trkMass[
static_cast<size_t>(decay)][1], precedingVertices, *state);
581 result->setSVOwnership(
true);
586 vertex->setTrackParticleLinks(vtx_trackParticleLinks[
i++]);
◆ getTrkImpactParameterZ0()
Returns the longitudinal impact parameter z0 of the track w.r.t.
the vertex in [mm]. If track cannot be extrapolated to the vertex, a value -1000. will be returned.
Definition at line 708 of file TrigBmuxComboHypo.cxx.
711 return (perigee ? perigee->parameters()[
Trk::z0] : -1000.);
◆ hypoTools() [1/2]
◆ hypoTools() [2/2]
◆ initialize()
StatusCode TrigBmuxComboHypo::initialize |
( |
| ) |
|
|
overridevirtual |
Reimplemented from ComboHypo.
Definition at line 53 of file TrigBmuxComboHypo.cxx.
73 if (
item.second.size() > 1) {
74 for (
size_t i = 0;
i <
item.second.size();
i++) {
91 ATH_MSG_DEBUG(
"No GenericMonitoringTool configured: no monitoring histograms will be available" );
94 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()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, InDet::SiSPGNNTrackMaker, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ isIdenticalTracks()
Returns false for the tracks with opposite charges.
Otherwise calculates the deltaR(lhs, rhs) and compares it with threshold value m_deltaR. Should be used to remove muon InDet track from the track collection.
Definition at line 693 of file TrigBmuxComboHypo.cxx.
◆ isInMassRange()
bool TrigBmuxComboHypo::isInMassRange |
( |
double |
mass, |
|
|
const std::pair< double, double > & |
range |
|
) |
| const |
|
inlineprivate |
Checks that the given mass value falls into the specified range.
Definition at line 177 of file TrigBmuxComboHypo.h.
◆ isInSameRoI()
Checks that the given track is close enough to the muon, i.e.
it belongs to the RoI built around muon (approximately). Should be used to mimic standard RoI behavior only when the option IDConfig.SuperRoI is active in bmumuxAlgSequence.
Definition at line 700 of file TrigBmuxComboHypo.cxx.
702 auto p_mu =
muon->genvecP4();
703 auto p_trk =
track->genvecP4();
◆ legToInputCollectionMap()
◆ Lxy()
Returns the transverse decay length of a particle Lxy in [mm].
It is defined as the transverse distance between the production and decay vertices projected along the transverse momentum of the particle.
Definition at line 715 of file TrigBmuxComboHypo.cxx.
717 XYVector
R(decayVertex.x() - productionVertex.x(), decayVertex.y() - productionVertex.y());
719 for (
const auto&
p : momenta) {
720 pT += XYVector(
p.Px(),
p.Py());
722 return R.Dot(
pT.unit());
◆ 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()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
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 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
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 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 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.
◆ triggerMultiplicityMap()
◆ updateVHKA()
◆ m_allowedIDs
◆ m_BdToD
Gaudi::Property<bool> TrigBmuxComboHypo::m_BdToD |
|
private |
Initial value:{this,
"BdToD", true, "switch on/off B0 -> mu+ nu_mu D-(-> K+ pi- pi-) decay"}
Definition at line 251 of file TrigBmuxComboHypo.h.
◆ m_BdToD_chi2
Gaudi::Property<float> TrigBmuxComboHypo::m_BdToD_chi2 |
|
private |
Initial value:{this,
"BdToD_chi2", 27., "maximum chi2 of the fitted D- vertex"}
Definition at line 263 of file TrigBmuxComboHypo.h.
◆ m_BdToD_DMassRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BdToD_DMassRange |
|
private |
Initial value:{this,
"BdToD_DMassRange", {1750., 2000.}, "D+ mass range"}
Definition at line 261 of file TrigBmuxComboHypo.h.
◆ m_BdToD_LxyBd
Gaudi::Property<float> TrigBmuxComboHypo::m_BdToD_LxyBd |
|
private |
Initial value:{this,
"BdToD_LxyBd", 0.1, "Lxy(B0,BeamSpot) for B0 -> mu+ nu_mu D-"}
Definition at line 265 of file TrigBmuxComboHypo.h.
◆ m_BdToD_LxyD
Gaudi::Property<float> TrigBmuxComboHypo::m_BdToD_LxyD |
|
private |
Initial value:{this,
"BdToD_LxyD", 0.05, "Lxy(D-,B0) for D- -> K+ pi- pi-"}
Definition at line 267 of file TrigBmuxComboHypo.h.
◆ m_BdToD_massRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BdToD_massRange |
|
private |
Initial value:{this,
"BdToD_massRange", {-1., 10000.}, "B0 mass range"}
Definition at line 259 of file TrigBmuxComboHypo.h.
◆ m_BdToD_minDPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BdToD_minDPt |
|
private |
Initial value:{this,
"BdToD_minDPt", 4500., "minimum pT of D-"}
Definition at line 257 of file TrigBmuxComboHypo.h.
◆ m_BdToD_minKaonPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BdToD_minKaonPt |
|
private |
Initial value:{this,
"BdToD_minKaonPt", 1250., "minimum pT of kaon track from D-"}
Definition at line 253 of file TrigBmuxComboHypo.h.
◆ m_BdToD_minPionPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BdToD_minPionPt |
|
private |
Initial value:{this,
"BdToD_minPionPt", 1000., "minimum pT of pion track from D-"}
Definition at line 255 of file TrigBmuxComboHypo.h.
◆ m_beamSpotKey
◆ m_BsToDs
Gaudi::Property<bool> TrigBmuxComboHypo::m_BsToDs |
|
private |
Initial value:{this,
"BsToDs", true, "switch on/off B_s0 -> mu+ nu_mu D_s-(->phi(-> K+ K-) pi-) decay"}
Definition at line 271 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_chi2
Gaudi::Property<float> TrigBmuxComboHypo::m_BsToDs_chi2 |
|
private |
Initial value:{this,
"BsToDs_chi2", 27., "maximum chi2 of the fitted D_s- vertex"}
Definition at line 285 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_DsMassRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BsToDs_DsMassRange |
|
private |
Initial value:{this,
"BsToDs_DsMassRange", {1750., 2100.}, "D_s- mass range"}
Definition at line 283 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_LxyBs
Gaudi::Property<float> TrigBmuxComboHypo::m_BsToDs_LxyBs |
|
private |
Initial value:{this,
"BsToDs_LxyBs", 0.1, "Lxy(B_s0,BeamSpot) for B_s0 -> mu+ nu_mu D_s-"}
Definition at line 287 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_LxyDs
Gaudi::Property<float> TrigBmuxComboHypo::m_BsToDs_LxyDs |
|
private |
Initial value:{this,
"BsToDs_LxyDs", 0.02, "Lxy(D_s-,B_s0) for D_s- -> phi pi-"}
Definition at line 289 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_massRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BsToDs_massRange |
|
private |
Initial value:{this,
"BsToDs_massRange", {-1., 10000.}, "B_s0 mass range"}
Definition at line 279 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_minDsPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BsToDs_minDsPt |
|
private |
Initial value:{this,
"BsToDs_minDsPt", 5500., "minimum pT of D_s-"}
Definition at line 277 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_minKaonPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BsToDs_minKaonPt |
|
private |
Initial value:{this,
"BsToDs_minKaonPt", 1000., "minimum pT of kaon track from phi(1020)"}
Definition at line 273 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_minPionPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BsToDs_minPionPt |
|
private |
Initial value:{this,
"BsToDs_minPionPt", 1000., "minimum pT of pion track from D_s-"}
Definition at line 275 of file TrigBmuxComboHypo.h.
◆ m_BsToDs_phiMassRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BsToDs_phiMassRange |
|
private |
Initial value:{this,
"BsToDs_phiMassRange", {940., 1100.}, "phi(1020) mass range"}
Definition at line 281 of file TrigBmuxComboHypo.h.
◆ m_BToD0
Gaudi::Property<bool> TrigBmuxComboHypo::m_BToD0 |
|
private |
Initial value:{this,
"BToD0", true, "switch on/off B+ -> mu+ nu_mu anti-D0(-> K+ pi-) decay"}
Definition at line 219 of file TrigBmuxComboHypo.h.
◆ m_BToD0_chi2
Gaudi::Property<float> TrigBmuxComboHypo::m_BToD0_chi2 |
|
private |
Initial value:{this,
"BToD0_chi2", 20., "maximum chi2 of the fitted D0 vertex"}
Definition at line 241 of file TrigBmuxComboHypo.h.
◆ m_BToD0_D0MassRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BToD0_D0MassRange |
|
private |
Initial value:{this,
"BToD0_D0MassRange", {1750., 2000.}, "D0 mass range"}
Definition at line 237 of file TrigBmuxComboHypo.h.
◆ m_BToD0_DstarMassRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BToD0_DstarMassRange |
|
private |
Initial value:{this,
"BToD0_DstarMassRange", {-1., 2110.}, "D*+ mass range"}
Definition at line 239 of file TrigBmuxComboHypo.h.
◆ m_BToD0_LxyB
Gaudi::Property<float> TrigBmuxComboHypo::m_BToD0_LxyB |
|
private |
Initial value:{this,
"BToD0_LxyB", 0.1, "Lxy(B+,BeamSpot) for B+ -> mu+ nu_mu anti-D0"}
Definition at line 243 of file TrigBmuxComboHypo.h.
◆ m_BToD0_LxyBd
Gaudi::Property<float> TrigBmuxComboHypo::m_BToD0_LxyBd |
|
private |
Initial value:{this,
"BToD0_LxyBd", 0.05, "Lxy(B0,BeamSpot) for B0 -> mu+ nu_mu D*-"}
Definition at line 245 of file TrigBmuxComboHypo.h.
◆ m_BToD0_LxyD0
Gaudi::Property<float> TrigBmuxComboHypo::m_BToD0_LxyD0 |
|
private |
Initial value:{this,
"BToD0_LxyD0", 0., "Lxy(D0,B+/B0) for both B+ and B0 decays"}
Definition at line 247 of file TrigBmuxComboHypo.h.
◆ m_BToD0_makeDstar
Gaudi::Property<bool> TrigBmuxComboHypo::m_BToD0_makeDstar |
|
private |
Initial value:{this,
"BToD0_makeDstar", true, "switch on/off B0 -> mu+ nu_mu D*-(-> anti-D0(-> K+ pi-) pi-) decay"}
Definition at line 221 of file TrigBmuxComboHypo.h.
◆ m_BToD0_massRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_BToD0_massRange |
|
private |
Initial value:{this,
"BToD0_massRange", {-1., 10000.}, "B+/B0 mass range"}
Definition at line 235 of file TrigBmuxComboHypo.h.
◆ m_BToD0_maxDstarPionZ0
Gaudi::Property<double> TrigBmuxComboHypo::m_BToD0_maxDstarPionZ0 |
|
private |
Initial value:{this,
"BToD0_maxDstarPionZ0", 5., "maximum z0 impact parameter of the pion track from D*+ wrt the fitted D0 vertex; no preselection if negative"}
Definition at line 233 of file TrigBmuxComboHypo.h.
◆ m_BToD0_minD0KaonPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BToD0_minD0KaonPt |
|
private |
Initial value:{this,
"BToD0_minD0KaonPt", 1000., "minimum pT of kaon track from D0"}
Definition at line 223 of file TrigBmuxComboHypo.h.
◆ m_BToD0_minD0PionPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BToD0_minD0PionPt |
|
private |
Initial value:{this,
"BToD0_minD0PionPt", 1000., "minimum pT of pion track from D0"}
Definition at line 225 of file TrigBmuxComboHypo.h.
◆ m_BToD0_minD0Pt
Gaudi::Property<double> TrigBmuxComboHypo::m_BToD0_minD0Pt |
|
private |
Initial value:{this,
"BToD0_minD0Pt", -1., "minimum pT of D0"}
Definition at line 227 of file TrigBmuxComboHypo.h.
◆ m_BToD0_minDstarPionPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BToD0_minDstarPionPt |
|
private |
Initial value:{this,
"BToD0_minDstarPionPt", 1000., "minimum pT of pion track from D*-"}
Definition at line 231 of file TrigBmuxComboHypo.h.
◆ m_BToD0_minDstarPt
Gaudi::Property<double> TrigBmuxComboHypo::m_BToD0_minDstarPt |
|
private |
Initial value:{this,
"BToD0_minDstarPt", 5500., "minimum pT of D*-"}
Definition at line 229 of file TrigBmuxComboHypo.h.
◆ m_cascadeChi2
Gaudi::Property<float> TrigBmuxComboHypo::m_cascadeChi2 |
|
private |
Initial value:{this,
"CascadeChi2", 50., "maximum chi2 of the cascade fit"}
Definition at line 203 of file TrigBmuxComboHypo.h.
◆ m_checkMultiplicityMap
Gaudi::Property<bool> ComboHypo::m_checkMultiplicityMap |
|
privateinherited |
Initial value:{ this, "CheckMultiplicityMap", true,
"Perform a consistency check of the MultiplicitiesMap"}
Definition at line 64 of file ComboHypo.h.
◆ m_deltaR
Gaudi::Property<double> TrigBmuxComboHypo::m_deltaR |
|
private |
Initial value:{this,
"DeltaR", 0.01, "minimum deltaR between same-sign tracks (overlap removal)"}
Definition at line 205 of file TrigBmuxComboHypo.h.
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_fitAttemptsBreakThreshold
Gaudi::Property<size_t> TrigBmuxComboHypo::m_fitAttemptsBreakThreshold |
|
private |
Initial value:{this,
"FitAttemptsBreakThreshold", 1000, "Events processing this many calls of the vertex fitter will generate a second WARNING message and the loop over combinations will be terminated at this point (time-out protect)"}
Definition at line 215 of file TrigBmuxComboHypo.h.
◆ m_fitAttemptsWarningThreshold
Gaudi::Property<size_t> TrigBmuxComboHypo::m_fitAttemptsWarningThreshold |
|
private |
Initial value:{this,
"FitAttemptsWarningThreshold", 200, "Events processing this many calls of the vertex fitter will generate a WARNING message (time-out protect)"}
Definition at line 213 of file TrigBmuxComboHypo.h.
◆ m_hypoTools
◆ m_inputs
◆ m_LambdaBToLambdaC
Gaudi::Property<bool> TrigBmuxComboHypo::m_LambdaBToLambdaC |
|
private |
Initial value:{this,
"LambdaBToLambdaC", true, "switch on/off Lambda_b0 -> mu+ nu_mu anti-Lambda_c-(-> anti-p K+ pi-) decay"}
Definition at line 293 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_chi2
Gaudi::Property<float> TrigBmuxComboHypo::m_LambdaBToLambdaC_chi2 |
|
private |
Initial value:{this,
"LambdaBToLambdaC_chi2", 27., "maximum chi2 of the fitted Lambda_c- vertex"}
Definition at line 307 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_LambdaCMassRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_LambdaBToLambdaC_LambdaCMassRange |
|
private |
Initial value:{this,
"LambdaBToLambdaC_LambdaCMassRange", {2190., 2390.}, "Lambda_c- mass range"}
Definition at line 305 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_LxyLb
Gaudi::Property<float> TrigBmuxComboHypo::m_LambdaBToLambdaC_LxyLb |
|
private |
Initial value:{this,
"LambdaBToLambdaC_LxyLb", 0.1, "Lxy(Lambda_b0,BeamSpot) for Lambda_b0 -> mu- anti-nu_mu Lambda_c+"}
Definition at line 309 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_LxyLc
Gaudi::Property<float> TrigBmuxComboHypo::m_LambdaBToLambdaC_LxyLc |
|
private |
Initial value:{this,
"LambdaBToLambdaC_LxyLc", 0.02, "Lxy(Lambda_c+,Lambda_b0) for Lambda_c+-> p K- pi+"}
Definition at line 311 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_massRange
Gaudi::Property<std::pair<double, double> > TrigBmuxComboHypo::m_LambdaBToLambdaC_massRange |
|
private |
Initial value:{this,
"LambdaBToLambdaC_massRange", {-1., 10000.}, "Lambda_b0 mass range"}
Definition at line 303 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_minKaonPt
Gaudi::Property<double> TrigBmuxComboHypo::m_LambdaBToLambdaC_minKaonPt |
|
private |
Initial value:{this,
"LambdaBToLambdaC_minKaonPt", 1250., "minimum pT of kaon track"}
Definition at line 297 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_minLambdaCPt
Gaudi::Property<double> TrigBmuxComboHypo::m_LambdaBToLambdaC_minLambdaCPt |
|
private |
Initial value:{this,
"LambdaBToLambdaC_minLambdaCPt", 5500., "minimum pT of Lambda_c-"}
Definition at line 301 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_minPionPt
Gaudi::Property<double> TrigBmuxComboHypo::m_LambdaBToLambdaC_minPionPt |
|
private |
Initial value:{this,
"LambdaBToLambdaC_minPionPt", 1000., "minimum pT of pion track"}
Definition at line 299 of file TrigBmuxComboHypo.h.
◆ m_LambdaBToLambdaC_minProtonPt
Gaudi::Property<double> TrigBmuxComboHypo::m_LambdaBToLambdaC_minProtonPt |
|
private |
Initial value:{this,
"LambdaBToLambdaC_minProtonPt", 2750., "minimum pT of proton track"}
Definition at line 295 of file TrigBmuxComboHypo.h.
◆ m_legToInputCollectionMap
Gaudi::Property< Combo::LegMap > ComboHypo::m_legToInputCollectionMap |
|
privateinherited |
Initial value:{this, "LegToInputCollectionMap", {},
"Map from the chain name to the per-leg index in this algorithm's ReadHandleKeyArray which should be used as the source of incoming Decision Objects on the leg.",
"mapMergeNoReplace<std::string, std::vector<int>>"}
Definition at line 60 of file ComboHypo.h.
◆ m_makeCascadeFit
Gaudi::Property<bool> TrigBmuxComboHypo::m_makeCascadeFit |
|
private |
Initial value:{this,
"MakeCascadeFit", true, "perform cascade fit of the partially reconstructed decays"}
Definition at line 201 of file TrigBmuxComboHypo.h.
◆ m_monTool
◆ m_multiplicitiesReqMap
Initial value:{this, "MultiplicitiesMap", {},
"Map from the chain name to multiplicities required at each input",
"mapMergeNoReplace<std::string, std::vector<int>>"}
Definition at line 56 of file ComboHypo.h.
◆ m_muonContainerKey
Initial value:{this,
"MuonCollectionKey", "Muons", "input EF Muon container name"}
Definition at line 193 of file TrigBmuxComboHypo.h.
◆ m_outputs
◆ m_requireUniqueROI
Gaudi::Property<bool> ComboHypo::m_requireUniqueROI |
|
privateinherited |
Initial value:{this, "RequireUniqueROI", false,
"Require each Feature in each leg of the combination to come from a unique L1 seeding ROI."}
Definition at line 53 of file ComboHypo.h.
◆ m_roiEtaWidth
Gaudi::Property<double> TrigBmuxComboHypo::m_roiEtaWidth |
|
private |
Initial value:{this,
"RoiEtaWidth", 0.75, "extent of the RoI in eta from initial muon, to be check for SuperRoI"}
Definition at line 209 of file TrigBmuxComboHypo.h.
◆ m_roiPhiWidth
Gaudi::Property<double> TrigBmuxComboHypo::m_roiPhiWidth |
|
private |
Initial value:{this,
"RoiPhiWidth", 0.75, "extent of the RoI in phi from initial muon, to be check for SuperRoI"}
Definition at line 211 of file TrigBmuxComboHypo.h.
◆ m_trackParticleContainerKey
Initial value:{this,
"TrackCollectionKey", "InDetTrackParticles", "input TrackParticle container name"}
Definition at line 191 of file TrigBmuxComboHypo.h.
◆ m_trackToVertexTool
Initial value:{this,
"TrackToVertexTool", "", "tool to extrapolate track to vertex or beamspot"}
Definition at line 319 of file TrigBmuxComboHypo.h.
◆ m_trigBphysContainerKey
Initial value:{this,
"TrigBphysCollectionKey", "TrigBphysContainer", "output TrigBphysContainer name"}
Definition at line 195 of file TrigBmuxComboHypo.h.
◆ m_trkZ0
Gaudi::Property<double> TrigBmuxComboHypo::m_trkZ0 |
|
private |
Initial value:{this,
"TrkZ0", 10., "maximum of |z0_trk - z0_muon|, where z0_trk(z0_muon) is impact parameter of the track(muon) wrt BeamSpot; no preselection if negative"}
Definition at line 207 of file TrigBmuxComboHypo.h.
◆ m_varHandleArraysDeclared
◆ m_vertexFitter
Initial value:{this,
"VertexFitter", "", "VKalVrtFitter tool to fit tracks into the common vertex"}
Definition at line 317 of file TrigBmuxComboHypo.h.
◆ m_vertexPointEstimator
Initial value:{this,
"VertexPointEstimator", "", "tool to find starting point for the vertex fitter"}
Definition at line 315 of file TrigBmuxComboHypo.h.
◆ m_vhka
◆ s_trkMass
const std::vector< std::vector< std::vector< double > > > TrigBmuxComboHypo::s_trkMass |
|
staticprivate |
The documentation for this class was generated from the following files:
Gaudi::Property< std::pair< double, double > > m_BdToD_massRange
static const std::vector< std::vector< std::vector< double > > > s_trkMass
Gaudi::Property< Combo::MultiplicityReqMap > m_multiplicitiesReqMap
ToolHandle< Trk::TrkVKalVrtFitter > m_vertexFitter
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzM4D< double > > GenVecFourMom_t
Base 4 Momentum type for TrackParticle.
SG::ReadHandleKey< xAOD::MuonContainer > m_muonContainerKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
StatusCode findBmuxCandidates(TrigBmuxState &) const
Gaudi::Property< double > m_BdToD_minKaonPt
void setFitchi2(float FitChi2)
set method: chi2 from vertex fit
Group
Properties of a chain group.
Gaudi::Property< double > m_LambdaBToLambdaC_minKaonPt
Gaudi::Property< float > m_LambdaBToLambdaC_chi2
Gaudi::Property< double > m_BdToD_minPionPt
const SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > & decisionsOutput() const
Scalar phi() const
phi method
Gaudi::Property< double > m_deltaR
void recursiveGetDecisions(const Decision *start, NavGraph &navGraph, const DecisionIDContainer &ids, const bool enforceDecisionOnStartNode)
Search back in time from "node" and locate all paths back through Decision objects for a given chain.
std::string find(const std::string &s)
return a remapped string
TrigCompositeUtils::DecisionID numeric() const
numeric ID
float charge() const
Returns the charge.
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name)
Helper method to create a Decision object, place it in the container and return a pointer to it.
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Gaudi::Property< float > m_BsToDs_LxyBs
levelType level() const
accessor method: level Type
const std::vector< NavGraphNode * > & finalNodes() const
Get all final nodes.
void setLowerChainLink(const ElementLink< xAOD::TrigBphysContainer_v1 > &link)
set method: link to lowerChain decay particle
const std::vector< xAOD::Vertex * > & vertices() const
Gaudi::Property< float > m_BdToD_chi2
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
void setFitz(float FitZ)
set method: z position of vertex
SG::ReadHandle< T > makeHandle(const SG::View *view, const SG::ReadHandleKey< T > &rhKey, const EventContext &context)
navigate from the TrigComposite to nearest view and fetch object from it
pType particleType() const
accessor method: particle Type
static constexpr double mMuon
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)
float fitx() const
accessor method: x position of vertex
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Gaudi::Property< double > m_BsToDs_minKaonPt
std::vector< SG::VarHandleKeyArray * > m_vhka
void insertDecisionIDs(const Decision *src, Decision *dest)
Appends the decision IDs of src to the dest decision object.
DecisionIDContainer passedDecisionIDs(const Decision *d, const T &required)
return DecisionIDs in Decision object that match the required ones
bool isInMassRange(double mass, const std::pair< double, double > &range) const
Checks that the given mass value falls into the specified range.
Gaudi::Property< double > m_BdToD_minDPt
bool msgLvl(const MSG::Level lvl) const
bool hasDetail(const std::string &name) const
Check if a given type of detail is available.
const std::string & comboHypoAlgNodeName()
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
Gaudi::Property< float > m_BToD0_LxyD0
const Amg::Vector3D & position() const
Returns the 3-pos.
float mass() const
accessor method: mass
#define ATH_MSG_VERBOSE(x)
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Gaudi::Property< float > m_LambdaBToLambdaC_LxyLc
Amg::Vector3D beamSpotPosition() const
StatusCode fillTriggerObject(xAOD::TrigBphys &triggerObject, xAOD::TrigBphys::pType type, const xAOD::Vertex &vertex, const std::vector< double > &trkMass) const
Fill the trigger object that may be stored for debugging or matching.
Gaudi::Property< double > m_BToD0_minDstarPt
Gaudi::Property< double > m_roiEtaWidth
float pt() const
accessor method: pt
Gaudi::Property< float > m_BsToDs_chi2
Gaudi::Property< bool > m_LambdaBToLambdaC
SG::WriteHandleKey< xAOD::TrigBphysContainer > m_trigBphysContainerKey
void setFitndof(int FitNdof)
set method: ndof from vertex fit
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Property< double > m_BToD0_minD0Pt
ToolHandle< InDet::VertexPointEstimator > m_vertexPointEstimator
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Gaudi::Property< std::pair< double, double > > m_BToD0_D0MassRange
Gaudi::Property< size_t > m_fitAttemptsBreakThreshold
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Gaudi::Property< bool > m_BToD0
void setFitmass(float FitMass)
set method: mass from vertex fit
Gaudi::Property< std::pair< double, double > > m_BsToDs_phiMassRange
xAOD::TrigBphys * addTriggerObject(size_t muonIndex)
ComboHypo(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< size_t > m_fitAttemptsWarningThreshold
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
ToolHandleArray< ComboHypoToolBase > & hypoTools()
const std::string & initialRoIString()
const EventContext & context() const
const std::vector< ElementLink< DecisionContainer > > getLinkToPrevious(const Decision *d)
returns links to previous decision object 'seed'
void setFity(float FitY)
set method: y position of vertex
bool typelessFindLinks(const Decision *start, const std::string &linkName, std::vector< sgkey_t > &keyVec, std::vector< uint32_t > &clidVec, std::vector< Decision::index_type > &indexVec, std::vector< const Decision * > &sourceVec, const unsigned int behaviour, std::set< const Decision * > *fullyExploredFrom)
search back the TC links for the object of type T linked to the one of TC (recursively) Returns the l...
Gaudi::Property< float > m_cascadeChi2
Gaudi::Property< bool > m_BsToDs
std::vector< xAOD::TrigBphys * > addTriggerObjects(size_t n, size_t muonIndex)
::StatusCode StatusCode
StatusCode definition for legacy code.
pointer_type ptr()
Dereference the pointer.
double getTrkImpactParameterZ0(const EventContext &ctx, const xAOD::TrackParticle &track, const Amg::Vector3D &vertex) const
Returns the longitudinal impact parameter z0 of the track w.r.t.
Gaudi::Property< double > m_trkZ0
Default, invalid implementation of ClassID_traits.
void setMass(float)
Set the mass of the object.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
uint32_t roiId() const
accessor method: ID of L1 RoI
ToolHandleArray< ComboHypoToolBase > m_hypoTools
ElementLink< DecisionContainer > decisionToElementLink(const Decision *d, const EventContext &ctx)
Takes a raw pointer to a Decision and returns an ElementLink to the Decision.
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks(const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
Structure to hold a transient Directed Acyclic Graph (DAG) structure. NavGraph is populated from,...
Gaudi::Property< double > m_LambdaBToLambdaC_minProtonPt
float fitchi2() const
accessor method: chi2 from vertex fit
const Combo::MultiplicityReqMap & triggerMultiplicityMap() const
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector form.
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Gaudi::Property< std::pair< double, double > > m_BsToDs_DsMassRange
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::WriteHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_outputs
Class used to describe composite objects in the HLT.
float fitmass() const
accessor method: mass from vertex fit
float fitz() const
accessor method: z position of vertex
size_t index() const
Return the index of this element within its container.
static constexpr double mProton
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
Gaudi::Property< std::pair< double, double > > m_BdToD_DMassRange
std::unique_ptr< xAOD::Vertex > fit(const EventContext &context, const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, Decay decay) const
Perform a vertex fit on selected tracks.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
const std::string & featureString()
virtual StatusCode initialize() override
Gaudi::Property< float > m_BToD0_LxyBd
StatusCode createDecisionObjects(TrigBmuxState &) const
Gaudi::Property< Combo::LegMap > m_legToInputCollectionMap
void setTrackParticleLinks(const std::vector< ElementLink< TrackParticleContainer > > &links)
Set the track particle links on the object.
Gaudi::Property< bool > m_makeCascadeFit
std::vector< size_t > trigBphysMuonIndices
Gaudi::Property< float > m_LambdaBToLambdaC_LxyLb
@ trkMass
Extended perigee: mass.
std::vector< Muon > muons
xAOD::TrigComposite Decision
virtual StatusCode sysInitialize() override
Override sysInitialize.
StatusCode initialize(bool used=true)
Gaudi::Property< std::pair< double, double > > m_BToD0_massRange
Eigen::Matrix< double, 3, 1 > Vector3D
std::unique_ptr< Trk::VxCascadeInfo > fitCascade(const EventContext &context, const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, Decay decay) const
Perform a cascade vertex fit on selected tracks.
const std::vector< std::vector< TLorentzVector > > & getParticleMoms() const
float phi() const
accessor method: phi
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_inputs
const TrigCompositeUtils::DecisionContainer & previousDecisions() const
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
ToolHandle< GenericMonitoringTool > m_monTool
const Amg::Vector3D & momentum() const
Access method for the momentum.
const std::string & seedString()
bool isLegId(const HLT::Identifier &legIdentifier)
Recognise whether the chain ID is a leg ID.
Gaudi::Property< float > m_BToD0_chi2
StatusCode fillTriggerObjects(std::vector< xAOD::TrigBphys * > &triggerObjects, xAOD::TrigBphys::pType type, const Trk::VxCascadeInfo &vxCascadeInfo, const Amg::Vector3D &beamSpotPosition) const
Fill the trigger object that may be stored for debugging or matching for a cascade vertex.
int32_t getIndexFromLeg(const HLT::Identifier &legIdentifier)
Extract the numeric index of a leg identifier.
std::set< DecisionID > DecisionIDContainer
double Lxy(const Amg::Vector3D &productionVertex, const Amg::Vector3D &decayVertex, const std::vector< TLorentzVector > &momenta) const
Returns the transverse decay length of a particle Lxy in [mm].
float chiSquared() const
Returns the of the vertex fit as float.
Class describing a Vertex.
Gaudi::Property< double > m_BToD0_minDstarPionPt
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
Gaudi::Property< float > m_BsToDs_LxyDs
Gaudi::Property< bool > m_BToD0_makeDstar
Transient utility class to represent a node in a graph (m_decisionObject), and a vector of edges (m_f...
Gaudi::Property< float > m_BToD0_LxyB
Gaudi::Property< double > m_BToD0_minD0PionPt
Gaudi::Property< float > m_BdToD_LxyD
bool isInSameRoI(const xAOD::Muon *, const xAOD::TrackParticle *) const
Checks that the given track is close enough to the muon, i.e.
Gaudi::Property< double > m_roiPhiWidth
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
Gaudi::Property< double > m_BToD0_maxDstarPionZ0
TrigCompositeUtils::DecisionContainer & decisions()
bool isIdenticalTracks(const xAOD::TrackParticle *lhs, const xAOD::TrackParticle *rhs) const
Returns false for the tracks with opposite charges.
Gaudi::Property< std::pair< double, double > > m_BToD0_DstarMassRange
static constexpr double mPion
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
std::string name() const
reports human redable name if it is enabled or, empty string
Gaudi::Property< double > m_BsToDs_minDsPt
Gaudi::Property< double > m_LambdaBToLambdaC_minPionPt
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > & decisionsInput() const
const std::string & roiString()
Gaudi::Property< std::pair< double, double > > m_LambdaBToLambdaC_massRange
HLT::Identifier getIDFromLeg(const HLT::Identifier &legIdentifier)
Generate the HLT::Identifier which corresponds to the chain name from the leg name.
static constexpr double mKaon
Class describing a TrackParticle.
Gaudi::Property< float > m_BdToD_LxyBd
float fity() const
accessor method: y position of vertex
Declare a monitored scalar variable.
float lxy() const
accessor method: lxy
bool getDetail(const std::string &name, TYPE &value) const
Get an TYPE detail from the object.
float eta() const
accessor method: eta
static constexpr double mD0
TrigCompositeUtils::DecisionIDContainer m_allowedIDs
Gaudi::Property< double > m_BToD0_minD0KaonPt
bool isAnyIDPassing(const Decision *d, const DecisionIDContainer &required)
Checks if any of the DecisionIDs passed in arg required is availble in Decision object.
Gaudi::Property< double > m_BsToDs_minPionPt
size_type size() const noexcept
Returns the number of elements in the collection.
const std::string & viewString()
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Gaudi::Property< std::pair< double, double > > m_LambdaBToLambdaC_LambdaCMassRange
int fitndof() const
accessor method: ndof from vertex fit
Class describing a Bphysics online composite object.
xAOD::TrigBphysContainer & trigBphysCollection()
Gaudi::Property< double > m_LambdaBToLambdaC_minLambdaCPt
Gaudi::Property< std::pair< double, double > > m_BsToDs_massRange
Gaudi::Property< bool > m_BdToD
bool typelessFindLink(const Decision *start, const std::string &linkName, sgkey_t &key, uint32_t &clid, Decision::index_type &index, const Decision *&source, const bool suppressMultipleLinksWarning)
Perform a recursive search for ElementLinks of any time and name 'linkName', starting from Decision o...
void setFitx(float FitX)
set method: x position of vertex