ATLAS Offline Software
IPMGCrossSectionTool.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef PMGANALYSISINTERFACES_IPMGCROSSSECTIONTOOL_H
8 #define PMGANALYSISINTERFACES_IPMGCROSSSECTIONTOOL_H
9 
10 // Infrastructure include(s):
11 #include "AsgTools/IAsgTool.h"
12 
13 #include <vector>
14 
15 namespace PMGTools {
16 
17  // store all information for certain DSID in structure
18  struct AllSampleInfo{
19  int dsid = 0;
20  std::string containerName;
21  double amiXSec = 0;
22  double filterEff = 0;
23  double kFactor = 0;
24  double XSecUncUP = 0;
25  double XSecUncDOWN = 0;
26  int etag = 0;
27  double br = 0;
30  };
31 
32 
33  class IPMGCrossSectionTool : public virtual asg::IAsgTool {
34 
35  // Declare the interface that the class provides
37 
38  public:
39 
41  virtual bool readInfosFromFiles(const std::vector<std::string> &) = 0;
42 
44  virtual bool readInfosFromDir(const std::string& inputDir) = 0;
45 
47  virtual double getFilterEff(const int dsid, const int etag = -1) const = 0;
48 
50  virtual std::string getSampleName(const int dsid, const int etag = -1) const = 0;
51 
53  virtual double getAMIXsection(const int dsid, const int etag = -1) const = 0;
54 
56  virtual double getXsectionUncertainty(const int dsid, const int etag = -1) const = 0;
57 
59  virtual double getXsectionUncertaintyUP(const int dsid, const int etag = -1) const = 0;
60 
62  virtual double getXsectionUncertaintyDOWN(const int dsid, const int etag = -1) const = 0;
63 
64  // :: below is for future use?
66  //virtual double getBR(const int dsid, const int etag = -1) const = 0;
67 
69  virtual double getKfactor(const int dsid, const int etag = -1) const = 0;
70 
72  virtual double getSampleXsection(const int dsid, const int etag = -1) const = 0;
73 
75  virtual std::vector<int> getLoadedDSIDs() const = 0;
76 
77  }; // class IPMGCrossSectionTool
78 
79 } // namespace PMGTools
80 
81 #endif //> !PMGANALYSISINTERFACES_IPMGCROSSSECTIONTOOL_H
PMGTools::IPMGCrossSectionTool::getAMIXsection
virtual double getAMIXsection(const int dsid, const int etag=-1) const =0
return the AMI cross-section for DSID
PMGTools::IPMGCrossSectionTool
Definition: IPMGCrossSectionTool.h:33
PMGTools::IPMGCrossSectionTool::getXsectionUncertainty
virtual double getXsectionUncertainty(const int dsid, const int etag=-1) const =0
return the cross-section uncertainty for DSID
PMGTools::IPMGCrossSectionTool::getFilterEff
virtual double getFilterEff(const int dsid, const int etag=-1) const =0
return filter efficiency for DSID
PMGTools::IPMGCrossSectionTool::getKfactor
virtual double getKfactor(const int dsid, const int etag=-1) const =0
return the branching ratio for DSID
PMGTools::AllSampleInfo::kFactor
double kFactor
Definition: IPMGCrossSectionTool.h:23
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
PMGTools::IPMGCrossSectionTool::readInfosFromFiles
virtual bool readInfosFromFiles(const std::vector< std::string > &)=0
read infos from file, store them in the structure and make a vector that keeps all of them
PMGTools::AllSampleInfo::br
double br
Definition: IPMGCrossSectionTool.h:27
PMGTools::IPMGCrossSectionTool::getXsectionUncertaintyUP
virtual double getXsectionUncertaintyUP(const int dsid, const int etag=-1) const =0
return the cross-section uncertainty for DSID
PMGTools::AllSampleInfo::higherOrderXsecSample
double higherOrderXsecSample
Definition: IPMGCrossSectionTool.h:29
PMGTools::AllSampleInfo::containerName
std::string containerName
Definition: IPMGCrossSectionTool.h:20
PMGTools::AllSampleInfo::XSecUncUP
double XSecUncUP
Definition: IPMGCrossSectionTool.h:24
PMGTools::IPMGCrossSectionTool::getLoadedDSIDs
virtual std::vector< int > getLoadedDSIDs() const =0
get a list of the DSID for the loaded samples
PMGTools::AllSampleInfo::XSecUncDOWN
double XSecUncDOWN
Definition: IPMGCrossSectionTool.h:25
PMGTools::IPMGCrossSectionTool::readInfosFromDir
virtual bool readInfosFromDir(const std::string &inputDir)=0
read infos from all files in dir
Generate_dsid_ranseed.dsid
dsid
Definition: Generate_dsid_ranseed.py:6
PMGTools::AllSampleInfo
Definition: IPMGCrossSectionTool.h:18
PMGTools
Tool providing sample cross-sections and k-factors etc.
Definition: AnalysisCommon/PMGTools/PMGTools/IPMGSherpaVjetsSysTool.h:16
PMGTools::IPMGCrossSectionTool::getXsectionUncertaintyDOWN
virtual double getXsectionUncertaintyDOWN(const int dsid, const int etag=-1) const =0
return the cross-section uncertainty for DSID
TestSUSYToolsAlg.inputDir
string inputDir
Definition: TestSUSYToolsAlg.py:74
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
PMGTools::AllSampleInfo::higherOrderXsecTotal
double higherOrderXsecTotal
Definition: IPMGCrossSectionTool.h:28
PMGTools::AllSampleInfo::filterEff
double filterEff
Definition: IPMGCrossSectionTool.h:22
PMGTools::AllSampleInfo::dsid
int dsid
Definition: IPMGCrossSectionTool.h:19
PMGTools::AllSampleInfo::etag
int etag
Definition: IPMGCrossSectionTool.h:26
PMGTools::IPMGCrossSectionTool::getSampleName
virtual std::string getSampleName(const int dsid, const int etag=-1) const =0
return the sample name for DSID
PMGTools::IPMGCrossSectionTool::getSampleXsection
virtual double getSampleXsection(const int dsid, const int etag=-1) const =0
return the sample cross-section for DSID
PMGTools::AllSampleInfo::amiXSec
double amiXSec
Definition: IPMGCrossSectionTool.h:21