17 << (
"ObjectResolutionCalc") <<
"=== Constructing a TopObjectResolutionCalc...";
21 <<
"ObjectResolutionCalc: no resolutions fits for this file available: " << resopath <<
"...";
23 TString resObsName[8] = {
"_ares",
"_bres",
"_cres",
"_dres",
"_thres",
"_phres",
"_etres",
"_etares"};
27 while ((
key = (TKey*)nextitem())) {
30 for (Int_t ro = 0; ro < 8; ro++) {
31 TString obsName = resObsName[ro];
33 if (
name.Contains(obsName)) {
38 if (
name.Contains(
"etabin") && (!
name.Contains(
"etbin"))) {
39 for (
int p = 0;
p < 8;
p++) {
40 if (
name.Contains(resObsName[
p])) {
41 TString etabin =
name;
42 etabin.Remove(0, etabin.Index(
"_") + 1);
43 etabin.Remove(0, etabin.Index(
"_") + 7);
44 int etaBin = etabin.Atoi();
53 TH1F* tmpEta = (TH1F*)(
resoFile_->GetKey(
"hEtaBins")->ReadObj());
54 for (
int b = 1;
b <= tmpEta->GetNbinsX();
b++)
55 etaBinVals_.push_back(tmpEta->GetXaxis()->GetBinLowEdge(
b));
56 etaBinVals_.push_back(tmpEta->GetXaxis()->GetBinUpEdge(tmpEta->GetNbinsX()));
71 "TopObjectResolutionCalc::obsRes should never be called when using a NN for resolutions.");
78 int bin = nrEtaBins - 1;
79 for (
int i = 0;
i < nrEtaBins;
i++) {
176 obj.setResolutionTheta(1000000.);
179 obj.setResolutionEta(1000000.);
185 obj.setResolutionTheta(1000000.);
186 obj.setResolutionPhi(this->
obsRes(5, 0, obj.
et()));
188 obj.setResolutionEta(1000000.);
Log< level::Info, true > LogVerbatim
Analysis-level MET class.
TMultiLayerPerceptron * network_[10]
std::vector< float > etaBinVals_
double et() const final
transverse energy
float obsRes(int obs, int eta, float eT)
double eta() const final
momentum pseudorapidity