Commit feb17d9b authored by Jens Kroeger's avatar Jens Kroeger
Browse files

AnalysisTimingATLASpix: improved naming of histograms, improved axis labels +...

AnalysisTimingATLASpix: improved naming of histograms, improved axis labels + create histograms only if they are also filled (e.g. if timewalk correction is performed)
parent e780ba18
......@@ -45,9 +45,7 @@ AnalysisTimingATLASpix::AnalysisTimingATLASpix(Configuration config, std::shared
}
m_highTotCut = m_config.get<int>("high_tot_cut", 40);
m_lowTotCut = m_config.get<int>("low_tot_cut", 40);
m_highChargeCut = m_config.get<double>("high_charge_cut", static_cast<double>(m_highTotCut));
m_leftTailCut = m_config.get<double>("left_tail_cut", static_cast<double>(Units::convert(-10, "ns")));
m_rightTailCut = m_config.get<double>("right_tail_cut", static_cast<double>(Units::convert(10, "ns")));
m_timingTailCut = m_config.get<double>("timing_tail_cut", static_cast<double>(Units::convert(20, "ns")));
if(m_config.has("correction_file_row")) {
m_correctionFile_row = m_config.get<std::string>("correction_file_row");
......@@ -67,7 +65,9 @@ AnalysisTimingATLASpix::AnalysisTimingATLASpix(Configuration config, std::shared
m_calcCorrections = m_config.get<bool>("calc_corrections", false);
m_totBinExample = m_config.get<int>("tot_bin_example", 3);
m_inpixelBinSize = m_config.get<double>("inpixel_bin_size", Units::get<double>(1.0, "um"));
m_inpixelBinSize = m_config.get<XYVector>(
"inpixel_bin_size",
{static_cast<double>(Units::convert(1.0, "um")), static_cast<double>(Units::convert(1.0, "um"))});
total_tracks_uncut = 0;
tracks_afterChi2Cut = 0;
......@@ -88,60 +88,61 @@ void AnalysisTimingATLASpix::initialise() {
std::string name = "hTrackCorrelationTime";
hTrackCorrelationTime =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime->GetXaxis()->SetTitle("Track time stamp - cluster time stamp [ns]");
hTrackCorrelationTime->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
hTrackCorrelationTime->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTimeAssoc";
hTrackCorrelationTimeAssoc =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTimeAssoc->GetXaxis()->SetTitle("track time stamp - cluster time stamp [ns]");
hTrackCorrelationTimeAssoc->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
hTrackCorrelationTimeAssoc->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTimeAssocVsTime";
hTrackCorrelationTimeAssocVsTime = new TH2F(name.c_str(), name.c_str(), 3e3, 0, 3e3, 1e3, -5, 5);
hTrackCorrelationTimeAssocVsTime->GetYaxis()->SetTitle("track time stamp - cluster time stamp [us]");
hTrackCorrelationTimeAssocVsTime->GetYaxis()->SetTitle("ts_{track} - ts_{cluster} [us]");
hTrackCorrelationTimeAssocVsTime->GetXaxis()->SetTitle("time [s]");
hTrackCorrelationTimeAssocVsTime->GetZaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowCorr";
std::string title = "hTrackCorrelationTime_rowCorr: row-by-row correction";
hTrackCorrelationTime_rowCorr =
new TH1F(name.c_str(), title.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowCorr->GetXaxis()->SetTitle("track time stamp - cluster time stamp [ns]");
hTrackCorrelationTime_rowCorr->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTimeWalkCorr";
hTrackCorrelationTime_rowAndTimeWalkCorr =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTimeWalkCorr->GetXaxis()->SetTitle("track time stamp - cluster time stamp [ns]");
hTrackCorrelationTime_rowAndTimeWalkCorr->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTimeWalkCorr_l25";
hTrackCorrelationTime_rowAndTimeWalkCorr_l25 =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTimeWalkCorr_l25->GetXaxis()->SetTitle(
"track time stamp - cluster time stamp [ns] (if seed tot < 25lsb)");
hTrackCorrelationTime_rowAndTimeWalkCorr_l25->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTimeWalkCorr_l40";
hTrackCorrelationTime_rowAndTimeWalkCorr_l40 =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTimeWalkCorr_l40->GetXaxis()->SetTitle(
"track time stamp - cluster time stamp [ns] (if seed tot < 40lsb)");
hTrackCorrelationTime_rowAndTimeWalkCorr_l40->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTimeWalkCorr_g40";
hTrackCorrelationTime_rowAndTimeWalkCorr_g40 =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTimeWalkCorr_g40->GetXaxis()->SetTitle(
"track time stamp - cluster time stamp [ns] (if seed tot > 40lsb)");
hTrackCorrelationTime_rowAndTimeWalkCorr_g40->GetYaxis()->SetTitle("# events");
if(m_pointwise_correction_row) {
name = "hTrackCorrelationTime_rowCorr";
std::string title = "hTrackCorrelationTime_rowCorr: row-by-row correction";
hTrackCorrelationTime_rowCorr =
new TH1F(name.c_str(), title.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowCorr->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
hTrackCorrelationTime_rowCorr->GetYaxis()->SetTitle("# events");
}
name = "hTrackCorrelationTime_totBin_" + std::to_string(m_totBinExample);
hTrackCorrelationTime_example = new TH1D(name.c_str(), name.c_str(), 20000, -5000, 5000);
hTrackCorrelationTime_example->GetXaxis()->SetTitle(
"track time stamp - pixel time stamp [ns] (all pixels from cluster)");
hTrackCorrelationTime_example->GetYaxis()->SetTitle("# events");
if(m_pointwise_correction_timewalk) {
name = "hTrackCorrelationTime_rowAndTWCorr";
hTrackCorrelationTime_rowAndTWCorr =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTWCorr->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
hTrackCorrelationTime_rowAndTWCorr->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTWCorr_l25";
hTrackCorrelationTime_rowAndTWCorr_l25 =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTWCorr_l25->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns] (if seed tot < 25lsb)");
hTrackCorrelationTime_rowAndTWCorr_l25->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTWCorr_l40";
hTrackCorrelationTime_rowAndTWCorr_l40 =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTWCorr_l40->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns] (if seed tot < 40lsb)");
hTrackCorrelationTime_rowAndTWCorr_l40->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_rowAndTWCorr_g40";
hTrackCorrelationTime_rowAndTWCorr_g40 =
new TH1F(name.c_str(), name.c_str(), static_cast<int>(2. * m_timeCut), -1 * m_timeCut, m_timeCut);
hTrackCorrelationTime_rowAndTWCorr_g40->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns] (if seed tot > 40lsb)");
hTrackCorrelationTime_rowAndTWCorr_g40->GetYaxis()->SetTitle("# events");
name = "hTrackCorrelationTime_totBin_" + std::to_string(m_totBinExample);
hTrackCorrelationTime_example = new TH1D(name.c_str(), name.c_str(), 20000, -5000, 5000);
hTrackCorrelationTime_example->GetXaxis()->SetTitle(
"track time stamp - pixel time stamp [ns] (all pixels from cluster)");
hTrackCorrelationTime_example->GetYaxis()->SetTitle("# events");
}
// 2D histograms:
// column dependence
......@@ -149,47 +150,47 @@ void AnalysisTimingATLASpix::initialise() {
hTrackCorrelationTimeVsCol =
new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().X(), 0, m_detector->nPixels().X());
hTrackCorrelationTimeVsCol->GetYaxis()->SetTitle("pixel column");
hTrackCorrelationTimeVsCol->GetXaxis()->SetTitle("track time stamp - seed pixel time stamp [ns]");
hTrackCorrelationTimeVsCol->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns]");
// row dependence
name = "hTrackCorrelationTimeVsRow";
hTrackCorrelationTimeVsRow =
new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow->GetYaxis()->SetTitle("pixel row");
hTrackCorrelationTimeVsRow->GetXaxis()->SetTitle("track time stamp - seed pixel time stamp [ns]");
hTrackCorrelationTimeVsRow->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns]");
name = "hTrackCorrelationTimeVsRow_1px";
hTrackCorrelationTimeVsRow_1px =
new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow_1px->GetYaxis()->SetTitle("pixel row");
hTrackCorrelationTimeVsRow_1px->GetXaxis()->SetTitle(
"track time stamp - seed pixel time stamp [ns] (single-pixel clusters)");
hTrackCorrelationTimeVsRow_1px->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns] (single-pixel clusters)");
name = "hTrackCorrelationTimeVsRow_npx";
hTrackCorrelationTimeVsRow_npx =
new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow_npx->GetYaxis()->SetTitle("pixel row");
hTrackCorrelationTimeVsRow_npx->GetXaxis()->SetTitle(
"track time stamp - seed pixel time stamp [ns] (multi-pixel clusters)");
hTrackCorrelationTimeVsRow_npx->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns] (multi-pixel clusters)");
// control plot: row dependence after row correction
name = "hTrackCorrelationTimeVsRow_rowCorr";
hTrackCorrelationTimeVsRow_rowCorr =
new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow_rowCorr->GetYaxis()->SetTitle("pixel row");
hTrackCorrelationTimeVsRow_rowCorr->GetXaxis()->SetTitle("track time stamp - seed pixel time stamp [ns]");
if(m_pointwise_correction_row) {
name = "hTrackCorrelationTimeVsRow_rowCorr";
hTrackCorrelationTimeVsRow_rowCorr = new TH2F(
name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow_rowCorr->GetYaxis()->SetTitle("pixel row");
hTrackCorrelationTimeVsRow_rowCorr->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns]");
}
// control plot: time walk dependence, not row corrected
name = "hTrackCorrelationTimeVsTot";
hTrackCorrelationTimeVsTot = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot->GetYaxis()->SetTitle("seed pixel ToT [ns]");
hTrackCorrelationTimeVsTot->GetYaxis()->SetTitle("seed pixel tot [lsb]}");
hTrackCorrelationTimeVsTot->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
name = "hTrackCorrelationTimeVsTot_1px";
hTrackCorrelationTimeVsTot_1px = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_1px->GetYaxis()->SetTitle("seed pixel ToT [ns] (if clustersize = 1)");
hTrackCorrelationTimeVsTot_1px->GetYaxis()->SetTitle("seed pixel tot [lsb]} (if clustersize = 1)");
hTrackCorrelationTimeVsTot_1px->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
name = "hTrackCorrelationTimeVsTot_npx";
hTrackCorrelationTimeVsTot_npx = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_npx->GetYaxis()->SetTitle("seed pixel ToT [ns] (if clustersize > 1)");
hTrackCorrelationTimeVsTot_npx->GetYaxis()->SetTitle("seed pixel tot [lsb]} (if clustersize > 1)");
hTrackCorrelationTimeVsTot_npx->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
name = "hClusterTimeMinusPixelTime";
......@@ -198,41 +199,46 @@ void AnalysisTimingATLASpix::initialise() {
"ts_{cluster} - ts_{pixel} [ns] (all pixels from cluster (if clusterSize>1))");
// timewalk after row correction
name = "hTrackCorrelationTimeVsTot_rowCorr";
hTrackCorrelationTimeVsTot_rowCorr = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowCorr->GetYaxis()->SetTitle("seed pixel ToT [ns]");
hTrackCorrelationTimeVsTot_rowCorr->GetXaxis()->SetTitle("track time stamp - seed pixel time stamp [ns]");
name = "hTrackCorrelationTimeVsTot_rowCorr_1px";
hTrackCorrelationTimeVsTot_rowCorr_1px = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowCorr_1px->GetYaxis()->SetTitle("seed pixel ToT [ns] (single-pixel clusters)");
hTrackCorrelationTimeVsTot_rowCorr_1px->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
name = "hTrackCorrelationTimeVsTot_rowCorr_npx";
hTrackCorrelationTimeVsTot_rowCorr_npx = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowCorr_npx->GetYaxis()->SetTitle("seed pixel ToT [ns] (multi-pixel clusters)");
hTrackCorrelationTimeVsTot_rowCorr_npx->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
if(m_pointwise_correction_row) {
name = "hTrackCorrelationTimeVsTot_rowCorr";
hTrackCorrelationTimeVsTot_rowCorr = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowCorr->GetYaxis()->SetTitle("seed pixel tot [lsb]}");
hTrackCorrelationTimeVsTot_rowCorr->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns]");
name = "hTrackCorrelationTimeVsTot_rowCorr_1px";
hTrackCorrelationTimeVsTot_rowCorr_1px = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowCorr_1px->GetYaxis()->SetTitle("seed pixel tot [lsb]} (single-pixel clusters)");
hTrackCorrelationTimeVsTot_rowCorr_1px->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
name = "hTrackCorrelationTimeVsTot_rowCorr_npx";
hTrackCorrelationTimeVsTot_rowCorr_npx = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowCorr_npx->GetYaxis()->SetTitle("seed pixel tot [lsb]} (multi-pixel clusters)");
hTrackCorrelationTimeVsTot_rowCorr_npx->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
}
// final plots with both row and timewalk correction:
name = "hTrackCorrelationTimeVsRow_rowAndTimeWalkCorr";
hTrackCorrelationTimeVsRow_rowAndTimeWalkCorr =
new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow_rowAndTimeWalkCorr->GetYaxis()->SetTitle("row");
hTrackCorrelationTimeVsRow_rowAndTimeWalkCorr->GetXaxis()->SetTitle("track time stamp - seed pixel time stamp [ns]");
name = "hTrackCorrelationTimeVsTot_rowAndTimeWalkCorr";
hTrackCorrelationTimeVsTot_rowAndTimeWalkCorr = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowAndTimeWalkCorr->GetYaxis()->SetTitle("seed pixel ToT [ns]");
hTrackCorrelationTimeVsTot_rowAndTimeWalkCorr->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
if(m_pointwise_correction_timewalk) {
name = "hTrackCorrelationTimeVsRow_rowAndTWCorr";
hTrackCorrelationTimeVsRow_rowAndTWCorr = new TH2F(
name.c_str(), name.c_str(), 20000, -5000, 5000, m_detector->nPixels().Y(), 0, m_detector->nPixels().Y());
hTrackCorrelationTimeVsRow_rowAndTWCorr->GetYaxis()->SetTitle("row");
hTrackCorrelationTimeVsRow_rowAndTWCorr->GetXaxis()->SetTitle("ts_{track} - ts_{seed pixel} [ns]");
name = "hTrackCorrelationTimeVsTot_rowAndTWCorr";
hTrackCorrelationTimeVsTot_rowAndTWCorr = new TH2F(name.c_str(), name.c_str(), 20000, -5000, 5000, 512, 0, 512);
hTrackCorrelationTimeVsTot_rowAndTWCorr->GetYaxis()->SetTitle("seed pixel tot [lsb]}");
hTrackCorrelationTimeVsTot_rowAndTWCorr->GetXaxis()->SetTitle("ts_{track} - ts_{cluster} [ns]");
}
// in-pixel time resolution plots:
auto nbins_x = static_cast<int>(std::ceil(m_detector->pitch().X() / m_inpixelBinSize));
auto nbins_y = static_cast<int>(std::ceil(m_detector->pitch().Y() / m_inpixelBinSize));
auto nbins_x = static_cast<int>(std::ceil(m_detector->pitch().X() / m_inpixelBinSize.X()));
auto nbins_y = static_cast<int>(std::ceil(m_detector->pitch().Y() / m_inpixelBinSize.Y()));
if(nbins_x > 1e4 || nbins_y > 1e4) {
throw InvalidValueError(m_config, "inpixel_bin_size", "Too many bins for in-pixel histograms.");
}
title = "in-pixel time resolution map;x [px];y [px];ts_{track} - ts_{cluster} [ns]";
std::string title =
"in-pixel time resolution map;in-pixel x_{track} [#mum];in-pixel y_{track} [#mum];ts_{track} - ts_{cluster} [ns]";
hPixelTrackCorrelationTimeMap = new TProfile2D("pixelTrackCorrelationTimeMap",
title.c_str(),
nbins_x,
......@@ -250,21 +256,21 @@ void AnalysisTimingATLASpix::initialise() {
hClusterSizeVsTot_Assoc->GetXaxis()->SetTitle("clusterSize");
hHitMapAssoc = new TH2F("hitMapAssoc",
"hitMapAssoc; x_{track} [px]; x_{track} [px]; # entries",
"hitMapAssoc; x_{track} [px]; y_{track} [px];# entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hHitMapAssoc_highCharge = new TH2F("hitMapAssoc_highCharge",
"hitMapAssoc_highCharge; x_{track} [px]; x_{track} [px]; # entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hHitMapAssoc_highToT = new TH2F("hitMapAssoc_highToT",
"hitMapAssoc_highToT; x_{track} [px]; y_{track} [px];# entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hHitMapAssoc_inPixel = new TH2F("hitMapAssoc_inPixel",
"hitMapAssoc_inPixel; in-pixel x_{track} [#mum]; in-pixel y_{track} [#mum]",
static_cast<int>(pitch_x),
......@@ -273,17 +279,19 @@ void AnalysisTimingATLASpix::initialise() {
static_cast<int>(pitch_y),
-pitch_y / 2.,
pitch_y / 2.);
hHitMapAssoc_inPixel_highCharge =
new TH2F("hitMapAssoc_inPixel_highCharge",
"hitMapAssoc_inPixel_highCharge;in-pixel x_{track} [#mum];in-pixel y_{track} [#mum]",
static_cast<int>(pitch_x),
-pitch_x / 2.,
pitch_x / 2.,
static_cast<int>(pitch_y),
-pitch_y / 2.,
pitch_y / 2.);
if(m_config.has("high_tot_cut")) {
hHitMapAssoc_inPixel_highToT =
new TH2F("hitMapAssoc_inPixel_highToT",
"hitMapAssoc_inPixel_highToT;in-pixel x_{track} [#mum];in-pixel y_{track} [#mum]",
static_cast<int>(pitch_x),
-pitch_x / 2.,
pitch_x / 2.,
static_cast<int>(pitch_y),
-pitch_y / 2.,
pitch_y / 2.);
}
hClusterMapAssoc = new TH2F("hClusterMapAssoc",
"hClusterMapAssoc; x_{cluster} [px]; x_{cluster} [px]; # entries",
"hClusterMapAssoc; x_{cluster} [px]; y_{cluster} [px];# entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
......@@ -303,141 +311,149 @@ void AnalysisTimingATLASpix::initialise() {
hTotVsTime = new TH2F("hTotVsTime", "hTotVsTime", 64, 0, 64, 1e6, 0, 100);
hTotVsTime->GetXaxis()->SetTitle("pixel ToT [lsb]");
hTotVsTime->GetYaxis()->SetTitle("time [s]");
hTotVsTime_high = new TH2F("hTotVsTime_high", "hTotVsTime_high", 64, 0, 64, 1e6, 0, 100);
hTotVsTime_high->GetXaxis()->SetTitle("pixel ToT [lsb] if > high_tot_cut");
hTotVsTime_high->GetYaxis()->SetTitle("time [s]");
// control plots for "left tail" and "main peak" of time correlation
hInPixelMap_leftTail = new TH2F("hPixelMap_leftTail",
"in-pixel track position (left tail of time residual);in-pixel x_{track} "
"[#mum];in-pixel y_{track} [#mum];# entries",
nbins_x,
-pitch_x / 2.,
pitch_x / 2.,
nbins_y,
-pitch_y / 2.,
pitch_y / 2.);
hInPixelMap_rightTail = new TH2F("hPixelMap_rightTail",
"in-pixel track position (right tail of time residual);in-pixel x_{track} "
"[#mum];in-pixel y_{track} [#mum];# entries",
nbins_x,
-pitch_x / 2.,
pitch_x / 2.,
nbins_y,
-pitch_y / 2.,
pitch_y / 2.);
hInPixelMap_mainPeak = new TH2F("hPixelMap_mainPeak",
"in-pixel track position (main peak of time residual);in-pixel x_{track} "
"[#mum];in-pixel y_{track} [#mum];# entries",
nbins_x,
-pitch_x / 2.,
pitch_x / 2.,
nbins_y,
-pitch_y / 2.,
pitch_y / 2.);
hClusterMap_leftTail =
new TH2F("hClusterMap_leftTail",
"hClusterMap (left tail of time residual); x_{cluster} [px]; x_{cluster} [px]; # entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hClusterMap_rightTail =
new TH2F("hClusterMap_rightTail",
"hClusterMap (right tail of time residual); x_{cluster} [px]; x_{cluster} [px]; # entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hClusterMap_mainPeak =
new TH2F("hClusterMap_mainPeak",
"hClusterMap (main peak of time residual); x_{cluster} [px]; x_{cluster} [px]; # entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hClusterSize_leftTail =
new TH1F("clusterSize_leftTail", "clusterSize (left tail of time residual); cluster size; # entries", 100, 0, 100);
hClusterSize_rightTail =
new TH1F("clusterSize_rightTail", "clusterSize (right tail of time residual); cluster size; # entries", 100, 0, 100);
hClusterSize_mainPeak =
new TH1F("clusterSize_mainPeak", "clusterSize (main peak of time residual); cluster size; # entries", 100, 0, 100);
hTot_leftTail =
new TH1F("hTot_leftTail", "ToT (left tail of time residual);seed pixel ToT [lsb]; # events", 2 * 64, -64, 64);
hTot_rightTail =
new TH1F("hTot_rightTail", "ToT (right tail of time residual);seed pixel ToT [lsb]; # events", 2 * 64, -64, 64);
hTot_mainPeak = new TH1F(
"hTot_mainPeak", "ToT (main peak of time residual, 1px clusters);seed pixel ToT [lsb]; # events", 2 * 64, -64, 64);
hTot_leftTail_1px = new TH1F("hTot_leftTail_1px",
"ToT (left tail of time residual, 1px clusters);seed pixel ToT [lsb]; # events",
2 * 64,
-64,
64);
hTot_rightTail_1px = new TH1F("hTot_rightTail_1px",
"ToT (right tail of time residual, 1px clusters);seed pixel ToT [lsb]; # events",
2 * 64,
-64,
64);
hTot_mainPeak_1px = new TH1F("hTot_mainPeak_1px",
"ToT (main peak of time residual, 1px clusters);seed pixel ToT [lsb]; # events",
if(m_config.has("high_tot_cut")) {
hTotVsTime_high = new TH2F("hTotVsTime_high", "hTotVsTime_high", 64, 0, 64, 1e6, 0, 100);
hTotVsTime_high->GetXaxis()->SetTitle("pixel ToT [lsb] if > high_tot_cut");
hTotVsTime_high->GetYaxis()->SetTitle("time [s]");
}
// control plots for "left/right tail" and "main peak" of the track time correlation
if(m_config.has("timing_tail_cut") && m_pointwise_correction_timewalk) {
hInPixelMap_leftTail = new TH2F("hPixelMap_leftTail",
"in-pixel track position (left tail of time residual);in-pixel x_{track} "
"[#mum];in-pixel y_{track} [#mum];# entries",
nbins_x,
-pitch_x / 2.,
pitch_x / 2.,
nbins_y,
-pitch_y / 2.,
pitch_y / 2.);
hInPixelMap_rightTail = new TH2F("hPixelMap_rightTail",
"in-pixel track position (right tail of time residual);in-pixel x_{track} "
"[#mum];in-pixel y_{track} [#mum];# entries",
nbins_x,
-pitch_x / 2.,
pitch_x / 2.,
nbins_y,
-pitch_y / 2.,
pitch_y / 2.);
hInPixelMap_mainPeak = new TH2F("hPixelMap_mainPeak",
"in-pixel track position (main peak of time residual);in-pixel x_{track} "
"[#mum];in-pixel y_{track} [#mum];# entries",
nbins_x,
-pitch_x / 2.,
pitch_x / 2.,
nbins_y,
-pitch_y / 2.,
pitch_y / 2.);
hClusterMap_leftTail =
new TH2F("hClusterMap_leftTail",
"hClusterMap (left tail of time residual); x_{cluster} [px]; x_{cluster} [px];# entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hClusterMap_rightTail =
new TH2F("hClusterMap_rightTail",
"hClusterMap (right tail of time residual); x_{cluster} [px]; x_{cluster} [px];# entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hClusterMap_mainPeak =
new TH2F("hClusterMap_mainPeak",
"hClusterMap (main peak of time residual); x_{cluster} [px]; x_{cluster} [px];# entries",
m_detector->nPixels().X(),
0,
m_detector->nPixels().X(),
m_detector->nPixels().Y(),
0,
m_detector->nPixels().Y());
hClusterSize_leftTail =
new TH1F("clusterSize_leftTail", "clusterSize (left tail of time residual);cluster size;# entries", 100, 0, 100);
hClusterSize_rightTail = new TH1F(
"clusterSize_rightTail", "clusterSize (right tail of time residual);cluster size;# entries", 100, 0, 100);
hClusterSize_mainPeak =
new TH1F("clusterSize_mainPeak", "clusterSize (main peak of time residual);cluster size;# entries", 100, 0, 100);
hTot_leftTail =
new TH1F("hTot_leftTail", "ToT (left tail of time residual);seed pixel ToT [lsb];# events", 2 * 64, -64, 64);
hTot_rightTail =
new TH1F("hTot_rightTail", "ToT (right tail of time residual);seed pixel ToT [lsb];# events", 2 * 64, -64, 64);
hTot_mainPeak = new TH1F("hTot_mainPeak",
"ToT (main peak of time residual, 1px clusters);seed pixel ToT [lsb];# events",
2 * 64,
-64,
64);
hPixelTimestamp_leftTail = new TH1F("pixelTimestamp_leftTail",
"pixelTimestamp (left tail of time residual); pixel timestamp [ms]; # events",
3e6,
0,
3e3);
hPixelTimestamp_rightTail = new TH1F("pixelTimestamp_leftTail",
"pixelTimestamp (left tail of time residual); pixel timestamp [ms]; # events",
3e6,
0,
3e3);
hPixelTimestamp_mainPeak = new TH1F("pixelTimestamp_mainPeak",
"pixelTimestamp (left tail of time residual); pixel timestamp [ms]; # events",
3e6,
0,
3e3);
hTot_leftTail_1px = new TH1F("hTot_leftTail_1px",
"ToT (left tail of time residual, 1px clusters);seed pixel ToT [lsb];# events",
2 * 64,
-64,
64);
hTot_rightTail_1px = new TH1F("hTot_rightTail_1px",
"ToT (right tail of time residual, 1px clusters);seed pixel ToT [lsb];# events",
2 * 64,
-64,
64);
hTot_mainPeak_1px = new TH1F("hTot_mainPeak_1px",
"ToT (main peak of time residual, 1px clusters);seed pixel ToT [lsb];# events",
2 * 64,
-64,
64);
hPixelTimestamp_leftTail = new TH1F("pixelTimestamp_leftTail",
"pixelTimestamp (left tail of time residual);pixel timestamp [ms];# events",
3e6,
0,
3e3);
hPixelTimestamp_rightTail = new TH1F("pixelTimestamp_leftTail",
"pixelTimestamp (left tail of time residual);pixel timestamp [ms];# events",
3e6,
0,
3e3);
hPixelTimestamp_mainPeak = new TH1F("pixelTimestamp_mainPeak",
"pixelTimestamp (left tail of time residual);pixel timestamp [ms];# events",
3e6,
0,
3e3);
}
// /////////////////////////////////////////// //
// TGraphErrors for Timewalk & Row Correction: //
// /////////////////////////////////////////// //
gTimeCorrelationVsRow = new TGraphErrors();
gTimeCorrelationVsRow->SetName("gTimeCorrelationVsRow");
gTimeCorrelationVsRow->SetTitle("gTimeCorrelationVsRow");
gTimeCorrelationVsRow->GetXaxis()->SetTitle("row");
gTimeCorrelationVsRow->GetYaxis()->SetTitle("time correlation peak [ns]");
// !!!!also fix these:!!!!
int nBinsToT = hTrackCorrelationTimeVsTot_rowCorr->GetNbinsY();
gTimeCorrelationVsTot_rowCorr = new TGraphErrors(nBinsToT);
gTimeCorrelationVsTot_rowCorr->SetName("gTimeCorrelationVsTot");
gTimeCorrelationVsTot_rowCorr->SetTitle("gTimeCorrelationVsTot");
gTimeCorrelationVsTot_rowCorr->GetXaxis()->SetTitle("pixel ToT [ns]");
gTimeCorrelationVsTot_rowCorr->GetYaxis()->SetTitle("time correlation peak [ns]");
nBinsToT = hTrackCorrelationTimeVsTot_rowCorr_1px->GetNbinsY();
gTimeCorrelationVsTot_rowCorr_1px = new TGraphErrors(nBinsToT);
gTimeCorrelationVsTot_rowCorr_1px->SetName("gTimeCorrelationVsTot_1px");
gTimeCorrelationVsTot_rowCorr_1px->SetTitle("gTimeCorrelationVsTot_1px");
gTimeCorrelationVsTot_rowCorr_1px->GetXaxis()->SetTitle("pixel ToT [ns] (single-pixel clusters)");
gTimeCorrelationVsTot_rowCorr_1px->GetYaxis()->SetTitle("time correlation peak [ns]");
nBinsToT = hTrackCorrelationTimeVsTot_rowCorr_npx->GetNbinsY();
gTimeCorrelationVsTot_rowCorr_npx = new TGraphErrors(nBinsToT);
gTimeCorrelationVsTot_rowCorr_npx->SetName("gTimeCorrelationVsTot_npx");
gTimeCorrelationVsTot_rowCorr_npx->SetTitle("gTimeCorrelationVsTot_npx");
gTimeCorrelationVsTot_rowCorr_npx->GetXaxis()->SetTitle("pixel ToT [ns] (multi-pixel clusters");