|
|
Go to the documentation of this file.
34 if (TString(
name.c_str()).Contains(
"Tracker")) {
36 }
else if (TString(
name.c_str()).Contains(
"HGCal")) {
38 }
else if (TString(
name.c_str()).Contains(
"HFNose")) {
41 LogTrace(
"MaterialAccountingGroup") <<
name << std::endl;
42 edm::LogError(
"MaterialAccountingGroup") <<
"Only Tracker , HGCal and HFNose are supported" << std::endl;
47 LogTrace(
"MaterialAccountingGroup") <<
"Elements within: " <<
name << std::endl;
51 LogTrace(
"MaterialAccountingGroup") <<
"Adding element at(r,z): ("
72 m_dedx_vs_eta =
new TProfile((
m_name +
"_dedx_vs_eta").c_str(),
"Energy loss vs. eta", 600, -3, 3);
73 m_dedx_vs_z =
new TProfile((
m_name +
"_dedx_vs_z").c_str(),
"Energy loss vs. Z", 6000, -300, 300);
74 m_dedx_vs_r =
new TProfile((
m_name +
"_dedx_vs_r").c_str(),
"Energy loss vs. R", 1200, 0, 120);
75 m_radlen_vs_eta =
new TProfile((
m_name +
"_radlen_vs_eta").c_str(),
"Radiation lengths vs. eta", 600, -3, 3);
76 m_radlen_vs_z =
new TProfile((
m_name +
"_radlen_vs_z").c_str(),
"Radiation lengths vs. Z", 6000, -300, 300);
77 m_radlen_vs_r =
new TProfile((
m_name +
"_radlen_vs_r").c_str(),
"Radiation lengths vs. R", 1200, 0, 120);
169 plot->SetFillColor(15);
170 plot->SetLineColor(1);
172 canvas.GetFrame()->SetFillColor(kWhite);
187 new TH1F((
name +
"_par").c_str(),
"Parametrization", 1,
plot->GetXaxis()->GetXmin(),
plot->GetXaxis()->GetXmax());
191 plot->SetFillColor(15);
192 plot->SetLineColor(1);
193 plot->SetLineWidth(2);
195 line->SetLineColor(2);
196 line->SetLineWidth(2);
198 canvas.GetFrame()->SetFillColor(kWhite);
209 std::stringstream
out;
221 m_file =
new TFile((
m_name +
".root").c_str(),
"RECREATE");
MaterialAccountingStep m_buffer
const std::string & name(void) const
get the layer name
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
MaterialAccountingStep m_accounting
double averageRadiationLengths(void) const
return the average normalized number of radiation lengths
static const double s_tolerance
const GlobalPoint & in(void) const
T perp() const
Magnitude of transverse component.
MaterialAccountingStep m_errors
MaterialAccountingStep average(void) const
return the average normalized material accounting informations
bool inside(const MaterialAccountingDetector &detector) const
check if detector is inside any part of this layer
BoundingBox m_boundingbox
void savePlot(TH1F *plot, const std::string &name)
void endOfTrack(void)
commit the buffer and reset the "already hit by this track" flag
std::string toString() const
bool next()
set current node to the next node in the filtered tree
Compact representation of the geometrical detector hierarchy.
std::pair< double, double > range_z() const
std::pair< double, double > range_r() const
void grow(double r, double z)
Global3DPoint GlobalPoint
const GlobalPoint & out(void) const
std::vector< GlobalPoint > m_elements
bool addDetector(const MaterialAccountingDetector &detector)
buffer material from a detector, if the detector is inside the DetLayer bounds
TProfile * m_radlen_vs_eta
~MaterialAccountingGroup(void)
destructor
double averageEnergyLoss(void) const
return the average normalized energy loss density factor for Bethe-Bloch
XYZVectorD XYZVector
spatial vector with cartesian internal representation
static int position[264][3]
std::string info(void) const
get some infos
Log< level::Error, false > LogError
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
double energyLoss(void) const
double radiationLengths(void) const
const DDTranslation & translation() const
The absolute translation of the current node.
MaterialAccountingGroup(const std::string &name, const DDCompactView &geometry)
explicit constructors
void savePlots(void)
save the plots
bool inside(double r, double z) const