ATLAS Offline Software
JetTrackFilterTool.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 /*
3  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
4 */
5 
6 #ifndef INDETTRACKSYSTEMATICSTOOLS_JETTRACKFILTERTOOL_H
7 #define INDETTRACKSYSTEMATICSTOOLS_JETTRACKFILTERTOOL_H
8 
10 #include "AsgTools/AsgTool.h"
11 #include "AsgTools/ToolHandle.h"
15 #include "xAODJet/JetContainer.h"
17 
18 #include <string>
19 
20 class TH1;
21 class TH2;
22 class TRandom3;
23 class TFile;
24 
25 namespace InDet {
26 
27  class IInDetTrackTruthOriginTool;
28 
32 
34  : public virtual IJetTrackFilterTool
35  , public virtual InDetTrackSystematicsTool
36  // , public asg::AsgTool
37  {
38 
39  // create constructor for Athena
42 
43  public:
44  // create constructor for standalone Root
45  JetTrackFilterTool( const std::string& name );
46  virtual ~JetTrackFilterTool();
47 
48  // static const InterfaceID& interfaceID();
49  virtual StatusCode initialize() override;
50  virtual void prepare() override {};
51 
52  // right now this returns a bool; if we want to implement the ASG selection tool interface then this will need to change to a TAccept
53  virtual bool accept( const xAOD::TrackParticle*, const xAOD::Jet* ) const override;
54  virtual bool accept( const xAOD::TrackParticle*, const xAOD::JetContainer* ) const override;
55 
57  virtual bool isAffectedBySystematic( const CP::SystematicVariation& ) const override;
59  virtual CP::SystematicSet affectingSystematics() const override;
61  virtual CP::SystematicSet recommendedSystematics() const override;
63  virtual StatusCode applySystematicVariation( const CP::SystematicSet& ) override;
64 
65  private:
66 
67  float getNomTrkEff(const xAOD::TrackParticle*) const;
68 
69  int m_seed = 0;
70  std::unique_ptr<TRandom3> m_rnd;
71  double m_deltaR = 0.1;
72  float m_trkEffSystScale = 1.0;
73 
74  TH2* m_trkNomEff = nullptr;
75 
76  // allow the user to configure which calibration file to use if desired
77  std::string m_calibFileNomEff;
78 
79  double m_effUncertTIDE = 0.24;
80  double m_fakeUncertTIDE = 0.35;
81 
82  ToolHandle< IInDetTrackTruthOriginTool > m_trackOriginTool;
83 
84  }; // class JetTrackFilterTool
85 
86 } // namespace InDet
87 
88 #endif
InDet::JetTrackFilterTool::m_calibFileNomEff
std::string m_calibFileNomEff
Definition: JetTrackFilterTool.h:77
InDet::InDetTrackSystematicsTool
Definition: InDetTrackSystematicsTool.h:22
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::JetTrackFilterTool::initialize
virtual StatusCode initialize() override
Definition: JetTrackFilterTool.cxx:45
InDet::JetTrackFilterTool::m_deltaR
double m_deltaR
Definition: JetTrackFilterTool.h:71
SystematicSet.h
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
InDet::JetTrackFilterTool::m_effUncertTIDE
double m_effUncertTIDE
Definition: JetTrackFilterTool.h:79
CP::SystematicVariation
Definition: SystematicVariation.h:47
InDet::JetTrackFilterTool::recommendedSystematics
virtual CP::SystematicSet recommendedSystematics() const override
returns: list of recommended systematics to use with this tool
Definition: JetTrackFilterTool.cxx:146
InDet::JetTrackFilterTool::m_trkEffSystScale
float m_trkEffSystScale
Definition: JetTrackFilterTool.h:72
InDet::JetTrackFilterTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &) override
configure the tool to apply a given list of systematic variations
Definition: JetTrackFilterTool.cxx:151
InDet::JetTrackFilterTool::m_rnd
std::unique_ptr< TRandom3 > m_rnd
Definition: JetTrackFilterTool.h:70
InDet::JetTrackFilterTool::accept
virtual bool accept(const xAOD::TrackParticle *, const xAOD::Jet *) const override
Definition: JetTrackFilterTool.cxx:69
InDet::JetTrackFilterTool::getNomTrkEff
float getNomTrkEff(const xAOD::TrackParticle *) const
Definition: JetTrackFilterTool.cxx:125
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::JetTrackFilterTool::m_trkNomEff
TH2 * m_trkNomEff
Definition: JetTrackFilterTool.h:74
InDet::JetTrackFilterTool::affectingSystematics
virtual CP::SystematicSet affectingSystematics() const override
returns: list of systematics this tool can be affected by
Definition: JetTrackFilterTool.cxx:141
InDet::JetTrackFilterTool::m_seed
int m_seed
Definition: JetTrackFilterTool.h:69
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
TH2
Definition: rootspy.cxx:373
IJetTrackFilterTool.h
InDet::JetTrackFilterTool
Definition: JetTrackFilterTool.h:37
InDet::JetTrackFilterTool::isAffectedBySystematic
virtual bool isAffectedBySystematic(const CP::SystematicVariation &) const override
returns: whether the tool is affected by the systematic
Definition: JetTrackFilterTool.cxx:136
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDetTrackSystematicsTool.h
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
JetContainer.h
InDet::JetTrackFilterTool::prepare
virtual void prepare() override
Definition: JetTrackFilterTool.h:50
TH1
Definition: rootspy.cxx:268
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
TrackParticleFwd.h
InDet::JetTrackFilterTool::m_trackOriginTool
ToolHandle< IInDetTrackTruthOriginTool > m_trackOriginTool
Definition: JetTrackFilterTool.h:82
InDet::JetTrackFilterTool::m_fakeUncertTIDE
double m_fakeUncertTIDE
Definition: JetTrackFilterTool.h:80
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
ToolHandle.h
InDet::IJetTrackFilterTool
Definition: IJetTrackFilterTool.h:24
AsgTool.h
SystematicVariation.h