ATLAS Offline Software
Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PANTAUALGS_TOOL_HELPERFUNCTIONS
6 #define PANTAUALGS_TOOL_HELPERFUNCTIONS
7 
8 #include <string>
9 #include <iostream>
10 #include <vector>
11 
13 #include "AsgTools/ToolHandle.h"
14 
15 class TLorentzVector;
16 class TVector3;
17 
18 namespace PanTau {
19  class TauConstituent;
20 }
21 
22 class TVector3;
23 
24 namespace PanTau {
25 
27 
28  public:
29 
30  // from PhysicsAnalysis/TauID/TauDiscriminant/TauDiscriminant/MethodBase.h
31  HelperFunctions(const std::string& name = ""):
33  m_name(name)
34  {}
35 
36  virtual ~HelperFunctions () {};
37 
38  static TauConstituent* getNeutralConstWithLargestAngle(const TLorentzVector& charged,
39  const std::vector<PanTau::TauConstituent*>& neutral) ;
40 
41  virtual std::string convertNumberToString(double x) const;
42 
43  virtual int getBinIndex(const std::vector<double>& binEdges, double value) const;
44 
45  virtual double stddev(double sumOfSquares, double sumOfValues, int numConsts) const;
46  virtual double deltaRprime(const TVector3& vec1, const TVector3& vec2) const;
47 
48  virtual int iPow(int man, int exp) const;
49  virtual double ulAngle(double x, double y) const;
50  virtual double sign(double a, double b) const;
51 
52 #ifdef XAOD_ANALYSIS
53  template<class T>
54  static StatusCode bindToolHandle( ToolHandle<T>& handle, std::string tool_name){
55  T* tool = dynamic_cast<T*> (asg::ToolStore::get(tool_name));
56  if(!tool->isInitialized())
57  if (tool->initialize().isFailure())
58  return StatusCode::FAILURE;
59  handle = ToolHandle<T>(tool);
60  return StatusCode::SUCCESS;
61  }
62 #else
63  template<class T>
64  static StatusCode bindToolHandle( ToolHandle<T>& , std::string){return StatusCode::SUCCESS;}
65 #endif
66 
67  std::string getName() const
68  {
69  return m_name;
70  }
71 
72 
73  private:
74 
75  std::string m_name;
76 
77 
78  }; //end class Tool_HelperFunctions
79 
80 
81 }//end namespace PanTau
82 
83 
84 
85 
86 #endif // PANTAUALGS_TOOL_HELPERFUNCTIONS
D3PDMakerTestInstan::vec2
std::vector< D3PDTest::MyVec2 > vec2
Definition: D3PDMakerTestDict.h:14
asg::AsgMessaging::AsgMessaging
AsgMessaging(const std::string &name)
Constructor with a name.
Definition: AsgMessaging.cxx:17
athena.value
value
Definition: athena.py:122
PanTau::HelperFunctions::ulAngle
virtual double ulAngle(double x, double y) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:87
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
PanTau::HelperFunctions::sign
virtual double sign(double a, double b) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:107
x
#define x
PanTau::HelperFunctions::deltaRprime
virtual double deltaRprime(const TVector3 &vec1, const TVector3 &vec2) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:70
AsgMessaging.h
PanTau::HelperFunctions
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:26
PanTau::HelperFunctions::getNeutralConstWithLargestAngle
static TauConstituent * getNeutralConstWithLargestAngle(const TLorentzVector &charged, const std::vector< PanTau::TauConstituent * > &neutral)
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:16
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PanTau::HelperFunctions::getBinIndex
virtual int getBinIndex(const std::vector< double > &binEdges, double value) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:42
PanTau::HelperFunctions::getName
std::string getName() const
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:67
PanTau::HelperFunctions::convertNumberToString
virtual std::string convertNumberToString(double x) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:35
PanTau::HelperFunctions::HelperFunctions
HelperFunctions(const std::string &name="")
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:31
CP::neutral
@ neutral
Definition: Reconstruction/PFlow/PFlowUtils/PFlowUtils/PFODefs.h:11
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
asg::AsgMessaging
Class mimicking the AthMessaging class from the offline software.
Definition: AsgMessaging.h:40
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
PanTau::HelperFunctions::bindToolHandle
static StatusCode bindToolHandle(ToolHandle< T > &, std::string)
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:64
PanTau::HelperFunctions::~HelperFunctions
virtual ~HelperFunctions()
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:36
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
PanTau::HelperFunctions::m_name
std::string m_name
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:75
asg::ToolStore::get
static IAsgTool * get(const std::string &name, bool silent=false)
Retrieve a tool by name.
Definition: ToolStore.cxx:57
PanTau::HelperFunctions::iPow
virtual int iPow(int man, int exp) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:78
PanTau
xAOD EDM
Definition: Reconstruction/PanTau/PanTauAlgs/PanTauAlgs/HelperFunctions.h:18
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
PanTau::HelperFunctions::stddev
virtual double stddev(double sumOfSquares, double sumOfValues, int numConsts) const
Definition: Reconstruction/PanTau/PanTauAlgs/Root/HelperFunctions.cxx:57
PanTau::TauConstituent
Definition: TauConstituent.h:25
ToolHandle.h
CP::charged
@ charged
Definition: Reconstruction/PFlow/PFlowUtils/PFlowUtils/PFODefs.h:11