11 << (
"ObjectResolutionCalc") <<
"=== Constructing a TopObjectResolutionCalc...";
14 edm::LogError(
"ObjectResolutionCalc") <<
"No resolutions fits for this file available: " << resopath <<
"...";
15 TString resObsName[8] = {
"_ares",
"_bres",
"_cres",
"_dres",
"_thres",
"_phres",
"_etres",
"_etares"};
20 while ((
key = (TKey*)nextitem())) {
23 for (Int_t ro = 0; ro < 8; ro++) {
24 TString obsName = resObsName[ro];
26 if (
name.Contains(obsName)) {
31 if (
name.Contains(
"etabin") && (!
name.Contains(
"etbin"))) {
32 for (
int p = 0;
p < 8;
p++) {
33 if (
name.Contains(resObsName[
p])) {
34 TString etabin =
name;
35 etabin.Remove(0, etabin.Index(
"_") + 1);
36 etabin.Remove(0, etabin.Index(
"_") + 7);
37 int etaBin = etabin.Atoi();
46 TH1F* tmpEta = (TH1F*)(
resoFile_->GetKey(
"hEtaBins")->ReadObj());
47 for (
int b = 1;
b <= tmpEta->GetNbinsX();
b++)
48 etaBinVals_.push_back(tmpEta->GetXaxis()->GetBinLowEdge(
b));
49 etaBinVals_.push_back(tmpEta->GetXaxis()->GetBinUpEdge(tmpEta->GetNbinsX()));
64 "TopObjectResolutionCalc::obsRes should never be called when using a NN for resolutions.");
71 int bin = nrEtaBins - 1;
72 for (
int i = 0;
i < nrEtaBins;
i++) {
167 obj.setResolutionTheta(1000000.);
170 obj.setResolutionEta(1000000.);
176 obj.setResolutionTheta(1000000.);
177 obj.setResolutionPhi(this->
obsRes(5, 0, obj.
et()));
179 obj.setResolutionEta(1000000.);