Skip to content
Snippets Groups Projects
Commit 024a5b1b authored by Michał Sieczczyński's avatar Michał Sieczczyński
Browse files

Changes to histograms

parent da72e2eb
No related branches found
No related tags found
No related merge requests found
Pipeline #119491 passed
...@@ -91,6 +91,7 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -91,6 +91,7 @@ int basic_distribution_analysis(const string &filename, TString outname)
vector<double> totalEventHits; vector<double> totalEventHits;
vector<double> zLayerValues; vector<double> zLayerValues;
vector<int> nHitsPerLayer; vector<int> nHitsPerLayer;
vector<double> nEnergyPerLayer;
for (unsigned ev = 0; ev < nEvents; ev++) for (unsigned ev = 0; ev < nEvents; ev++)
{ {
...@@ -109,7 +110,7 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -109,7 +110,7 @@ int basic_distribution_analysis(const string &filename, TString outname)
cerr << "HcalEndcapNHits collection is not valid!" << endl; cerr << "HcalEndcapNHits collection is not valid!" << endl;
} }
map<double, int> hitsPerLayerZ; map<double, pair<int, double>> layerData;
double totalEnergy = 0; double totalEnergy = 0;
int totalHits = 0; int totalHits = 0;
...@@ -126,16 +127,18 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -126,16 +127,18 @@ int basic_distribution_analysis(const string &filename, TString outname)
rPosition.push_back(sqrt(pos.x * pos.x + pos.y * pos.y)); rPosition.push_back(sqrt(pos.x * pos.x + pos.y * pos.y));
double zBin = round(pos.z); double zBin = round(pos.z);
hitsPerLayerZ[zBin]++; layerData[zBin].first++;
layerData[zBin].second += hit.getEnergy();
} }
totalEventEnergy.push_back(totalEnergy); totalEventEnergy.push_back(totalEnergy);
totalEventHits.push_back(totalHits); totalEventHits.push_back(totalHits);
for (const auto& [zValue, nHits] : hitsPerLayerZ) for (const auto& [zValue, stats] : layerData)
{ {
zLayerValues.push_back(zValue); zLayerValues.push_back(zValue);
nHitsPerLayer.push_back(nHits); nHitsPerLayer.push_back(stats.first);
nEnergyPerLayer.push_back(stats.second);
} }
} }
...@@ -149,24 +152,29 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -149,24 +152,29 @@ int basic_distribution_analysis(const string &filename, TString outname)
auto minmax_energy = minmax_element(energy.begin(), energy.end()); auto minmax_energy = minmax_element(energy.begin(), energy.end());
auto minmax_zLayerValues = minmax_element(zLayerValues.begin(), zLayerValues.end()); auto minmax_zLayerValues = minmax_element(zLayerValues.begin(), zLayerValues.end());
auto minmax_nHitsPerLayer = minmax_element(nHitsPerLayer.begin(), nHitsPerLayer.end()); auto minmax_nHitsPerLayer = minmax_element(nHitsPerLayer.begin(), nHitsPerLayer.end());
auto minmax_nEnergyPerLayer = minmax_element(nEnergyPerLayer.begin(), nEnergyPerLayer.end());
int nbins = nEvents/1000; int nbins = nEvents/1000;
TH1D *h_energyTotal = new TH1D("h_energyTotal", "Total Energy per Event; Energy per Event", TH1D *h_energyTotal = new TH1D("h_energyTotal", "Total Energy per Event; Energy per Event",
nbins/2, *minmax_totalEventEnergy.first, *minmax_totalEventEnergy.second); nbins/2, *minmax_totalEventEnergy.first, *minmax_totalEventEnergy.second);
TH2D *h_layerEnergy = new TH2D("h_layerEnergy", "Energy in Layers (Z); Z; Energy", TH2D *h_layerEnergy = new TH2D("h_layerEnergy", "Energy in Layers (Z); Z; Energy",
nbins/4, *minmax_zPosition.first, *minmax_zPosition.second, nbins/5, *minmax_zLayerValues.first, *minmax_zLayerValues.second,
nbins/5, *minmax_energy.first, *minmax_energy.second); nbins/4, *minmax_nEnergyPerLayer.first, *minmax_nEnergyPerLayer.second);
TProfile *p_layerEnergy = new TProfile("p_layerEnergy", "Energy in Layers (Z); Z; Mean Energy",
nbins/5, *minmax_zLayerValues.first, *minmax_zLayerValues.second);
TH1D *h_hitCount = new TH1D("h_hitCount", "Number of Hits per Event; Hits per Event", TH1D *h_hitCount = new TH1D("h_hitCount", "Number of Hits per Event; Hits per Event",
nbins/2, *minmax_totalEventHits.first, *minmax_totalEventHits.second); nbins/2, *minmax_totalEventHits.first, *minmax_totalEventHits.second);
TH2D *h_layerHits = new TH2D("h_layerHits", "Number of Hits in Layers (Z); Layer(Z); Hits", TH2D *h_layerHits = new TH2D("h_layerHits", "Number of Hits in Layers (Z); Layer(Z); Hits",
nbins/4, *minmax_zLayerValues.first, *minmax_zLayerValues.second, nbins/5, *minmax_zLayerValues.first, *minmax_zLayerValues.second,
*minmax_nHitsPerLayer.second, *minmax_nHitsPerLayer.first, *minmax_nHitsPerLayer.second); *minmax_nHitsPerLayer.second, *minmax_nHitsPerLayer.first, *minmax_nHitsPerLayer.second);
TProfile *p_layerHits = new TProfile("p_layerHits", "Number of Hits in Layers (Z); Z; Mean Hits",
nbins/5, *minmax_zLayerValues.first, *minmax_zLayerValues.second);
TH2D *h_XYPos = new TH2D("h_XYPos", "Hits position X,Y;X [mm];Y [mm]", TH2D *h_XYPos = new TH2D("h_XYPos", "Hits position X,Y;X [mm];Y [mm]",
nbins, *minmax_xPosition.first, *minmax_xPosition.second, nbins, *minmax_xPosition.first, *minmax_xPosition.second,
nbins, *minmax_yPosition.first, *minmax_yPosition.second); nbins, *minmax_yPosition.first, *minmax_yPosition.second);
TH2D *h_ZRPos = new TH2D("h_ZRPos", "Hits position Z,R;Z [mm];R [mm]", TH2D *h_ZRPos = new TH2D("h_ZRPos", "Hits position Z,R;Z [mm];R [mm]",
nbins/4, *minmax_zPosition.first, *minmax_zPosition.second, nbins/5, *minmax_zPosition.first, *minmax_zPosition.second,
nbins, *minmax_rPosition.first, *minmax_rPosition.second); nbins, *minmax_rPosition.first, *minmax_rPosition.second);
TH2D *h_XYEnergy = new TH2D("h_XYEnergy", "Hits energy X,Y;X [mm];Y [mm]", TH2D *h_XYEnergy = new TH2D("h_XYEnergy", "Hits energy X,Y;X [mm];Y [mm]",
nbins, *minmax_xPosition.first, *minmax_xPosition.second, nbins, *minmax_xPosition.first, *minmax_xPosition.second,
...@@ -174,7 +182,7 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -174,7 +182,7 @@ int basic_distribution_analysis(const string &filename, TString outname)
for(int i = 0; i < xPosition.size(); i++) for(int i = 0; i < xPosition.size(); i++)
{ {
h_layerEnergy->Fill(zPosition[i], energy[i]);
h_XYPos->Fill(xPosition[i], yPosition[i]); h_XYPos->Fill(xPosition[i], yPosition[i]);
h_ZRPos->Fill(zPosition[i], rPosition[i]); h_ZRPos->Fill(zPosition[i], rPosition[i]);
h_XYEnergy->Fill(xPosition[i], yPosition[i], energy[i]); h_XYEnergy->Fill(xPosition[i], yPosition[i], energy[i]);
...@@ -183,6 +191,10 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -183,6 +191,10 @@ int basic_distribution_analysis(const string &filename, TString outname)
for (int i = 0; i < zLayerValues.size(); i++) for (int i = 0; i < zLayerValues.size(); i++)
{ {
h_layerHits->Fill(zLayerValues[i], nHitsPerLayer[i]); h_layerHits->Fill(zLayerValues[i], nHitsPerLayer[i]);
p_layerHits->Fill(zLayerValues[i], nHitsPerLayer[i]);
h_layerEnergy->Fill(zLayerValues[i], nEnergyPerLayer[i]);
p_layerEnergy->Fill(zLayerValues[i], nEnergyPerLayer[i]);
} }
for(int i = 0; i < nEvents; i++) for(int i = 0; i < nEvents; i++)
...@@ -193,16 +205,18 @@ int basic_distribution_analysis(const string &filename, TString outname) ...@@ -193,16 +205,18 @@ int basic_distribution_analysis(const string &filename, TString outname)
gStyle->SetPadLeftMargin(0.13); gStyle->SetPadLeftMargin(0.13);
TCanvas *canvas = new TCanvas("canvas", "canvas", 1600, 600); TCanvas *canvas = new TCanvas("canvas", "canvas", 1600, 800);
canvas->Divide(4,2); canvas->Divide(4,2);
canvas->cd(1); canvas->cd(1);
h_energyTotal->Draw(); h_energyTotal->Draw();
canvas->cd(2); canvas->cd(2);
h_layerEnergy->Draw("COLZ"); h_layerEnergy->Draw("COLZ");
p_layerEnergy->Draw("SAME");
canvas->cd(3); canvas->cd(3);
h_hitCount->Draw(); h_hitCount->Draw();
canvas->cd(4); canvas->cd(4);
h_layerHits->Draw("COLZ"); h_layerHits->Draw("COLZ");
p_layerHits->Draw("SAME");
canvas->cd(5); canvas->cd(5);
h_XYPos->Draw("COLZ"); h_XYPos->Draw("COLZ");
canvas->cd(6); canvas->cd(6);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment