ATLAS Offline Software
Loading...
Searching...
No Matches
PanTau::Tool_FeatureExtractor Class Reference

Tool to extract jet features from tau seeds. More...

#include <Tool_FeatureExtractor.h>

Inheritance diagram for PanTau::Tool_FeatureExtractor:
Collaboration diagram for PanTau::Tool_FeatureExtractor:

Public Member Functions

 Tool_FeatureExtractor (const std::string &name)
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function.
virtual StatusCode execute (PanTau::PanTauSeed *inSeed) const override
bool isInitialized () override
virtual void print () const
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

StatusCode calculateBasicFeatures (PanTau::PanTauSeed *inSeed) const
StatusCode calculateFeatures (PanTau::PanTauSeed *inSeed, int tauConstituentType, const std::map< std::string, double > &variants_SeedEt) const
StatusCode addConstituentMomenta (PanTau::PanTauSeed *inSeed) const
StatusCode addCombinedFeatures (PanTau::PanTauSeed *inSeed, const std::map< std::string, double > &variants_SeedEt) const
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Static Protected Member Functions

static void fillVariantsSeedEt (const std::vector< PanTau::TauConstituent * > &tauConstituents, std::map< std::string, double > &variants_SeedEt)
static void addFeatureWrtSeedEnergy (PanTau::TauFeature *targetMap, const std::string &featName, double numerator, const std::map< std::string, double > &denominatorMap)
static const std::string varTypeName_Ratio ()
static const std::string varTypeName_Mean ()
static const std::string varTypeName_StdDev ()
static const std::string varTypeName_HLV ()
static const std::string varTypeName_Angle ()
static const std::string varTypeName_DeltaR ()
static const std::string varTypeName_JetMoment ()
static const std::string varTypeName_Combined ()
static const std::string varTypeName_Basic ()
static const std::string varTypeName_PID ()
static const std::string varTypeName_Shots ()

Protected Attributes

PanTau::HelperFunctions m_HelperFunctions
ToolHandle< PanTau::ITool_InformationStorem_Tool_InformationStore {this, "Tool_InformationStore", "PanTau::Tool_InformationStore/Tool_InformationStore","Tool handle to the information store tool"}
Gaudi::Property< std::string > m_Tool_InformationStoreName {this, "Tool_InformationStoreName", "", "Tool handle to the information store tool"}
int m_Config_UseEmptySeeds = 0
std::vector< double > m_Config_CellBased_BinEdges_Eta
 Helper members.
std::vector< double > m_Config_CellBased_EtaBinned_Pi0MVACut_1prong
std::vector< double > m_Config_CellBased_EtaBinned_Pi0MVACut_3prong
std::string m_varTypeName_Ratio
std::string m_varTypeName_Mean
std::string m_varTypeName_StdDev
std::string m_varTypeName_HLV
std::string m_varTypeName_Angle
std::string m_varTypeName_DeltaR
std::string m_varTypeName_JetMoment
std::string m_varTypeName_Combined
std::string m_varTypeName_Basic
std::string m_varTypeName_PID
bool m_init =false

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Tool to extract jet features from tau seeds.

Author
Christian Limbach
Sebastian Fleischmann

Definition at line 31 of file Tool_FeatureExtractor.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ Tool_FeatureExtractor()

PanTau::Tool_FeatureExtractor::Tool_FeatureExtractor ( const std::string & name)

Definition at line 22 of file Tool_FeatureExtractor.cxx.

22 :
23 asg::AsgTool(name)
24{}

Member Function Documentation

◆ addCombinedFeatures()

StatusCode PanTau::Tool_FeatureExtractor::addCombinedFeatures ( PanTau::PanTauSeed * inSeed,
const std::map< std::string, double > & variants_SeedEt ) const
protected

Definition at line 416 of file Tool_FeatureExtractor.cxx.

417 {
418
419 // Prepare some short notations for variables
420 PanTau::TauFeature* tauFeatures = inSeed->getFeatures();
421
422 //et: EFO Type
423 int et_Charged = PanTau::TauConstituent::t_Charged;
424 int et_Pi0Neut = PanTau::TauConstituent::t_Pi0Neut;
425 int et_Neutral = PanTau::TauConstituent::t_Neutral;
426
427 bool foundIt;
428 std::vector<PanTau::TauConstituent*> list_NeutralConstituents = inSeed->getConstituentsOfType(et_Neutral, foundIt);
429
430 // Prepare the list of names for EFO Types &
431 // the 4 momenta of the different sub systems
432 // (ie. charged, neutral subsystem, etc...)
433 std::string name_EFOType[PanTau::TauConstituent::t_nTypes];
434 double num_EFOs[PanTau::TauConstituent::t_nTypes];
435 TLorentzVector tlv_System[PanTau::TauConstituent::t_nTypes];
436 TLorentzVector tlv_1stEFO[PanTau::TauConstituent::t_nTypes];
437 TLorentzVector tlv_2ndEFO[PanTau::TauConstituent::t_nTypes];
438
439 // get input objects to calc combined features
440 bool tlv_Sys_OK[PanTau::TauConstituent::t_nTypes];
441 bool tlv_1st_OK[PanTau::TauConstituent::t_nTypes];
442
443 //initialize arrays with default values
444 for(unsigned int iType=0; iType<(unsigned int)PanTau::TauConstituent::t_nTypes; iType++) {
445 name_EFOType[iType] = "";
446 num_EFOs[iType] = 0.;
447 tlv_System[iType] = TLorentzVector();
448 tlv_1stEFO[iType] = TLorentzVector();
449 tlv_2ndEFO[iType] = TLorentzVector();
450 tlv_Sys_OK[iType] = false;
451 tlv_1st_OK[iType] = false;
452 }
453
454 for(int iType=0; iType<static_cast<int>(PanTau::TauConstituent::t_nTypes); iType++) {
456
457 tlv_System[iType] = inSeed->getSubsystemHLV(iType, tlv_Sys_OK[iType]);
458 if (!tlv_Sys_OK[iType]) continue;
459
460 std::vector<TauConstituent*> typeConstituents = inSeed->getConstituentsOfType(iType, tlv_Sys_OK[iType]);
461 if (typeConstituents.empty()) tlv_Sys_OK[iType] = false;
462 if (!tlv_Sys_OK[iType]) continue;
463
464 num_EFOs[iType] = typeConstituents.size();
465
466 if (!typeConstituents.empty()) {
467 tlv_1stEFO[iType] = typeConstituents.at(0)->p4();
468 tlv_1st_OK[iType] = true;
469 } else {
470 tlv_1st_OK[iType] = false;
471 }
472
473 if (typeConstituents.size() > 1) {
474 tlv_2ndEFO[iType] = typeConstituents.at(1)->p4();
475 }
476 }
477
478 // From the extracted input, calc combined features
479 std::string prefixVARType = m_varTypeName_Combined;
480
481 // Combined Type-vs-Type Features
482 // Loop over all EFO types...
483 // for every type, loop over all other types (but neglect permutations, i.e. A,B is the same as B,A)
484 // calculate ratios, angles etc...
485
486 for(int iType=0; iType<PanTau::TauConstituent::t_nTypes; iType++) {
487
488 if(iType == static_cast<int>(PanTau::TauConstituent::t_NoType)) continue;
489 int type_Denom = iType;
490
491 for(int jType=0; jType<PanTau::TauConstituent::t_nTypes; jType++) {
492
493 if(jType == static_cast<int>(PanTau::TauConstituent::t_NoType)) continue;
494 int type_Nom = jType;
495
496 if(jType == iType) continue;
497
498 std::string typeName_Nom = PanTau::TauConstituent::getTypeName((PanTau::TauConstituent::Type)type_Nom);
499 std::string typeName_Denom = PanTau::TauConstituent::getTypeName((PanTau::TauConstituent::Type)type_Denom);
500
501 double sum_Et_Nom = 0.0;
502 double sum_Et_Denom = 0.0;
503 if(tlv_Sys_OK[type_Nom] && tlv_Sys_OK[type_Denom]) {
504 sum_Et_Nom = tlv_System[type_Nom].Et();
505 sum_Et_Denom = tlv_System[type_Denom].Et();
506 }
507
508 // Fraction of leading EFO of system A wrt complete system B
509 // this is not symmetric wrt system A and B, hence do this for all combinations
510 if(tlv_1st_OK[type_Nom]) {
511 if(tlv_1stEFO[type_Nom].Et() > 0. && sum_Et_Denom > 0.) {
512 tauFeatures->addFeature("CellBased_" + prefixVARType + "_Log1st" + typeName_Nom + "EtOver" + typeName_Denom + "Et", std::log10(tlv_1stEFO[type_Nom].Et() / sum_Et_Denom) );
513 }
514 }
515
516 //following features symmetric in system A-B, hence skip multi calculation
517 if(jType <= iType) continue;
518
519 //Energy ratios between systems
520 if(sum_Et_Denom > 0. && sum_Et_Nom > 0.) {
521 tauFeatures->addFeature("CellBased_" + prefixVARType + "_Log" + typeName_Nom + "EtOver" + typeName_Denom + "Et", std::log10(sum_Et_Nom / sum_Et_Denom) );
522 }//end check for div by zero
523
524 //Angles between systems
525 if(tlv_Sys_OK[type_Nom] && tlv_Sys_OK[type_Denom]) {
526 tauFeatures->addFeature("CellBased_" + prefixVARType + "_Angle" + typeName_Nom + "To" + typeName_Denom, tlv_System[type_Nom].Angle( tlv_System[type_Denom].Vect()) );
527 }//end check for valid system pointer
528
529 if(tlv_1st_OK[type_Nom] && tlv_1st_OK[type_Denom]) {
530 //Delta R between 1st and 1st EFO
531 tauFeatures->addFeature("CellBased_" + prefixVARType + "_DeltaR1st" + typeName_Nom + "To1st" + typeName_Denom, tlv_1stEFO[type_Nom].DeltaR( tlv_1stEFO[type_Denom] ) );
532
533 //Angles between 1st and 1st EFO
534 tauFeatures->addFeature("CellBased_" + prefixVARType + "_Angle1st" + typeName_Nom + "To1st" + typeName_Denom, tlv_1stEFO[type_Nom].Angle( tlv_1stEFO[type_Denom].Vect() ) );
535 } //end check for valid leading efo
536
537 }//end loop over system B
538 }//end loop over system A
539
540
541 // Combined Selected-Type Features
542
543 //setup arrays for combination of selected charged and neutral combinations
544 const int cTypes = 1;
545 const int nTypes = 2;
546 int index_charged[cTypes] = {et_Charged};
547 int index_neutral[nTypes] = {et_Pi0Neut, et_Neutral};
548
549 for(int cType=0; cType<cTypes; cType++) {
550 for(int nType=0; nType<nTypes; nType++) {
551
552 int et_c = index_charged[cType];
553 int et_n = index_neutral[nType];
554
557
558 if(!tlv_Sys_OK[et_c] || !tlv_Sys_OK[et_n]) continue;
559
560 //mean Et fraction of charged+neutral system wrt total ET
561 if(num_EFOs[et_c] + num_EFOs[et_n] > 0.) {
562 double mean_cTypenTypeEt = ( tlv_System[et_c].Et() + tlv_System[et_n].Et() ) / (num_EFOs[et_c] + num_EFOs[et_n]);
563 addFeatureWrtSeedEnergy(tauFeatures, "CellBased_" + prefixVARType + "_Mean" + name_cType + name_nType + "Et_Wrt", mean_cTypenTypeEt, variants_SeedEt);
564 }
565
566 //invariant masses
567 tauFeatures->addFeature("CellBased_" + prefixVARType + "_InvMass" + name_cType + name_nType, ( tlv_System[et_c] + tlv_System[et_n] ).M() );
568
569 }//end loop neutral types
570 }//end loop charged types
571
572 return StatusCode::SUCCESS;
573}
std::vector< PanTau::TauConstituent * > getConstituentsOfType(int tauConstituent_Type, bool &foundit)
TLorentzVector getSubsystemHLV(int tauConstituent_Type, bool &foundit)
const PanTau::TauFeature * getFeatures() const
Definition PanTauSeed.h:217
std::vector< std::string > getTypeName() const
Type
Type enumeration to specify type of this tau constituent.
bool addFeature(const std::string &name, const double value)
adds a new feature
static void addFeatureWrtSeedEnergy(PanTau::TauFeature *targetMap, const std::string &featName, double numerator, const std::map< std::string, double > &denominatorMap)
double Angle(const VectorType1 &vec1, const VectorType2 &vec2)

◆ addConstituentMomenta()

StatusCode PanTau::Tool_FeatureExtractor::addConstituentMomenta ( PanTau::PanTauSeed * inSeed) const
protected

Definition at line 181 of file Tool_FeatureExtractor.cxx.

181 {
182 TauFeature* tauFeatureMap = inSeed->getFeatures();
183 std::string prefixVARType = m_varTypeName_HLV;
184 for(int iType=0; iType<static_cast<int>(PanTau::TauConstituent::t_nTypes); iType++) {
185 bool isOK;
186 std::vector<PanTau::TauConstituent*> list_TypeConstituents = inSeed->getConstituentsOfType(iType, isOK); // list of constituents of current type
187 unsigned int n_Constituents_Type = list_TypeConstituents.size(); // number of objects of current type
188 TLorentzVector tlv_TypeConstituents = inSeed->getSubsystemHLV(iType, isOK); // summed hlv of objects of current type
190 std::string name = "CellBased_" + curTypeName + "_" + prefixVARType;
191
192 std::vector<PanTau::TauConstituent*> list_TypeConstituents_SortBDT = inSeed->getConstituentsOfType(iType, isOK);
193 std::sort(list_TypeConstituents_SortBDT.begin(), list_TypeConstituents_SortBDT.end(), sortTauConstituentMVA);
194
195 if(!list_TypeConstituents.empty()) {
196 tauFeatureMap->addFeature(name + "_SumPt", tlv_TypeConstituents.Perp());
197 tauFeatureMap->addFeature(name + "_SumEta", tlv_TypeConstituents.Eta());
198 tauFeatureMap->addFeature(name + "_SumPhi", tlv_TypeConstituents.Phi());
199 tauFeatureMap->addFeature(name + "_SumM", tlv_TypeConstituents.M());
200 }
201
202 //store 4-vectors of current type (bdt sort)
203 std::vector<double> curConstsBDT_pt = std::vector<double>(0);
204 std::vector<double> curConstsBDT_eta = std::vector<double>(0);
205 std::vector<double> curConstsBDT_phi = std::vector<double>(0);
206 std::vector<double> curConstsBDT_m = std::vector<double>(0);
207 for(unsigned int iConst=0; iConst<n_Constituents_Type; iConst++) {
208 TLorentzVector tlv_curConstBDT = list_TypeConstituents_SortBDT[iConst]->p4();
209 curConstsBDT_pt.push_back(tlv_curConstBDT.Perp());
210 curConstsBDT_eta.push_back(tlv_curConstBDT.Eta());
211 curConstsBDT_phi.push_back(tlv_curConstBDT.Phi());
212 curConstsBDT_m.push_back(tlv_curConstBDT.M());
213 }
214 tauFeatureMap->addVecFeature(name + "_BDTSort_Constituents_pt", curConstsBDT_pt);
215 tauFeatureMap->addVecFeature(name + "_BDTSort_Constituents_eta", curConstsBDT_eta);
216 tauFeatureMap->addVecFeature(name + "_BDTSort_Constituents_phi", curConstsBDT_phi);
217 tauFeatureMap->addVecFeature(name + "_BDTSort_Constituents_m", curConstsBDT_m);
218
219 } //end loop over constituent types
220
221 return StatusCode::SUCCESS;
222}
bool sortTauConstituentMVA(const PanTau::TauConstituent *u, const PanTau::TauConstituent *v)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ addFeatureWrtSeedEnergy()

void PanTau::Tool_FeatureExtractor::addFeatureWrtSeedEnergy ( PanTau::TauFeature * targetMap,
const std::string & featName,
double numerator,
const std::map< std::string, double > & denominatorMap )
staticprotected

Definition at line 78 of file Tool_FeatureExtractor.cxx.

81 {
82 std::map<std::string, double>::const_iterator it = denominatorMap.begin();
83 for(; it!=denominatorMap.end(); ++it) {
84 std::string FullName = featName + it->first;
85 float value = static_cast<float>(it->second);
86 if(value <= 0. || std::isnan(value) || std::isinf(value) ) continue;
87 targetMap->addFeature(FullName, numerator / it->second);
88 }
89}

◆ calculateBasicFeatures()

StatusCode PanTau::Tool_FeatureExtractor::calculateBasicFeatures ( PanTau::PanTauSeed * inSeed) const
protected

Loop over types to fill

  • multiplicity of that type
  • sum charge and abs charge

Fill the proto vector (i.e. sum momentum of constituents)

Definition at line 131 of file Tool_FeatureExtractor.cxx.

131 {
132
133 PanTau::TauFeature* featureMap = inSeed->getFeatures();
134
135 std::string featurePrefix = m_varTypeName_Basic;
136 std::string name = "CellBased_" + featurePrefix;
137
138 double SumCharge = 0;
139 double AbsCharge = 0;
140
144 for(int iType=0; iType<PanTau::TauConstituent::t_nTypes; iType++) {
145
146 bool foundIt = false;
147 std::vector<TauConstituent*> curList = inSeed->getConstituentsOfType(iType, foundIt);
148 if(!foundIt) continue;
149
150 //store multiplicity of current type
152 unsigned int nConstituents = curList.size();
153 featureMap->addFeature(name + "_N" + typeName + "Consts", nConstituents);
154
155 //count charge, i.e. skip if not charged
156 if(iType != static_cast<int>(PanTau::TauConstituent::t_Charged)) continue;
157 for(unsigned int iConst=0; iConst<nConstituents; iConst++) {
158 PanTau::TauConstituent* curConstituent = curList[iConst];
159 SumCharge += curConstituent->getCharge();
160 AbsCharge += std::abs(static_cast<double>(curConstituent->getCharge()));
161 }
162 }
163
164 //store charge
165 featureMap->addFeature(name + "_SumCharge", SumCharge);
166 featureMap->addFeature(name + "_AbsCharge", AbsCharge);
167
169 //proto 4-vector (just the sum of all constituents)
170 // will have better four momentum after mode ID
171 TLorentzVector tlv_ProtoMomentumCore = inSeed->getProtoMomentumCore();
172 featureMap->addFeature(name + "_ProtoMomentumCore_pt", tlv_ProtoMomentumCore.Perp());
173 featureMap->addFeature(name + "_ProtoMomentumCore_eta", tlv_ProtoMomentumCore.Eta());
174 featureMap->addFeature(name + "_ProtoMomentumCore_phi", tlv_ProtoMomentumCore.Phi());
175 featureMap->addFeature(name + "_ProtoMomentumCore_m", tlv_ProtoMomentumCore.M());
176
177 return StatusCode::SUCCESS;
178}
TLorentzVector getProtoMomentumCore() const
Definition PanTauSeed.h:219

◆ calculateFeatures()

StatusCode PanTau::Tool_FeatureExtractor::calculateFeatures ( PanTau::PanTauSeed * inSeed,
int tauConstituentType,
const std::map< std::string, double > & variants_SeedEt ) const
protected

//////////////////////////////////////////
Prepare variables for information from eflow Objects //////////////////////////////////////////

////////////////////////////////////////// Loop over selected constituents and collect information //////////////////////////////////////////

////////////////////////////////////////// Calculate & fill features //////////////////////////////////////////

Multiplicities ///////////////////////////////////////////

Substructure particle ID features ///////////////////////////////////////////

Shot information ///////////////////////////////////////////

Ratios ///////////////////////////////////////////

Standard deviations ///////////////////////////////////////////

JetMoment ///////////////////////////////////////////

Definition at line 225 of file Tool_FeatureExtractor.cxx.

227 {
228
229 std::string curTypeName = PanTau::TauConstituent::getTypeName( (PanTau::TauConstituent::Type)tauConstituentType );
230 std::string curTypeName_All = PanTau::TauConstituent::AllConstituentsName();
231 PanTau::TauFeature* tauFeatureMap = inSeed->getFeatures();
232 TLorentzVector tlv_Reference = inSeed->getProtoMomentumCore();
233
234 std::vector<PanTau::TauConstituent*> list_AllConstituents = inSeed->getConstituentsAsList_Core();
235
236 bool foundIt = false;
237 std::vector<PanTau::TauConstituent*> list_TypeConstituents;
238 if (tauConstituentType != PanTau::TauConstituent::t_NoType) list_TypeConstituents = inSeed->getConstituentsOfType(tauConstituentType, foundIt);
239 if (tauConstituentType == PanTau::TauConstituent::t_NoType) list_TypeConstituents = list_AllConstituents;
240 if (!foundIt) return StatusCode::SUCCESS;
241
242 unsigned int n_Constituents_Type = list_TypeConstituents.size();
243
244 //sort the lists by Et
245 std::sort(list_AllConstituents.begin(), list_AllConstituents.end(), sortTauConstituentEt);
246 std::sort(list_TypeConstituents.begin(), list_TypeConstituents.end(), sortTauConstituentEt);
247
248 //make an additional list of constituents, but now ordered by BDT value
249 std::vector<PanTau::TauConstituent*> list_TypeConstituents_SortBDT = list_TypeConstituents;
250 std::sort(list_TypeConstituents_SortBDT.begin(), list_TypeConstituents_SortBDT.end(), sortTauConstituentMVA);
251
252 TLorentzVector tlv_1st_BDT;
253
254 if(!list_TypeConstituents_SortBDT.empty()) tlv_1st_BDT = list_TypeConstituents_SortBDT[0]->p4();
255
259
260 // ===> hlv for the leading EFOs and the summed HLV
261 TLorentzVector tlv_TypeConstituents;
262 // ===> Sum of Et, Et^2, E and E^2
263 double sum_Et = 0;
264 double sum_Et2 = 0;
265 // ===> Sum of Et (and E) times DeltaR, DeltaR', Angle
266 double sum_EtxDR = 0;
267 // ===> Multiplicities
268 unsigned int num_EFOs = 0;
269
273 for(unsigned int iTypeConst=0; iTypeConst<list_TypeConstituents.size(); iTypeConst++) {
274
275 //get hep lorentz vector
276 TLorentzVector tlv_curConst = list_TypeConstituents.at(iTypeConst)->p4();
277
278 //final check (nan & inf)
279 if (std::isnan(tlv_curConst.Pt()) || std::isinf(tlv_curConst.Pt())) continue;
280
281 //ready to calc stuff
282 //basically update each of the prepared sum_* and num_* variables above,
283 // the sum HLV and the pointers to 1st, 2nd, 3rd leading constituents of current type
284 tlv_TypeConstituents += tlv_curConst;
285
286 //helpers to reduce function calls
287 double hlp_Et = tlv_curConst.Et();
288 double hlp_Et2 = hlp_Et * hlp_Et;
289 double hlp_DeltaR = tlv_Reference.DeltaR(tlv_curConst);
290
291 // update Sum of Et, Et^2, E and E^2
292 sum_Et += hlp_Et;
293 sum_Et2 += hlp_Et2;
294 // update Sum of Et (and E) times DeltaR, DeltaR', Angle
295 sum_EtxDR += hlp_Et * hlp_DeltaR;
296 // update Multiplicities
297 num_EFOs++;
298 }//end loop over selected EFOs
299
300
301
305
306 // naming string
307 std::string prefixVARType = "";
308
310 //if there are no EFOs of this type in the seed, all other variables cannot be calculated to have any reasonable value
311 if( num_EFOs == 0 ) {
312 return StatusCode::SUCCESS;
313 }
314
316 prefixVARType = m_varTypeName_PID;
317
318 // Sorted by highest BDT score
319 for(unsigned int iTypeConst=0; iTypeConst<n_Constituents_Type; iTypeConst++) {
320
321 double value_BDT = list_TypeConstituents_SortBDT[iTypeConst]->getBDTValue();
322 if( std::isnan(value_BDT) || std::isinf(value_BDT) ) continue;
323
324 //correct BDT value based on BDT cut
325 if(tauConstituentType != PanTau::TauConstituent::t_Charged) {
326 double mvaCorrection = 0.0;
327 double etaCurConst = list_TypeConstituents_SortBDT[iTypeConst]->p4().Eta();
328 int etaBinIndex = m_HelperFunctions.getBinIndex(m_Config_CellBased_BinEdges_Eta, std::abs(etaCurConst));
329 int numTrack = inSeed->getTauJet()->nTracks();
330 if(numTrack == 1) { mvaCorrection = m_Config_CellBased_EtaBinned_Pi0MVACut_1prong.at(etaBinIndex); }
331 else { mvaCorrection = m_Config_CellBased_EtaBinned_Pi0MVACut_3prong.at(etaBinIndex); }
332
333 value_BDT = value_BDT - mvaCorrection;
334 }
335
336 std::string iConst = m_HelperFunctions.convertNumberToString(static_cast<double>(iTypeConst+1));
337 tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_BDTValues_BDTSort_" + iConst, value_BDT);
338
339 }
340
343 //only execute if the constituent type is neutral
344 if(PanTau::TauConstituent::isNeutralType(tauConstituentType)) {
345
346 TLorentzVector totalTLV_SumShots = TLorentzVector(0., 0., 0., 0.);
347 unsigned int totalPhotonsInSeed = 0;
348
349 std::vector<TLorentzVector> allShotTLVs = std::vector<TLorentzVector>(0);
350
351 for(unsigned int iConst=0; iConst<list_TypeConstituents_SortBDT.size(); iConst++) {
352
353 PanTau::TauConstituent* curConst = list_TypeConstituents_SortBDT.at(iConst);
354 TLorentzVector tlv_CurConst = curConst->p4();
355 std::vector<PanTau::TauConstituent*> shotConstituents = curConst->getShots();
356 unsigned int nShots = shotConstituents.size();
357
358 unsigned int totalPhotonsInNeutral = 0;
359 TLorentzVector tlv_SumShots = TLorentzVector(0., 0., 0., 0.);
360
361 for(unsigned int iShot=0; iShot<nShots; iShot++) {
362 PanTau::TauConstituent* curShot = shotConstituents.at(iShot);
363 totalPhotonsInNeutral += curShot->getNPhotonsInShot();
364 tlv_SumShots += curShot->p4();
365 allShotTLVs.push_back(curShot->p4());
366 }//end loop over shots
367 totalTLV_SumShots += tlv_SumShots;
368 totalPhotonsInSeed += totalPhotonsInNeutral;
369
370 std::string iConstStr = m_HelperFunctions.convertNumberToString(static_cast<double>(iConst+1));
371
372 tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_nPhotons_BDTSort_" + iConstStr, totalPhotonsInNeutral);
373
374 if(tlv_CurConst.Et() > 0.) tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_EtSumShotsOverConstEt_BDTSort_" + iConstStr, tlv_SumShots.Et() / tlv_CurConst.Et());
375
376 }//end loop over constituents in tau
377
378 //number of shots in seed
379 tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_NPhotonsInSeed", totalPhotonsInSeed);
380
381 }//end if check for shot info dumping
382
383
385 prefixVARType = m_varTypeName_Ratio;
386
387 if(curTypeName != curTypeName_All) addFeatureWrtSeedEnergy(tauFeatureMap, "CellBased_" + curTypeName + "_" + prefixVARType + "_EtOver", sum_Et, variants_SeedEt);
388
389 if(tlv_1st_BDT.Pt() != 0) addFeatureWrtSeedEnergy(tauFeatureMap, "CellBased_" + curTypeName + "_" + prefixVARType + "_1stBDTEtOver", tlv_1st_BDT.Et(), variants_SeedEt);
390
391 if(tlv_1st_BDT.Pt() != 0 && sum_Et > 0.) tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_1stBDTEtOverTypeEt", tlv_1st_BDT.Et() / sum_Et);
392
394 prefixVARType = m_varTypeName_StdDev;
395
396 double stddev_Et = m_HelperFunctions.stddev(sum_Et2, sum_Et, num_EFOs);
397
398 if(stddev_Et > 0.) addFeatureWrtSeedEnergy(tauFeatureMap, "CellBased_" + curTypeName + "_" + prefixVARType + "_Et_Wrt", stddev_Et, variants_SeedEt);
399
401 // Moment wrt X = Sum( Et * X ) / Sum(Et)
402 // ==> Named as Eflow_EFOType_JetMoment_EtX" when using Et as weight
403 // ==> Named as Eflow_EFOType_JetMoment_EX" when using E as weight
404 prefixVARType = m_varTypeName_JetMoment;
405
406 if(sum_Et > 0.) {
407 //Using transverse energy
408 tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_EtDR", sum_EtxDR / sum_Et);
409 tauFeatureMap->addFeature("CellBased_" + curTypeName + "_" + prefixVARType + "_EtDRxTotalEt", (sum_EtxDR / sum_Et) * variants_SeedEt.at("EtAllConsts"));
410 }
411
412 return StatusCode::SUCCESS;
413}
bool sortTauConstituentEt(const PanTau::TauConstituent *u, const PanTau::TauConstituent *v)
const std::vector< PanTau::TauConstituent * > & getConstituentsAsList_Core() const
Definition PanTauSeed.h:221
const xAOD::TauJet * getTauJet() const
Definition PanTauSeed.h:215
const std::vector< TauConstituent * > & getShots() const
static bool isNeutralType(int tauConstituentType)
virtual FourMom_t p4() const
The full 4-momentum of the particle as a TLorentzVector.
static std::string AllConstituentsName()
static const std::string varTypeName_Shots()
std::vector< double > m_Config_CellBased_EtaBinned_Pi0MVACut_3prong
std::vector< double > m_Config_CellBased_EtaBinned_Pi0MVACut_1prong
PanTau::HelperFunctions m_HelperFunctions
std::vector< double > m_Config_CellBased_BinEdges_Eta
Helper members.
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode PanTau::Tool_FeatureExtractor::execute ( PanTau::PanTauSeed * inSeed) const
overridevirtual

Implements PanTau::ITool_PanTauTools.

Definition at line 92 of file Tool_FeatureExtractor.cxx.

92 {
93
96 bool noValidInputTau = inSeed->isOfTechnicalQuality(PanTau::PanTauSeed::t_NoValidInputTau);
97 bool isBadSeed = (noAnyConstituents || noSelConstituents || noValidInputTau);
98 if(static_cast<bool>(m_Config_UseEmptySeeds)) isBadSeed = noValidInputTau;
99
100 if (isBadSeed) {
101 ATH_MSG_DEBUG("Seed is not valid for feature extraction (no constituents or no valid input tau) - just fill isPanTauCandidate feature");
102 inSeed->getFeatures()->addFeature("CellBased_" + m_varTypeName_Basic + "_isPanTauCandidate", 0);
103 return StatusCode::SUCCESS;
104 }
105 inSeed->getFeatures()->addFeature("CellBased_" + m_varTypeName_Basic + "_isPanTauCandidate", 1);
106
107
109
111
112 // map containing different methods to calc seed et
113 std::map<std::string, double> variants_SeedEt;
114 // calculate the Et variants for the seed
115 fillVariantsSeedEt(inSeed->getConstituentsAsList_All(), variants_SeedEt);
116
117 //loop through all types of Constituents in tau and calculate type features for them
118 //baseline
119 ATH_CHECK( calculateFeatures(inSeed, PanTau::TauConstituent::t_NoType, variants_SeedEt) ); //=> all constituents
120 ATH_CHECK( calculateFeatures(inSeed, PanTau::TauConstituent::t_Charged, variants_SeedEt) ); //=> charged ones in core
121 ATH_CHECK( calculateFeatures(inSeed, PanTau::TauConstituent::t_Neutral, variants_SeedEt) ); //=> neutral ones in core
122 ATH_CHECK( calculateFeatures(inSeed, PanTau::TauConstituent::t_Pi0Neut, variants_SeedEt) ); //=> pi0 tagged ones in core
123
124 //fill the combined features
125 ATH_CHECK( addCombinedFeatures(inSeed, variants_SeedEt) );
126
127 return StatusCode::SUCCESS;
128}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
bool isOfTechnicalQuality(int pantauSeed_TechnicalQuality) const
const std::vector< PanTau::TauConstituent * > & getConstituentsAsList_All() const
Definition PanTauSeed.h:222
StatusCode addConstituentMomenta(PanTau::PanTauSeed *inSeed) const
StatusCode calculateFeatures(PanTau::PanTauSeed *inSeed, int tauConstituentType, const std::map< std::string, double > &variants_SeedEt) const
StatusCode addCombinedFeatures(PanTau::PanTauSeed *inSeed, const std::map< std::string, double > &variants_SeedEt) const
StatusCode calculateBasicFeatures(PanTau::PanTauSeed *inSeed) const
static void fillVariantsSeedEt(const std::vector< PanTau::TauConstituent * > &tauConstituents, std::map< std::string, double > &variants_SeedEt)

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

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

◆ fillVariantsSeedEt()

void PanTau::Tool_FeatureExtractor::fillVariantsSeedEt ( const std::vector< PanTau::TauConstituent * > & tauConstituents,
std::map< std::string, double > & variants_SeedEt )
staticprotected

Definition at line 56 of file Tool_FeatureExtractor.cxx.

57 {
58
59 //use different approaches to calculate total energy of seed:
60 variants_SeedEt["EtAllConsts"] = 0.0;
61
62 //loop over all constituents in seed
63 for (unsigned int iConst = 0; iConst < tauConstituents.size(); iConst++) {
64
65 //get current constituents
66 PanTau::TauConstituent* curConstituent = tauConstituents.at(iConst);
67 double curEt = curConstituent->p4().Et();
68
69 //update the different Et definitions
70 if (curConstituent->isOfType(PanTau::TauConstituent::t_Charged) ||
72 variants_SeedEt["EtAllConsts"] += curEt;
73 }
74 }//end loop over constituents in seed
75}
bool isOfType(TauConstituent::Type aType) const

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void * ptr) const
inherited

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
ptrThe 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.

119 {
120
121#ifdef XAOD_STANDALONE
122 // In case we use @c xAOD::TEvent, we have a direct function call
123 // for this.
124 return evtStore()->event()->getKey( ptr );
125#else
126 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127 return ( proxy == nullptr ? 0 : proxy->sgkey() );
128#endif // XAOD_STANDALONE
129 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ 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
ptrThe 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.

106 {
107
108#ifdef XAOD_STANDALONE
109 // In case we use @c xAOD::TEvent, we have a direct function call
110 // for this.
111 return evtStore()->event()->getName( ptr );
112#else
113 const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114 static const std::string dummy = "";
115 return ( proxy == nullptr ? dummy : proxy->name() );
116#endif // XAOD_STANDALONE
117 }

◆ getProperty()

template<class T>
const T * asg::AsgTool::getProperty ( const std::string & name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode PanTau::Tool_FeatureExtractor::initialize ( void )
overridevirtual

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 27 of file Tool_FeatureExtractor.cxx.

27 {
28
29 ATH_MSG_INFO(" initialize()");
30 m_init=true;
31
34
35 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_Ratio", m_varTypeName_Ratio) );
36 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_Mean", m_varTypeName_Mean) );
37 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_StdDev", m_varTypeName_StdDev) );
38 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_HLV", m_varTypeName_HLV) );
39 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_Angle", m_varTypeName_Angle) );
40 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_DeltaR", m_varTypeName_DeltaR) );
41 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_JetMoment", m_varTypeName_JetMoment) );
42 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_Combined", m_varTypeName_Combined) );
43 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_Basic", m_varTypeName_Basic) );
44 ATH_CHECK( m_Tool_InformationStore->getInfo_String("FeatureExtractor_VarTypeName_varTypeName_PID", m_varTypeName_PID) );
45
46 ATH_CHECK( m_Tool_InformationStore->getInfo_Int("FeatureExtractor_UseEmptySeeds", m_Config_UseEmptySeeds) );
47
48 ATH_CHECK( m_Tool_InformationStore->getInfo_VecDouble("CellBased_BinEdges_Eta", m_Config_CellBased_BinEdges_Eta) );
49 ATH_CHECK( m_Tool_InformationStore->getInfo_VecDouble("CellBased_EtaBinned_Pi0MVACut_1prong", m_Config_CellBased_EtaBinned_Pi0MVACut_1prong) );
50 ATH_CHECK( m_Tool_InformationStore->getInfo_VecDouble("CellBased_EtaBinned_Pi0MVACut_3prong", m_Config_CellBased_EtaBinned_Pi0MVACut_3prong) );
51
52 return StatusCode::SUCCESS;
53}
#define ATH_MSG_INFO(x)
static StatusCode bindToolHandle(ToolHandle< T > &, std::string)
Gaudi::Property< std::string > m_Tool_InformationStoreName
ToolHandle< PanTau::ITool_InformationStore > m_Tool_InformationStore

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

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.

◆ isInitialized()

bool PanTau::Tool_FeatureExtractor::isInitialized ( )
inlineoverridevirtual

Implements PanTau::ITool_PanTauTools.

Definition at line 110 of file Tool_FeatureExtractor.h.

110{return m_init;}

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ 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.

101 {
102
103 return MSG::name( msg().level() );
104 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

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()

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

◆ varTypeName_Angle()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_Angle ( )
inlinestaticprotected

Definition at line 88 of file Tool_FeatureExtractor.h.

88{return "Angle";}

◆ varTypeName_Basic()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_Basic ( )
inlinestaticprotected

Definition at line 92 of file Tool_FeatureExtractor.h.

92{return "Basic";}

◆ varTypeName_Combined()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_Combined ( )
inlinestaticprotected

Definition at line 91 of file Tool_FeatureExtractor.h.

91{return "Combined";}

◆ varTypeName_DeltaR()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_DeltaR ( )
inlinestaticprotected

Definition at line 89 of file Tool_FeatureExtractor.h.

89{return "DeltaR";}

◆ varTypeName_HLV()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_HLV ( )
inlinestaticprotected

Definition at line 87 of file Tool_FeatureExtractor.h.

87{return "HLV";}

◆ varTypeName_JetMoment()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_JetMoment ( )
inlinestaticprotected

Definition at line 90 of file Tool_FeatureExtractor.h.

90{return "JetMoment";}

◆ varTypeName_Mean()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_Mean ( )
inlinestaticprotected

Definition at line 85 of file Tool_FeatureExtractor.h.

85{return "Mean";}

◆ varTypeName_PID()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_PID ( )
inlinestaticprotected

Definition at line 93 of file Tool_FeatureExtractor.h.

93{return "PID";}

◆ varTypeName_Ratio()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_Ratio ( )
inlinestaticprotected

Definition at line 84 of file Tool_FeatureExtractor.h.

84{return "Ratio";}

◆ varTypeName_Shots()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_Shots ( )
inlinestaticprotected

Definition at line 94 of file Tool_FeatureExtractor.h.

94{return "Shots";}

◆ varTypeName_StdDev()

const std::string PanTau::Tool_FeatureExtractor::varTypeName_StdDev ( )
inlinestaticprotected

Definition at line 86 of file Tool_FeatureExtractor.h.

86{return "StdDev";}

Member Data Documentation

◆ m_Config_CellBased_BinEdges_Eta

std::vector<double> PanTau::Tool_FeatureExtractor::m_Config_CellBased_BinEdges_Eta
protected

Helper members.

Definition at line 79 of file Tool_FeatureExtractor.h.

◆ m_Config_CellBased_EtaBinned_Pi0MVACut_1prong

std::vector<double> PanTau::Tool_FeatureExtractor::m_Config_CellBased_EtaBinned_Pi0MVACut_1prong
protected

Definition at line 80 of file Tool_FeatureExtractor.h.

◆ m_Config_CellBased_EtaBinned_Pi0MVACut_3prong

std::vector<double> PanTau::Tool_FeatureExtractor::m_Config_CellBased_EtaBinned_Pi0MVACut_3prong
protected

Definition at line 81 of file Tool_FeatureExtractor.h.

◆ m_Config_UseEmptySeeds

int PanTau::Tool_FeatureExtractor::m_Config_UseEmptySeeds = 0
protected

Definition at line 75 of file Tool_FeatureExtractor.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_HelperFunctions

PanTau::HelperFunctions PanTau::Tool_FeatureExtractor::m_HelperFunctions
protected

Definition at line 46 of file Tool_FeatureExtractor.h.

◆ m_init

bool PanTau::Tool_FeatureExtractor::m_init =false
protected

Definition at line 107 of file Tool_FeatureExtractor.h.

◆ m_Tool_InformationStore

ToolHandle<PanTau::ITool_InformationStore> PanTau::Tool_FeatureExtractor::m_Tool_InformationStore {this, "Tool_InformationStore", "PanTau::Tool_InformationStore/Tool_InformationStore","Tool handle to the information store tool"}
protected

Definition at line 47 of file Tool_FeatureExtractor.h.

47{this, "Tool_InformationStore", "PanTau::Tool_InformationStore/Tool_InformationStore","Tool handle to the information store tool"};

◆ m_Tool_InformationStoreName

Gaudi::Property<std::string> PanTau::Tool_FeatureExtractor::m_Tool_InformationStoreName {this, "Tool_InformationStoreName", "", "Tool handle to the information store tool"}
protected

Definition at line 48 of file Tool_FeatureExtractor.h.

48{this, "Tool_InformationStoreName", "", "Tool handle to the information store tool"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_varTypeName_Angle

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_Angle
protected

Definition at line 100 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_Basic

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_Basic
protected

Definition at line 104 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_Combined

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_Combined
protected

Definition at line 103 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_DeltaR

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_DeltaR
protected

Definition at line 101 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_HLV

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_HLV
protected

Definition at line 99 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_JetMoment

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_JetMoment
protected

Definition at line 102 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_Mean

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_Mean
protected

Definition at line 97 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_PID

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_PID
protected

Definition at line 105 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_Ratio

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_Ratio
protected

Definition at line 96 of file Tool_FeatureExtractor.h.

◆ m_varTypeName_StdDev

std::string PanTau::Tool_FeatureExtractor::m_varTypeName_StdDev
protected

Definition at line 98 of file Tool_FeatureExtractor.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: