22 const char* fN =
m_name.c_str();
24 for (
int is = 0; is < 4; is++) {
25 TString pNm = Form(
"number_cells_vs_eta_in_layer_%i_profile",is);
26 TString pN = Form(
"%s_number_cells_vs_eta_in_layer_%i_profile",fN,is);
27 profileMap[pNm.Data()] =
new TProfile(pN.Data(),
"Number of cells;truth #eta", 90,-4.5,4.5, 0, 100);
28 pN = Form(
"%s%s",
m_folder.c_str(),pNm.Data());
31 pNm = Form(
"number_cells_vs_e_in_layer_%i_profile",is);
32 pN = Form(
"%s_number_cells_vs_e_in_layer_%i_profile",fN,is);
33 profileMap[pNm.Data()] =
new TProfile(pN.Data(),
"Number of cells;truth E [GeV]", 60, 0, 300, 0, 100);
34 pN = Form(
"%s%s",
m_folder.c_str(),pNm.Data());
38 for (
int is = 0; is < 24; is++) {
39 TString pNm = Form(
"number_cells_vs_eta_in_sampling_%i_profile",is);
40 TString pN = Form(
"%s_number_cells_vs_eta_in_sampling_%i_profile",fN,is);
41 profileMap[pNm.Data()] =
new TProfile(pN.Data(),
"Number of cells;truth #eta", 90,-4.5,4.5, 0,100);
42 pN = Form(
"%s%s",
m_folder.c_str(),pNm.Data());
46 profileMap[
"Eraw_Etruth_vs_Etruth_profile"] =
new TProfile(Form(
"%s_Eraw_Etruth_vs_Etruth_profile",fN),
";E^{truth};E^{raw}/E^{truth}", 100, 0., 200., 0.5, 1.5);
47 profileMap[
"Eraw_Etruth_vs_eta_profile"] =
new TProfile(Form(
"%s_Eraw_Etruth_vs_eta_profile",fN),
";truth #eta;E^{raw}/E^{truth}", 90, -4.5, 4.5, 0.5, 1.5);
49 profileMap[
"number_topocluster_vs_e_profile"] =
new TProfile(Form(
"%s_number_topocluster_vs_e_profile",fN),
"Number of topocluster;truth E [GeV]", 60, 0, 300, -0.5, 14.5);
50 profileMap[
"number_topocluster_vs_eta_profile"] =
new TProfile(Form(
"%s_number_topocluster_vs_eta_profile",fN),
"Number of topocluster;truth #eta", 90,-4.5,4.5, -0.5, 14.5);
53 profileMap[
"number_cell_in_layer"] =
new TProfile(Form(
"%s_number_cell_in_layer",fN),
";Number of cells;Layer", 100, 0, 200,0, 4);
54 histo2DMap[
"mu_energy_resolution_2D"] =
new TH2D(Form(
"%s_mu_energy_resolution_2D",fN),
";<#mu>; Energy Resolution", 5, 0, 80, 20, -1, 1);
65 return StatusCode::SUCCESS;
79 if ( !truth_egamma )
return;
81 const auto Ereco = cluster->
rawE();
82 const auto Etruth = truth_egamma->
e();
83 const auto Eres = (Ereco - Etruth)/Etruth;
85 profileMap[
"Eraw_Etruth_vs_Etruth_profile"]->Fill(Etruth/1000,Ereco/Etruth);
86 profileMap[
"Eraw_Etruth_vs_eta_profile"]->Fill(truth_egamma->
eta(),Ereco/Etruth);
87 histo2DMap[
"mu_energy_resolution_2D"]->Fill(mu,Eres);
91 if ( !cellLinks )
return;
93 std::map<int, int > cells_per_layer;
94 std::map<int, int > cells_per_sam;
96 for (
const CaloCell* cell : *cellLinks) {
98 int layer = cell->caloDDE()->getLayer();
99 cells_per_layer[layer]++;
100 int sam = cell->caloDDE()->getSampling();
101 cells_per_sam[sam]++;
106 profileMap[
"number_topocluster_vs_e_profile"]->Fill(Etruth/1000, associatedTopoCluster.size());
107 profileMap[
"number_topocluster_vs_eta_profile"]->Fill(truth_egamma->
eta(), associatedTopoCluster.size());
109 for (
auto const&
x : cells_per_layer) {
110 profileMap[
"number_cell_in_layer"]->Fill(
x.second,
x.first);
111 profileMap[
"number_cells_vs_e_in_layer_"+std::to_string(
x.first)+
"_profile"]->Fill(Etruth/1000,
x.second);
112 profileMap[
"number_cells_vs_eta_in_layer_"+std::to_string(
x.first)+
"_profile"]->Fill(truth_egamma->
eta(),
x.second);
114 for (
auto const&
x : cells_per_sam) {
115 profileMap[Form(
"number_cells_vs_eta_in_sampling_%i_profile",
x.first)]->Fill(truth_egamma->
eta(),
x.second);
virtual double e() const override final
The total energy of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.