ATLAS Offline Software
Loading...
Searching...
No Matches
CalibInitializer.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include <cmath>
8#include <stdexcept>
9
10namespace MCP {
11 namespace CalibInitializer {
12
13 std::map<SagittaCorrection, std::shared_ptr<CalibContainer>> createSagittaCorrMap(DataYear dataYear, TrackType type, const std::string& recommendationPath, const std::string& correctionType)
14 {
15 std::map<SagittaCorrection, std::shared_ptr<CalibContainer>> calibMap;
16
17 std::string path = "MuonMomentumCorrections/" + recommendationPath + "/sagittaBias/" + MCP::toString(dataYear) + "/";
18
19 std::string trackType = MCP::toString(type);
20
21 if(correctionType == "data")
22 {
23 path += trackType + "_data.root";
24 calibMap[SagittaCorrection::Nominal] = std::make_shared<CalibContainer>(path, "p" + trackType + "_0");
25 calibMap[SagittaCorrection::Datastat__1up] = std::make_shared<CalibContainer>(path, "p" + trackType + "_statError");
26 calibMap[SagittaCorrection::Residual__1up] = std::make_shared<CalibContainer>(path, "p" + trackType + "_1");
27 calibMap[SagittaCorrection::PtExtra__1up] = std::make_shared<CalibContainer>(path, "p" + trackType + "_ptExtra");
28 }
29 else if(correctionType == "mc")
30 {
31 path += trackType + "_mc.root";
32 calibMap[SagittaCorrection::Nominal] = std::make_shared<CalibContainer>(path, "p" + trackType + "_0");
33 }
34 else
35 {
36 throw std::invalid_argument("Cannot recognize saggita correction type: " + correctionType);
37 }
38
39 return calibMap;
40 }
41 std::map<ScaleResCorrection, std::shared_ptr<CalibContainer>> createScaleResCorrMap(DataYear dataYear, TrackType type, const std::string& recommendationPath, ScaleSmearParam param)
42 {
43 std::map<ScaleResCorrection, std::shared_ptr<CalibContainer>> calibMap;
44
45
46 std::string path = "MuonMomentumCorrections/" + recommendationPath + "/ScaleAndSmear/" + MCP::toString(dataYear) + "/";
47
48 std::string trackType = MCP::toString(type);
49 path += trackType + ".root";
50
51 std::string correctionType = MCP::toString(param);
52
53 calibMap[ScaleResCorrection::Nominal] = std::make_shared<CalibContainer>(path, correctionType + "_nom");
54 calibMap[ScaleResCorrection::SystErr__1up] = std::make_shared<CalibContainer>(path, correctionType + "_upErr");
55 calibMap[ScaleResCorrection::SystErr__1down] = std::make_shared<CalibContainer>(path, correctionType + "_downErr");
56
57 return calibMap;
58 }
59
60 std::map<MST_Categories, std::shared_ptr<CalibContainer>> createHighpTCorrMap(DataYear dataYear, const std::string& type, const std::string& recommendationPath, const std::string& param)
61 {
62 std::map<MST_Categories, std::shared_ptr<CalibContainer>> calibMap;
63 std::string path = "MuonMomentumCorrections/" + recommendationPath + "/ScaleAndSmear/" + MCP::toString(dataYear) + "/ExtraHighPt_"+type+"_muons.root";
64
65 calibMap[MST_Categories::Zero] = std::make_shared<CalibContainer>(path, param + "_cat0");
66 calibMap[MST_Categories::One] = std::make_shared<CalibContainer>(path, param + "-cat1");
67 calibMap[MST_Categories::Two] = std::make_shared<CalibContainer>(path, param + "-cat2");
68 calibMap[MST_Categories::Three] = std::make_shared<CalibContainer>(path, param + "-cat3");
69 calibMap[MST_Categories::Four] = std::make_shared<CalibContainer>(path, param + "-cat4");
70
71 return calibMap;
72 }
73
74 std::map<ExpectedResParam, std::shared_ptr<CalibContainer>> createExpectedResMap(DataYear dataYear, TrackType type, const std::string& recommendationPath)
75 {
76 std::map<ExpectedResParam, std::shared_ptr<CalibContainer>> calibMap;
77 std::string path = "MuonMomentumCorrections/" + recommendationPath + "/ScaleAndSmear/" + MCP::toString(dataYear) + "/MC_values_muons.root";
78
79 if(type == TrackType::ID)
80 {
81 calibMap[ExpectedResParam::r1] = std::make_shared<CalibContainer>(path, "r1_ID_MC");
82 calibMap[ExpectedResParam::r2] = std::make_shared<CalibContainer>(path, "r2_ID_MC");
83 calibMap[ExpectedResParam::r2tan2] = std::make_shared<CalibContainer>(path, "r2_ID_TAN2_MC");
84 }
85 else if(type == TrackType::ME)
86 {
87 calibMap[ExpectedResParam::r0] = std::make_shared<CalibContainer>(path, "r0_MS_MC");
88 calibMap[ExpectedResParam::r1] = std::make_shared<CalibContainer>(path, "r1_MS_MC");
89 calibMap[ExpectedResParam::r2] = std::make_shared<CalibContainer>(path, "r2_MS_MC");
90 }
91
92 return calibMap;
93 }
94
95
96
97
98 }
99}
std::map< MST_Categories, std::shared_ptr< CalibContainer > > createHighpTCorrMap(DataYear dataYear, const std::string &type, const std::string &recommendationPath, const std::string &param)
std::map< ExpectedResParam, std::shared_ptr< CalibContainer > > createExpectedResMap(DataYear dataYear, TrackType type, const std::string &recommendationPath)
std::map< ScaleResCorrection, std::shared_ptr< CalibContainer > > createScaleResCorrMap(DataYear dataYear, TrackType type, const std::string &recommendationPath, ScaleSmearParam param)
std::map< SagittaCorrection, std::shared_ptr< CalibContainer > > createSagittaCorrMap(DataYear dataYear, TrackType type, const std::string &recommendationPath, const std::string &correctionType)
std::string toString(TrackType trkType)
Definition EnumDef.h:39
DataYear
Definition EnumDef.h:28
ScaleSmearParam
Definition EnumDef.h:22
TrackType
Definition EnumDef.h:13