31 std::cout <<
"--> BJetTaggingAdjustRanges: Adjusting ranges of d0, z0 and d0Sig, z0Sig"
37 TKey* key0 = (TKey*) nextcd0();
38 TDirectory* dir0 =
dynamic_cast<TDirectory*
> (key0->ReadObj());
43 TIter next_run(
f->GetListOfKeys());
47 while ((key_run =
dynamic_cast<TKey*
> (next_run())) != 0) {
49 std::cout <<
"--> BJetTaggingAdjustRanges: Getting run " << key_run << std::endl;
51 TObject* obj_run = key_run->ReadObj();
52 TDirectory* tdir_run =
dynamic_cast<TDirectory*
> (obj_run);
63 TString run_dir = tdir_run->GetName();
64 if (!run_dir.Contains(
"run")) {
65 std::cerr <<
"--> BJetTaggingAdjustRanges: no run found" << std::endl;
71 std::cout <<
"--> BJetTaggingAdjustRanges: Getting run no. " << run_dir
76 TString jetmon_dir = run_dir +
"/JetTagging";
82 if (!(
dir =
f->GetDirectory(jetmon_dir))) {
83 if (
debugLevel > 0) std::cerr <<
"--> BJetTaggingAdjustRanges: directory " << jetmon_dir
84 <<
" not found." << std::endl;
88 std::vector < TString > impactParameters;
89 impactParameters.push_back(
"d0Sig");
90 impactParameters.push_back(
"z0Sig");
92 impactParameters.push_back(
"d0");
93 impactParameters.push_back(
"z0");
95 std::vector < TString > etaAndPtRanges;
96 etaAndPtRanges.push_back(
"_EtaRange_0_PtRange_0");
97 etaAndPtRanges.push_back(
"_EtaRange_0_PtRange_1");
98 etaAndPtRanges.push_back(
"_EtaRange_0_PtRange_2");
99 etaAndPtRanges.push_back(
"_EtaRange_1_PtRange_0");
100 etaAndPtRanges.push_back(
"_EtaRange_1_PtRange_1");
101 etaAndPtRanges.push_back(
"_EtaRange_1_PtRange_2");
102 etaAndPtRanges.push_back(
"_EtaRange_2_PtRange_0");
103 etaAndPtRanges.push_back(
"_EtaRange_2_PtRange_1");
104 etaAndPtRanges.push_back(
"_EtaRange_2_PtRange_2");
105 etaAndPtRanges.push_back(
"_EtaRange_3_PtRange_0");
106 etaAndPtRanges.push_back(
"_EtaRange_3_PtRange_1");
107 etaAndPtRanges.push_back(
"_EtaRange_3_PtRange_2");
108 etaAndPtRanges.push_back(
"_EtaRange_4_PtRange_0");
109 etaAndPtRanges.push_back(
"_EtaRange_4_PtRange_1");
110 etaAndPtRanges.push_back(
"_EtaRange_4_PtRange_2");
112 TH1F* workingHistogram(0);
114 TString impactParameterHistos, workingHistogramName;
117 != impactParameters.end(); ++itT) {
119 != etaAndPtRanges.end(); ++itO) {
120 workingHistogramName = (*itT) + (*itO);
121 impactParameterHistos = jetmon_dir +
"/" + workingHistogramName;
123 workingHistogram =
dynamic_cast<TH1F*
> (
f->Get(impactParameterHistos));
124 if (workingHistogram != 0) {
138 minimalBin = workingHistogram->FindFirstBinAbove(0.0, 1);
139 maximalBin = workingHistogram->FindLastBinAbove(0.0, 1);
141 workingHistogram->SetAxisRange(TMath::Max(1, (minimalBin - 5)),
142 (maximalBin + 5),
"X");
145 workingHistogram->Write(
"", TObject::kOverwrite);
148 std::cerr <<
"Histogram " << impactParameterHistos <<
" not found."
155 std::cout <<
"--> BJetTaggingAdjustRanges: Finished" << std::endl;