CMS 3D CMS Logo

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

#include <MaterialBudgetForward.h>

Inheritance diagram for MaterialBudgetForward:
SimWatcher Observer< const BeginOfRun *> Observer< const BeginOfTrack *> Observer< const G4Step *> Observer< const EndOfTrack *>

Public Member Functions

 MaterialBudgetForward (const edm::ParameterSet &)
 
 MaterialBudgetForward (const MaterialBudgetForward &)=delete
 
const MaterialBudgetForwardoperator= (const MaterialBudgetForward &)=delete
 
 ~MaterialBudgetForward () override
 
- Public Member Functions inherited from SimWatcher
virtual void beginRun (edm::EventSetup const &)
 
bool isMT () const
 
const SimWatcheroperator= (const SimWatcher &)=delete
 
virtual void registerConsumes (edm::ConsumesCollector)
 
 SimWatcher ()
 
 SimWatcher (const SimWatcher &)=delete
 
virtual ~SimWatcher ()
 
- Public Member Functions inherited from Observer< const BeginOfRun *>
 Observer ()
 
void slotForUpdate (const BeginOfRun * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const BeginOfTrack *>
 Observer ()
 
void slotForUpdate (const BeginOfTrack * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const G4Step *>
 Observer ()
 
void slotForUpdate (const G4Step * iT)
 
virtual ~Observer ()
 
- Public Member Functions inherited from Observer< const EndOfTrack *>
 Observer ()
 
void slotForUpdate (const EndOfTrack * iT)
 
virtual ~Observer ()
 

Private Member Functions

void book (const edm::ParameterSet &)
 
bool stopAfter (const G4Step *)
 
void update (const BeginOfRun *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const BeginOfTrack *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const G4Step *) override
 This routine will be called when the appropriate signal arrives. More...
 
void update (const EndOfTrack *) override
 This routine will be called when the appropriate signal arrives. More...
 

Private Attributes

std::vector< double > boundaries
 
std::vector< int > constituents
 
std::vector< int > detLevels
 
std::vector< std::string > detNames
 
std::vector< std::string > detTypes
 
double eta_
 
std::vector< double > etaRegions
 
std::vector< double > intLen
 
std::vector< G4LogicalVolume * > logVolumes
 
TProfile * me100 [maxSet]
 
TProfile * me200 [maxSet]
 
TProfile * me300 [maxSet]
 
TH1F * me400 [maxSet]
 
TProfile2D * me500 [maxSet]
 
TProfile2D * me600 [maxSet]
 
TProfile2D * me700 [maxSet]
 
TH2F * me800 [maxSet]
 
double phi_
 
std::vector< double > radLen
 
std::vector< int > regionTypes
 
std::vector< int > stackOrder
 
std::vector< double > stepLen
 
double stepT
 

Static Private Attributes

static const int maxSet = 25
 

Additional Inherited Members

- Protected Member Functions inherited from SimWatcher
void setMT (bool val)
 

Detailed Description

Definition at line 24 of file MaterialBudgetForward.h.

Constructor & Destructor Documentation

◆ MaterialBudgetForward() [1/2]

MaterialBudgetForward::MaterialBudgetForward ( const edm::ParameterSet p)

Definition at line 20 of file MaterialBudgetForward.cc.

References book(), boundaries, constituents, detLevels, detNames, detTypes, etaRegions, edm::ParameterSet::getParameter(), cuy::ii, GetRecoTauVFromDQM_MC_cff::kk, personalPlayback::level, Skims_PA_cff::name, AlCaHLTBitMon_ParallelJobs::p, regionTypes, stackOrder, and AlCaHLTBitMon_QueryRunRegistry::string.

20  {
21  edm::ParameterSet m_p = p.getParameter<edm::ParameterSet>("MaterialBudgetForward");
22  detTypes = m_p.getParameter<std::vector<std::string> >("DetectorTypes");
23  constituents = m_p.getParameter<std::vector<int> >("Constituents");
24  stackOrder = m_p.getParameter<std::vector<int> >("StackOrder");
25  detNames = m_p.getParameter<std::vector<std::string> >("DetectorNames");
26  detLevels = m_p.getParameter<std::vector<int> >("DetectorLevels");
27  etaRegions = m_p.getParameter<std::vector<double> >("EtaBoundaries");
28  regionTypes = m_p.getParameter<std::vector<int> >("RegionTypes");
29  boundaries = m_p.getParameter<std::vector<double> >("Boundaries");
30  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward initialized for " << detTypes.size() << " detector types";
31  unsigned int nc = 0;
32  for (unsigned int ii = 0; ii < detTypes.size(); ++ii) {
33  edm::LogInfo("MaterialBudget") << "Type[" << ii << "] : " << detTypes[ii] << " with " << constituents[ii]
34  << ", order " << stackOrder[ii] << " constituents --> ";
35  for (int kk = 0; kk < constituents[ii]; ++kk) {
36  std::string name = "Unknown";
37  int level = -1;
38  if (nc < detNames.size()) {
39  name = detNames[nc];
40  level = detLevels[nc];
41  ++nc;
42  }
43  edm::LogInfo("MaterialBudget") << " Constituent[" << kk << "]: " << name << " at level " << level;
44  }
45  }
46  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward Stop condition for " << etaRegions.size() << " eta regions";
47  for (unsigned int ii = 0; ii < etaRegions.size(); ++ii) {
48  edm::LogInfo("MaterialBudget") << "Region[" << ii << "] : Eta < " << etaRegions[ii] << " boundary type "
49  << regionTypes[ii] << " limit " << boundaries[ii];
50  }
51  book(m_p);
52 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::vector< double > etaRegions
std::vector< int > detLevels
std::vector< int > stackOrder
std::vector< std::string > detNames
ii
Definition: cuy.py:589
std::vector< int > constituents
Log< level::Info, false > LogInfo
void book(const edm::ParameterSet &)
std::vector< int > regionTypes
std::vector< double > boundaries
std::vector< std::string > detTypes

◆ MaterialBudgetForward() [2/2]

MaterialBudgetForward::MaterialBudgetForward ( const MaterialBudgetForward )
delete

◆ ~MaterialBudgetForward()

MaterialBudgetForward::~MaterialBudgetForward ( )
override

Definition at line 54 of file MaterialBudgetForward.cc.

54 {}

Member Function Documentation

◆ book()

void MaterialBudgetForward::book ( const edm::ParameterSet m_p)
private

Definition at line 202 of file MaterialBudgetForward.cc.

References detTypes, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, maxEta, HLT_2022v12_cff::maxPhi, maxSet, me100, me200, me300, me400, me500, me600, me700, me800, SiStripPI::min, EgHLTOffEleSelection_cfi::minEta, Skims_PA_cff::name, pi, AlCaHLTBitMon_QueryRunRegistry::string, compare::tfile, and runGCPTkAlMap::title.

Referenced by MaterialBudgetForward().

202  {
203  // Book histograms
205 
206  if (!tfile.isAvailable())
207  throw cms::Exception("BadConfig") << "TFileService unavailable: "
208  << "please add it to config file";
209 
210  int binEta = m_p.getUntrackedParameter<int>("NBinEta", 320);
211  int binPhi = m_p.getUntrackedParameter<int>("NBinPhi", 180);
212  double minEta = m_p.getUntrackedParameter<double>("MinEta", -8.0);
213  double maxEta = m_p.getUntrackedParameter<double>("MaxEta", 8.0);
214  double maxPhi = CLHEP::pi;
215  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward: Booking user "
216  << "histos === with " << binEta << " bins "
217  << "in eta from " << minEta << " to " << maxEta << " and " << binPhi << " bins "
218  << "in phi from " << -maxPhi << " to " << maxPhi;
219 
220  char name[20], title[80];
221  std::string named;
222  for (int i = 0; i < std::min((int)(detTypes.size() + 1), maxSet); i++) {
223  if (i >= (int)(detTypes.size()))
224  named = "Unknown";
225  else
226  named = detTypes[i];
227  sprintf(name, "%d", i + 100);
228  sprintf(title, "MB(X0) prof Eta in %s", named.c_str());
229  me100[i] = tfile->make<TProfile>(name, title, binEta, minEta, maxEta);
230  sprintf(name, "%d", i + 200);
231  sprintf(title, "MB(L0) prof Eta in %s", named.c_str());
232  me200[i] = tfile->make<TProfile>(name, title, binEta, minEta, maxEta);
233  sprintf(name, "%d", i + 300);
234  sprintf(title, "MB(Step) prof Eta in %s", named.c_str());
235  me300[i] = tfile->make<TProfile>(name, title, binEta, minEta, maxEta);
236  sprintf(name, "%d", i + 400);
237  sprintf(title, "Eta in %s", named.c_str());
238  me400[i] = tfile->make<TH1F>(name, title, binEta, minEta, maxEta);
239  sprintf(name, "%d", i + 500);
240  sprintf(title, "MB(X0) prof Eta Phi in %s", named.c_str());
241  me500[i] = tfile->make<TProfile2D>(name, title, binEta / 2, minEta, maxEta, binPhi / 2, -maxPhi, maxPhi);
242  sprintf(name, "%d", i + 600);
243  sprintf(title, "MB(L0) prof Eta Phi in %s", named.c_str());
244  me600[i] = tfile->make<TProfile2D>(name, title, binEta / 2, minEta, maxEta, binPhi / 2, -maxPhi, maxPhi);
245  sprintf(name, "%d", i + 700);
246  sprintf(title, "MB(Step) prof Eta Phi in %s", named.c_str());
247  me700[i] = tfile->make<TProfile2D>(name, title, binEta / 2, minEta, maxEta, binPhi / 2, -maxPhi, maxPhi);
248  sprintf(name, "%d", i + 800);
249  sprintf(title, "Eta vs Phi in %s", named.c_str());
250  me800[i] = tfile->make<TH2F>(name, title, binEta / 2, minEta, maxEta, binPhi / 2, -maxPhi, maxPhi);
251  }
252 
253  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward: Booking user "
254  << "histos done ===";
255 }
TProfile2D * me700[maxSet]
TProfile * me100[maxSet]
double maxEta
TProfile2D * me600[maxSet]
const Double_t pi
T getUntrackedParameter(std::string const &, T const &) const
TProfile * me200[maxSet]
Definition: tfile.py:1
Log< level::Info, false > LogInfo
TProfile * me300[maxSet]
TProfile2D * me500[maxSet]
std::vector< std::string > detTypes

◆ operator=()

const MaterialBudgetForward& MaterialBudgetForward::operator= ( const MaterialBudgetForward )
delete

◆ stopAfter()

bool MaterialBudgetForward::stopAfter ( const G4Step *  aStep)
private

Definition at line 257 of file MaterialBudgetForward.cc.

References funct::abs(), boundaries, eta_, etaRegions, RemoveAddSevLevel::flag, cuy::ii, regionTypes, findQualityFiles::rr, and geometryCSVtoXML::zz.

Referenced by update().

257  {
258  G4ThreeVector hitPoint = aStep->GetPreStepPoint()->GetPosition();
259  if (aStep->GetPostStepPoint() != nullptr)
260  hitPoint = aStep->GetPostStepPoint()->GetPosition();
261  double rr = hitPoint.perp();
262  double zz = std::abs(hitPoint.z());
263 
264  bool flag(false);
265  for (unsigned int ii = 0; ii < etaRegions.size(); ++ii) {
266 #ifdef DebugLog
267  edm::LogInfo("MaterialBudget") << " MaterialBudgetForward::Eta " << eta_ << " in Region[" << ii << "] with "
268  << etaRegions[ii] << " type " << regionTypes[ii] << "|" << boundaries[ii];
269 #endif
270  if (fabs(eta_) < etaRegions[ii]) {
271  if (regionTypes[ii] == 0) {
272  if (rr >= boundaries[ii] - 0.001)
273  flag = true;
274  } else {
275  if (zz >= boundaries[ii] - 0.001)
276  flag = true;
277  }
278 #ifdef DebugLog
279  if (flag)
280  edm::LogInfo("MaterialBudget") << " MaterialBudgetForward::Stop after R = " << rr << " and Z = " << zz;
281 #endif
282  break;
283  }
284  }
285 #ifdef DebugLog
286  edm::LogInfo("MaterialBudget") << " MaterialBudgetForward:: R = " << rr << " and Z = " << zz << " Flag " << flag;
287 #endif
288  return flag;
289 }
std::vector< double > etaRegions
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ii
Definition: cuy.py:589
Log< level::Info, false > LogInfo
std::vector< int > regionTypes
std::vector< double > boundaries

◆ update() [1/4]

void MaterialBudgetForward::update ( const BeginOfRun )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfRun *>.

Definition at line 56 of file MaterialBudgetForward.cc.

References detNames, detTypes, cuy::ii, intLen, logVolumes, Skims_PA_cff::name, radLen, stackOrder, stepLen, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

56  {
57  const G4LogicalVolumeStore* lvs = G4LogicalVolumeStore::GetInstance();
58  std::vector<G4LogicalVolume*>::const_iterator lvcite;
59 
60  unsigned int kount = detNames.size();
61  for (unsigned int ii = 0; ii < kount; ++ii)
62  logVolumes.push_back(nullptr);
63 
64  for (lvcite = lvs->begin(); lvcite != lvs->end(); lvcite++) {
65  for (unsigned int ii = 0; ii < detNames.size(); ++ii) {
66  if (strcmp(detNames[ii].c_str(), (*lvcite)->GetName().c_str()) == 0) {
67  logVolumes[ii] = (*lvcite);
68  kount--;
69  break;
70  }
71  }
72  if (kount <= 0)
73  break;
74  }
75  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward::Finds " << detNames.size() - kount << " out of "
76  << detNames.size() << " LV addresses";
77  for (unsigned int ii = 0; ii < detNames.size(); ++ii) {
78  std::string name("Unknown");
79  if (logVolumes[ii] != nullptr)
80  name = logVolumes[ii]->GetName();
81  edm::LogInfo("MaterialBudget") << "LV[" << ii << "] : " << detNames[ii] << " Address " << logVolumes[ii] << " | "
82  << name;
83  }
84 
85  for (unsigned int ii = 0; ii < (detTypes.size() + 1); ++ii) {
86  stepLen.push_back(0);
87  radLen.push_back(0);
88  intLen.push_back(0);
89  }
90  stackOrder.push_back(0);
91 }
std::vector< G4LogicalVolume * > logVolumes
std::vector< double > radLen
std::vector< int > stackOrder
std::vector< double > intLen
std::vector< double > stepLen
std::vector< std::string > detNames
ii
Definition: cuy.py:589
Log< level::Info, false > LogInfo
std::vector< std::string > detTypes

◆ update() [2/4]

void MaterialBudgetForward::update ( const BeginOfTrack )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const BeginOfTrack *>.

Definition at line 93 of file MaterialBudgetForward.cc.

References detTypes, eta_, cuy::ii, createfilelist::int, intLen, phi_, radLen, stepLen, and stepT.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

93  {
94  for (unsigned int ii = 0; ii < (detTypes.size() + 1); ++ii) {
95  stepLen[ii] = 0;
96  radLen[ii] = 0;
97  intLen[ii] = 0;
98  }
99 
100  const G4Track* aTrack = (*trk)(); // recover G4 pointer if wanted
101  const G4ThreeVector& mom = aTrack->GetMomentum();
102  if (mom.theta() != 0) {
103  eta_ = mom.eta();
104  } else {
105  eta_ = -99;
106  }
107  phi_ = mom.phi();
108  stepT = 0;
109 
110 #ifdef DebugLog
111  double theEnergy = aTrack->GetTotalEnergy();
112  int theID = (int)(aTrack->GetDefinition()->GetPDGEncoding());
113  edm::LogInfo("MaterialBudget") << "MaterialBudgetHcalHistos: Track " << aTrack->GetTrackID() << " Code " << theID
114  << " Energy " << theEnergy / CLHEP::GeV << " GeV; Eta " << eta_ << " Phi "
115  << phi_ / CLHEP::deg << " PT " << mom.perp() / CLHEP::GeV << " GeV *****";
116 #endif
117 }
std::vector< double > radLen
std::vector< double > intLen
std::vector< double > stepLen
ii
Definition: cuy.py:589
Log< level::Info, false > LogInfo
std::vector< std::string > detTypes

◆ update() [3/4]

void MaterialBudgetForward::update ( const G4Step *  )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const G4Step *>.

Definition at line 119 of file MaterialBudgetForward.cc.

References constituents, detLevels, detTypes, cuy::ii, createfilelist::int, intLen, findQualityFiles::jj, GetRecoTauVFromDQM_MC_cff::kk, logVolumes, radLen, stepLen, stepT, stopAfter(), and HLT_2022v12_cff::track.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

119  {
120  //---------- each step
121  G4Material* material = aStep->GetPreStepPoint()->GetMaterial();
122  double step = aStep->GetStepLength();
123  double radl = material->GetRadlen();
124  double intl = material->GetNuclearInterLength();
125 
126  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
127  unsigned int indx = detTypes.size();
128  unsigned int nc = 0;
129  for (unsigned int ii = 0; ii < detTypes.size(); ++ii) {
130  for (int kk = 0; kk < constituents[ii]; ++kk) {
131  if (detLevels[nc + kk] <= (int)((touch->GetHistoryDepth()) + 1)) {
132  int jj = (int)((touch->GetHistoryDepth()) + 1) - detLevels[nc + kk];
133  if ((touch->GetVolume(jj)->GetLogicalVolume()) == logVolumes[nc + kk]) {
134  indx = ii;
135  break;
136  }
137  }
138  }
139  nc += (unsigned int)(constituents[ii]);
140  if (indx == ii)
141  break;
142  }
143 
144  stepT += step;
145  stepLen[indx] = stepT;
146  radLen[indx] += (step / radl);
147  intLen[indx] += (step / intl);
148 #ifdef DebugLog
149  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward::Step in "
150  << touch->GetVolume(0)->GetLogicalVolume()->GetName() << " Index " << indx << " Step "
151  << step << " RadL " << step / radl << " IntL " << step / intl;
152 #endif
153  //----- Stop tracking after selected position
154  if (stopAfter(aStep)) {
155  G4Track* track = aStep->GetTrack();
156  track->SetTrackStatus(fStopAndKill);
157  }
158 }
std::vector< G4LogicalVolume * > logVolumes
std::vector< int > detLevels
std::vector< double > radLen
std::vector< double > intLen
std::vector< double > stepLen
ii
Definition: cuy.py:589
std::vector< int > constituents
Log< level::Info, false > LogInfo
bool stopAfter(const G4Step *)
step
Definition: StallMonitor.cc:98
std::vector< std::string > detTypes

◆ update() [4/4]

void MaterialBudgetForward::update ( const EndOfTrack )
overrideprivatevirtual

This routine will be called when the appropriate signal arrives.

Implements Observer< const EndOfTrack *>.

Definition at line 160 of file MaterialBudgetForward.cc.

References detTypes, eta_, cuy::ii, intLen, findQualityFiles::jj, GetRecoTauVFromDQM_MC_cff::kk, me100, me200, me300, me400, me500, me600, me700, me800, Skims_PA_cff::name, phi_, radLen, stackOrder, stepLen, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), and MatrixUtil.Steps::overwrite().

160  {
161  for (unsigned int ii = 0; ii < detTypes.size(); ++ii) {
162  for (unsigned int jj = 0; jj <= detTypes.size(); ++jj) {
163  if (stackOrder[jj] == (int)(ii + 1)) {
164  for (unsigned int kk = 0; kk <= detTypes.size(); ++kk) {
165  if (stackOrder[kk] == (int)(ii)) {
166  radLen[jj] += radLen[kk];
167  intLen[jj] += intLen[kk];
168 #ifdef DebugLog
169  edm::LogInfo("MaterialBudget")
170  << "MaterialBudgetForward::Add " << kk << ":" << stackOrder[kk] << " to " << jj << ":" << stackOrder[jj]
171  << " RadL " << radLen[kk] << " : " << radLen[jj] << " IntL " << intLen[kk] << " : " << intLen[jj]
172  << " StepL " << stepLen[kk] << " : " << stepLen[jj];
173 #endif
174  break;
175  }
176  }
177  break;
178  }
179  }
180  }
181 
182  for (unsigned int ii = 0; ii <= detTypes.size(); ++ii) {
183  me100[ii]->Fill(eta_, radLen[ii]);
184  me200[ii]->Fill(eta_, intLen[ii]);
185  me300[ii]->Fill(eta_, stepLen[ii]);
186  me400[ii]->Fill(eta_);
187  me500[ii]->Fill(eta_, phi_, radLen[ii]);
188  me600[ii]->Fill(eta_, phi_, intLen[ii]);
189  me700[ii]->Fill(eta_, phi_, stepLen[ii]);
190  me800[ii]->Fill(eta_, phi_);
191 
192  std::string name("Unknown");
193  if (ii < detTypes.size())
194  name = detTypes[ii];
195 #ifdef DebugLog
196  edm::LogInfo("MaterialBudget") << "MaterialBudgetForward::Volume[" << ii << "]: " << name << " eta " << eta_
197  << " == Step " << stepLen[ii] << " RadL " << radLen[ii] << " IntL " << intLen[ii];
198 #endif
199  }
200 }
TProfile2D * me700[maxSet]
TProfile * me100[maxSet]
TProfile2D * me600[maxSet]
std::vector< double > radLen
std::vector< int > stackOrder
TProfile * me200[maxSet]
std::vector< double > intLen
std::vector< double > stepLen
ii
Definition: cuy.py:589
Log< level::Info, false > LogInfo
TProfile * me300[maxSet]
TProfile2D * me500[maxSet]
std::vector< std::string > detTypes

Member Data Documentation

◆ boundaries

std::vector<double> MaterialBudgetForward::boundaries
private

Definition at line 47 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and stopAfter().

◆ constituents

std::vector<int> MaterialBudgetForward::constituents
private

Definition at line 46 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and update().

◆ detLevels

std::vector<int> MaterialBudgetForward::detLevels
private

Definition at line 46 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and update().

◆ detNames

std::vector<std::string> MaterialBudgetForward::detNames
private

Definition at line 45 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and update().

◆ detTypes

std::vector<std::string> MaterialBudgetForward::detTypes
private

Definition at line 45 of file MaterialBudgetForward.h.

Referenced by book(), MaterialBudgetForward(), and update().

◆ eta_

double MaterialBudgetForward::eta_
private

Definition at line 55 of file MaterialBudgetForward.h.

Referenced by stopAfter(), and update().

◆ etaRegions

std::vector<double> MaterialBudgetForward::etaRegions
private

Definition at line 47 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and stopAfter().

◆ intLen

std::vector<double> MaterialBudgetForward::intLen
private

Definition at line 54 of file MaterialBudgetForward.h.

Referenced by update().

◆ logVolumes

std::vector<G4LogicalVolume *> MaterialBudgetForward::logVolumes
private

Definition at line 48 of file MaterialBudgetForward.h.

Referenced by update().

◆ maxSet

const int MaterialBudgetForward::maxSet = 25
staticprivate

Definition at line 49 of file MaterialBudgetForward.h.

Referenced by book().

◆ me100

TProfile* MaterialBudgetForward::me100[maxSet]
private

Definition at line 52 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me200

TProfile * MaterialBudgetForward::me200[maxSet]
private

Definition at line 52 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me300

TProfile * MaterialBudgetForward::me300[maxSet]
private

Definition at line 52 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me400

TH1F* MaterialBudgetForward::me400[maxSet]
private

Definition at line 50 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me500

TProfile2D* MaterialBudgetForward::me500[maxSet]
private

Definition at line 53 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me600

TProfile2D * MaterialBudgetForward::me600[maxSet]
private

Definition at line 53 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me700

TProfile2D * MaterialBudgetForward::me700[maxSet]
private

Definition at line 53 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ me800

TH2F* MaterialBudgetForward::me800[maxSet]
private

Definition at line 51 of file MaterialBudgetForward.h.

Referenced by book(), and update().

◆ phi_

double MaterialBudgetForward::phi_
private

Definition at line 55 of file MaterialBudgetForward.h.

Referenced by update().

◆ radLen

std::vector<double> MaterialBudgetForward::radLen
private

Definition at line 54 of file MaterialBudgetForward.h.

Referenced by update().

◆ regionTypes

std::vector<int> MaterialBudgetForward::regionTypes
private

Definition at line 46 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and stopAfter().

◆ stackOrder

std::vector<int> MaterialBudgetForward::stackOrder
private

Definition at line 46 of file MaterialBudgetForward.h.

Referenced by MaterialBudgetForward(), and update().

◆ stepLen

std::vector<double> MaterialBudgetForward::stepLen
private

Definition at line 54 of file MaterialBudgetForward.h.

Referenced by update().

◆ stepT

double MaterialBudgetForward::stepT
private

Definition at line 55 of file MaterialBudgetForward.h.

Referenced by update().