|  | ATLAS Offline Software
    | 
 
 
 
#include <DiTauOnnxDiscriminantTool.h>
|  | 
|  | DiTauOnnxDiscriminantTool (const std::string &type, const std::string &name, const IInterface *parent) | 
|  | 
| virtual | ~DiTauOnnxDiscriminantTool () | 
|  | 
| virtual StatusCode | initialize () override | 
|  | Tool initializer.  More... 
 | 
|  | 
| virtual StatusCode | finalize () override | 
|  | Finalizer.  More... 
 | 
|  | 
| virtual StatusCode | execute (DiTauCandidateData *data, const EventContext &ctx) const override | 
|  | Execute - called for each Ditau candidate.  More... 
 | 
|  | 
| virtual StatusCode | executeObj (xAOD::DiTauJet &xDiTau, const EventContext &ctx) const override | 
|  | Execute - called for each Ditau jet.  More... 
 | 
|  | 
| float | GetDiTauObjOnnxScore (const xAOD::DiTauJet &ditau) const | 
|  | 
| virtual StatusCode | eventInitialize (DiTauCandidateData *data) | 
|  | Event initializer - called at the beginning of each event.  More... 
 | 
|  | 
| template<class T > | 
| bool | retrieveTool (T &tool) | 
|  | Convenience functions to handle storegate objects.  More... 
 | 
|  | 
| ServiceHandle< StoreGateSvc > & | evtStore () | 
|  | The standard StoreGateSvc(event store) Returns (kind of) a pointer to theStoreGateSvc.  More...
 | 
|  | 
| const ServiceHandle< StoreGateSvc > & | evtStore () const | 
|  | The standard StoreGateSvc(event store) Returns (kind of) a pointer to theStoreGateSvc.  More...
 | 
|  | 
| const ServiceHandle< StoreGateSvc > & | detStore () const | 
|  | The standard StoreGateSvc/DetectorStoreReturns (kind of) a pointer to theStoreGateSvc.  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, V, H > &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 | 
|  | 
|  | 
| int | n_subjets (const xAOD::DiTauJet &xDiTau) const | 
|  | 
| float | ditau_pt (const xAOD::DiTauJet &xDiTau) const | 
|  | 
| float | f_core (const xAOD::DiTauJet &xDiTau, int iSubjet) const | 
|  | 
| float | f_subjet (const xAOD::DiTauJet &xDiTau, int iSubjet) const | 
|  | 
| float | f_subjets (const xAOD::DiTauJet &xDiTau) const | 
|  | 
| float | R_max (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const | 
|  | 
| int | n_track (const xAOD::DiTauJet &xDiTau) const | 
|  | 
| float | R_isotrack (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const | 
|  | 
| float | R_tracks (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const | 
|  | 
| float | mass_core (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const | 
|  | 
| float | mass_tracks (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const | 
|  | 
| float | d0_leadtrack (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const | 
|  | 
| float | f_isotracks (const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const | 
|  | 
| StatusCode | getTrackingInfo (const xAOD::DiTauJet &xDiTau, DitauTrackingInfo &trackingInfo) const | 
|  | 
| Ort::Value | create_tensor (std::vector< float > &data, const std::vector< int64_t > &shape) const | 
|  | 
| InferenceOutput | run_inference (OnnxInputs &inputs) const | 
|  | 
| std::vector< float > | flatten (const std::vector< std::vector< float >> &vec_2d) const | 
|  | 
| std::vector< float > | extract_points (const std::vector< std::vector< float >> &track_features) const | 
|  | 
| std::vector< float > | create_mask (const std::vector< std::vector< float >> &track_features) const | 
|  | 
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) | 
|  | specialization for handling Gaudi::Property<SG::VarHandleKey>  More... 
 | 
|  | 
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) | 
|  | specialization for handling Gaudi::Property<SG::VarHandleKeyArray>  More... 
 | 
|  | 
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) | 
|  | specialization for handling Gaudi::Property<SG::VarHandleBase>  More... 
 | 
|  | 
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) | 
|  | specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>  More... 
 | 
|  | 
◆ StoreGateSvc_t
◆ DiTauOnnxDiscriminantTool()
      
        
          | DiTauOnnxDiscriminantTool::DiTauOnnxDiscriminantTool | ( | const std::string & | type, | 
        
          |  |  | const std::string & | name, | 
        
          |  |  | const IInterface * | parent | 
        
          |  | ) |  |  | 
      
 
 
◆ ~DiTauOnnxDiscriminantTool()
  
  | 
        
          | DiTauOnnxDiscriminantTool::~DiTauOnnxDiscriminantTool | ( |  | ) |  |  | virtualdefault | 
 
 
◆ create_mask()
  
  | 
        
          | std::vector< float > DiTauOnnxDiscriminantTool::create_mask | ( | const std::vector< std::vector< float >> & | track_features | ) | const |  | private | 
 
 
◆ create_tensor()
  
  | 
        
          | Ort::Value DiTauOnnxDiscriminantTool::create_tensor | ( | std::vector< float > & | data, |  
          |  |  | const std::vector< int64_t > & | shape |  
          |  | ) |  | const |  | private | 
 
Definition at line 106 of file src/DiTauOnnxDiscriminantTool.cxx.
  107   Ort::MemoryInfo memory_info = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault);
 
  108   return Ort::Value::CreateTensor<float>(memory_info, 
data.data(), 
data.size(),shape.data(), shape.size());
 
 
 
 
◆ d0_leadtrack()
Definition at line 336 of file src/DiTauOnnxDiscriminantTool.cxx.
  337     SubjetTrackingInfo subjetInfo = ditauInfo.vSubjetInfo.at(iSubjet);
 
  338     if (!subjetInfo.leadTrack) {
 
  341     return subjetInfo.leadTrack->d0();
 
 
 
 
◆ 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()
◆ ditau_pt()
◆ eventInitialize()
Event initializer - called at the beginning of each event. 
Definition at line 32 of file DiTauToolBase.cxx.
   34   return StatusCode::SUCCESS;
 
 
 
 
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
◆ executeObj()
  
  | 
        
          | StatusCode DiTauOnnxDiscriminantTool::executeObj | ( | xAOD::DiTauJet & | xDiTau, |  
          |  |  | const EventContext & | ctx |  
          |  | ) |  | const |  | overridevirtual | 
 
 
◆ extract_points()
  
  | 
        
          | std::vector< float > DiTauOnnxDiscriminantTool::extract_points | ( | const std::vector< std::vector< float >> & | track_features | ) | const |  | 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 
 
 
◆ f_core()
◆ f_isotracks()
◆ f_subjet()
◆ f_subjets()
◆ finalize()
  
  | 
        
          | StatusCode DiTauOnnxDiscriminantTool::finalize | ( |  | ) |  |  | overridevirtual | 
 
 
◆ flatten()
  
  | 
        
          | std::vector< float > DiTauOnnxDiscriminantTool::flatten | ( | const std::vector< std::vector< float >> & | vec_2d | ) | const |  | private | 
 
 
◆ GetDiTauObjOnnxScore()
Definition at line 140 of file src/DiTauOnnxDiscriminantTool.cxx.
  147     DitauTrackingInfo ditauTrackingInfo;
 
  159     std::vector<float> jet_vars = {
 
  160         R_max(ditau, ditauTrackingInfo, 0), 
 
  161         R_max(ditau, ditauTrackingInfo, 1), 
 
  162         R_tracks(ditau, ditauTrackingInfo, 1),  
 
  174         static_cast<float>( 
n_track(ditau)),
 
  176     std::vector<int64_t> jet_shape = {1, 
static_cast<int64_t
>(jet_vars.size())};
 
  179     std::vector<std::vector<float>> track_features(
m_maxTracks, std::vector<float>(11, 0.0
f));
 
  181     float jet_eta = ditau.
eta();
 
  185     for (
size_t i = 0; 
i < num_tracks; ++
i) {
 
  187         if (!trackLink.
isValid()) 
continue;
 
  189         float track_eta    = xTrack->
eta();
 
  190         float track_phi    = xTrack->
phi();
 
  191         float delta_eta    = track_eta - jet_eta;
 
  194         float track_pt     = 
static_cast<float>(xTrack->
pt());
 
  197         float pt_ratio     = track_pt / jet_pt;
 
  198         float pt_ratio_log = (pt_ratio <= 1.0f) ? 
std::log(1.0
f - pt_ratio + 1
e-8
f) : 0.0f;
 
  199         float track_charge = xTrack->
charge();
 
  201         track_features[
i] = {
 
  209             static_cast<float>(numberOfInrmstPxlLyrHitsAcc(*xTrack)),
 
  210             static_cast<float>(numberOfPixelHitsAcc(*xTrack)),
 
  211             static_cast<float>(numberOfSCTHitsAcc(*xTrack)),
 
  215     std::vector<int64_t> track_shape = {1, 
static_cast<int64_t
>(
m_maxTracks), 11};
 
  222         {1, track_shape[1], 2},
 
  226         std::move(jet_shape),
 
  231     return output.output_1[1];
 
 
 
 
◆ getTrackingInfo()
Definition at line 356 of file src/DiTauOnnxDiscriminantTool.cxx.
  363     if (!trackLinksAcc.isAvailable(xDiTau) || !isoTrackLinksAcc.isAvailable(xDiTau)) {
 
  364         ATH_MSG_WARNING(
"Track " << (!trackLinksAcc.isAvailable(xDiTau) ? 
"DiTauJet.trackLinks" : 
"DiTauJet.isoTrackLinks") << 
" links not available.");
 
  365         return StatusCode::FAILURE;
 
  369     float Rsubjet = R_subjetAcc(xDiTau);
 
  370     float RCore = R_coreAcc(xDiTau);
 
  372     trackingInfo.nSubjets = nSubjets;
 
  373     trackingInfo.vSubjetInfo.clear();
 
  374     trackingInfo.vIsoTracks.clear();
 
  375     trackingInfo.vTracks.clear();
 
  378     std::vector<ElementLink<xAOD::TrackParticleContainer>> isoTrackLinks = xDiTau.
isoTrackLinks();
 
  379     for (
const auto &trackLink: isoTrackLinks) {
 
  380         if (!trackLink.isValid()) {
 
  385         trackingInfo.vIsoTracks.push_back(xTrack);
 
  387     std::vector<ElementLink<xAOD::TrackParticleContainer>> trackLinks = xDiTau.
trackLinks();
 
  388     for (
const auto &trackLink : trackLinks)  {
 
  389         if (!trackLink.isValid()) {
 
  394         trackingInfo.vTracks.push_back(xTrack);
 
  397     for (
int i=0; 
i<nSubjets; ++
i){
 
  398         SubjetTrackingInfo subjetTrackingInfo;
 
  399         TLorentzVector subjet_p4 = TLorentzVector();
 
  401         subjetTrackingInfo.subjet_p4 = subjet_p4;
 
  402         trackingInfo.vSubjetInfo.push_back(subjetTrackingInfo);
 
  404     for (
const auto track : trackingInfo.vTracks) {
 
  407         for (
int i=0; 
i<nSubjets; ++
i){
 
  408             float dRTrackSubjet = trackingInfo.vSubjetInfo[
i].subjet_p4.DeltaR(
track->p4());
 
  409             if (dRTrackSubjet < Rsubjet && dRTrackSubjet < dRMin){
 
  410                 dRMin = dRTrackSubjet;
 
  415             trackingInfo.vSubjetInfo[inSubjet].vTracks.push_back(
track);
 
  419     for (
int i=0; 
i<nSubjets; ++
i){
 
  420         float ptLeadTrack = 0;
 
  421         for (
const auto track : trackingInfo.vSubjetInfo[
i].vTracks){
 
  422             if (
track->pt() > ptLeadTrack){
 
  423                 ptLeadTrack = 
track->pt();
 
  424                 trackingInfo.vSubjetInfo[
i].leadTrack = 
track;
 
  429     for (
int i=0; 
i<nSubjets; ++
i){
 
  430         for (
const auto track : trackingInfo.vSubjetInfo[
i].vTracks){
 
  431             auto subjetTrackingInfo = trackingInfo.vSubjetInfo[
i];
 
  432             if (subjetTrackingInfo.subjet_p4.DeltaR(
track->p4()) < RCore){
 
  433                 trackingInfo.vSubjetInfo[
i].vCoreTracks.push_back(
track);
 
  438     for (
const auto track : trackingInfo.vIsoTracks){
 
  442         for (
int i=0; 
i<nSubjets; ++
i){
 
  443             float dRTrackSubjet = trackingInfo.vSubjetInfo[
i].subjet_p4.DeltaR(
track->p4());
 
  444             if (dRTrackSubjet > Rsubjet && dRTrackSubjet < RIso && dRTrackSubjet < dRMin){
 
  445                 dRMin = dRTrackSubjet;
 
  450             trackingInfo.vSubjetInfo[inSubjet].vIsoTracks.push_back(
track);
 
  453     return StatusCode::SUCCESS;
 
 
 
 
◆ initialize()
  
  | 
        
          | StatusCode DiTauOnnxDiscriminantTool::initialize | ( |  | ) |  |  | overridevirtual | 
 
Tool initializer. 
Reimplemented from DiTauToolBase.
Definition at line 30 of file src/DiTauOnnxDiscriminantTool.cxx.
   32   ATH_MSG_INFO( 
"Initializing DiTauOnnxDiscriminantTool" );
 
   36   if (model_path.empty()) {
 
   38     return StatusCode::FAILURE;
 
   40   m_ort_env = std::make_unique<Ort::Env>(ORT_LOGGING_LEVEL_WARNING, 
"OnnxUtil");
 
   41   Ort::SessionOptions session_options;
 
   42   session_options.SetIntraOpNumThreads(1);
 
   43   session_options.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_ENABLE_EXTENDED);
 
   44   session_options.DisableCpuMemArena();
 
   46   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. 
 
 
◆ interfaceID()
  
  | 
        
          | const InterfaceID & DiTauToolBase::interfaceID | ( |  | ) |  |  | staticinherited | 
 
InterfaceID implementation needed for ToolHandle. 
Definition at line 9 of file DiTauToolBase.cxx.
   10   return DiTauToolBaseID;
 
 
 
 
◆ mass_core()
Definition at line 310 of file src/DiTauOnnxDiscriminantTool.cxx.
  311     TLorentzVector allCoreTracks_p4;
 
  312     SubjetTrackingInfo subjetInfo = ditauInfo.vSubjetInfo.at(iSubjet);
 
  314         allCoreTracks_p4 += xTrack->
p4();
 
  316     float mass = allCoreTracks_p4.M();
 
 
 
 
◆ mass_tracks()
Definition at line 323 of file src/DiTauOnnxDiscriminantTool.cxx.
  324     TLorentzVector allTracks_p4;
 
  325     SubjetTrackingInfo subjetInfo = ditauInfo.vSubjetInfo.at(iSubjet);
 
  327         allTracks_p4 += xTrack->
p4();
 
  329     float mass = allTracks_p4.M();
 
 
 
 
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ n_subjets()
◆ n_track()
◆ 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. 
 
 
◆ R_isotrack()
Definition at line 278 of file src/DiTauOnnxDiscriminantTool.cxx.
  282     for (
int i = 0; 
i < 2; 
i++) {
 
  283         SubjetTrackingInfo subjetInfo = ditauInfo.vSubjetInfo.at(
i);
 
  285             R_sum += subjetInfo.subjet_p4.DeltaR(xTrack->
p4()) * xTrack->
pt();
 
 
 
 
◆ R_max()
Definition at line 262 of file src/DiTauOnnxDiscriminantTool.cxx.
  264     const SubjetTrackingInfo subjetInfo = ditauInfo.vSubjetInfo.at(iSubjet);
 
  267         if (subjetInfo.subjet_p4.DeltaR(xTrack->
p4()) > Rmax) {
 
  268             Rmax = subjetInfo.subjet_p4.DeltaR(xTrack->
p4());
 
 
 
 
◆ R_tracks()
Definition at line 295 of file src/DiTauOnnxDiscriminantTool.cxx.
  299     SubjetTrackingInfo subjetInfo = ditauInfo.vSubjetInfo.at(iSubjet);
 
  301         R_sum += subjetInfo.subjet_p4.DeltaR(xTrack->
p4()) * xTrack->
pt();
 
 
 
 
◆ renounce()
◆ renounceArray()
◆ retrieveTool()
template<class T > 
  
  | 
        
          | bool DiTauToolBase::retrieveTool | ( | T & | tool | ) |  |  | inherited | 
 
Convenience functions to handle storegate objects. 
Definition at line 59 of file DiTauToolBase.cxx.
   60   if (
tool.retrieve().isFailure()) {
 
 
 
 
◆ run_inference()
Definition at line 111 of file src/DiTauOnnxDiscriminantTool.cxx.
  112   std::vector<Ort::Value> input_tensors;
 
  120   std::vector<const char *> input_node_names;
 
  124   std::vector<const char *> output_node_names;
 
  128   auto output_tensors = 
m_ort_session->Run(Ort::RunOptions{
nullptr}, input_node_names.data(), input_tensors.data(), input_node_names.size(), output_node_names.data(), output_node_names.size());
 
  131   for (
size_t i = 0; 
i < output_tensors.size(); ++
i) {
 
  132     const auto &tensor = output_tensors[
i];
 
  133     const size_t length = tensor.GetTensorTypeAndShapeInfo().GetElementCount();
 
  134     const float *
data = tensor.GetTensorData<
float>();
 
 
 
 
◆ 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. 
 
 
◆ updateVHKA()
◆ m_dDefault
  
  | 
        
          | float DiTauOnnxDiscriminantTool::m_dDefault = -1234 |  | private | 
 
 
◆ m_detStore
◆ m_evtStore
◆ m_input_node_names
  
  | 
        
          | const std::vector<std::string> DiTauOnnxDiscriminantTool::m_input_node_names = {"input_features", "input_points", "input_mask", "input_jet", "input_time"} |  | private | 
 
 
◆ m_maxTracks
  
  | 
        
          | Gaudi::Property<size_t> DiTauOnnxDiscriminantTool::m_maxTracks {this, "maxTracks", 10} |  | private | 
 
 
◆ m_onnxModelPath
  
  | 
        
          | Gaudi::Property<std::string> DiTauOnnxDiscriminantTool::m_onnxModelPath {this, "onnxModelPath", "TrigTauRec/00-11-02/dev/boosted_ditau_omni_model.onnx"} |  | private | 
 
 
◆ m_ort_env
  
  | 
        
          | std::unique_ptr<Ort::Env> DiTauOnnxDiscriminantTool::m_ort_env |  | private | 
 
 
◆ m_ort_session
  
  | 
        
          | std::unique_ptr<Ort::Session> DiTauOnnxDiscriminantTool::m_ort_session |  | private | 
 
 
◆ m_output_node_names
  
  | 
        
          | const std::vector<std::string> DiTauOnnxDiscriminantTool::m_output_node_names = {"output_1", "output_2"} |  | private | 
 
 
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
 
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual double pt() const
The transverse momentum ( ) of the particle.
char data[hepevt_bytes_allocation_ATLAS]
float fCore(unsigned int numSubjet) const
float charge() const
Returns the charge.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
def delta_R(eta1, phi1, eta2, phi2)
float subjetPhi(unsigned int numSubjet) const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual double eta() const
The pseudorapidity ( ) of the particle.
#define ATH_MSG_VERBOSE(x)
bool isValid() const
Test to see if the link can be dereferenced.
float subjetE(unsigned int numSubjet) const
virtual void setOwner(IDataHandleHolder *o)=0
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual double phi() const
The azimuthal angle ( ) of the particle.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
bool pt_log(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
float subjetEta(unsigned int numSubjet) const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
#define ATH_MSG_WARNING(x)
def delta_phi(phi1, phi2)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const TrackParticleLinks_t & isoTrackLinks() const
float subjetPt(unsigned int numSubjet) const
Class describing a TrackParticle.
const TrackParticleLinks_t & trackLinks() const
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range  to .)