|
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) |
|
void | decorateMuon (const xAOD::Muon &muon, const xAOD::JetContainer &trackJets, const xAOD::Vertex *primaryVertex) |
|
void | getMutualVariables (const xAOD::IParticle &particle, const xAOD::Jet &track_jet, const xAOD::TrackParticle *track, Prompt::VarHolder &vars) |
|
void | getMuonAnpVariables (const xAOD::Muon &muon, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex) |
|
void | getElectronAnpVariables (const xAOD::Electron &elec, const xAOD::CaloClusterContainer &clusters, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex) |
|
float | accessIsolation (SG::AuxElement::ConstAccessor< float > &isoAccessor, const xAOD::IParticle &particle) |
|
void | addVarsToTMVA (Prompt::VarHolder &vars) |
|
void | fillVarDefault (Prompt::VarHolder &vars) const |
|
void | decorateAuxLepton (const xAOD::IParticle &particle, Prompt::VarHolder &vars) |
|
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) |
|
double | getVertexCosThetaWithLepDir (const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex) |
|
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 |
|
shortDecoratorMap | m_shortMap |
|
floatDecoratorMap | m_floatMap |
|
std::unique_ptr< TMVA::Reader > | m_TMVAReader |
|
std::vector< Float_t > | m_varTMVA |
|
std::unique_ptr< AccessFloat > | m_accessCalIsolation30 |
|
std::unique_ptr< AccessFloat > | m_accessTrackIsolation30 |
|
std::unique_ptr< AccessFloat > | m_accessTrackIsolation30TTVA |
|
std::unique_ptr< AccessFloat > | m_accessMuonCalE |
|
std::unique_ptr< AccessFloat > | m_accessMuonParamEnergyLoss |
|
std::unique_ptr< AccessVertex > | m_accessDeepSecondaryVertex |
|
floatAccessorMap | m_accessRNNMap |
|
std::unique_ptr< TH1D > | m_leptonPtBinHist |
|
TStopwatch | m_timerAll |
|
TStopwatch | m_timerExec |
|
TStopwatch | m_timerMuon |
|
TStopwatch | m_timerElec |
|
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
◆ floatAccessorMap
◆ floatDecoratorMap
◆ shortDecoratorMap
◆ 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 126 of file DecoratePromptLeptonImproved.cxx.
142 <<
"\n\t\t\t Size of vertex container: " << vertices ->
size()
143 <<
"\n\t\t\t Size of track jet container: " << trackJets->size()
144 <<
"\n-----------------------------------------------------------------");
181 return StatusCode::FAILURE;
184 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 828 of file DecoratePromptLeptonImproved.cxx.
836 std::pair<double, const xAOD::Jet*>
match(mindr, minjet);
839 const double dr =
part.p4().DeltaR(
jet->p4());
841 if(!minjet ||
dr < mindr) {
844 match = std::make_pair(mindr, minjet);
854 return std::make_pair(10., minjet);
◆ getElectronAnpVariables()
Definition at line 489 of file DecoratePromptLeptonImproved.cxx.
506 const double deta = elec_calEta - cluster->eta();
508 const double dr = std::sqrt(deta*deta + dphi*dphi);
511 sumCoreEt_large += cluster->pt();
532 std::vector<double> goodVertexNdistLong;
535 std::vector<ElementLink<xAOD::VertexContainer> > vtxLinks = (*m_accessDeepSecondaryVertex)(elec);
538 if(!vtxLink.isValid()) {
558 goodVertexNdistLong.push_back(vertex_ndist_long);
565 double best_vertex_ndist_long = 0.0;
567 if(goodVertexNdistLong.size() > 0) {
568 std::sort(goodVertexNdistLong.begin(), goodVertexNdistLong.end());
569 best_vertex_ndist_long = goodVertexNdistLong.back();
◆ getMuonAnpVariables()
Definition at line 577 of file DecoratePromptLeptonImproved.cxx.
586 double calE = -99.0, peloss = -99.0, caloClusterERel = -99.0;
588 if(
muon.clusterLink().isValid()) {
592 calE = (*m_accessMuonCalE)(*cluster);
593 peloss = (*m_accessMuonParamEnergyLoss)(
muon);
595 caloClusterERel = calE/peloss;
598 ATH_MSG_WARNING(
"Muon calE or ParamEnergyLoss not found in auxiliary store");
616 std::vector<double> goodVertexNdistLong;
619 std::vector<ElementLink<xAOD::VertexContainer> > vtxLinks = (*m_accessDeepSecondaryVertex)(
muon);
620 goodVertexNdistLong.reserve(vtxLinks.size());
623 if(!vtxLink.isValid()) {
635 goodVertexNdistLong.push_back(vertex_ndist_long);
643 double best_vertex_ndist_long = 0.0;
645 if(goodVertexNdistLong.size() > 0) {
646 std::sort(goodVertexNdistLong.begin(), goodVertexNdistLong.end());
647 best_vertex_ndist_long = goodVertexNdistLong.back();
◆ getMutualVariables()
◆ getVertexCosThetaWithLepDir()
Definition at line 885 of file DecoratePromptLeptonImproved.cxx.
892 if(!secondaryVertex || !primaryVertex) {
893 ATH_MSG_WARNING(
"GetVertexThetaWithLepDir - invalid pointer of lepton/secondaryVertex/primaryVertex");
899 const TVector3 sv_to_pv_t3 = TVector3(sv_to_pv_v3.x(), sv_to_pv_v3.y(), sv_to_pv_v3.z());
900 const TVector3 lepton_dirt = lepton.
p4().Vect();
902 const double cos_theta = sv_to_pv_t3.Unit()*lepton_dirt.Unit();
◆ getVertexLongitudinalNormDist()
Definition at line 858 of file DecoratePromptLeptonImproved.cxx.
867 if(!secondaryVertex || !primaryVertex) {
868 ATH_MSG_WARNING(
"getVertexLongitudinalNormDist - invalid pointer of lepton/secondaryVertex/primaryVertex");
873 float normDist_SVPV = 0.0;
876 ATH_MSG_WARNING(
"getVertexLongitudinalNormDist - missing \"normDistToPriVtx\"");
881 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 231 of file DecoratePromptLeptonImproved.cxx.
239 if(!
m_shortMap.insert(shortDecoratorMap::value_type(
var, shortDecorator)).second) {
240 ATH_MSG_ERROR(
"Instantiation of Decorator class failed for short decorator map for var: " <<
m_vars->asStr(
var));
241 return StatusCode::FAILURE;
251 if(!
m_floatMap.insert(floatDecoratorMap::value_type(
var, floatDecorator)).second) {
252 ATH_MSG_ERROR(
"Instantiation of Decorator class failed for float decorator map for var: " <<
m_vars->asStr(
var));
253 return StatusCode::FAILURE;
262 return StatusCode::FAILURE;
269 ATH_MSG_ERROR(
"Failed to create key for variable name=" << evar);
270 return StatusCode::FAILURE;
280 return StatusCode::FAILURE;
288 ATH_MSG_ERROR(
"Failed to create key for variable name=" << evar);
289 return StatusCode::FAILURE;
299 return StatusCode::FAILURE;
310 ATH_MSG_ERROR(
"Failed to create key for variable name=" << vvar);
311 return StatusCode::FAILURE;
317 ATH_MSG_DEBUG(
"Remove the variable from the veto-list, name=" << vvar);
326 ATH_MSG_ERROR(
"Failed to create key for variable name=" << vvar);
327 return StatusCode::FAILURE;
333 ATH_MSG_DEBUG(
"Remove the variable from the veto-list, name=" << vvar);
345 return StatusCode::FAILURE;
356 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_accessCalIsolation30
std::unique_ptr<AccessFloat> Prompt::DecoratePromptLeptonImproved::m_accessCalIsolation30 |
|
private |
◆ m_accessDeepSecondaryVertex
std::unique_ptr<AccessVertex> Prompt::DecoratePromptLeptonImproved::m_accessDeepSecondaryVertex |
|
private |
◆ m_accessMuonCalE
std::unique_ptr<AccessFloat> Prompt::DecoratePromptLeptonImproved::m_accessMuonCalE |
|
private |
◆ m_accessMuonParamEnergyLoss
std::unique_ptr<AccessFloat> Prompt::DecoratePromptLeptonImproved::m_accessMuonParamEnergyLoss |
|
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_accessTrackIsolation30
std::unique_ptr<AccessFloat> Prompt::DecoratePromptLeptonImproved::m_accessTrackIsolation30 |
|
private |
◆ m_accessTrackIsolation30TTVA
std::unique_ptr<AccessFloat> Prompt::DecoratePromptLeptonImproved::m_accessTrackIsolation30TTVA |
|
private |
◆ 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 195 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 200 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_floatMap
◆ 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 158 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 204 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_shortMap
◆ 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
JetConstituentVector::iterator iterator
virtual double phi() const
The azimuthal angle ( ) of the particle.
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
void decorateMuon(const xAOD::Muon &muon, const xAOD::JetContainer &trackJets, const xAOD::Vertex *primaryVertex)
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.
SG::AuxElement::ConstAccessor< float > AccessFloat
Gaudi::Property< double > m_vertexMinThetaEcapElec
Gaudi::Property< std::vector< std::string > > m_stringFloatVars
Gaudi::Property< double > m_vertexBarrEcapAbsEtaAt
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
__HOSTDEV__ double Phi_mpi_pi(double)
std::string PrintResetStopWatch(TStopwatch &watch)
std::unique_ptr< AccessFloat > m_accessCalIsolation30
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
Helper class to provide type-safe access to aux data.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
virtual double eta() const
The pseudorapidity ( ) of the particle.
void decorateAuxLepton(const xAOD::IParticle &particle, Prompt::VarHolder &vars)
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)
void getMuonAnpVariables(const xAOD::Muon &muon, Prompt::VarHolder &vars, const xAOD::Vertex *primaryVertex)
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
std::unique_ptr< AccessFloat > m_accessTrackIsolation30TTVA
std::unique_ptr< AccessFloat > m_accessMuonParamEnergyLoss
Gaudi::Property< std::string > m_inputVarDecoratePrefix
floatDecoratorMap m_floatMap
Gaudi::Property< bool > m_printTime
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
std::unique_ptr< AccessVertex > m_accessDeepSecondaryVertex
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.
std::unique_ptr< AccessFloat > m_accessMuonCalE
void getMutualVariables(const xAOD::IParticle &particle, const xAOD::Jet &track_jet, const xAOD::TrackParticle *track, Prompt::VarHolder &vars)
Gaudi::Property< double > m_maxLepTrackJetDR
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
std::unique_ptr< AccessFloat > m_accessTrackIsolation30
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
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Gaudi::Property< std::string > m_configPathOverride
DataObjIDColl m_extendedExtraObjects
std::vector< Float_t > m_varTMVA
shortDecoratorMap m_shortMap
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)
@ 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.
float accessIsolation(SG::AuxElement::ConstAccessor< float > &isoAccessor, const xAOD::IParticle &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
Gaudi::Property< std::string > m_configFileVersion
Gaudi::Property< double > m_vertexMinThetaBarrElec
double getVertexCosThetaWithLepDir(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex)
Gaudi::Property< double > m_vertexMinChiSquaredProb
virtual double pt() const
The transverse momentum ( ) of the particle.
double getVertexLongitudinalNormDist(const xAOD::IParticle &lepton, const xAOD::Vertex *secondaryVertex, const xAOD::Vertex *primaryVertex)
StatusCode initializeDecorators()
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ CandVertex_normDistToPriVtxLongitudinalBest_ThetaCutVtx
std::unique_ptr< Prompt::VarHolder > m_vars
bool match(std::string s1, std::string s2)
match the individual directories of two strings
std::string asStr(const uint32_t key, const double val)
void decorateElec(const xAOD::Electron &electron, const xAOD::JetContainer &trackJets, const xAOD::CaloClusterContainer &clusters, const xAOD::Vertex *primaryVertex)
SG::ReadHandleKey< xAOD::JetContainer > m_trackJetsKey
Gaudi::Property< std::string > m_leptonsName