ATLAS Offline Software
Loading...
Searching...
No Matches
CalibrationDataInterfaceBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// CalibrationDataInterfaceTool.h, (c) ATLAS Detector software
8
9//
10// for some details on weighting event using the SF, see
11// https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopCommonObjects#B_tagging
12// http://indico.cern.ch/getFile.py/access?contribId=4&resId=0&materialId=slides&confId=106205
13// http://cdsweb.cern.ch/record/1269912
14//
15
16#ifndef ANALYSISCALIBRATIONDATAINTERFACEBASE_H
17#define ANALYSISCALIBRATIONDATAINTERFACEBASE_H
18
19//#include "Rtypes.h"
20#include "TNamed.h"
21#include <vector>
22#include <string>
23#include <map>
24#include <utility>
25#include <algorithm>
26
27class TF1;
28
29namespace Analysis
30{
31
32 const double CalibZERO = 1.e-6;
33 const double dummyValue = -1.;
34 typedef std::pair<double,double> CalibResult;
35 // The following result is returned upon error
37 // const CalibResult dummyResult(std::make_pair(dummyValue,dummyValue));
38
46
47 class CalibrationDataInterfaceBase : public TNamed {
48 public:
50
53
59
60 const std::string& EffCalibrationName(const std::string& flavour, unsigned int mapIndex = 0) const;
61 void setEffCalibrationNames(const std::map<std::string, std::vector<std::string> >& names);
62
63 const std::string& SFCalibrationName(const std::string& flavour) const;
64 void setSFCalibrationNames(const std::map<std::string, std::string>& names);
65
68
69 private:
70
72 std::map<std::string, std::vector<std::string> > m_calibrationEffNames;
73 std::map<std::string, std::string> m_calibrationSFNames;
74
75 protected:
76
77 // /** @brief auxiliary function for string concatenation */
78 // std::string getBasename (const std::string& OP, const std::string& flavour,
79 // const std::string& extra, bool SF, unsigned int mapIndex = 0) const;
80
82 std::string getContainername (const std::string& flavour,
83 bool SF, unsigned int mapIndex = 0) const;
84
86 std::string getBasename (const std::string& name) const;
87
91 double combinedUncertainty (double stat, const std::pair<double, double>& syst) const;
92
94 std::string m_taggerName;
95
96 // make it possible to persistify this class (for PROOF purposes)
98 };
99} // end of namespace
100
101#endif
std::string m_taggerName
tagging algorithm name
std::map< std::string, std::vector< std::string > > m_calibrationEffNames
this simply collects the per-flavour properties.
const std::string & SFCalibrationName(const std::string &flavour) const
void setEffCalibrationNames(const std::map< std::string, std::vector< std::string > > &names)
std::string getContainername(const std::string &flavour, bool SF, unsigned int mapIndex=0) const
auxiliary function for string concatenation
void setSFCalibrationNames(const std::map< std::string, std::string > &names)
const std::string & EffCalibrationName(const std::string &flavour, unsigned int mapIndex=0) const
Main interface methods accessing the flavour tagging performance information.
virtual ~CalibrationDataInterfaceBase()=0
default destructor
std::string getBasename(const std::string &name) const
auxiliary function for retrieval of name within the directory
variableType
known variable types that can be used as function arguments
std::map< std::string, std::string > m_calibrationSFNames
double combinedUncertainty(double stat, const std::pair< double, double > &syst) const
utility function for combination of statistical and (a priori asymmetric) systematic uncertainty.
The namespace of all packages in PhysicsAnalysis/JetTagging.
const CalibResult dummyResult(dummyValue, dummyValue)
std::pair< double, double > CalibResult