|
ATLAS Offline Software
|
#include <FourLeptonVertexingAlgorithm.h>
|
| FourLeptonVertexingAlgorithm (const std::string &n, ISvcLocator *p) |
|
StatusCode | initialize () override |
|
StatusCode | execute (const EventContext &ctx) const override |
|
StatusCode | finalize () 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 |
|
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonKey |
| Input containers. More...
|
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_elecKey |
|
SG::ReadHandleKey< xAOD::EventInfo > | m_evtKey {this, "EventInfoKey", "EventInfo"} |
|
ToolHandle< CP::IMuonSelectionTool > | m_muonSelTool |
|
ToolHandle< IAsgElectronLikelihoodTool > | m_elecSelTool |
|
ToolHandle< Trk::IVertexFitter > | m_fitter {this, "VertexFitter", "", "Vertex fitter tool"} |
|
Gaudi::Property< float > | m_minMuonPt |
|
Gaudi::Property< float > | m_minElecPt {this, "MinElecPt", 4.5 * Gaudi::Units::GeV, " Minimum pt cut applied on the electron"} |
|
Gaudi::Property< int > | m_muonTrkProp |
|
MuonTrk | m_muonTrk {MuonTrk::Primary} |
|
Gaudi::Property< bool > | m_elecUseGSF |
|
Gaudi::Property< float > | m_z0Cut |
|
Gaudi::Property< float > | m_lowSFOS_Cut {this, "LowSFOSMass", 3.5 * Gaudi::Units::GeV, "Minimal mass for the lower SFOS pair"} |
|
Gaudi::Property< float > | m_highPair_Cut {this, "HighMassPair", 40.*Gaudi::Units::GeV, "Minimum mass for the largest lepton pair"} |
|
Gaudi::Property< float > | m_LeadPtCut {this, "LeadingLeptonPt", 15. *Gaudi::Units::GeV,"Minimal momentum of the leading lepton in the quad "} |
|
Gaudi::Property< float > | m_SubLeadPtCut {this, "SubLeadingLeptonPt", 10. *Gaudi::Units::GeV,"Minimal momentum of the leading lepton in the quad "} |
|
Gaudi::Property< float > | m_VtxChi2Cut {this, "VertexChi2Cut", 20, "Maximal chii n.D.o.F cut on the reconstructed vertex" } |
|
SG::WriteHandleKey< xAOD::VertexContainer > | m_vtxKey {this, "OutVertexContainer", "FourLeptonVertices", "Output vertex container"} |
|
Gaudi::Property< bool > | m_pruneCov {this, "PruneCovariance", true, "Clears the covariance vector"} |
|
Gaudi::Property< bool > | m_pruneWeight {this, "PruneTrackWeights", true, "Clears the track weight vector"} |
|
std::array< std::atomic< unsigned int >, 8 > m_num_lep | ATLAS_THREAD_SAFE {} |
| Simple counter to evaluate the number of leptons per event. More...
|
|
std::array< std::atomic< unsigned int >, 8 > m_num_ele | ATLAS_THREAD_SAFE {} |
|
std::array< std::atomic< unsigned int >, 8 > m_num_muo | ATLAS_THREAD_SAFE {} |
|
std::atomic< unsigned int > | m_tried_fits {0} |
| How many vertex fits were attempted. More...
|
|
std::atomic< unsigned int > | m_good_fits {0} |
| How many vertex fits were actually successful. More...
|
|
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 |
|
◆ LeptonQuadruplet
◆ MuonTrk
◆ StoreGateSvc_t
◆ FourLeptonVertexingAlgorithm()
DerivationFramework::FourLeptonVertexingAlgorithm::FourLeptonVertexingAlgorithm |
( |
const std::string & |
n, |
|
|
ISvcLocator * |
p |
|
) |
| |
◆ buildAllQuadruplets()
std::vector< LeptonQuadruplet > DerivationFramework::FourLeptonVertexingAlgorithm::buildAllQuadruplets |
( |
const EventContext & |
ctx | ) |
const |
|
private |
Retrieve the container from the store gate
Dump the leptons in a common vector to build all possible quadruplets
Increment the lepton counter
None of the leptons has enough momentum to be selected in the offline analysis
The leading lepton has too little momentum. All subsequent combinations will have even less. Bail out of the loop
Definition at line 95 of file FourLeptonVertexingAlgorithm.cxx.
96 std::vector<LeptonQuadruplet> to_ret{};
102 throw std::runtime_error(
"Invalid key access");
105 if (!elecContainer.isValid()) {
107 throw std::runtime_error(
"Invalid key access");
110 using PartVec = std::vector<const xAOD::IParticle*>;
111 PartVec selected_lep{};
115 ++m_num_lep[num_lep];
116 ++m_num_ele[elecContainer->size()];
120 selected_lep.reserve(num_lep);
121 size_t n_ele{0},n_muo{0};
125 selected_lep.push_back(
muon);
132 selected_lep.push_back(elec);
137 ++m_num_lep[
std::min(m_num_lep.size() -1 , n_ele + n_muo)];
138 ++m_num_ele[
std::min(m_num_ele.size() -1 , n_ele)];
139 ++m_num_muo[
std::min(m_num_muo.size() -1 , n_muo)];
141 if (selected_lep.size() < 4) {
145 std::sort(selected_lep.begin(),selected_lep.end(),
147 return a->pt() > b->pt();});
151 to_ret.reserve(
std::pow(selected_lep.size(), 4));
152 for (PartVec::const_iterator itr1 = selected_lep.begin() + 3; itr1 != selected_lep.end(); ++itr1) {
153 for (PartVec::const_iterator itr2 = selected_lep.begin() + 2; itr2 != itr1; ++itr2) {
154 for (PartVec::const_iterator itr3 = selected_lep.begin() + 1; itr3 != itr2; ++itr3) {
156 for (PartVec::const_iterator itr4 = selected_lep.begin(); itr4 != itr3; ++itr4) {
162 to_ret.push_back(std::move(
quad));
◆ 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.
◆ charge()
◆ 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 DerivationFramework::FourLeptonVertexingAlgorithm::execute |
( |
const EventContext & |
ctx | ) |
const |
|
override |
Setup the output container
Definition at line 74 of file FourLeptonVertexingAlgorithm.cxx.
77 ATH_CHECK(vtxContainer.record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
83 if (candidate) out_container->
push_back(std::move(candidate));
85 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();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ finalize()
StatusCode DerivationFramework::FourLeptonVertexingAlgorithm::finalize |
( |
| ) |
|
|
override |
Definition at line 62 of file FourLeptonVertexingAlgorithm.cxx.
63 unsigned int n_processed =
std::accumulate(m_num_lep.begin(), m_num_lep.end(), 0, [](
const std::atomic<unsigned int>&
l,
unsigned int n){
66 ATH_MSG_INFO(
"Proccessed in total "<<n_processed<<
" events. Lepton multiplicities observed:");
67 for (
unsigned int l = 0 ;
l < m_num_lep.size(); ++
l) {
68 ATH_MSG_INFO(
" ---- Events with "<<
l<<
" leptons: "<<m_num_lep[
l]<<
" (elec/muon) "<<m_num_ele[
l]<<
"/"<<m_num_muo[
l]<<
" ("<<(100.*m_num_lep[
l] /
std::max(1
u,n_processed))<<
"%)" );
72 return StatusCode::SUCCESS;
◆ fitQuadruplet()
Use the beam spot as an initial constraint
Definition at line 181 of file FourLeptonVertexingAlgorithm.cxx.
184 std::vector<const xAOD::TrackParticle*> trks{};
189 if (!evtInfo.isValid()) {
191 throw std::runtime_error(
"Invalid key access");
194 const Amg::Vector3D beam_spot{evtInfo->beamPosX(), evtInfo->beamPosY(), evtInfo->beamPosZ()};
195 std::unique_ptr<xAOD::Vertex> common_vtx =
m_fitter->fit(ctx, trks, beam_spot);
202 << redChi2 <<
" nDoF: " << common_vtx->
numberDoF());
207 static const std::vector<float> empty_vec{};
210 std::vector<TrkLink> track_links{};
213 TrkLink link{*cont, trk->index(), ctx};
◆ initialize()
StatusCode DerivationFramework::FourLeptonVertexingAlgorithm::initialize |
( |
| ) |
|
|
override |
Definition at line 45 of file FourLeptonVertexingAlgorithm.cxx.
55 if (m_muonTrkProp < MuonTrk::Primary || m_muonTrk > MuonTrk::MSOnlyExtrapolatedMuonSpectrometerTrackParticle) {
57 return StatusCode::FAILURE;
60 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.
◆ 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.
◆ passSelection() [1/3]
bool DerivationFramework::FourLeptonVertexingAlgorithm::passSelection |
( |
const LeptonQuadruplet & |
quad | ) |
const |
|
private |
Check the di lepton masses in the quad
If the pair is SFOS check the mass
The high mass pair must at least satisfy a certain threshold
Definition at line 221 of file FourLeptonVertexingAlgorithm.cxx.
223 for (
unsigned int i = 1;
i <
quad.size(); ++
i) {
224 for (
unsigned int j = 0; j <
i; ++j) {
228 if (std::abs(trk_b->
z0() - trk_a->
z0()) >
m_z0Cut)
return false;
231 const float di_m1 = (
quad[
i]->p4() +
quad[j]->p4()).M();
236 for (
unsigned int k = 1 ;
k <
quad.size(); ++
k) {
237 if (
k ==
i ||
k == j)
continue;
238 for (
unsigned int l = 0;
l <
k ; ++
l) {
239 if (
l ==
i ||
l == j)
continue;
240 const float di_m2 = (
quad[
k]->p4() +
quad[
l]->p4()).M();
◆ passSelection() [2/3]
bool DerivationFramework::FourLeptonVertexingAlgorithm::passSelection |
( |
const xAOD::Electron * |
elec | ) |
const |
|
private |
◆ passSelection() [3/3]
bool DerivationFramework::FourLeptonVertexingAlgorithm::passSelection |
( |
const xAOD::Muon * |
muon | ) |
const |
|
private |
◆ 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.
◆ trackParticle()
◆ updateVHKA()
◆ ATLAS_THREAD_SAFE [1/3]
std::array<std::atomic<unsigned int>, 8> m_num_lep DerivationFramework::FourLeptonVertexingAlgorithm::ATLAS_THREAD_SAFE {} |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [2/3]
std::array<std::atomic<unsigned int>, 8> m_num_ele DerivationFramework::FourLeptonVertexingAlgorithm::ATLAS_THREAD_SAFE {} |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [3/3]
std::array<std::atomic<unsigned int>, 8> m_num_muo DerivationFramework::FourLeptonVertexingAlgorithm::ATLAS_THREAD_SAFE {} |
|
mutableprivate |
◆ m_detStore
◆ m_elecKey
Initial value:{this, "ElectronContainer", "Electrons",
"Location of the electron container in the store gate"}
Definition at line 50 of file FourLeptonVertexingAlgorithm.h.
◆ m_elecSelTool
Initial value:{this, "ElectronSelectionTool", "",
"Applied preselection on the electrons. Will be ignored if empty"}
Definition at line 56 of file FourLeptonVertexingAlgorithm.h.
◆ m_elecUseGSF
Gaudi::Property<bool> DerivationFramework::FourLeptonVertexingAlgorithm::m_elecUseGSF |
|
private |
Initial value:{this, "PickElecGsfTrk", true,
"If this property is set to true it will pick up the electron GSF track"}
Definition at line 70 of file FourLeptonVertexingAlgorithm.h.
◆ m_evtKey
◆ 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_fitter
ToolHandle<Trk::IVertexFitter> DerivationFramework::FourLeptonVertexingAlgorithm::m_fitter {this, "VertexFitter", "", "Vertex fitter tool"} |
|
private |
◆ m_good_fits
std::atomic<unsigned int> DerivationFramework::FourLeptonVertexingAlgorithm::m_good_fits {0} |
|
mutableprivate |
◆ m_highPair_Cut
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_highPair_Cut {this, "HighMassPair", 40.*Gaudi::Units::GeV, "Minimum mass for the largest lepton pair"} |
|
private |
◆ m_LeadPtCut
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_LeadPtCut {this, "LeadingLeptonPt", 15. *Gaudi::Units::GeV,"Minimal momentum of the leading lepton in the quad "} |
|
private |
◆ m_lowSFOS_Cut
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_lowSFOS_Cut {this, "LowSFOSMass", 3.5 * Gaudi::Units::GeV, "Minimal mass for the lower SFOS pair"} |
|
private |
◆ m_minElecPt
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_minElecPt {this, "MinElecPt", 4.5 * Gaudi::Units::GeV, " Minimum pt cut applied on the electron"} |
|
private |
◆ m_minMuonPt
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_minMuonPt |
|
private |
◆ m_muonKey
Initial value:{this, "MuonContainer", "Muons",
"Location of the input muon container in the StoreGate"}
Input containers.
Definition at line 48 of file FourLeptonVertexingAlgorithm.h.
◆ m_muonSelTool
Initial value:{this, "MuonSelectionTool", "",
"Applied preselection on the muons. Will be ignored if empty"}
Definition at line 54 of file FourLeptonVertexingAlgorithm.h.
◆ m_muonTrk
MuonTrk DerivationFramework::FourLeptonVertexingAlgorithm::m_muonTrk {MuonTrk::Primary} |
|
private |
◆ m_muonTrkProp
Gaudi::Property<int> DerivationFramework::FourLeptonVertexingAlgorithm::m_muonTrkProp |
|
private |
Initial value:{this, "PickMuonTrk", MuonTrk::InnerDetectorTrackParticle,
"Pick the proper track particle from the muon"}
Definition at line 66 of file FourLeptonVertexingAlgorithm.h.
◆ m_pruneCov
Gaudi::Property<bool> DerivationFramework::FourLeptonVertexingAlgorithm::m_pruneCov {this, "PruneCovariance", true, "Clears the covariance vector"} |
|
private |
◆ m_pruneWeight
Gaudi::Property<bool> DerivationFramework::FourLeptonVertexingAlgorithm::m_pruneWeight {this, "PruneTrackWeights", true, "Clears the track weight vector"} |
|
private |
◆ m_SubLeadPtCut
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_SubLeadPtCut {this, "SubLeadingLeptonPt", 10. *Gaudi::Units::GeV,"Minimal momentum of the leading lepton in the quad "} |
|
private |
◆ m_tried_fits
std::atomic<unsigned int> DerivationFramework::FourLeptonVertexingAlgorithm::m_tried_fits {0} |
|
mutableprivate |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_VtxChi2Cut
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_VtxChi2Cut {this, "VertexChi2Cut", 20, "Maximal chii n.D.o.F cut on the reconstructed vertex" } |
|
private |
◆ m_vtxKey
◆ m_z0Cut
Gaudi::Property<float> DerivationFramework::FourLeptonVertexingAlgorithm::m_z0Cut |
|
private |
The documentation for this class was generated from the following files:
xAOD::MuonContainer * muonContainer
Gaudi::Property< float > m_VtxChi2Cut
Gaudi::Property< float > m_z0Cut
Gaudi::Property< float > m_minMuonPt
SG::WriteHandleKey< xAOD::VertexContainer > m_vtxKey
Electron_v1 Electron
Definition of the current "egamma version".
SG::ReadHandleKey< xAOD::ElectronContainer > m_elecKey
float charge() const
Returns the charge.
std::unique_ptr< xAOD::Vertex > fitQuadruplet(const EventContext &ctx, const LeptonQuadruplet &quad) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Gaudi::Property< float > m_highPair_Cut
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
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 z0() const
Returns the parameter.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::vector< LeptonQuadruplet > buildAllQuadruplets(const EventContext &ctx) const
const Amg::Vector3D & position() const
Returns the 3-pos.
Helper class to provide constant type-safe access to aux data.
std::vector< const xAOD::TrackParticle * > getTrackParticlesVec(const xAOD::Egamma *eg, bool useBremAssoc=true, bool allParticles=true)
Return a list of all or only the best TrackParticle associated to the object.
Class providing the definition of the 4-vector interface.
SG::ReadHandleKey< xAOD::EventInfo > m_evtKey
void setCovariance(const std::vector< float > &value)
Sets the covariance matrix as a simple vector of values.
@ u
Enums for curvilinear frames.
const xAOD::TrackParticle * trackParticle(const xAOD::IParticle *part) const
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Property< float > m_SubLeadPtCut
xAOD::Muon::TrackParticleType MuonTrk
AthReentrantAlgorithm()
Default constructor:
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
void setTrackParticleLinks(const TrackParticleLinks_t &trackParticles)
Set all track particle links at once.
ToolHandle< IAsgElectronLikelihoodTool > m_elecSelTool
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
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.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< float > m_minElecPt
Gaudi::Property< float > m_lowSFOS_Cut
Gaudi::Property< int > m_muonTrkProp
void setTrackWeights(const std::vector< float > &weights)
Set all the track weights.
virtual StatusCode sysInitialize() override
Override sysInitialize.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Eigen::Matrix< double, 3, 1 > Vector3D
struct TBPatternUnitContext Muon
int charge(const xAOD::IParticle *part) const
float numberDoF() const
Returns the number of degrees of freedom of the vertex fit as float.
ToolHandle< Trk::IVertexFitter > m_fitter
std::array< const xAOD::IParticle *, 4 > LeptonQuadruplet
float chiSquared() const
Returns the of the vertex fit as float.
Gaudi::Property< bool > m_pruneWeight
Gaudi::Property< bool > m_elecUseGSF
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)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Class describing a TrackParticle.
Gaudi::Property< bool > m_pruneCov
bool passSelection(const xAOD::Electron *elec) const
constexpr int pow(int base, int exp) noexcept
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::atomic< unsigned int > m_good_fits
How many vertex fits were actually successful.
std::atomic< unsigned int > m_tried_fits
How many vertex fits were attempted.
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
Input containers.
Gaudi::Property< float > m_LeadPtCut