1 #ifndef Alignment_APEEstimation_TrackerSectorStruct_h
2 #define Alignment_APEEstimation_TrackerSectorStruct_h
58 TString, TString, TString, TString, TString,
int,
int,
double,
double,
std::string =
"nphtr");
60 TString, TString, TString, TString,
int,
int,
double,
double,
std::string =
"nphtr");
62 TString, TString, TString, TString,
int,
int,
double,
double,
std::string =
"nphtr");
84 std::map<std::string, std::vector<TH1 *> >
m_sigmaX;
89 std::map<std::string, std::vector<TH1 *> >
m_sigmaY;
106 : directory_(nullptr),
118 WidthVsPhiSensX(nullptr),
119 WidthVsWidthProjected(nullptr),
120 WidthDiffVsMaxStrip(nullptr),
121 WidthDiffVsSigmaXHit(nullptr),
122 PhiSensXVsBarycentreX(nullptr),
123 PWidthVsPhiSensX(nullptr),
124 PWidthVsWidthProjected(nullptr),
125 PWidthDiffVsMaxStrip(nullptr),
126 PWidthDiffVsSigmaXHit(nullptr),
127 PPhiSensXVsBarycentreX(nullptr),
134 PhiSensYVsBarycentreY(nullptr),
135 PPhiSensYVsBarycentreY(nullptr),
141 ResidualWidthX1(nullptr),
142 CorrectionX1(nullptr),
144 ResidualWidthX2(nullptr),
145 CorrectionX2(nullptr),
150 ResidualWidthY1(nullptr),
151 CorrectionY1(nullptr),
153 ResidualWidthY2(nullptr),
154 CorrectionY2(nullptr),
178 return bookCorrHists(
"X", varName, varTitle, labelX, unitX, nBinX1D, nBinX2D, minBinX, maxBinX,
options);
189 return bookCorrHists(
"Y", varName, varTitle, labelX, unitX, nBinX1D, nBinX2D, minBinX, maxBinX,
options);
215 if (!(
o.find(
'n') != std::string::npos ||
o.find(
'p') != std::string::npos ||
o.find(
'h') != std::string::npos ||
216 o.find(
't') != std::string::npos ||
o.find(
'r') != std::string::npos))
217 return correlationHists;
223 return correlationHists;
226 varTitle +
" " + labelX +
";" + labelX +
" " + unitX +
";# hits",
231 if (
options.find(
'n') != std::string::npos)
233 directory->make<TH2F>(
"h2_norRes" + xY +
"Vs" + varName,
234 "r_{" +
xy +
"}/#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
235 ";(" +
xy +
"_{trk}-" +
xy +
"_{hit})/#sigma_{r," +
xy +
"}",
242 if (
options.find(
'p') != std::string::npos)
244 directory->make<TH2F>(
"h2_prob" + xY +
"Vs" + varName,
245 "prob_{" +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";prob_{" +
xy +
"}",
252 if (
options.find(
'h') != std::string::npos)
254 "h2_sigma" + xY +
"HitVs" + varName,
255 "#sigma_{hit," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{hit," +
xy +
"} [#mum]",
261 sigmaXHitMax * 10000.);
262 if (
options.find(
't') != std::string::npos)
264 "h2_sigma" + xY +
"TrkVs" + varName,
265 "#sigma_{trk," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{trk," +
xy +
"} [#mum]",
272 if (
options.find(
'r') != std::string::npos)
274 "h2_sigma" + xY +
"Vs" + varName,
275 "#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{r," +
xy +
"} [#mum]",
283 if (
options.find(
'n') != std::string::npos)
285 directory->make<TProfile>(
"p_norRes" + xY +
"Vs" + varName,
286 "r_{" +
xy +
"}/#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
287 ";(" +
xy +
"_{trk}-" +
xy +
"_{hit})/#sigma_{r," +
xy +
"}",
292 if (
options.find(
'p') != std::string::npos)
294 "p_prob" + xY +
"Vs" + varName,
295 "prob_{" +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";prob_{" +
xy +
"}",
300 if (
options.find(
'h') != std::string::npos)
302 "p_sigma" + xY +
"HitVs" + varName,
303 "#sigma_{hit," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{hit," +
xy +
"} [#mum]",
307 if (
options.find(
't') != std::string::npos)
309 "p_sigma" + xY +
"TrkVs" + varName,
310 "#sigma_{trk," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{trk," +
xy +
"} [#mum]",
314 if (
options.find(
'r') != std::string::npos)
316 "p_sigma" + xY +
"Vs" + varName,
317 "#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{r," +
xy +
"} [#mum]",
322 return correlationHists;
326 TString varName, TString labelX, TString unitX,
int nBinX,
double minBinX,
double maxBinX,
std::string options) {
330 TString varName, TString labelX, TString unitX,
int nBinX,
double minBinX,
double maxBinX,
std::string options) {
352 if (!(
o.find(
'n') != std::string::npos ||
o.find(
'p') != std::string::npos ||
o.find(
'h') != std::string::npos ||
353 o.find(
't') != std::string::npos ||
o.find(
'r') != std::string::npos))
354 return correlationHists;
360 return correlationHists;
362 if (
options.find(
'n') != std::string::npos)
364 directory->make<TH2F>(
"h2_norRes" + xY +
"Vs" + varName,
365 "r_{" +
xy +
"}/#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
366 ";(" +
xy +
"_{trk}-" +
xy +
"_{hit})/#sigma_{r," +
xy +
"}",
373 if (
options.find(
'p') != std::string::npos)
375 directory->make<TH2F>(
"h2_prob" + xY +
"Vs" + varName,
376 "prob_{" +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";prob_{" +
xy +
"}",
383 if (
options.find(
'h') != std::string::npos)
385 "h2_sigma" + xY +
"HitVs" + varName,
386 "#sigma_{hit," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{hit," +
xy +
"} [#mum]",
392 sigmaXHitMax * 10000.);
393 if (
options.find(
't') != std::string::npos)
395 "h2_sigma" + xY +
"TrkVs" + varName,
396 "#sigma_{trk," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{trk," +
xy +
"} [#mum]",
403 if (
options.find(
'r') != std::string::npos)
405 "h2_sigma" + xY +
"Vs" + varName,
406 "#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{r," +
xy +
"} [#mum]",
414 if (
options.find(
'n') != std::string::npos)
416 directory->make<TProfile>(
"p_norRes" + xY +
"Vs" + varName,
417 "r_{" +
xy +
"}/#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
418 ";(" +
xy +
"_{trk}-" +
xy +
"_{hit})/#sigma_{r," +
xy +
"}",
423 if (
options.find(
'p') != std::string::npos)
425 "p_prob" + xY +
"Vs" + varName,
426 "prob_{" +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";prob_{" +
xy +
"}",
431 if (
options.find(
'h') != std::string::npos)
433 "p_sigma" + xY +
"HitVs" + varName,
434 "#sigma_{hit," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{hit," +
xy +
"} [#mum]",
438 if (
options.find(
't') != std::string::npos)
440 "p_sigma" + xY +
"TrkVs" + varName,
441 "#sigma_{trk," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{trk," +
xy +
"} [#mum]",
445 if (
options.find(
'r') != std::string::npos)
447 "p_sigma" + xY +
"Vs" + varName,
448 "#sigma_{r," +
xy +
"} vs. " + labelX +
";" + labelX +
" " + unitX +
";#sigma_{r," +
xy +
"} [#mum]",
453 return correlationHists;
462 return fillCorrHists(
"Y", hitParameterStruct,
variable);
473 norRes = hitParameterStruct.
norResX;
475 errHit = hitParameterStruct.
errXHit;
476 errTrk = hitParameterStruct.
errXTrk;
480 norRes = hitParameterStruct.
norResY;
482 errHit = hitParameterStruct.
errYHit;
483 errTrk = hitParameterStruct.
errYTrk;
492 NorResXVsVar->Fill(
variable, norRes);
493 PNorResXVsVar->Fill(
variable, norRes);
499 if (SigmaXHitVsVar) {
500 SigmaXHitVsVar->Fill(
variable, errHit * 10000.);
501 PSigmaXHitVsVar->Fill(
variable, errHit * 10000.);
503 if (SigmaXTrkVsVar) {
504 SigmaXTrkVsVar->Fill(
variable, errTrk * 10000.);
505 PSigmaXTrkVsVar->Fill(
variable, errTrk * 10000.);