33 std::vector<std::vector<float>> barrel_module_z(10);
34 std::vector<std::vector<float>> endcap_module_z(10);
41 ATH_MSG_ERROR(
"Problems with pointer to Detector Element !!!");
42 return StatusCode::FAILURE;
53 float module_z = element->
center().z();
57 if (stripBarrelEndcap<0 or stripPhiModule > 0 or (stripBarrelEndcap == 0 and stripEtaModule<0))
61 ATH_MSG_DEBUG(
"Modules BarrelEndcap LayerDisk Phi Eta z : " << stripBarrelEndcap <<
" " << stripLayerDisk <<
" " << stripPhiModule <<
" " << stripEtaModule <<
" " << module_z <<
" " << idHash);
63 element->
isBarrel() ? barrel_module_z.at(stripLayerDisk).push_back(module_z) : endcap_module_z.at(stripLayerDisk).push_back(module_z);
71 return StatusCode::SUCCESS;
76 const std::vector<unsigned int>& encodedstream,
77 const std::vector<std::bitset<256>>& hitMap)
const {
81 const float streamLength = encodedstream.size() *
s_bitsPerPack;
86 m_encoded_streamLength->Fill(streamLength);
104 const float z = std::abs(
m_detManager->getDetectorElement(waferID)->center().z());
107 m_p_streamLength[stripLayerDisk][region][side]->Fill(
z, streamLength);
108 m_h2_streamLength[stripLayerDisk][region][side]->Fill(
z, streamLength);
111 m_p_dataRate[stripLayerDisk][region][side]->Fill(
z, data_rate);
112 m_h2_dataRate[stripLayerDisk][region][side]->Fill(
z, data_rate);
116 for (
size_t i = 0; i < hitMap.size(); ++i) {
117 std::bitset<256> hits = hitMap[i];
122 m_p_hits[stripLayerDisk][region][side]->Fill(
z,
nHits);
123 m_h2_hits[stripLayerDisk][region][side]->Fill(
z,
nHits);
128 const std::vector<std::vector<float >>& endcap_z) {
131 m_encoded_streamLength =
new TH1F(
"m_encoded_streamLength",
"Encoded Stream Length in bits", 2000, 0., 2000.);
132 if ((
m_thistSvc->regHist(
m_path + m_encoded_streamLength->GetName(), m_encoded_streamLength)).isFailure())
133 return StatusCode::FAILURE;
135 ATH_MSG_DEBUG(
"Histogram " << m_encoded_streamLength->GetName() <<
" successfully registered.");
139 std::array<std::vector<std::vector<double>>,
N_REGIONS>
bins;
143 for (
unsigned int layer = 0; layer<
N_LAYERS ; layer++) {
144 if (not barrel_z[layer].
empty()) {
145 for (
unsigned int z_bin = 0; z_bin<(barrel_z[layer].size()-1); z_bin++) {
147 float interModulePoint = 0.5 * ( barrel_z[layer].at(z_bin) + barrel_z[layer].at(z_bin+1) );
153 double last_value = 2.*barrel_z[layer].back() - barrel_z[layer].at( barrel_z[layer].
size() - 2 );
154 if(last_value!=barrel_z[layer].back())
bins[
REGION_BARREL][layer].push_back(last_value);
157 if (not endcap_z[layer].
empty()) {
158 for (
unsigned int z_bin = 0; z_bin<(endcap_z[layer].size()-1); z_bin++) {
160 float interModulePoint = 0.5 * ( endcap_z[layer].at(z_bin) + endcap_z[layer].at(z_bin+1) );
162 float initialValue = 2.*endcap_z[layer].at(z_bin)-interModulePoint;
169 double last_value = 2.*endcap_z[layer].back() - endcap_z[layer].at( endcap_z[layer].
size() - 2);
170 if(last_value!=endcap_z[layer].back())
bins[
REGION_ENDCAP][layer].push_back(last_value);
174 for (
unsigned int region=0; region<
N_REGIONS; region++) {
175 for (
unsigned int layer=0; layer<
N_LAYERS; layer++) {
181 for (
int side=0; side<
N_SIDES; side++) {
184 const std::string title_base =
m_regionLabels[region] +
" - Layer " + std::to_string(layer) +
" - Side " +
m_sideLabels[side];
187 m_p_streamLength[layer][region][side] =
new TProfile((
"m_p_streamLength_" + name_base).c_str(),
188 (title_base +
" Stream Length; z[mm]; <stream length> [bits]").c_str(),
189 int(
bins[region][layer].
size()-1), &
bins[region][layer][0]);
190 if ((
m_thistSvc->regHist(
m_path + m_p_streamLength[layer][region][side]->GetName(), m_p_streamLength[layer][region][side])).isFailure())
191 return StatusCode::FAILURE;
192 ATH_MSG_DEBUG(
"Histogram " << m_p_streamLength[layer][region][side]->GetName() <<
" successfully registered.");
194 m_h2_streamLength[layer][region][side] =
new TH2F((
"m_h2_streamLength_" + name_base).c_str(),
195 (title_base +
" Stream Length; z[mm]; <stream length> [bits]").c_str(),
196 int(
bins[region][layer].
size()-1), &
bins[region][layer][0],
198 if ((
m_thistSvc->regHist(
m_path + m_h2_streamLength[layer][region][side]->GetName(), m_h2_streamLength[layer][region][side])).isFailure())
199 return StatusCode::FAILURE;
200 ATH_MSG_DEBUG(
"Histogram " << m_h2_streamLength[layer][region][side]->GetName() <<
" successfully registered.");
205 m_p_dataRate[layer][region][side] =
new TProfile((
"m_p_dataRate_" + name_base).c_str(),
206 (title_base +
" Data rate per chip; z[mm]; <data rate per chip> [b/s]").c_str(),
207 int(
bins[region][layer].
size()-1), &
bins[region][layer][0]);
208 if ((
m_thistSvc->regHist(
m_path + m_p_dataRate[layer][region][side]->GetName(), m_p_dataRate[layer][region][side])).isFailure())
209 return StatusCode::FAILURE;
210 ATH_MSG_DEBUG(
"Histogram " << m_p_dataRate[layer][region][side]->GetName() <<
" successfully registered.");
212 m_h2_dataRate[layer][region][side] =
new TH2F((
"m_h2_dataRate_" + name_base).c_str(),
213 (title_base +
" Data rate per chip; z[mm]; <data rate per chip> [b/s]").c_str(),
214 int(
bins[region][layer].
size()-1), &
bins[region][layer][0],
216 if ((
m_thistSvc->regHist(
m_path + m_h2_dataRate[layer][region][side]->GetName(), m_h2_dataRate[layer][region][side])).isFailure())
217 return StatusCode::FAILURE;
218 ATH_MSG_DEBUG(
"Histogram " << m_h2_dataRate[layer][region][side]->GetName() <<
" successfully registered.");
221 m_p_hits[layer][region][side] =
new TProfile((
"m_p_hits_" + name_base).c_str(),
222 (title_base +
" Hits per chip; z[mm]; <hits/chip>").c_str(),
223 int(
bins[region][layer].
size()-1), &
bins[region][layer][0]);
224 if ((
m_thistSvc->regHist(
m_path + m_p_hits[layer][region][side]->GetName(), m_p_hits[layer][region][side])).isFailure())
225 return StatusCode::FAILURE;
226 ATH_MSG_DEBUG(
"Histogram " << m_p_hits[layer][region][side]->GetName() <<
" successfully registered.");
228 m_h2_hits[layer][region][side] =
new TH2F((
"m_h2_hits_" + name_base).c_str(),
229 (title_base +
" Hits per chip; z[mm]; <hits/chip>").c_str(),
230 int(
bins[region][layer].
size()-1), &
bins[region][layer][0],
232 if ((
m_thistSvc->regHist(
m_path + m_h2_hits[layer][region][side]->GetName(), m_h2_hits[layer][region][side])).isFailure())
233 return StatusCode::FAILURE;
234 ATH_MSG_DEBUG(
"Histogram " << m_h2_hits[layer][region][side]->GetName() <<
" successfully registered.");
239 return StatusCode::SUCCESS;