DL2Tool.h 1.29 KB
Newer Older
1
2
// for text editors: this file is -*- C++ -*-
/*
3
  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
4
5
6
7
8
9
*/

#ifndef DL2_TOOL_H
#define DL2_TOOL_H

#include "AsgTools/AsgTool.h"
10
#include "FlavorTagDiscriminants/IBTagDecorator.h"
11
#include "FlavorTagDiscriminants/IJetTagDecorator.h"
12
13
14
15
16
17
18
19

namespace FlavorTagDiscriminants {

  class DL2HighLevel;

  struct DL2Properties {
    std::string nnFile;
    std::string flipTagConfig;
Dan Guest's avatar
Dan Guest committed
20
    std::map<std::string,std::string> variableRemapping;
21
    std::string trackLinkType;
22
23
  };

24
25
26
  class DL2Tool : public asg::AsgTool,
                  virtual public IBTagDecorator,
                  virtual public IJetTagDecorator
27
  {
28
    ASG_TOOL_CLASS2(DL2Tool, IBTagDecorator, IJetTagDecorator )
29
30
31
32
33
34
  public:
    DL2Tool(const std::string& name);
    ~DL2Tool();

    StatusCode initialize() override;

35
    // returns 0 for success
36
37
    virtual void decorate(const xAOD::BTagging& btag) const override;
    virtual void decorate(const xAOD::Jet& jet) const override;
38
39

    virtual std::set<std::string> getDecoratorKeys() const override;
40
41
    virtual std::set<std::string> getAuxInputKeys() const override;
    virtual std::set<std::string> getConstituentAuxInputKeys() const override;
42
43
44
45
46
47
48
  private:
    DL2Properties m_props; //!
    std::unique_ptr<DL2HighLevel> m_dl2; //!
  };

}
#endif