Loading [MathJax]/jax/output/SVG/config.js
 |
ATLAS Offline Software
|
#include <DecoratePromptLeptonImproved.h>
|
| DecoratePromptLeptonImproved (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute () override |
|
virtual StatusCode | finalize () override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
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 |
|
|
bool | initializeTMVAReader () |
|
StatusCode | initializeDecorators () |
|
void | initializeConstAccessors () |
|
void | decorateElec (const xAOD::Electron &electron, const xAOD::JetContainer &trackJets, const xAOD::CaloClusterContainer &clusters, const xAOD::Vertex *primaryVertex, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors) |
|
void | decorateMuon (const xAOD::Muon &muon, const xAOD::JetContainer &trackJets, const xAOD::Vertex *primaryVertex, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors) |
|
void | getMutualVariables (const xAOD::IParticle &particle, const xAOD::Jet &track_jet, const xAOD::TrackParticle *track, Prompt::VarHolder &vars) const |
|
void | getMuonAnpVariables (const xAOD::Muon &muon, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex) const |
|
void | getElectronAnpVariables (const xAOD::Electron &elec, const xAOD::CaloClusterContainer &clusters, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex) |
|
float | accessIsolation (const SG::ConstAccessor< float > &isoAccessor, const xAOD::IParticle &particle) const |
|
void | addVarsToTMVA (Prompt::VarHolder &vars) |
|
void | fillVarDefault (Prompt::VarHolder &vars) const |
|
void | decorateAuxLepton (const xAOD::IParticle &particle, Prompt::VarHolder &vars, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors) const |
|
template<class T > |
std::pair< double, const xAOD::Jet * > | findTrackJet (const T &part, const xAOD::JetContainer &jets) |
|
double | getVertexLongitudinalNormDist (const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) const |
|
double | getVertexCosThetaWithLepDir (const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) const |
|
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...
|
|
|
Gaudi::Property< std::string > | m_leptonsName |
|
Gaudi::Property< std::string > | m_configFileVersion {this, "ConfigFileVersion", "", "BDT weight file version"} |
|
Gaudi::Property< std::string > | m_configPathOverride {this, "ConfigPathOverride", "", "Path of the local BDT weight file you want to study/test"} |
|
Gaudi::Property< std::string > | m_inputVarDecoratePrefix {this, "InputVarDecoratePrefix", "", "Prefix of the variables that will be decorated into the lepton"} |
|
Gaudi::Property< std::string > | m_BDTName {this, "BDTName", "", "BDT name"} |
|
Gaudi::Property< std::string > | m_methodTitleMVA {this, "MethodTitleMVA", "BDT", "Help to config the path of the BDT xml file"} |
|
Gaudi::Property< std::vector< std::string > > | m_accessorRNNVars {this, "accessorRNNVars", {}, "Name of the RNN accessor of the lepton"} |
|
Gaudi::Property< std::vector< std::string > > | m_stringIntVars {this, "stringIntVars", {}, "Vector of the BDT int variables' names and they will be decorated into lepton if not in the veto list"} |
|
Gaudi::Property< std::vector< std::string > > | m_stringFloatVars {this, "stringFloatVars", {}, "Vector of the BDT float variables' names and they will be decorated into lepton if not in the veto list"} |
|
Gaudi::Property< std::vector< std::string > > | m_extraDecoratorFloatVars {this, "extraDecoratorFloatVars", {}, "Extra float variables' names you want to compute and decorate into the lepton"} |
|
Gaudi::Property< std::vector< std::string > > | m_extraDecoratorShortVars {this, "extraDecoratorShortVars", {}, "Extra short variables' names you want to compute and decorate into the lepton"} |
|
Gaudi::Property< std::vector< std::string > > | m_vetoDecoratorFloatVars {this, "vetoDecoratorFloatVars", {}, "Vector of the float variables' names you do not want to save"} |
|
Gaudi::Property< std::vector< std::string > > | m_vetoDecoratorShortVars {this, "vetoDecoratorShortVars", {}, "Vector of the short variables' names you do not want to save"} |
|
Gaudi::Property< std::vector< double > > | m_leptonPtBinsVector {this, "leptonPtBinsVector", {}, "pT bin edges that are used for MVABin calculation"} |
|
Gaudi::Property< bool > | m_printTime {this, "PrintTime", false, "Whether to print current time"} |
|
Gaudi::Property< std::string > | m_vertexLinkName {this, "VertexLinkName", "", "ElementLink name of the secondary vertices"} |
|
Gaudi::Property< double > | m_vertexMinChiSquaredProb {this, "VertexMinChiSquaredProb", 0.03, "Vertex chi2 cut"} |
|
Gaudi::Property< double > | m_vertexMinThetaBarrElec {this, "VertexMinThetaBarrElec", 0.002, "Vertex theta between lepton and the direction of sv-pv cut for barrel electrons"} |
|
Gaudi::Property< double > | m_vertexMinThetaEcapElec {this, "VertexMinThetaEcapElec", 0.001, "Vertex theta between lepton and the direction of sv-pv cut for central electrons"} |
|
Gaudi::Property< double > | m_vertexBarrEcapAbsEtaAt {this, "VertexBarrEcapAbsEtaAt", 1.37, "Relate to the vertex cut above, define the barrel and central electrons by abs(eta)"} |
|
Gaudi::Property< double > | m_elecMinCalErelConeSize {this, "ElecMinCalErelConeSize", 0.15, "Cut of the cluster for calculating the core energy of the lepton"} |
|
Gaudi::Property< double > | m_maxLepTrackJetDR {this, "maxLepTrackJetDR", 0.4, "Maximum distance between lepton and track jet for track jet matching"} |
|
SG::ReadHandleKey< xAOD::JetContainer > | m_trackJetsKey |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_primaryVertexKey |
|
SG::ReadHandleKey< xAOD::CaloClusterContainer > | m_clusterContainerKey |
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_electronsKey |
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonsKey |
|
std::vector< Prompt::Def::Var > | m_intVars |
|
std::vector< Prompt::Def::Var > | m_floatVars |
|
std::vector< Prompt::Def::Var > | m_allVars |
|
std::unique_ptr< Prompt::VarHolder > | m_vars |
|
Prompt::Def::Var | m_BDTVarKey |
|
std::unique_ptr< TMVA::Reader > | m_TMVAReader |
|
std::vector< Float_t > | m_varTMVA |
|
std::optional< AccessVertex > | m_accessDeepSecondaryVertex |
|
floatAccessorMap | m_accessRNNMap |
|
std::unique_ptr< TH1D > | m_leptonPtBinHist |
|
TStopwatch | m_timerAll |
|
TStopwatch | m_timerExec |
|
TStopwatch | m_timerMuon |
|
TStopwatch | m_timerElec |
|
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > | m_floatDecorHandleKeys { this, "FloatDecorHandleKeys", {} } |
|
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > | m_shortDecorHandleKeys { this, "ShortDecorHandleKeys", {} } |
|
DecorMap_t | m_floatDecorMap |
|
DecorMap_t | m_shortDecorMap |
|
DataObjIDColl | m_extendedExtraObjects |
|
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 |
|
◆ AccessFloat
◆ AccessVertex
◆ decoratorFloatH_t
◆ decoratorShortH_t
◆ DecorMap_t
◆ floatAccessorMap
◆ StoreGateSvc_t
◆ DecoratePromptLeptonImproved()
Prompt::DecoratePromptLeptonImproved::DecoratePromptLeptonImproved |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ accessIsolation()
◆ addVarsToTMVA()
◆ 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);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ 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]
◆ decorateAuxLepton()
◆ decorateElec()
◆ decorateMuon()
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode Prompt::DecoratePromptLeptonImproved::execute |
( |
| ) |
|
|
overridevirtual |
Definition at line 144 of file DecoratePromptLeptonImproved.cxx.
151 const EventContext& ctx = Gaudi::Hive::currentContext();
161 <<
"\n\t\t\t Size of vertex container: " << vertices ->
size()
162 <<
"\n\t\t\t Size of track jet container: " << trackJets->size()
163 <<
"\n-----------------------------------------------------------------");
177 std::vector<decoratorFloatH_t> floatDecors;
180 floatDecors.emplace_back (
k, ctx);
183 std::vector<decoratorShortH_t> shortDecors;
186 shortDecors.emplace_back (
k, ctx);
212 return StatusCode::FAILURE;
215 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 & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ fillVarDefault()
void Prompt::DecoratePromptLeptonImproved::fillVarDefault |
( |
Prompt::VarHolder & |
vars | ) |
const |
|
private |
◆ finalize()
StatusCode Prompt::DecoratePromptLeptonImproved::finalize |
( |
| ) |
|
|
overridevirtual |
◆ findTrackJet()
Definition at line 845 of file DecoratePromptLeptonImproved.cxx.
853 std::pair<double, const xAOD::Jet*>
match(mindr, minjet);
856 const double dr =
part.p4().DeltaR(
jet->p4());
858 if(!minjet ||
dr < mindr) {
861 match = std::make_pair(mindr, minjet);
871 return std::make_pair(10., minjet);
◆ getElectronAnpVariables()
Definition at line 504 of file DecoratePromptLeptonImproved.cxx.
521 const double deta = elec_calEta -
cluster->eta();
523 const double dr = std::sqrt(deta*deta + dphi*dphi);
526 sumCoreEt_large +=
cluster->pt();
547 std::vector<double> goodVertexNdistLong;
550 std::vector<ElementLink<xAOD::VertexContainer> > vtxLinks = (*m_accessDeepSecondaryVertex)(elec);
553 if(!vtxLink.isValid()) {
573 goodVertexNdistLong.push_back(vertex_ndist_long);
580 double best_vertex_ndist_long = 0.0;
582 if(goodVertexNdistLong.size() > 0) {
583 std::sort(goodVertexNdistLong.begin(), goodVertexNdistLong.end());
584 best_vertex_ndist_long = goodVertexNdistLong.back();
◆ getMuonAnpVariables()
Definition at line 592 of file DecoratePromptLeptonImproved.cxx.
601 double calE = -99.0, peloss = -99.0, caloClusterERel = -99.0;
603 if(
muon.clusterLink().isValid()) {
606 if(accessMuonCalE.isAvailable(*cluster) && accessMuonParamEnergyLoss.isAvailable(
muon)) {
607 calE = accessMuonCalE(*cluster);
608 peloss = accessMuonParamEnergyLoss(
muon);
610 caloClusterERel = calE/peloss;
613 ATH_MSG_WARNING(
"Muon calE or ParamEnergyLoss not found in auxiliary store");
623 const double ptvarcone30TightTTVAPt500rel =
accessIsolation(accessTrackIsolation30TTVA,
muon);
631 std::vector<double> goodVertexNdistLong;
634 std::vector<ElementLink<xAOD::VertexContainer> > vtxLinks = (*m_accessDeepSecondaryVertex)(
muon);
635 goodVertexNdistLong.reserve(vtxLinks.size());
638 if(!vtxLink.isValid()) {
650 goodVertexNdistLong.push_back(vertex_ndist_long);
658 double best_vertex_ndist_long = 0.0;
660 if(goodVertexNdistLong.size() > 0) {
661 std::sort(goodVertexNdistLong.begin(), goodVertexNdistLong.end());
662 best_vertex_ndist_long = goodVertexNdistLong.back();
◆ getMutualVariables()
◆ getVertexCosThetaWithLepDir()
Definition at line 902 of file DecoratePromptLeptonImproved.cxx.
909 if(!secondaryVertex || !primaryVertex) {
910 ATH_MSG_WARNING(
"GetVertexThetaWithLepDir - invalid pointer of lepton/secondaryVertex/primaryVertex");
916 const TVector3 sv_to_pv_t3 = TVector3(sv_to_pv_v3.x(), sv_to_pv_v3.y(), sv_to_pv_v3.z());
917 const TVector3 lepton_dirt = lepton.
p4().Vect();
919 const double cos_theta = sv_to_pv_t3.Unit()*lepton_dirt.Unit();
◆ getVertexLongitudinalNormDist()
Definition at line 875 of file DecoratePromptLeptonImproved.cxx.
884 if(!secondaryVertex || !primaryVertex) {
885 ATH_MSG_WARNING(
"getVertexLongitudinalNormDist - invalid pointer of lepton/secondaryVertex/primaryVertex");
890 float normDist_SVPV = 0.0;
893 ATH_MSG_WARNING(
"getVertexLongitudinalNormDist - missing \"normDistToPriVtx\"");
898 return normDist_SVPV*cos_theta;
◆ initialize()
StatusCode Prompt::DecoratePromptLeptonImproved::initialize |
( |
| ) |
|
|
overridevirtual |
◆ initializeConstAccessors()
void Prompt::DecoratePromptLeptonImproved::initializeConstAccessors |
( |
| ) |
|
|
private |
◆ initializeDecorators()
StatusCode Prompt::DecoratePromptLeptonImproved::initializeDecorators |
( |
| ) |
|
|
private |
Definition at line 262 of file DecoratePromptLeptonImproved.cxx.
264 std::string inputContName;
273 "; must be either Electrons or Muons");
274 return StatusCode::FAILURE;
282 ATH_MSG_ERROR(
"Failed to create key for variable name=" << vvar);
283 return StatusCode::FAILURE;
286 vetoedVars.try_emplace (vkey, 0);
292 ATH_MSG_ERROR(
"Failed to create key for variable name=" << vvar);
293 return StatusCode::FAILURE;
296 vetoedVars.try_emplace (vkey, 0);
303 if (!vetoedVars.contains (
var)) {
314 if (!vetoedVars.contains (
var)) {
332 ATH_MSG_ERROR(
"Failed to create key for variable name=" << evar);
333 return StatusCode::FAILURE;
336 if (!vetoedVars.contains (ekey)) {
346 ATH_MSG_ERROR(
"Failed to create key for variable name=" << evar);
347 return StatusCode::FAILURE;
350 if (!vetoedVars.contains (ekey)) {
366 return StatusCode::FAILURE;
377 return StatusCode::SUCCESS;
◆ initializeTMVAReader()
bool Prompt::DecoratePromptLeptonImproved::initializeTMVAReader |
( |
| ) |
|
|
private |
◆ 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.
◆ 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()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_accessDeepSecondaryVertex
std::optional<AccessVertex> Prompt::DecoratePromptLeptonImproved::m_accessDeepSecondaryVertex |
|
private |
◆ m_accessorRNNVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_accessorRNNVars {this, "accessorRNNVars", {}, "Name of the RNN accessor of the lepton"} |
|
private |
◆ m_accessRNNMap
◆ m_allVars
◆ m_BDTName
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_BDTName {this, "BDTName", "", "BDT name"} |
|
private |
◆ m_BDTVarKey
◆ m_clusterContainerKey
Initial value:{
this, "ClusterContainerName", "",
"Container name of the Clusters which are used to calculate the input variables for the PromptLeptonImproved"
}
Definition at line 205 of file DecoratePromptLeptonImproved.h.
◆ m_configFileVersion
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_configFileVersion {this, "ConfigFileVersion", "", "BDT weight file version"} |
|
private |
◆ m_configPathOverride
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_configPathOverride {this, "ConfigPathOverride", "", "Path of the local BDT weight file you want to study/test"} |
|
private |
◆ m_detStore
◆ m_elecMinCalErelConeSize
Gaudi::Property<double> Prompt::DecoratePromptLeptonImproved::m_elecMinCalErelConeSize {this, "ElecMinCalErelConeSize", 0.15, "Cut of the cluster for calculating the core energy of the lepton"} |
|
private |
◆ m_electronsKey
Initial value:{
this, "ElectronContainerKey", "Electrons",
"Container's name of the electrons that you want to decorate"
}
Definition at line 210 of file DecoratePromptLeptonImproved.h.
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_extraDecoratorFloatVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_extraDecoratorFloatVars {this, "extraDecoratorFloatVars", {}, "Extra float variables' names you want to compute and decorate into the lepton"} |
|
private |
◆ m_extraDecoratorShortVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_extraDecoratorShortVars {this, "extraDecoratorShortVars", {}, "Extra short variables' names you want to compute and decorate into the lepton"} |
|
private |
◆ m_floatDecorHandleKeys
◆ m_floatDecorMap
DecorMap_t Prompt::DecoratePromptLeptonImproved::m_floatDecorMap |
|
private |
◆ m_floatVars
◆ m_inputVarDecoratePrefix
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_inputVarDecoratePrefix {this, "InputVarDecoratePrefix", "", "Prefix of the variables that will be decorated into the lepton"} |
|
private |
◆ m_intVars
◆ m_leptonPtBinHist
std::unique_ptr<TH1D> Prompt::DecoratePromptLeptonImproved::m_leptonPtBinHist |
|
private |
◆ m_leptonPtBinsVector
Gaudi::Property<std::vector<double> > Prompt::DecoratePromptLeptonImproved::m_leptonPtBinsVector {this, "leptonPtBinsVector", {}, "pT bin edges that are used for MVABin calculation"} |
|
private |
◆ m_leptonsName
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_leptonsName |
|
private |
Initial value:{
this, "LeptonContainerName", "",
"Container's name of the lepton that you want to decorate. Also need to set ElectronContainerKey or MuonContainerKey accordingly"
}
Definition at line 168 of file DecoratePromptLeptonImproved.h.
◆ m_maxLepTrackJetDR
Gaudi::Property<double> Prompt::DecoratePromptLeptonImproved::m_maxLepTrackJetDR {this, "maxLepTrackJetDR", 0.4, "Maximum distance between lepton and track jet for track jet matching"} |
|
private |
◆ m_methodTitleMVA
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_methodTitleMVA {this, "MethodTitleMVA", "BDT", "Help to config the path of the BDT xml file"} |
|
private |
◆ m_muonsKey
Initial value:{
this, "MuonContainerKey", "Muons",
"Container's name of the muons that you want to decorate"
}
Definition at line 214 of file DecoratePromptLeptonImproved.h.
◆ m_primaryVertexKey
◆ m_printTime
Gaudi::Property<bool> Prompt::DecoratePromptLeptonImproved::m_printTime {this, "PrintTime", false, "Whether to print current time"} |
|
private |
◆ m_shortDecorHandleKeys
◆ m_shortDecorMap
DecorMap_t Prompt::DecoratePromptLeptonImproved::m_shortDecorMap |
|
private |
◆ m_stringFloatVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_stringFloatVars {this, "stringFloatVars", {}, "Vector of the BDT float variables' names and they will be decorated into lepton if not in the veto list"} |
|
private |
◆ m_stringIntVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_stringIntVars {this, "stringIntVars", {}, "Vector of the BDT int variables' names and they will be decorated into lepton if not in the veto list"} |
|
private |
◆ m_timerAll
TStopwatch Prompt::DecoratePromptLeptonImproved::m_timerAll |
|
private |
◆ m_timerElec
TStopwatch Prompt::DecoratePromptLeptonImproved::m_timerElec |
|
private |
◆ m_timerExec
TStopwatch Prompt::DecoratePromptLeptonImproved::m_timerExec |
|
private |
◆ m_timerMuon
TStopwatch Prompt::DecoratePromptLeptonImproved::m_timerMuon |
|
private |
◆ m_TMVAReader
std::unique_ptr<TMVA::Reader> Prompt::DecoratePromptLeptonImproved::m_TMVAReader |
|
private |
◆ m_trackJetsKey
◆ m_varHandleArraysDeclared
◆ m_vars
◆ m_varTMVA
std::vector<Float_t> Prompt::DecoratePromptLeptonImproved::m_varTMVA |
|
private |
◆ m_vertexBarrEcapAbsEtaAt
Gaudi::Property<double> Prompt::DecoratePromptLeptonImproved::m_vertexBarrEcapAbsEtaAt {this, "VertexBarrEcapAbsEtaAt", 1.37, "Relate to the vertex cut above, define the barrel and central electrons by abs(eta)"} |
|
private |
◆ m_vertexLinkName
Gaudi::Property<std::string> Prompt::DecoratePromptLeptonImproved::m_vertexLinkName {this, "VertexLinkName", "", "ElementLink name of the secondary vertices"} |
|
private |
◆ m_vertexMinChiSquaredProb
Gaudi::Property<double> Prompt::DecoratePromptLeptonImproved::m_vertexMinChiSquaredProb {this, "VertexMinChiSquaredProb", 0.03, "Vertex chi2 cut"} |
|
private |
◆ m_vertexMinThetaBarrElec
Gaudi::Property<double> Prompt::DecoratePromptLeptonImproved::m_vertexMinThetaBarrElec {this, "VertexMinThetaBarrElec", 0.002, "Vertex theta between lepton and the direction of sv-pv cut for barrel electrons"} |
|
private |
◆ m_vertexMinThetaEcapElec
Gaudi::Property<double> Prompt::DecoratePromptLeptonImproved::m_vertexMinThetaEcapElec {this, "VertexMinThetaEcapElec", 0.001, "Vertex theta between lepton and the direction of sv-pv cut for central electrons"} |
|
private |
◆ m_vetoDecoratorFloatVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_vetoDecoratorFloatVars {this, "vetoDecoratorFloatVars", {}, "Vector of the float variables' names you do not want to save"} |
|
private |
◆ m_vetoDecoratorShortVars
Gaudi::Property<std::vector<std::string> > Prompt::DecoratePromptLeptonImproved::m_vetoDecoratorShortVars {this, "vetoDecoratorShortVars", {}, "Vector of the short variables' names you do not want to save"} |
|
private |
◆ m_vhka
The documentation for this class was generated from the following files:
SG::ReadHandleKey< xAOD::VertexContainer > m_primaryVertexKey
virtual double phi() const
The azimuthal angle ( ) of the particle.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
double getVertexLongitudinalNormDist(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) const
Gaudi::Property< std::vector< std::string > > m_vetoDecoratorShortVars
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Gaudi::Property< std::vector< std::string > > m_vetoDecoratorFloatVars
bool GetAuxVar(const T1 &obj, T2 &value, const std::string &var_name)
Gaudi::Property< double > m_elecMinCalErelConeSize
double getVertexFitProb(const xAOD::Vertex *vtx)
Gaudi::Property< std::vector< double > > m_leptonPtBinsVector
bool initializeTMVAReader()
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::vector< Prompt::Def::Var > m_intVars
bool addVar(unsigned key, double value)
Adds a variable to the VarHolder.
Scalar theta() const
theta method
std::vector< Prompt::Def::Var > m_allVars
floatAccessorMap m_accessRNNMap
Gaudi::Property< std::string > m_BDTName
void initializeConstAccessors()
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
size_t size() const
number of constituents
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronsKey
std::pair< double, const xAOD::Jet * > findTrackJet(const T &part, const xAOD::JetContainer &jets)
const Amg::Vector3D & position() const
Returns the 3-pos.
Gaudi::Property< double > m_vertexMinThetaEcapElec
Gaudi::Property< std::vector< std::string > > m_stringFloatVars
void getMuonAnpVariables(const xAOD::Muon &muon, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex) const
Gaudi::Property< double > m_vertexBarrEcapAbsEtaAt
const std::string & key() const
Return the StoreGate ID for the referenced object.
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > m_shortDecorHandleKeys
__HOSTDEV__ double Phi_mpi_pi(double)
std::string PrintResetStopWatch(TStopwatch &watch)
std::unordered_map< Def::Var, size_t > DecorMap_t
void getElectronAnpVariables(const xAOD::Electron &elec, const xAOD::CaloClusterContainer &clusters, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex)
SG::ReadHandleKey< xAOD::MuonContainer > m_muonsKey
def timer(name, disabled=False)
virtual void setOwner(IDataHandleHolder *o)=0
std::unique_ptr< TMVA::Reader > m_TMVAReader
double getVar(const unsigned key) const
Description of a calorimeter cluster.
virtual StatusCode sysInitialize() override
Override sysInitialize.
Gaudi::Property< std::vector< std::string > > m_extraDecoratorShortVars
Gaudi::Property< std::string > m_methodTitleMVA
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
virtual double eta() const
The pseudorapidity ( ) of the particle.
Gaudi::Property< std::vector< std::string > > m_extraDecoratorFloatVars
::StatusCode StatusCode
StatusCode definition for legacy code.
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
Prompt::Def::Var m_BDTVarKey
Gaudi::Property< std::string > m_inputVarDecoratePrefix
Gaudi::Property< bool > m_printTime
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
std::vector< Prompt::Def::Var > m_floatVars
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
DecorMap_t m_floatDecorMap
DecorMap_t m_shortDecorMap
Gaudi::Property< double > m_maxLepTrackJetDR
float accessIsolation(const SG::ConstAccessor< float > &isoAccessor, const xAOD::IParticle &particle) const
void decorateElec(const xAOD::Electron &electron, const xAOD::JetContainer &trackJets, const xAOD::CaloClusterContainer &clusters, const xAOD::Vertex *primaryVertex, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
void addVarsToTMVA(Prompt::VarHolder &vars)
std::unique_ptr< TH1D > m_leptonPtBinHist
Gaudi::Property< std::vector< std::string > > m_accessorRNNVars
virtual FourMom_t p4() const =0
The full 4-momentum of the particle.
Gaudi::Property< std::vector< std::string > > m_stringIntVars
Eigen::Matrix< double, 3, 1 > Vector3D
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterContainerKey
void fillVarDefault(Prompt::VarHolder &vars) const
SG::ConstAccessor< float > AccessFloat
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Gaudi::Property< std::string > m_configPathOverride
DataObjIDColl m_extendedExtraObjects
std::vector< Float_t > m_varTMVA
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Class describing a Vertex.
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)
std::string makeContDecorKey(const std::string &cont, const std::string &decor)
Make a StoreGate key from container and decoration name.
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > m_floatDecorHandleKeys
@ Ptvarcone30_TightTTVA_pt500rel
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ CandVertex_normDistToPriVtxLongitudinalBest
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
AthAlgorithm()
Default constructor:
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Gaudi::Property< std::string > m_vertexLinkName
void getMutualVariables(const xAOD::IParticle &particle, const xAOD::Jet &track_jet, const xAOD::TrackParticle *track, Prompt::VarHolder &vars) const
Gaudi::Property< std::string > m_configFileVersion
std::optional< AccessVertex > m_accessDeepSecondaryVertex
Gaudi::Property< double > m_vertexMinThetaBarrElec
Gaudi::Property< double > m_vertexMinChiSquaredProb
virtual double pt() const
The transverse momentum ( ) of the particle.
StatusCode initializeDecorators()
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
void decorateMuon(const xAOD::Muon &muon, const xAOD::JetContainer &trackJets, const xAOD::Vertex *primaryVertex, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors)
@ CandVertex_normDistToPriVtxLongitudinalBest_ThetaCutVtx
double getVertexCosThetaWithLepDir(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) const
std::unique_ptr< Prompt::VarHolder > m_vars
bool match(std::string s1, std::string s2)
match the individual directories of two strings
void decorateAuxLepton(const xAOD::IParticle &particle, Prompt::VarHolder &vars, std::vector< decoratorFloatH_t > &floatDecors, std::vector< decoratorShortH_t > &shortDecors) const
std::string asStr(const uint32_t key, const double val)
SG::ReadHandleKey< xAOD::JetContainer > m_trackJetsKey
Gaudi::Property< std::string > m_leptonsName