|
ATLAS Offline Software
|
#include <BTaggingTruthTaggingTool.h>
|
| BTaggingTruthTaggingTool (const std::string &name) |
| Create a constructor for standalone usage. More...
|
|
StatusCode | CalculateResults (std::vector< float > &pt, std::vector< float > &eta, std::vector< int > &flav, std::vector< float > &tagw, Analysis::TruthTagResults &results, int rand_seed=-1) |
|
StatusCode | CalculateResults (const xAOD::JetContainer &jets, Analysis::TruthTagResults &results, int rand_seed=-1) |
|
StatusCode | CalculateResultsONNX (const std::vector< std::vector< float >> &node_feat, std::vector< float > &tagw, Analysis::TruthTagResults &results, int rand_seed=-1) |
|
StatusCode | CalculateResultsONNX (const xAOD::JetContainer &jets, const std::vector< std::vector< float >> &node_feat, Analysis::TruthTagResults &results, int rand_seed=-1) |
|
StatusCode | setEffMapIndex (const std::string &flavour, unsigned int index) |
| Declare the interface that the class provides. More...
|
|
void | setUseSystematics (bool useSystematics) |
|
virtual | ~BTaggingTruthTaggingTool () |
|
StatusCode | initialize () |
| Dummy implementation of the initialisation function. More...
|
|
CP::SystematicSet | affectingSystematics () const |
| the list of all systematics this tool can be affected by More...
|
|
StatusCode | applySystematicVariation (const CP::SystematicSet &systConfig) |
| effects: configure this tool for the given list of systematic variations. More...
|
|
CP::SystematicSet | recommendedSystematics () const |
| the list of all systematics this tool recommends to use More...
|
|
bool | isAffectedBySystematic (const CP::SystematicVariation &systematic) const |
| Declare the interface that this class provides. More...
|
|
virtual void | print () const |
| Print the state of the tool. 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 | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
StatusCode | CalculateResults (TRFinfo &trfinf, Analysis::TruthTagResults &results, int rand_seed=-1) |
|
StatusCode | setJets (TRFinfo &trfinf, std::vector< float > &pt, std::vector< float > &eta, std::vector< int > &flav, std::vector< float > &tagw) |
|
StatusCode | setJets (TRFinfo &trfinf, const xAOD::JetContainer &jets) |
|
StatusCode | setJets (TRFinfo &trfinf, std::vector< int > &flav, std::vector< Analysis::CalibrationDataVariables > *vars) |
|
StatusCode | setJets (TRFinfo &trfinf, const std::vector< std::vector< float >> &node_feat, std::vector< float > &tagw) |
|
StatusCode | setJets (TRFinfo &trfinf, const xAOD::JetContainer &jets, const std::vector< std::vector< float >> &node_feat) |
|
StatusCode | setJets (TRFinfo &trfinf, std::vector< int > &flav, const std::vector< Analysis::CalibrationDataVariables > *vars, const std::vector< std::vector< float >> &node_feat) |
|
StatusCode | GetTruthTagWeights (TRFinfo &trfinf, std::vector< float > &trf_weight_ex, std::vector< float > &trf_weight_in) |
|
StatusCode | getTagPermutation (TRFinfo &trfinf, std::vector< std::vector< bool > > &trf_chosen_perm_ex, std::vector< std::vector< bool > > &trf_chosen_perm_in) |
|
StatusCode | getQuantiles (TRFinfo &trfinf, std::vector< std::vector< int > > &trf_bin_ex, std::vector< std::vector< int > > &trf_bin_in) |
|
float | getEvtSF (TRFinfo &trfinf, std::vector< int > &quantiles) |
|
StatusCode | getDirectTaggedJets (TRFinfo &trfinf, std::vector< bool > &is_tagged) |
|
StatusCode | getTRFweight (TRFinfo &trfinf, unsigned int nbtag, bool isInclusive) |
|
StatusCode | getAllEffMC (TRFinfo &trfinf) |
|
StatusCode | getAllEffMCCDI (TRFinfo &trfinf) |
|
StatusCode | getAllEffMCGNN (TRFinfo &trfinf) |
|
StatusCode | getAllEffSF (TRFinfo &trfinf, int=0) |
|
int | jetFlavourLabel (const xAOD::Jet &jet) |
|
int | GAFinalHadronFlavourLabel (const xAOD::Jet &jet) |
|
int | ExclusiveConeHadronFlavourLabel (const xAOD::Jet &jet) |
|
std::vector< std::string > | split (const std::string &str, char token) |
|
StatusCode | check_syst_range (unsigned int sys) |
|
std::vector< std::vector< bool > > | generatePermutations (int njets, int tags, int start=0) |
|
float | trfWeight (TRFinfo &trfinf, const std::vector< bool > &tags) |
|
StatusCode | chooseAllTagPermutation (TRFinfo &trfinf, unsigned int nbtag) |
|
StatusCode | chooseTagPermutation (TRFinfo &trfinf, unsigned int nbtag, bool isIncl) |
|
StatusCode | chooseAllTagBins (TRFinfo &trfinf) |
|
StatusCode | chooseTagBins_cum (TRFinfo &trfinf, std::vector< bool > &tagconf, bool isIncl, unsigned int nbtag) |
|
StatusCode | generateRandomTaggerScores (std::vector< std::vector< int > > &quantiles, std::vector< std::vector< float > > &btag_scores, std::vector< std::vector< float > > &ctag_scores) |
|
float | getTagBinsConfProb (TRFinfo &trfinf, std::vector< int > &tagws) |
|
StatusCode | fillVariables (const xAOD::Jet &jet, Analysis::CalibrationDataVariables &x) |
|
StatusCode | fillVariables (const float jetPt, const float jetEta, const float jetTagWeight, Analysis::CalibrationDataVariables &x) |
|
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...
|
|
◆ StoreGateSvc_t
◆ NjetsTagStrategy
will be set according to m_taggingStrategy
Enumerator |
---|
AllJets | |
Leading2SignalJets | |
Leading3SignalJets | |
Definition at line 259 of file BTaggingTruthTaggingTool.h.
◆ BTaggingTruthTaggingTool()
BTaggingTruthTaggingTool::BTaggingTruthTaggingTool |
( |
const std::string & |
name | ) |
|
Create a constructor for standalone usage.
Definition at line 39 of file BTaggingTruthTaggingTool.cxx.
41 m_effTool (
"BTaggingEfficiencyTool/effTool",
this),
42 m_selTool (
"BTaggingSelectionTool/selTool",
this)
49 declareProperty(
"UsePermutations",
m_usePerm=
true,
"if the chosen permutation is used, a reweighting is applied to the TRF weight for systematics");
50 declareProperty(
"UseQuantile",
m_useQuntile=
true,
"if the chosen quantile is used, a reweighting is applied to the TRF weight for systematics");
51 declareProperty(
"UseSystematics",
m_useSys=
false,
"will the results contain all systematic variations, or just the nominal");
61 declareProperty(
"OperatingPoint",
m_OP=
"FixedCutBEff_77",
"operating point as specified in CDI file");
63 declareProperty(
"ScaleFactorFileName",
m_SFFile =
"xAODBTaggingEfficiency/13TeV/2016-20_7-13TeV-MC15-CDI-July12_v1.root",
"name of the official scale factor calibration CDI file (uses PathResolver)");
64 declareProperty(
"UseDevelopmentFile",
m_useDevFile =
false,
"specify whether or not to use the (PathResolver) area for temporary scale factor calibration CDI files");
68 declareProperty(
"ScaleFactorTCalibration",
m_SFTName =
"default",
"name of tau-jet scale factor calibration object");
70 declareProperty(
"EigenvectorReductionB",
m_EVReductionB =
"Loose",
"b-jet scale factor Eigenvector reduction strategy; choose between 'Loose', 'Medium', 'Tight'");
71 declareProperty(
"EigenvectorReductionC",
m_EVReductionC =
"Loose",
"c-jet scale factor Eigenvector reduction strategy; choose between 'Loose', 'Medium', 'Tight'");
72 declareProperty(
"EigenvectorReductionLight",
m_EVReductionLight =
"Loose",
"light-flavour jet scale factor Eigenvector reduction strategy; choose between 'Loose', 'Medium', 'Tight'");
73 declareProperty(
"EfficiencyBCalibrations",
m_EffBName =
"default",
"(semicolon-separated) name(s) of b-jet efficiency object(s)");
74 declareProperty(
"EfficiencyCCalibrations",
m_EffCName =
"default",
"(semicolon-separated) name(s) of c-jet efficiency object(s)");
75 declareProperty(
"EfficiencyTCalibrations",
m_EffTName =
"default",
"(semicolon-separated) name(s) of tau-jet efficiency object(s)");
76 declareProperty(
"EfficiencyLightCalibrations",
m_EffLightName =
"default",
"(semicolon-separated) name(s) of light-flavour-jet efficiency object(s)");
77 declareProperty(
"ExcludeFromEigenVectorTreatment",
m_excludeFromEV =
"",
"(semicolon-separated) names of uncertainties to be excluded from eigenvector decomposition (if used)");
78 declareProperty(
"SystematicsStrategy",
m_systStrategy =
"SFEigen",
"name of systematics model; presently choose between 'SFEigen' and 'Envelope'");
79 declareProperty(
"ConeFlavourLabel",
m_coneFlavourLabel =
true,
"specify whether or not to use the cone-based flavour labelling instead of the default ghost association based labelling");
80 declareProperty(
"CutBenchmark",
m_cutBenchmark =
"1,2",
"if you want to run in continuous you need to fix a benchmark - it does something only if running in Continuous OP");
81 declareProperty(
"ExcludeSpecificEigens",
m_excludeEV =
"" ,
"(semicolon-separated) names of Eigens you want to exclude. in case of continuous some eigenvectors can be ignored to make the computation faster");
82 declareProperty(
"StoreOnlyUpVariations",
m_doOnlyUpVariations =
false ,
"If set to true it processes only the __1up b-tagging variations. It speeds up the computation in case of symmetric variations.");
83 declareProperty(
"doDirectTagging",
m_doDirectTag =
false ,
"If set to true it also computes and stores the direct tagging choice and the related SFs for each jet");
86 declareProperty(
"TaggingStrategy",
m_taggingStrategy =
"AllJets",
"tagging strategy in the Analysis (eg. 'leading2SignalJets' in boosted VHbb). Required to do TT with GNN");
◆ ~BTaggingTruthTaggingTool()
BTaggingTruthTaggingTool::~BTaggingTruthTaggingTool |
( |
| ) |
|
|
virtual |
◆ affectingSystematics()
SystematicSet BTaggingTruthTaggingTool::affectingSystematics |
( |
| ) |
const |
|
virtual |
◆ applySystematicVariation()
effects: configure this tool for the given list of systematic variations.
any requested systematics that are not affecting this tool will be silently ignored (unless they cause other errors). failures: systematic unknown failures: requesting multiple variations on the same systematic (e.g. up & down) failures: requesting an unsupported variation on an otherwise supported systematic (e.g. a 2 sigma variation and the tool only supports 1 sigma variations) failures: unsupported combination of supported systematic failures: other tool specific errors
Implements CP::ISystematicsTool.
Definition at line 104 of file BTaggingTruthTaggingTool.cxx.
106 for (
auto syst : systConfig) {
108 ATH_MSG_WARNING(
"applySystematicVariation was called for " << syst.name() <<
" but BTaggingTruthTaggingTool does not apply Systematic Variations");
111 return StatusCode::SUCCESS;
◆ CalculateResults() [1/3]
◆ CalculateResults() [2/3]
StatusCode BTaggingTruthTaggingTool::CalculateResults |
( |
std::vector< float > & |
pt, |
|
|
std::vector< float > & |
eta, |
|
|
std::vector< int > & |
flav, |
|
|
std::vector< float > & |
tagw, |
|
|
Analysis::TruthTagResults & |
results, |
|
|
int |
rand_seed = -1 |
|
) |
| |
|
virtual |
◆ CalculateResults() [3/3]
Definition at line 477 of file BTaggingTruthTaggingTool.cxx.
482 trfinf.rand.SetSeed(rand_seed);
485 std::vector<float> trf_weight_ex, trf_weight_in;
487 trf_weight_ex.clear();
488 trf_weight_in.clear();
509 for(
unsigned int sys = 0;
sys < n_systs; ++
sys){
524 std::vector<int> is_tagged;
526 is_tagged.push_back(
static_cast<int>(
t));
533 for(
unsigned int ntj=0; ntj< trfinf.trfw_ex.size(); ntj++){
534 if(ntj > trfinf.njets) {
537 ATH_MSG_DEBUG(
"number of jets: " <<trfinf.njets <<
" less than max btag: " <<
m_nbtag <<
". Return BTag SF = 1. Consider applying an event pre-selection if this happens too often.");
554 return StatusCode::SUCCESS;
◆ CalculateResultsONNX() [1/2]
StatusCode BTaggingTruthTaggingTool::CalculateResultsONNX |
( |
const std::vector< std::vector< float >> & |
node_feat, |
|
|
std::vector< float > & |
tagw, |
|
|
Analysis::TruthTagResults & |
results, |
|
|
int |
rand_seed = -1 |
|
) |
| |
|
virtual |
◆ CalculateResultsONNX() [2/2]
◆ check_syst_range()
StatusCode BTaggingTruthTaggingTool::check_syst_range |
( |
unsigned int |
sys | ) |
|
|
private |
◆ chooseAllTagBins()
StatusCode BTaggingTruthTaggingTool::chooseAllTagBins |
( |
TRFinfo & |
trfinf | ) |
|
|
private |
Definition at line 920 of file BTaggingTruthTaggingTool.cxx.
922 trfinf.tbins_ex.clear();
923 trfinf.tbins_in.clear();
924 trfinf.tbins_ex.resize( trfinf.trfw_ex.size());
925 trfinf.tbins_in.resize( trfinf.trfw_in.size());
927 trfinf.binsprob_ex.clear();
928 trfinf.binsprob_in.clear();
929 trfinf.binsprob_ex.resize( trfinf.trfw_ex.size());
930 trfinf.binsprob_in.resize( trfinf.trfw_in.size());
932 if(trfinf.perm_ex.size() != trfinf.perm_in.size())
ATH_MSG_WARNING(
"Different sizes in exclusive and inclusive permutation choices");
934 for(
unsigned int nb=0;
nb<trfinf.perm_ex.size();
nb++) {
938 return StatusCode::SUCCESS;
◆ chooseAllTagPermutation()
StatusCode BTaggingTruthTaggingTool::chooseAllTagPermutation |
( |
TRFinfo & |
trfinf, |
|
|
unsigned int |
nbtag |
|
) |
| |
|
private |
Definition at line 825 of file BTaggingTruthTaggingTool.cxx.
830 return StatusCode::FAILURE;
833 unsigned int njets = trfinf.njets;
834 unsigned int limit = (njets > 7) ? 8 : njets+1;
835 unsigned int max = (njets < nbtag+1) ?
limit : nbtag+1;
837 trfinf.perm_ex.clear(), trfinf.perm_ex.resize(nbtag+1);
838 trfinf.perm_in.clear(), trfinf.perm_in.resize(nbtag+1);
840 trfinf.permprob_ex.clear(), trfinf.permprob_ex.resize(nbtag+1);
841 trfinf.permprob_in.clear(), trfinf.permprob_in.resize(nbtag+1);
843 for(
unsigned int i=0;
i<
max;
i++) {
848 return StatusCode::SUCCESS;
◆ chooseTagBins_cum()
StatusCode BTaggingTruthTaggingTool::chooseTagBins_cum |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< bool > & |
tagconf, |
|
|
bool |
isIncl, |
|
|
unsigned int |
nbtag |
|
) |
| |
|
private |
Definition at line 942 of file BTaggingTruthTaggingTool.cxx.
943 std::vector<int> btagops;
947 std::vector<float> incl;
948 std::vector<float> untagged_bins;
954 untagged_bins.push_back(
bin);
960 for(
unsigned int j=0; j<tagconf.size(); j++) {
968 sum += trfinf.effMC_allBins[tagged_bin][j];
972 float theX = trfinf.rand.Uniform(
sum);
973 auto tag_index = std::lower_bound(incl.begin(), incl.end(), theX) - incl.begin();
975 btagops.push_back(tbin_choice);
976 prob *= (trfinf.effMC_allBins[tbin_choice][j]);
977 ATH_MSG_DEBUG(
"it " <<tag_index <<
" theX " <<theX <<
" effMC " <<trfinf.effMC_allBins[tbin_choice][j] <<
" prob* " <<
prob);
980 float untag_sum = 0. ;
983 for(
auto bin : untagged_bins){
984 untag_sum += trfinf.effMC_allBins[
bin][j];
985 incl.push_back(untag_sum);
988 float theX = trfinf.rand.Uniform(untag_sum);
989 auto untag_index = std::lower_bound(incl.begin(), incl.end(), theX) - incl.begin();
990 float utbin_choice = untagged_bins[untag_index];
991 btagops.push_back(utbin_choice);
992 prob *= 1 - trfinf.effMC_allBins[utbin_choice][j];
993 ATH_MSG_DEBUG(
" unt_bin " <<untag_index <<
" theX " <<theX<<
" 1-effMC " <<1-trfinf.effMC_allBins[utbin_choice][j] <<
" prob* " <<
prob);
997 if(btagops.size() != tagconf.size()) {
998 ATH_MSG_ERROR(
"You should not be here -> wrong size of tag bins vector. btagops: " <<btagops.size() <<
" tagconf: " <<tagconf.size());
999 return StatusCode::FAILURE;
1002 trfinf.tbins_in.at(nbtag) = btagops;
1003 trfinf.binsprob_in.at(nbtag) =
prob;
1007 trfinf.tbins_ex.at(nbtag) = btagops;
1008 trfinf.binsprob_ex.at(nbtag) =
prob;
1011 return StatusCode::SUCCESS;
◆ chooseTagPermutation()
StatusCode BTaggingTruthTaggingTool::chooseTagPermutation |
( |
TRFinfo & |
trfinf, |
|
|
unsigned int |
nbtag, |
|
|
bool |
isIncl |
|
) |
| |
|
private |
Definition at line 851 of file BTaggingTruthTaggingTool.cxx.
852 std::vector<float> incl;
853 std::vector<std::pair<unsigned int, unsigned int> > trackPerm;
856 for(
unsigned int itag=nbtag; itag < trfinf.permsWeight.size(); itag++) {
857 for(
unsigned int ip = 0;
ip < trfinf.permsWeight.at(itag).
size();
ip++) {
858 sum += trfinf.permsWeight.at(itag).at(
ip);
860 trackPerm.push_back(std::make_pair(itag,
ip));
865 sum = trfinf.permsSumWeight.at(nbtag).back();
866 incl = trfinf.permsSumWeight.at(nbtag);
867 for(
unsigned int ip = 0;
ip < trfinf.permsSumWeight.at(nbtag).
size();
ip++) trackPerm.push_back(std::make_pair(nbtag,
ip));
869 float theX = trfinf.rand.Uniform(
sum);
870 for(
unsigned int ip=0;
ip < incl.size();
ip++) {
872 if(incl.at(
ip) >= theX) {
874 trfinf.perm_in.at(nbtag) = trfinf.perms[trfinf.njets].at(trackPerm.at(
ip).first).at(trackPerm.at(
ip).second);
875 trfinf.permprob_in.at(nbtag) = trfinf.permsWeight.at(trackPerm.at(
ip).first).at(trackPerm.at(
ip).second) / trfinf.trfw_in.at(nbtag);
878 trfinf.perm_ex.at(nbtag) = trfinf.perms[trfinf.njets].at(trackPerm.at(
ip).first).at(trackPerm.at(
ip).second);
879 trfinf.permprob_ex.at(nbtag) = trfinf.permsWeight.at(trackPerm.at(
ip).first).at(trackPerm.at(
ip).second) / trfinf.trfw_ex.at(nbtag);
881 return StatusCode::SUCCESS;
884 return StatusCode::SUCCESS;
◆ 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]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ ExclusiveConeHadronFlavourLabel()
int BTaggingTruthTaggingTool::ExclusiveConeHadronFlavourLabel |
( |
const xAOD::Jet & |
jet | ) |
|
|
private |
◆ 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
◆ fillVariables() [1/2]
◆ fillVariables() [2/2]
Definition at line 433 of file BTaggingTruthTaggingTool.cxx.
435 x.jetEta =
jet.eta();
439 if (!tagInfo)
return StatusCode::FAILURE;
442 if(!(
code==CorrectionCode::Ok ||
code==CorrectionCode::OutOfValidityRange)){
443 ATH_MSG_ERROR(
"BTaggingSelectionTool::getTaggerWeight returned CorrectionCode::Error");
444 return StatusCode::FAILURE;
447 return StatusCode::SUCCESS;
◆ GAFinalHadronFlavourLabel()
int BTaggingTruthTaggingTool::GAFinalHadronFlavourLabel |
( |
const xAOD::Jet & |
jet | ) |
|
|
private |
Definition at line 1115 of file BTaggingTruthTaggingTool.cxx.
1117 const std::string labelB =
"GhostBHadronsFinal";
1118 const std::string labelC =
"GhostCHadronsFinal";
1119 const std::string labelTau =
"GhostTausFinal";
1121 std::vector<const IParticle*> ghostB;
1122 if (
jet.getAssociatedObjects<
IParticle>(labelB, ghostB) && ghostB.size() > 0)
return 5;
1123 std::vector<const IParticle*> ghostC;
1124 if (
jet.getAssociatedObjects<
IParticle>(labelC, ghostC) && ghostC.size() > 0)
return 4;
1125 std::vector<const IParticle*> ghostTau;
1126 if (
jet.getAssociatedObjects<
IParticle>(labelTau, ghostTau) && ghostTau.size() > 0)
return 15;
◆ generatePermutations()
std::vector< std::vector< bool > > BTaggingTruthTaggingTool::generatePermutations |
( |
int |
njets, |
|
|
int |
tags, |
|
|
int |
start = 0 |
|
) |
| |
|
private |
Definition at line 680 of file BTaggingTruthTaggingTool.cxx.
681 std::vector<std::vector<bool> > perm;
682 std::vector<std::vector<bool> > temp_perm;
684 std::vector<bool>
tags(njets,
false);
685 perm.push_back(
tags);
687 else if(
tags == njets) {
688 std::vector<bool>
tags(njets,
true);
689 perm.push_back(
tags);
694 for(
unsigned int j=0; j<temp_perm.size(); j++){
695 temp_perm.at(j).at(
i)=
true;
696 perm.push_back(temp_perm.at(j));
◆ generateRandomTaggerScores()
StatusCode BTaggingTruthTaggingTool::generateRandomTaggerScores |
( |
std::vector< std::vector< int > > & |
quantiles, |
|
|
std::vector< std::vector< float > > & |
btag_scores, |
|
|
std::vector< std::vector< float > > & |
ctag_scores |
|
) |
| |
|
private |
Definition at line 1169 of file BTaggingTruthTaggingTool.cxx.
1173 btag_scores.clear();
1174 btag_scores.resize(quantiles.size());
1177 ctag_scores.clear();
1178 ctag_scores.resize(quantiles.size());
1181 for(
unsigned int i=0;
i <quantiles.size();
i++ ){
1183 btag_scores.at(
i).resize(quantiles.at(
i).size());
1185 ctag_scores.at(
i).resize(quantiles.at(
i).size());
1187 unsigned int njets = quantiles.at(
i).size();
1188 for(
unsigned int j=0; j < njets; j++ ){
1190 int temp_quantile = (
m_continuous2D) ? quantiles.at(
i).at(j) : quantiles.at(
i).at(j) -1;
1192 float btag_low =
m_cuts[temp_quantile].bcut_low;
1193 float btag_hig =
m_cuts[temp_quantile].bcut_hig;
1195 float ctag_low =
m_cuts[temp_quantile].ccut_low;
1196 float ctag_hig =
m_cuts[temp_quantile].ccut_hig;
1198 btag_scores.at(
i).at(j) = btag_low + random.Uniform()*(btag_hig - btag_low );
1200 ctag_scores.at(
i).at(j) = ctag_low + random.Uniform()*(ctag_hig - ctag_low );
1203 return StatusCode::SUCCESS;
◆ getAllEffMC()
StatusCode BTaggingTruthTaggingTool::getAllEffMC |
( |
TRFinfo & |
trfinf | ) |
|
|
private |
◆ getAllEffMCCDI()
StatusCode BTaggingTruthTaggingTool::getAllEffMCCDI |
( |
TRFinfo & |
trfinf | ) |
|
|
private |
Definition at line 648 of file BTaggingTruthTaggingTool.cxx.
652 trfinf.effMC_allBins[
bin].clear();
654 for(
size_t jet=0;
jet < trfinf.jets.size();
jet++){
660 trfinf.jets.at(
jet).vars.jetTagWeight =
bin+0.5;
664 ATH_MSG_DEBUG(
"effMC_allBins: tag bin: " <<
bin <<
" tagw: " << trfinf.jets.at(
jet).vars.jetTagWeight <<
" " <<
m_cuts[
bin].bcut_low <<
" " <<
m_cuts[
bin].bcut_hig <<
" " <<trfinf.jets.at(
jet).vars.jetPt <<
" " <<trfinf.jets.at(
jet).vars.jetEta <<
" " <<trfinf.jets.at(
jet).flav);
667 if(!(
code==CorrectionCode::Ok ||
code==CorrectionCode::OutOfValidityRange)){
668 ATH_MSG_ERROR(
"BTaggingEfficiencyTool::getMCEfficiency returned CorrectionCode::Error");
669 return StatusCode::FAILURE;
672 trfinf.effMC_allBins[
bin].push_back(eff_all);
673 ATH_MSG_DEBUG(
"effMC_allBins: tag bin: " <<
bin <<
" tagw: " << trfinf.jets.at(
jet).vars.jetTagWeight <<
" eff: " <<eff_all);
677 return StatusCode::SUCCESS;
◆ getAllEffMCGNN()
StatusCode BTaggingTruthTaggingTool::getAllEffMCGNN |
( |
TRFinfo & |
trfinf | ) |
|
|
private |
Definition at line 613 of file BTaggingTruthTaggingTool.cxx.
616 trfinf.effMC_allBins[
bin].clear();
619 std::vector<std::vector<float>> tmp_effMC_allBins;
622 if(!(
code==CorrectionCode::Ok ||
code==CorrectionCode::OutOfValidityRange)){
623 ATH_MSG_ERROR(
"BTaggingEfficiencyTool::getMCEfficiencyONNX returned CorrectionCode::Error");
624 return StatusCode::FAILURE;
630 std::vector<float> tmp_effMC_oneBin;
631 for (
unsigned int jet_index=0; jet_index<trfinf.njets; jet_index++){
632 tmp_effMC_oneBin.push_back(tmp_effMC_allBins[jet_index][
bin]);
634 trfinf.effMC_allBins[
bin] = tmp_effMC_oneBin;
638 for (
unsigned int jet_index=0; jet_index<trfinf.njets; jet_index++){
640 trfinf.effMC_allBins[0].push_back(1-tmp_effMC);
641 trfinf.effMC_allBins[1].push_back(tmp_effMC);
645 return StatusCode::SUCCESS;
◆ getAllEffSF()
StatusCode BTaggingTruthTaggingTool::getAllEffSF |
( |
TRFinfo & |
trfinf, |
|
|
int |
= 0 |
|
) |
| |
|
private |
◆ getDirectTaggedJets()
StatusCode BTaggingTruthTaggingTool::getDirectTaggedJets |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< bool > & |
is_tagged |
|
) |
| |
|
private |
Definition at line 1035 of file BTaggingTruthTaggingTool.cxx.
1037 std::vector<int> appo;
1038 auto is_jettag =
false;
1039 for(
const auto &
jet : trfinf.jets) {
1040 ATH_MSG_DEBUG(
"pt " <<
jet.vars.jetPt <<
" eta " <<
jet.vars.jetEta <<
" wei " <<
jet.vars.jetTagWeight);
1044 if(is_jettag) is_tagged.push_back(1);
1045 else is_tagged.push_back(0);
1048 return StatusCode::SUCCESS;
◆ getEvtSF()
float BTaggingTruthTaggingTool::getEvtSF |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< int > & |
quantiles |
|
) |
| |
|
private |
Definition at line 1052 of file BTaggingTruthTaggingTool.cxx.
1059 for(
unsigned int i =0;
i< trfinf.njets;
i++) {
1064 bool is_btagged = quantiles.at(
i);
1067 if(!(
code==CorrectionCode::Ok ||
code==CorrectionCode::OutOfValidityRange)){
1068 ATH_MSG_ERROR(
"BTaggingEfficiencyTool::getScaleFactor returned CorrectionCode::Error");
1073 int bin = quantiles.at(
i);
1079 if(!(
code==CorrectionCode::Ok ||
code==CorrectionCode::OutOfValidityRange)){
1080 ATH_MSG_ERROR(
"BTaggingEfficiencyTool::getScaleFactor returned CorrectionCode::Error");
1083 ATH_MSG_DEBUG(
"BIN " <<
bin <<
"SF: pt " <<trfinf.jets.at(
i).vars.jetPt <<
" " <<trfinf.jets.at(
i).vars.jetEta <<
" " <<trfinf.jets.at(
i).vars.jetTagWeight <<
" jetSF " <<jetSF);
◆ getKey()
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getName
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The hashed key of the object in the store. If not found, an invalid (zero) key.
Definition at line 119 of file AsgTool.cxx.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ getName()
const std::string & asg::AsgTool::getName |
( |
const void * |
ptr | ) |
const |
|
inherited |
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
- See also
- asg::AsgTool::getKey
- Parameters
-
ptr | The bare pointer to the object that the event store should know about |
- Returns
- The string name of the object in the store. If not found, an empty string.
Definition at line 106 of file AsgTool.cxx.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getQuantiles()
StatusCode BTaggingTruthTaggingTool::getQuantiles |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< std::vector< int > > & |
trf_bin_ex, |
|
|
std::vector< std::vector< int > > & |
trf_bin_in |
|
) |
| |
|
private |
Definition at line 900 of file BTaggingTruthTaggingTool.cxx.
901 trf_bin_ex.resize(trfinf.tbins_ex.size());
902 for(
unsigned int i =0;
i<trfinf.tbins_ex.size();
i++)
903 trf_bin_ex.at(
i).resize(trfinf.tbins_ex.at(
i).size());
905 trf_bin_in.resize(trfinf.tbins_in.size());
906 for(
unsigned int i =0;
i<trfinf.tbins_in.size();
i++)
907 trf_bin_in.at(
i).resize(trfinf.tbins_in.at(
i).size());
909 for(
unsigned int i =0;
i<trfinf.tbins_ex.size();
i++)
910 for(
unsigned int j=0; j<trfinf.tbins_ex.at(
i).
size(); j++)
913 for(
unsigned int i =0;
i<trfinf.tbins_in.size();
i++)
914 for(
unsigned int j=0; j<trfinf.tbins_in.at(
i).size(); j++)
917 return StatusCode::SUCCESS;
◆ getTagBinsConfProb()
float BTaggingTruthTaggingTool::getTagBinsConfProb |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< int > & |
tagws |
|
) |
| |
|
private |
Definition at line 1014 of file BTaggingTruthTaggingTool.cxx.
1016 for(
unsigned int j=0; j<tagws.size(); j++) {
1021 sum_tag += trfinf.effMC_allBins[
bin][j];
1024 prob *= (trfinf.effMC_allBins[tagws.at(j)][j]) / sum_tag;
1028 prob *= (1 - trfinf.effMC_allBins[tagws.at(j)][j]) / (1 - sum_tag);
◆ getTagPermutation()
StatusCode BTaggingTruthTaggingTool::getTagPermutation |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< std::vector< bool > > & |
trf_chosen_perm_ex, |
|
|
std::vector< std::vector< bool > > & |
trf_chosen_perm_in |
|
) |
| |
|
private |
Definition at line 808 of file BTaggingTruthTaggingTool.cxx.
809 trf_chosen_perm_ex.resize(
m_nbtag+1);
810 trf_chosen_perm_in.resize(
m_nbtag+1);
811 trf_chosen_perm_ex = trfinf.perm_ex;
812 trf_chosen_perm_in = trfinf.perm_in;
813 std::string print_perm =
"Permutation: ";
814 for(
const auto& perm: trfinf.perm_ex){
822 return StatusCode::SUCCESS;
◆ getTRFweight()
StatusCode BTaggingTruthTaggingTool::getTRFweight |
( |
TRFinfo & |
trfinf, |
|
|
unsigned int |
nbtag, |
|
|
bool |
isInclusive |
|
) |
| |
|
private |
Definition at line 728 of file BTaggingTruthTaggingTool.cxx.
730 unsigned int njets = trfinf.njets;
732 unsigned int limit = (njets > 7) ? 8 : njets+1;
735 auto& perm = trfinf.perms[njets];
741 trfinf.permsWeight.clear(), trfinf.permsWeight.resize(
limit);
742 trfinf.permsSumWeight.clear(), trfinf.permsSumWeight.resize(
limit);
745 unsigned int max = nbtag+1;
746 trfinf.trfw_ex.clear(), trfinf.trfw_in.clear();
747 trfinf.trfw_ex.resize(
max), trfinf.trfw_in.resize(
max);
750 trfinf.perm_ex.clear(), trfinf.perm_in.clear();
751 trfinf.perm_ex.resize(
max), trfinf.perm_in.resize(
max);
752 trfinf.permprob_ex.clear(), trfinf.permprob_in.clear();
753 trfinf.permprob_ex.resize(
max), trfinf.permprob_in.resize(
max);
756 for(
unsigned int i=0;
i<
limit;
i++) {
760 trfinf.permsWeight.at(
i).clear();
761 trfinf.permsSumWeight.at(
i).clear();
762 trfinf.permsWeight.at(
i).resize(trfinf.perms[njets].at(
i).size());
763 trfinf.permsSumWeight.at(
i).resize(trfinf.perms[njets].at(
i).size());
766 for(
unsigned int p=0;
p<trfinf.perms[njets].at(
i).
size();
p++) {
770 trfinf.permsWeight.at(
i).at(
p) =
w;
771 trfinf.permsSumWeight.at(
i).at(
p) =
sum;
777 trfinf.trfw_ex.at(
i) =
sum;
778 if(
i == 0) trfinf.trfw_in.at(0) = 1.;
779 else trfinf.trfw_in.at(
i) = trfinf.trfw_in.at(
i-1) - trfinf.trfw_ex.at(
i-1);
780 ATH_MSG_DEBUG(
"i = " <<
i <<
" sum = " <<
sum <<
" TRF in " << trfinf.trfw_in.at(
i) <<
" ex = " << trfinf.trfw_ex.at(
i));
783 ATH_MSG_DEBUG(
"before return, nbtag = " << nbtag <<
" size de trfinf.trfw_in = " << trfinf.trfw_in.size());
784 return StatusCode::SUCCESS;
788 float sum = 0.,
w = 0.;
789 size_t size = trfinf.perms[njets].at(nbtag).size();
790 trfinf.permsWeight.at(nbtag).clear();
791 trfinf.permsSumWeight.at(nbtag).clear();
792 trfinf.permsWeight.at(nbtag).resize(
size);
793 trfinf.permsSumWeight.at(nbtag).resize(
size);
795 for(
unsigned int p=0;
p<trfinf.perms[njets].at(nbtag).
size();
p++) {
796 w =
trfWeight(trfinf,trfinf.perms[njets].at(nbtag).at(
p));
798 trfinf.permsWeight.at(nbtag).at(
p) =
w;
799 trfinf.permsSumWeight.at(nbtag).at(
p) =
sum;
801 trfinf.trfw_ex.at(nbtag) =
sum;
802 return StatusCode::SUCCESS;
804 return StatusCode::SUCCESS;
◆ GetTruthTagWeights()
StatusCode BTaggingTruthTaggingTool::GetTruthTagWeights |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< float > & |
trf_weight_ex, |
|
|
std::vector< float > & |
trf_weight_in |
|
) |
| |
|
private |
Definition at line 458 of file BTaggingTruthTaggingTool.cxx.
471 trf_weight_ex = trfinf.trfw_ex;
472 trf_weight_in = trfinf.trfw_in;
473 return StatusCode::SUCCESS;
◆ initialize()
StatusCode BTaggingTruthTaggingTool::initialize |
( |
| ) |
|
|
virtual |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented from asg::AsgTool.
Definition at line 124 of file BTaggingTruthTaggingTool.cxx.
165 if(
m_OP.find(
"Continuous") != std::string::npos){
168 if(
m_OP.find(
"Continuous2D") != std::string::npos)
173 for (
const auto & tag_bin : tag_benchmarks ){
186 ATH_MSG_ERROR(
"UseQuantile is available only in Continuous WP. Please consider switching the Operating Point.");
187 return StatusCode::FAILURE;
202 std::vector<std::string> excludeEV_vector;
206 for (
const auto & syst : systs) {
208 string s = syst.name();
210 if(std::any_of(excludeEV_vector.begin(), excludeEV_vector.end(), [&
s](
const std::string&
str) { return str.find(s) != std::string::npos; }))
continue;
213 ATH_MSG_INFO(
"Adding systematic " << syst.name() <<
"to the list ");
215 ATH_MSG_DEBUG(
"Adding systematic " << syst.name() <<
"to the list ");
225 m_inf = TFile::Open(pathtofile,
"read");
227 float min_cut_low = (
m_taggerName ==
"MV2c10") ? -1 : -20;
228 float max_cut_hig = (
m_taggerName ==
"MV2c10") ? +1 : +20;
230 if(
m_OP ==
"Continuous"){
231 std::vector<float> bin_edges;
232 bin_edges.push_back(min_cut_low);
235 float cutval = ((TVector*)
m_inf->Get(cutname))[0](0);
236 bin_edges.push_back(cutval);
238 bin_edges.push_back(max_cut_hig);
239 for (
unsigned int be = 0 ;
be < bin_edges.size()-1 ;
be++){
243 TagBin one_cut = TagBin(is_tagbin, bin_edges.at(
be), bin_edges.at(
be+1));
244 m_cuts.push_back(one_cut);
247 else if (
m_OP.find(
"Continuous2D") != std::string::npos){
248 ATH_MSG_INFO(
"TruthTagging initialization: Working with Continuous2D WP.");
250 TMatrixD* cuts2D = (TMatrixD*)
m_inf->Get(cutname);
253 for (
int bin = 0;
bin < cuts2D->GetNrows();
bin++){
255 <<(*cuts2D)(
bin,1) <<
" b-cuts : "
256 <<(*cuts2D)(
bin,2) <<
" "
264 float c_tagcut_low = ((*cuts2D)(
bin,0) < min_cut_low) ? min_cut_low : (*cuts2D)(
bin,0);
265 float c_tagcut_hig = ((*cuts2D)(
bin,1) > max_cut_hig) ? max_cut_hig : (*cuts2D)(
bin,1);
266 float b_tagcut_low = ((*cuts2D)(
bin,2) < min_cut_low) ? min_cut_low : (*cuts2D)(
bin,2);
267 float b_tagcut_hig = ((*cuts2D)(
bin,3) > max_cut_hig) ? max_cut_hig : (*cuts2D)(
bin,3);
269 TagBin one_cut = TagBin(is_tagbin, b_tagcut_low, b_tagcut_hig, c_tagcut_low, c_tagcut_hig);
270 m_cuts.push_back(one_cut);
275 float cutval = ((TVector*)
m_inf->Get(cutname))[0](0);
277 TagBin untag_bin = TagBin(
false, min_cut_low, cutval);
278 TagBin tag_bin = TagBin(
true, cutval, max_cut_hig);
280 m_cuts.push_back(untag_bin);
281 m_cuts.push_back(tag_bin);
286 ATH_MSG_INFO(
"b-tag low: " <<
c.bcut_low <<
" b-tag hig: " <<
c.bcut_hig <<
" c-tag low: " <<
c.ccut_low <<
" c-tag hig: " <<
c.ccut_hig <<
" Added to tag bins: " <<
c.is_tagbin);
303 return StatusCode::FAILURE;
306 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.
◆ isAffectedBySystematic()
◆ jetFlavourLabel()
int BTaggingTruthTaggingTool::jetFlavourLabel |
( |
const xAOD::Jet & |
jet | ) |
|
|
private |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msg_level_name()
const std::string & asg::AsgTool::msg_level_name |
( |
| ) |
const |
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
MSG::name( msg().level() )
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
- Returns
- The string name of the current minimum message level that's printed
Definition at line 101 of file AsgTool.cxx.
◆ 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.
◆ print()
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ recommendedSystematics()
SystematicSet BTaggingTruthTaggingTool::recommendedSystematics |
( |
| ) |
const |
|
virtual |
◆ renounce()
◆ renounceArray()
◆ setEffMapIndex()
StatusCode BTaggingTruthTaggingTool::setEffMapIndex |
( |
const std::string & |
flavour, |
|
|
unsigned int |
index |
|
) |
| |
|
virtual |
◆ setJets() [1/6]
StatusCode BTaggingTruthTaggingTool::setJets |
( |
TRFinfo & |
trfinf, |
|
|
const std::vector< std::vector< float >> & |
node_feat, |
|
|
std::vector< float > & |
tagw |
|
) |
| |
|
private |
Definition at line 364 of file BTaggingTruthTaggingTool.cxx.
366 if(node_feat.size()!=tagw.size()){
367 ATH_MSG_ERROR(
"Vectors of node_feat (outer axis) and tagw should have same size" );
368 return StatusCode::FAILURE;
371 std::vector<int> flav;
372 std::vector<Analysis::CalibrationDataVariables>* vars =
new std::vector<Analysis::CalibrationDataVariables>(0);
373 for(
unsigned int i =0;
i<tagw.size();
i++){
377 float pt = node_feat.at(
i)[1];
378 float eta = node_feat.at(
i)[2];
381 vars->push_back(vars_appo);
382 flav.push_back(node_feat.at(
i)[0]);
386 return StatusCode::SUCCESS;
◆ setJets() [2/6]
Definition at line 329 of file BTaggingTruthTaggingTool.cxx.
331 std::vector<int> flav;
332 std::vector<Analysis::CalibrationDataVariables>* vars =
new std::vector<Analysis::CalibrationDataVariables>(0);
336 vars->push_back(vars_appo);
343 return StatusCode::SUCCESS;
◆ setJets() [3/6]
Definition at line 390 of file BTaggingTruthTaggingTool.cxx.
392 std::vector<int> flav;
393 std::vector<Analysis::CalibrationDataVariables>* vars =
new std::vector<Analysis::CalibrationDataVariables>(0);
397 vars->push_back(vars_appo);
403 return StatusCode::SUCCESS;
◆ setJets() [4/6]
StatusCode BTaggingTruthTaggingTool::setJets |
( |
TRFinfo & |
trfinf, |
|
|
std::vector< float > & |
pt, |
|
|
std::vector< float > & |
eta, |
|
|
std::vector< int > & |
flav, |
|
|
std::vector< float > & |
tagw |
|
) |
| |
|
private |
Definition at line 310 of file BTaggingTruthTaggingTool.cxx.
312 if(
pt.size()!=
eta.size() ||
pt.size()!=flav.size() ||
pt.size()!=tagw.size()){
313 ATH_MSG_ERROR(
"Vectors of pt, eta, flav and tagw should have same size" );
314 return StatusCode::FAILURE;
317 std::vector<Analysis::CalibrationDataVariables>* vars =
new std::vector<Analysis::CalibrationDataVariables>(0);
318 for(
unsigned int i =0;
i<
pt.size();
i++){
321 vars->push_back(vars_appo);
326 return StatusCode::SUCCESS;
◆ setJets() [5/6]
Definition at line 409 of file BTaggingTruthTaggingTool.cxx.
410 if(flav.size()!=vars->size()){
411 ATH_MSG_ERROR(
"Vector of CalibrationDataVariables and flavour should have same size" );
412 return StatusCode::FAILURE;
417 trfinf.njets = vars->size();
422 for(
unsigned int i =0;
i<trfinf.njets;
i++){
423 jetVariable jetVar_appo;
424 jetVar_appo.flav=flav.at(
i);
425 jetVar_appo.vars=vars->at(
i);
426 trfinf.jets.push_back(jetVar_appo);
428 trfinf.node_feat = node_feat;
429 return StatusCode::SUCCESS;
◆ setJets() [6/6]
Definition at line 346 of file BTaggingTruthTaggingTool.cxx.
347 if(flav.size()!=vars->size()){
348 ATH_MSG_ERROR(
"Vector of CalibrationDataVariables and flavour should have same size" );
349 return StatusCode::FAILURE;
352 for(
unsigned int i =0;
i<vars->size();
i++){
353 jetVariable jetVar_appo;
354 jetVar_appo.flav=flav.at(
i);
355 jetVar_appo.vars=vars->at(
i);
356 trfinf.jets.push_back(jetVar_appo);
359 trfinf.njets=trfinf.jets.size();
360 return StatusCode::SUCCESS;
◆ setUseSystematics()
void BTaggingTruthTaggingTool::setUseSystematics |
( |
bool |
useSystematics | ) |
|
◆ split()
std::vector< std::string > BTaggingTruthTaggingTool::split |
( |
const std::string & |
str, |
|
|
char |
token |
|
) |
| |
|
private |
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ trfWeight()
float BTaggingTruthTaggingTool::trfWeight |
( |
TRFinfo & |
trfinf, |
|
|
const std::vector< bool > & |
tags |
|
) |
| |
|
private |
◆ updateVHKA()
◆ m_availableOP_fixCut
std::vector<std::string> BTaggingTruthTaggingTool::m_availableOP_fixCut = {"FixedCutBEff_85", "FixedCutBEff_77","FixedCutBEff_70","FixedCutBEff_60"} |
|
private |
◆ m_coneFlavourLabel
bool BTaggingTruthTaggingTool::m_coneFlavourLabel |
|
private |
◆ m_continuous
bool BTaggingTruthTaggingTool::m_continuous |
|
private |
◆ m_continuous2D
bool BTaggingTruthTaggingTool::m_continuous2D |
|
private |
◆ m_cutBenchmark
std::string BTaggingTruthTaggingTool::m_cutBenchmark |
|
private |
◆ m_cuts
std::vector<TagBin> BTaggingTruthTaggingTool::m_cuts |
|
private |
◆ m_detStore
◆ m_doDirectTag
bool BTaggingTruthTaggingTool::m_doDirectTag |
|
private |
◆ m_doOnlyUpVariations
bool BTaggingTruthTaggingTool::m_doOnlyUpVariations |
|
private |
◆ m_eff_syst
◆ m_EffBName
std::string BTaggingTruthTaggingTool::m_EffBName |
|
private |
◆ m_EffCName
std::string BTaggingTruthTaggingTool::m_EffCName |
|
private |
◆ m_EffFile
std::string BTaggingTruthTaggingTool::m_EffFile |
|
private |
◆ m_EffLightName
std::string BTaggingTruthTaggingTool::m_EffLightName |
|
private |
◆ m_EffTName
std::string BTaggingTruthTaggingTool::m_EffTName |
|
private |
◆ m_effTool
◆ m_effTool_allBins
◆ m_EVReductionB
std::string BTaggingTruthTaggingTool::m_EVReductionB |
|
private |
specification of the eigenvector reduction strategy for b jets (if eigenvectors are used)
Definition at line 221 of file BTaggingTruthTaggingTool.h.
◆ m_EVReductionC
std::string BTaggingTruthTaggingTool::m_EVReductionC |
|
private |
specification of the eigenvector reduction strategy for c jets (if eigenvectors are used)
Definition at line 223 of file BTaggingTruthTaggingTool.h.
◆ m_EVReductionLight
std::string BTaggingTruthTaggingTool::m_EVReductionLight |
|
private |
specification of the eigenvector reduction strategy for light-flavour jets (if eigenvectors are used)
Definition at line 225 of file BTaggingTruthTaggingTool.h.
◆ m_evtStore
◆ m_excludeEV
std::string BTaggingTruthTaggingTool::m_excludeEV |
|
private |
◆ m_excludeFromEV
std::string BTaggingTruthTaggingTool::m_excludeFromEV |
|
private |
semicolon-separated list of uncertainties to be excluded from the eigenvector variation procedure
Definition at line 235 of file BTaggingTruthTaggingTool.h.
◆ m_ignoreSF
bool BTaggingTruthTaggingTool::m_ignoreSF |
|
private |
◆ m_inf
TFile* BTaggingTruthTaggingTool::m_inf |
|
private |
◆ m_initialised
bool BTaggingTruthTaggingTool::m_initialised |
|
private |
◆ m_jetAuthor
std::string BTaggingTruthTaggingTool::m_jetAuthor |
|
private |
◆ m_maxEta
float BTaggingTruthTaggingTool::m_maxEta |
|
private |
◆ m_maxRangePt
float BTaggingTruthTaggingTool::m_maxRangePt |
|
private |
◆ m_minPt
float BTaggingTruthTaggingTool::m_minPt |
|
private |
◆ m_nbins
int BTaggingTruthTaggingTool::m_nbins |
|
private |
◆ m_nbtag
int BTaggingTruthTaggingTool::m_nbtag |
|
private |
◆ m_njetsTagStrategy
◆ m_OP
std::string BTaggingTruthTaggingTool::m_OP |
|
private |
◆ m_OP_index_for_GNN
unsigned int BTaggingTruthTaggingTool::m_OP_index_for_GNN |
|
private |
◆ m_OperatingBins
std::vector<int> BTaggingTruthTaggingTool::m_OperatingBins |
|
private |
◆ m_pathToONNX
std::string BTaggingTruthTaggingTool::m_pathToONNX |
|
private |
◆ m_selTool
◆ m_SFBName
std::string BTaggingTruthTaggingTool::m_SFBName |
|
private |
◆ m_SFCName
std::string BTaggingTruthTaggingTool::m_SFCName |
|
private |
◆ m_SFFile
std::string BTaggingTruthTaggingTool::m_SFFile |
|
private |
◆ m_SFLightName
std::string BTaggingTruthTaggingTool::m_SFLightName |
|
private |
◆ m_SFTName
std::string BTaggingTruthTaggingTool::m_SFTName |
|
private |
◆ m_sys_name
std::vector<std::string> BTaggingTruthTaggingTool::m_sys_name |
|
private |
◆ m_systStrategy
std::string BTaggingTruthTaggingTool::m_systStrategy |
|
private |
◆ m_taggerName
std::string BTaggingTruthTaggingTool::m_taggerName |
|
private |
◆ m_taggingStrategy
std::string BTaggingTruthTaggingTool::m_taggingStrategy |
|
private |
tagging strategy is required to do TT with GNN, when we don't want to truth tag all the jets (eg. 'leading2SignalJets')
Definition at line 257 of file BTaggingTruthTaggingTool.h.
◆ m_useDevFile
bool BTaggingTruthTaggingTool::m_useDevFile |
|
private |
if true, attempt to retrieve the data/MC efficiency scale factor calibration files from the @PathResolver development area
Definition at line 247 of file BTaggingTruthTaggingTool.h.
◆ m_usePerm
bool BTaggingTruthTaggingTool::m_usePerm |
|
private |
◆ m_useQuntile
bool BTaggingTruthTaggingTool::m_useQuntile |
|
private |
◆ m_useSys
bool BTaggingTruthTaggingTool::m_useSys |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
std::string find(const std::string &s)
return a remapped string
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
const float SF[NF]
Cross sections for Fluor.
Class to wrap a set of SystematicVariations.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual void setOwner(IDataHandleHolder *o)=0
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
std::vector< std::string > tags
::StatusCode StatusCode
StatusCode definition for legacy code.
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void insert(const SystematicVariation &systematic)
description: insert a systematic into the set
std::string to_string(const DetectorType &type)
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
const BTagging * getBTagging(const SG::AuxElement &part)
Access the default xAOD::BTagging object associated to an object.
#define ATH_MSG_WARNING(x)
Return value from object correction CP tools.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>