CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
MaterialAccountingGroup Class Reference

#include <MaterialAccountingGroup.h>

Classes

class  BoundingBox
 

Public Member Functions

bool addDetector (const MaterialAccountingDetector &detector)
 buffer material from a detector, if the detector is inside the DetLayer bounds More...
 
MaterialAccountingStep average (void) const
 return the average normalized material accounting informations More...
 
double averageEnergyLoss (void) const
 return the average normalized energy loss density factor for Bethe-Bloch More...
 
double averageLength (void) const
 return the average normalized layer thickness More...
 
double averageRadiationLengths (void) const
 return the average normalized number of radiation lengths More...
 
const std::vector< GlobalPoint > & elements (void) const
 
void endOfTrack (void)
 commit the buffer and reset the "already hit by this track" flag More...
 
std::pair< double, double > getBoundingR () const
 Return the bouding limit in R for the hosted Group. More...
 
std::pair< double, double > getBoundingZ () const
 Return the bouding limit in Z for the hosted Group. More...
 
std::string info (void) const
 get some infos More...
 
bool inside (const MaterialAccountingDetector &detector) const
 check if detector is inside any part of this layer More...
 
 MaterialAccountingGroup (const std::string &name, const DDCompactView &geometry)
 explicit constructors More...
 
const std::string & name (void) const
 get the layer name More...
 
void savePlots (void)
 save the plots More...
 
double sigmaEnergyLoss (void) const
 return the sigma of the normalized energy loss density factor for Bethe-Bloch More...
 
double sigmaLength (void) const
 return the sigma of the normalized layer thickness More...
 
double sigmaRadiationLengths (void) const
 return the sigma of the normalized number of radiation lengths More...
 
unsigned int tracks (void) const
 return the number of tracks that hit this layer More...
 
 ~MaterialAccountingGroup (void)
 destructor More...
 

Private Member Functions

 MaterialAccountingGroup (const MaterialAccountingGroup &layer)=delete
 stop default copy ctor More...
 
MaterialAccountingGroupoperator= (const MaterialAccountingGroup &layer)=delete
 stop default assignment operator More...
 
void savePlot (TH1F *plot, const std::string &name)
 
void savePlot (TProfile *plot, float average, const std::string &name)
 

Private Attributes

MaterialAccountingStep m_accounting
 
BoundingBox m_boundingbox
 
MaterialAccountingStep m_buffer
 
bool m_counted
 
TH1F * m_dedx_spectrum
 
TProfile * m_dedx_vs_eta
 
TProfile * m_dedx_vs_r
 
TProfile * m_dedx_vs_z
 
std::vector< GlobalPointm_elements
 
MaterialAccountingStep m_errors
 
TFile * m_file
 
std::string m_name
 
TH1F * m_radlen_spectrum
 
TProfile * m_radlen_vs_eta
 
TProfile * m_radlen_vs_r
 
TProfile * m_radlen_vs_z
 
unsigned int m_tracks
 

Static Private Attributes

static const double s_tolerance
 

Detailed Description

Definition at line 19 of file MaterialAccountingGroup.h.

Constructor & Destructor Documentation

◆ MaterialAccountingGroup() [1/2]

MaterialAccountingGroup::MaterialAccountingGroup ( const std::string &  name,
const DDCompactView geometry 
)

explicit constructors

Definition at line 23 of file MaterialAccountingGroup.cc.

24  : m_name(name),
25  m_elements(),
26  m_boundingbox(),
27  m_accounting(),
28  m_errors(),
29  m_tracks(0),
30  m_counted(false),
31  m_file(nullptr) {
32  // retrieve the elements from DDD
33  DDValue namevalue;
34  if (TString(name.c_str()).Contains("Tracker")) {
35  namevalue = DDValue("TrackingMaterialGroup", name);
36  } else if (TString(name.c_str()).Contains("HGCal")) {
37  namevalue = DDValue("Volume", name);
38  } else if (TString(name.c_str()).Contains("HFNose")) {
39  namevalue = DDValue("Volume", name);
40  } else {
41  LogTrace("MaterialAccountingGroup") << name << std::endl;
42  edm::LogError("MaterialAccountingGroup") << "Only Tracker , HGCal and HFNose are supported" << std::endl;
43  }
44 
47  LogTrace("MaterialAccountingGroup") << "Elements within: " << name << std::endl;
48  while (fv.next()) {
49  // DD3Vector and DDTranslation are the same type as math::XYZVector
50  math::XYZVector position = fv.translation() / 10.; // mm -> cm
51  LogTrace("MaterialAccountingGroup") << "Adding element at(r,z): ("
52  << GlobalPoint(position.x(), position.y(), position.z()).perp() << ", "
53  << GlobalPoint(position.x(), position.y(), position.z()).z() << ") cm"
54  << std::endl;
55  LogTrace("MaterialAccountingGroup") << "Name of added element: " << fv.logicalPart().toString() << std::endl;
56  m_elements.push_back(GlobalPoint(position.x(), position.y(), position.z()));
57  }
58 
59  // grow the bounding box
60  for (unsigned int i = 0; i < m_elements.size(); ++i) {
62  }
64  LogTrace("MaterialAccountingGroup") << "Final BBox r_range: " << m_boundingbox.range_r().first << ", "
65  << m_boundingbox.range_r().second << std::endl
66  << "Final BBox z_range: " << m_boundingbox.range_z().first << ", "
67  << m_boundingbox.range_z().second << std::endl;
68 
69  // initialize the histograms
70  m_dedx_spectrum = new TH1F((m_name + "_dedx_spectrum").c_str(), "Energy loss spectrum", 1000, 0, 1);
71  m_radlen_spectrum = new TH1F((m_name + "_radlen_spectrum").c_str(), "Radiation lengths spectrum", 1000, 0, 1);
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);
78  m_dedx_spectrum->SetDirectory(nullptr);
79  m_radlen_spectrum->SetDirectory(nullptr);
80  m_dedx_vs_eta->SetDirectory(nullptr);
81  m_dedx_vs_z->SetDirectory(nullptr);
82  m_dedx_vs_r->SetDirectory(nullptr);
83  m_radlen_vs_eta->SetDirectory(nullptr);
84  m_radlen_vs_z->SetDirectory(nullptr);
85  m_radlen_vs_r->SetDirectory(nullptr);
86 }

References ALCARECOTkAlBeamHalo_cff::filter, MaterialAccountingGroup::BoundingBox::grow(), mps_fire::i, DDFilteredView::logicalPart(), LogTrace, m_boundingbox, m_dedx_spectrum, m_dedx_vs_eta, m_dedx_vs_r, m_dedx_vs_z, m_elements, m_name, m_radlen_spectrum, m_radlen_vs_eta, m_radlen_vs_r, m_radlen_vs_z, name(), DDFilteredView::next(), perp(), position, MaterialAccountingGroup::BoundingBox::range_r(), MaterialAccountingGroup::BoundingBox::range_z(), s_tolerance, DDBase< N, C >::toString(), DDFilteredView::translation(), and z.

◆ ~MaterialAccountingGroup()

MaterialAccountingGroup::~MaterialAccountingGroup ( void  )

destructor

Definition at line 88 of file MaterialAccountingGroup.cc.

88  {
89  delete m_dedx_spectrum;
90  delete m_dedx_vs_eta;
91  delete m_dedx_vs_z;
92  delete m_dedx_vs_r;
93  delete m_radlen_spectrum;
94  delete m_radlen_vs_eta;
95  delete m_radlen_vs_z;
96  delete m_radlen_vs_r;
97 }

References m_dedx_spectrum, m_dedx_vs_eta, m_dedx_vs_r, m_dedx_vs_z, m_radlen_spectrum, m_radlen_vs_eta, m_radlen_vs_r, and m_radlen_vs_z.

◆ MaterialAccountingGroup() [2/2]

MaterialAccountingGroup::MaterialAccountingGroup ( const MaterialAccountingGroup layer)
privatedelete

stop default copy ctor

Member Function Documentation

◆ addDetector()

bool MaterialAccountingGroup::addDetector ( const MaterialAccountingDetector detector)

buffer material from a detector, if the detector is inside the DetLayer bounds

Definition at line 132 of file MaterialAccountingGroup.cc.

132  {
133  if (not inside(detector))
134  return false;
135 
136  // multiple hits in the same layer (overlaps, etc.) from a single track still count as one for averaging,
137  // since the energy deposits from the track have been already split between the different detectors
138  m_buffer += detector.material();
139  m_counted = true;
140 
141  return true;
142 }

References hgcalTestNeighbor_cfi::detector, inside(), m_buffer, and m_counted.

◆ average()

MaterialAccountingStep MaterialAccountingGroup::average ( void  ) const
inline

return the average normalized material accounting informations

Definition at line 91 of file MaterialAccountingGroup.h.

References m_accounting, and m_tracks.

Referenced by endOfTrack().

◆ averageEnergyLoss()

double MaterialAccountingGroup::averageEnergyLoss ( void  ) const
inline

return the average normalized energy loss density factor for Bethe-Bloch

Definition at line 100 of file MaterialAccountingGroup.h.

100 { return m_tracks ? m_accounting.energyLoss() / m_tracks : 0.; }

References MaterialAccountingStep::energyLoss(), m_accounting, and m_tracks.

Referenced by savePlots(), and sigmaEnergyLoss().

◆ averageLength()

double MaterialAccountingGroup::averageLength ( void  ) const
inline

return the average normalized layer thickness

Definition at line 94 of file MaterialAccountingGroup.h.

94 { return m_tracks ? m_accounting.length() / m_tracks : 0.; }

References MaterialAccountingStep::length(), m_accounting, and m_tracks.

Referenced by sigmaLength().

◆ averageRadiationLengths()

double MaterialAccountingGroup::averageRadiationLengths ( void  ) const
inline

return the average normalized number of radiation lengths

Definition at line 97 of file MaterialAccountingGroup.h.

97 { return m_tracks ? m_accounting.radiationLengths() / m_tracks : 0.; }

References m_accounting, m_tracks, and MaterialAccountingStep::radiationLengths().

Referenced by savePlots(), and sigmaRadiationLengths().

◆ elements()

const std::vector<GlobalPoint>& MaterialAccountingGroup::elements ( void  ) const
inline

Definition at line 135 of file MaterialAccountingGroup.h.

135 { return m_elements; }

References m_elements.

◆ endOfTrack()

void MaterialAccountingGroup::endOfTrack ( void  )

commit the buffer and reset the "already hit by this track" flag

Definition at line 144 of file MaterialAccountingGroup.cc.

144  {
145  // add a detector
146  if (m_counted) {
149  ++m_tracks;
150 
151  GlobalPoint average((m_buffer.in().x() + m_buffer.out().x()) / 2.,
152  (m_buffer.in().y() + m_buffer.out().y()) / 2.,
153  (m_buffer.in().z() + m_buffer.out().z()) / 2.);
156  m_dedx_vs_eta->Fill(average.eta(), m_buffer.energyLoss(), 1.);
157  m_dedx_vs_z->Fill(average.z(), m_buffer.energyLoss(), 1.);
158  m_dedx_vs_r->Fill(average.perp(), m_buffer.energyLoss(), 1.);
159  m_radlen_vs_eta->Fill(average.eta(), m_buffer.radiationLengths(), 1.);
161  m_radlen_vs_r->Fill(average.perp(), m_buffer.radiationLengths(), 1.);
162  }
163  m_counted = false;
165 }

References average(), MaterialAccountingStep::energyLoss(), MaterialAccountingStep::in(), m_accounting, m_buffer, m_counted, m_dedx_spectrum, m_dedx_vs_eta, m_dedx_vs_r, m_dedx_vs_z, m_errors, m_radlen_spectrum, m_radlen_vs_eta, m_radlen_vs_r, m_radlen_vs_z, m_tracks, MaterialAccountingStep::out(), MaterialAccountingStep::radiationLengths(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ getBoundingR()

std::pair<double, double> MaterialAccountingGroup::getBoundingR ( ) const
inline

Return the bouding limit in R for the hosted Group.

Definition at line 85 of file MaterialAccountingGroup.h.

85 { return m_boundingbox.range_r(); };

References m_boundingbox, and MaterialAccountingGroup::BoundingBox::range_r().

◆ getBoundingZ()

std::pair<double, double> MaterialAccountingGroup::getBoundingZ ( ) const
inline

Return the bouding limit in Z for the hosted Group.

Definition at line 88 of file MaterialAccountingGroup.h.

88 { return m_boundingbox.range_z(); };

References m_boundingbox, and MaterialAccountingGroup::BoundingBox::range_z().

◆ info()

std::string MaterialAccountingGroup::info ( void  ) const

get some infos

Definition at line 208 of file MaterialAccountingGroup.cc.

208  {
209  std::stringstream out;
210  out << std::setw(48) << std::left << m_name << std::right << std::fixed;
211  ;
212  out << "BBox: " << std::setprecision(1) << std::setw(6) << m_boundingbox.range_z().first << " < Z < "
213  << std::setprecision(1) << std::setw(6) << m_boundingbox.range_z().second;
214  out << ", " << std::setprecision(1) << std::setw(5) << m_boundingbox.range_r().first << " < R < "
215  << std::setprecision(1) << std::setw(5) << m_boundingbox.range_r().second;
216  out << " Elements: " << std::setw(6) << m_elements.size();
217  return out.str();
218 }

References alignBH_cfg::fixed, m_boundingbox, m_elements, m_name, MillePedeFileConverter_cfg::out, MaterialAccountingGroup::BoundingBox::range_r(), and MaterialAccountingGroup::BoundingBox::range_z().

◆ inside()

bool MaterialAccountingGroup::inside ( const MaterialAccountingDetector detector) const

check if detector is inside any part of this layer

Definition at line 103 of file MaterialAccountingGroup.cc.

103  {
104  const GlobalPoint& position = detector.position();
105  // first check to see if the point is inside the bounding box
106  LogTrace("MaterialAccountingGroup") << "Testing position: (x, y, z, r) = " << position.x() << ", " << position.y()
107  << ", " << position.z() << ", " << position.perp() << std::endl;
108  if (not m_boundingbox.inside(position.perp(), position.z())) {
109  LogTrace("MaterialAccountingGroup") << "r outside of: (" << m_boundingbox.range_r().first << ", "
110  << m_boundingbox.range_r().second << "), Z ouside of: ("
111  << m_boundingbox.range_z().first << ", " << m_boundingbox.range_z().second
112  << ")" << std::endl;
113  return false;
114  } else {
115  // now check if the point is actually close enough to any element
116  LogTrace("MaterialAccountingGroup") << "r within: (" << m_boundingbox.range_r().first << ", "
117  << m_boundingbox.range_r().second << "), Z within: ("
118  << m_boundingbox.range_z().first << ", " << m_boundingbox.range_z().second
119  << ")" << std::endl;
120  for (unsigned int i = 0; i < m_elements.size(); ++i) {
121  LogTrace("MaterialAccountingGroup")
122  << "Closest testing agains(x, y, z, r): (" << m_elements[i].x() << ", " << m_elements[i].y() << ", "
123  << m_elements[i].z() << ", " << m_elements[i].perp() << ") --> " << (position - m_elements[i]).mag()
124  << " vs tolerance: " << s_tolerance << std::endl;
125  if ((position - m_elements[i]).mag2() < (s_tolerance * s_tolerance))
126  return true;
127  }
128  return false;
129  }
130 }

References hgcalTestNeighbor_cfi::detector, mps_fire::i, MaterialAccountingGroup::BoundingBox::inside(), LogTrace, m_boundingbox, m_elements, mag(), position, MaterialAccountingGroup::BoundingBox::range_r(), MaterialAccountingGroup::BoundingBox::range_z(), and s_tolerance.

Referenced by addDetector().

◆ name()

const std::string& MaterialAccountingGroup::name ( void  ) const
inline

get the layer name

Definition at line 123 of file MaterialAccountingGroup.h.

123 { return m_name; }

References m_name.

Referenced by config.CFG::__str__(), validation.Sample::digest(), MaterialAccountingGroup(), and savePlot().

◆ operator=()

MaterialAccountingGroup& MaterialAccountingGroup::operator= ( const MaterialAccountingGroup layer)
privatedelete

stop default assignment operator

◆ savePlot() [1/2]

void MaterialAccountingGroup::savePlot ( TH1F *  plot,
const std::string &  name 
)
private

Definition at line 167 of file MaterialAccountingGroup.cc.

167  {
168  TCanvas canvas(name.c_str(), plot->GetTitle(), 1280, 1024);
169  plot->SetFillColor(15); // grey
170  plot->SetLineColor(1); // black
171  plot->Draw("c e");
172  canvas.GetFrame()->SetFillColor(kWhite);
173  canvas.Draw();
174  canvas.SaveAs((name + ".png").c_str(), "");
175 
176  // store te plot into m_file
177  plot->SetDirectory(m_file);
178 }

References svgfig::canvas(), m_file, name(), and plotFactory::plot.

Referenced by savePlots().

◆ savePlot() [2/2]

void MaterialAccountingGroup::savePlot ( TProfile *  plot,
float  average,
const std::string &  name 
)
private

Definition at line 180 of file MaterialAccountingGroup.cc.

180  {
181  // Nota Bene:
182  // these "line" plots are not deleted explicitly since
183  // - deleting them before saving them to a TFile will not save them
184  // - deleting them after the TFile they're stored into results in a SEGV
185  // ROOT is probably "taking care" (read: messing things up) somehow...
186  TH1F* line =
187  new TH1F((name + "_par").c_str(), "Parametrization", 1, plot->GetXaxis()->GetXmin(), plot->GetXaxis()->GetXmax());
188  line->SetBinContent(1, average);
189 
190  TCanvas canvas(name.c_str(), plot->GetTitle(), 1280, 1024);
191  plot->SetFillColor(15); // grey
192  plot->SetLineColor(1); // black
193  plot->SetLineWidth(2);
194  plot->Draw("c e6");
195  line->SetLineColor(2); // red
196  line->SetLineWidth(2);
197  line->Draw("same");
198  canvas.GetFrame()->SetFillColor(kWhite);
199  canvas.Draw();
200  canvas.SaveAs((name + ".png").c_str(), "");
201 
202  // store te plots into m_file
203  plot->SetDirectory(m_file);
204  line->SetDirectory(m_file);
205 }

References svgfig::canvas(), mps_splice::line, m_file, name(), and plotFactory::plot.

◆ savePlots()

void MaterialAccountingGroup::savePlots ( void  )

save the plots

Definition at line 220 of file MaterialAccountingGroup.cc.

220  {
221  m_file = new TFile((m_name + ".root").c_str(), "RECREATE");
222  savePlot(m_dedx_spectrum, m_name + "_dedx_spectrum");
223  savePlot(m_radlen_spectrum, m_name + "_radlen_spectrum");
224  savePlot(m_dedx_vs_eta, averageEnergyLoss(), m_name + "_dedx_vs_eta");
225  savePlot(m_dedx_vs_z, averageEnergyLoss(), m_name + "_dedx_vs_z");
226  savePlot(m_dedx_vs_r, averageEnergyLoss(), m_name + "_dedx_vs_r");
227  savePlot(m_radlen_vs_eta, averageRadiationLengths(), m_name + "_radlen_vs_eta");
230  m_file->Write();
231  m_file->Close();
232 
233  delete m_file;
234 }

References averageEnergyLoss(), averageRadiationLengths(), m_dedx_spectrum, m_dedx_vs_eta, m_dedx_vs_r, m_dedx_vs_z, m_file, m_name, m_radlen_spectrum, m_radlen_vs_eta, m_radlen_vs_r, m_radlen_vs_z, and savePlot().

◆ sigmaEnergyLoss()

double MaterialAccountingGroup::sigmaEnergyLoss ( void  ) const
inline

return the sigma of the normalized energy loss density factor for Bethe-Bloch

Definition at line 115 of file MaterialAccountingGroup.h.

115  {
117  }

References averageEnergyLoss(), MaterialAccountingStep::energyLoss(), m_errors, m_tracks, and mathSSE::sqrt().

◆ sigmaLength()

double MaterialAccountingGroup::sigmaLength ( void  ) const
inline

return the sigma of the normalized layer thickness

Definition at line 103 of file MaterialAccountingGroup.h.

103  {
105  }

References averageLength(), MaterialAccountingStep::length(), m_errors, m_tracks, and mathSSE::sqrt().

◆ sigmaRadiationLengths()

double MaterialAccountingGroup::sigmaRadiationLengths ( void  ) const
inline

return the sigma of the normalized number of radiation lengths

Definition at line 108 of file MaterialAccountingGroup.h.

108  {
111  : 0.;
112  }

References averageRadiationLengths(), m_errors, m_tracks, MaterialAccountingStep::radiationLengths(), and mathSSE::sqrt().

◆ tracks()

unsigned int MaterialAccountingGroup::tracks ( void  ) const
inline

return the number of tracks that hit this layer

Definition at line 120 of file MaterialAccountingGroup.h.

120 { return m_tracks; }

References m_tracks.

Member Data Documentation

◆ m_accounting

MaterialAccountingStep MaterialAccountingGroup::m_accounting
private

◆ m_boundingbox

BoundingBox MaterialAccountingGroup::m_boundingbox
private

◆ m_buffer

MaterialAccountingStep MaterialAccountingGroup::m_buffer
private

Definition at line 148 of file MaterialAccountingGroup.h.

Referenced by addDetector(), and endOfTrack().

◆ m_counted

bool MaterialAccountingGroup::m_counted
private

Definition at line 147 of file MaterialAccountingGroup.h.

Referenced by addDetector(), and endOfTrack().

◆ m_dedx_spectrum

TH1F* MaterialAccountingGroup::m_dedx_spectrum
private

◆ m_dedx_vs_eta

TProfile* MaterialAccountingGroup::m_dedx_vs_eta
private

◆ m_dedx_vs_r

TProfile* MaterialAccountingGroup::m_dedx_vs_r
private

◆ m_dedx_vs_z

TProfile* MaterialAccountingGroup::m_dedx_vs_z
private

◆ m_elements

std::vector<GlobalPoint> MaterialAccountingGroup::m_elements
private

Definition at line 142 of file MaterialAccountingGroup.h.

Referenced by elements(), info(), inside(), and MaterialAccountingGroup().

◆ m_errors

MaterialAccountingStep MaterialAccountingGroup::m_errors
private

◆ m_file

TFile* MaterialAccountingGroup::m_file
mutableprivate

Definition at line 162 of file MaterialAccountingGroup.h.

Referenced by savePlot(), and savePlots().

◆ m_name

std::string MaterialAccountingGroup::m_name
private

Definition at line 141 of file MaterialAccountingGroup.h.

Referenced by info(), MaterialAccountingGroup(), name(), and savePlots().

◆ m_radlen_spectrum

TH1F* MaterialAccountingGroup::m_radlen_spectrum
private

◆ m_radlen_vs_eta

TProfile* MaterialAccountingGroup::m_radlen_vs_eta
private

◆ m_radlen_vs_r

TProfile* MaterialAccountingGroup::m_radlen_vs_r
private

◆ m_radlen_vs_z

TProfile* MaterialAccountingGroup::m_radlen_vs_z
private

◆ m_tracks

unsigned int MaterialAccountingGroup::m_tracks
private

◆ s_tolerance

const double MaterialAccountingGroup::s_tolerance
staticprivate
Initial value:
=
0.01

Definition at line 165 of file MaterialAccountingGroup.h.

Referenced by inside(), and MaterialAccountingGroup().

MaterialAccountingGroup::m_buffer
MaterialAccountingStep m_buffer
Definition: MaterialAccountingGroup.h:148
svgfig.canvas
def canvas(*sub, **attr)
Definition: svgfig.py:482
MaterialAccountingGroup::name
const std::string & name(void) const
get the layer name
Definition: MaterialAccountingGroup.h:123
alignBH_cfg.fixed
fixed
Definition: alignBH_cfg.py:54
mps_fire.i
i
Definition: mps_fire.py:428
MaterialAccountingGroup::m_dedx_vs_z
TProfile * m_dedx_vs_z
Definition: MaterialAccountingGroup.h:155
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
MaterialAccountingGroup::m_tracks
unsigned int m_tracks
Definition: MaterialAccountingGroup.h:146
MaterialAccountingGroup::m_radlen_vs_r
TProfile * m_radlen_vs_r
Definition: MaterialAccountingGroup.h:159
MaterialAccountingGroup::m_accounting
MaterialAccountingStep m_accounting
Definition: MaterialAccountingGroup.h:144
geometry
Definition: geometry.py:1
MaterialAccountingGroup::averageRadiationLengths
double averageRadiationLengths(void) const
return the average normalized number of radiation lengths
Definition: MaterialAccountingGroup.h:97
MaterialAccountingGroup::s_tolerance
static const double s_tolerance
Definition: MaterialAccountingGroup.h:165
MaterialAccountingStep::in
const GlobalPoint & in(void) const
Definition: MaterialAccountingStep.h:38
perp
T perp() const
Magnitude of transverse component.
Definition: Basic3DVectorLD.h:133
MaterialAccountingGroup::m_errors
MaterialAccountingStep m_errors
Definition: MaterialAccountingGroup.h:145
plotFactory.plot
plot
Definition: plotFactory.py:109
MaterialAccountingGroup::average
MaterialAccountingStep average(void) const
return the average normalized material accounting informations
Definition: MaterialAccountingGroup.h:91
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
MaterialAccountingGroup::m_file
TFile * m_file
Definition: MaterialAccountingGroup.h:162
MaterialAccountingGroup::inside
bool inside(const MaterialAccountingDetector &detector) const
check if detector is inside any part of this layer
Definition: MaterialAccountingGroup.cc:103
MaterialAccountingGroup::m_boundingbox
BoundingBox m_boundingbox
Definition: MaterialAccountingGroup.h:143
MaterialAccountingGroup::savePlot
void savePlot(TH1F *plot, const std::string &name)
Definition: MaterialAccountingGroup.cc:167
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
MaterialAccountingGroup::BoundingBox::range_z
std::pair< double, double > range_z() const
Definition: MaterialAccountingGroup.h:51
DDAxes::z
MaterialAccountingGroup::BoundingBox::range_r
std::pair< double, double > range_r() const
Definition: MaterialAccountingGroup.h:49
MaterialAccountingGroup::BoundingBox::grow
void grow(double r, double z)
Definition: MaterialAccountingGroup.h:29
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
ALCARECOTkAlBeamHalo_cff.filter
filter
Definition: ALCARECOTkAlBeamHalo_cff.py:27
MaterialAccountingGroup::m_radlen_vs_z
TProfile * m_radlen_vs_z
Definition: MaterialAccountingGroup.h:158
MaterialAccountingStep::out
const GlobalPoint & out(void) const
Definition: MaterialAccountingStep.h:40
MaterialAccountingGroup::m_elements
std::vector< GlobalPoint > m_elements
Definition: MaterialAccountingGroup.h:142
MaterialAccountingGroup::m_radlen_vs_eta
TProfile * m_radlen_vs_eta
Definition: MaterialAccountingGroup.h:157
MaterialAccountingGroup::averageEnergyLoss
double averageEnergyLoss(void) const
return the average normalized energy loss density factor for Bethe-Bloch
Definition: MaterialAccountingGroup.h:100
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
average
Definition: average.py:1
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
MaterialAccountingStep
Definition: MaterialAccountingStep.h:9
MaterialAccountingStep::energyLoss
double energyLoss(void) const
Definition: MaterialAccountingStep.h:36
MaterialAccountingStep::radiationLengths
double radiationLengths(void) const
Definition: MaterialAccountingStep.h:34
MaterialAccountingStep::length
double length(void) const
Definition: MaterialAccountingStep.h:32
DDValue
Definition: DDValue.h:21
MaterialAccountingGroup::m_dedx_vs_r
TProfile * m_dedx_vs_r
Definition: MaterialAccountingGroup.h:156
DDSpecificsMatchesValueFilter
Definition: DDFilter.h:70
MaterialAccountingGroup::m_dedx_vs_eta
TProfile * m_dedx_vs_eta
Definition: MaterialAccountingGroup.h:154
MaterialAccountingGroup::averageLength
double averageLength(void) const
return the average normalized layer thickness
Definition: MaterialAccountingGroup.h:94
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
DDFilteredView
Definition: DDFilteredView.h:20
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
MaterialAccountingGroup::m_dedx_spectrum
TH1F * m_dedx_spectrum
Definition: MaterialAccountingGroup.h:151
MaterialAccountingGroup::m_radlen_spectrum
TH1F * m_radlen_spectrum
Definition: MaterialAccountingGroup.h:152
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
MaterialAccountingGroup::m_name
std::string m_name
Definition: MaterialAccountingGroup.h:141
mps_splice.line
line
Definition: mps_splice.py:76
MaterialAccountingGroup::m_counted
bool m_counted
Definition: MaterialAccountingGroup.h:147
MaterialAccountingGroup::BoundingBox::inside
bool inside(double r, double z) const
Definition: MaterialAccountingGroup.h:47