CMS 3D CMS Logo

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

#include <MaterialBudgetHcalHistos.h>

Public Member Functions

void fillBeginJob (const DDCompactView &)
 
void fillEndTrack ()
 
void fillPerStep (const G4Step *)
 
void fillStartTrack (const G4Track *)
 
 MaterialBudgetHcalHistos (const edm::ParameterSet &p)
 
virtual ~MaterialBudgetHcalHistos ()
 

Private Member Functions

void book ()
 
void fillHisto (int ii)
 
void fillLayer ()
 
std::vector< double > getDDDArray (const std::string &str, const DDsvalues_type &sv)
 
std::vector< std::string > getNames (DDFilteredView &fv)
 
void hend ()
 
bool isItEC (std::string)
 
bool isItHF (const G4VTouchable *)
 
bool isSensitive (std::string)
 

Private Attributes

int binEta
 
int binPhi
 
double eta
 
double etaHigh
 
double etaLow
 
bool fillHistos
 
std::vector< int > hfLevels
 
std::vector< std::string > hfNames
 
int id
 
double intLen
 
std::vector< double > intLength
 
int layer
 
std::vector< std::string > matList
 
double maxEta
 
TProfile * me100 [maxSet]
 
TProfile2D * me1000 [maxSet]
 
TProfile2D * me1100 [maxSet]
 
TH2F * me1200 [maxSet]
 
TH1F * me1300 [maxSet2]
 
TH2F * me1400 [maxSet2]
 
TProfile * me1500 [maxSet2]
 
TProfile * me200 [maxSet]
 
TProfile * me300 [maxSet]
 
TH1F * me400 [maxSet]
 
TProfile * me500 [maxSet]
 
TProfile * me600 [maxSet]
 
TProfile * me700 [maxSet]
 
TH1F * me800 [maxSet]
 
TProfile2D * me900 [maxSet]
 
int nlayHB
 
int nlayHE
 
int nlayHF
 
int nlayHO
 
double phi
 
bool printSum
 
double radLen
 
std::vector< double > radLength
 
std::vector< std::string > sensitiveEC
 
std::vector< std::string > sensitives
 
double stepLen
 
std::vector< double > stepLength
 
int steps
 

Static Private Attributes

static const int maxSet = 25
 
static const int maxSet2 = 9
 

Detailed Description

Definition at line 19 of file MaterialBudgetHcalHistos.h.

Constructor & Destructor Documentation

◆ MaterialBudgetHcalHistos()

MaterialBudgetHcalHistos::MaterialBudgetHcalHistos ( const edm::ParameterSet p)

Definition at line 19 of file MaterialBudgetHcalHistos.cc.

19  {
20  binEta = p.getUntrackedParameter<int>("NBinEta", 260);
21  binPhi = p.getUntrackedParameter<int>("NBinPhi", 180);
22  maxEta = p.getUntrackedParameter<double>("MaxEta", 5.2);
23  etaLow = p.getUntrackedParameter<double>("EtaLow", -5.2);
24  etaHigh = p.getUntrackedParameter<double>("EtaHigh", 5.2);
25  fillHistos = p.getUntrackedParameter<bool>("FillHisto", true);
26  printSum = p.getUntrackedParameter<bool>("PrintSummary", false);
27  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: FillHisto : " << fillHistos << " PrintSummary "
28  << printSum << " == Eta plot: NX " << binEta << " Range " << -maxEta << ":"
29  << maxEta << " Phi plot: NX " << binPhi << " Range " << -pi << ":" << pi
30  << " (Eta limit " << etaLow << ":" << etaHigh << ")";
31  if (fillHistos)
32  book();
33 }

References binEta, binPhi, book(), etaHigh, etaLow, fillHistos, maxEta, AlCaHLTBitMon_ParallelJobs::p, pi, and printSum.

◆ ~MaterialBudgetHcalHistos()

virtual MaterialBudgetHcalHistos::~MaterialBudgetHcalHistos ( )
inlinevirtual

Definition at line 22 of file MaterialBudgetHcalHistos.h.

22 { hend(); }

References hend().

Member Function Documentation

◆ book()

void MaterialBudgetHcalHistos::book ( )
private

Definition at line 246 of file MaterialBudgetHcalHistos.cc.

246  {
247  // Book histograms
249 
250  if (!tfile.isAvailable())
251  throw cms::Exception("BadConfig") << "TFileService unavailable: "
252  << "please add it to config file";
253 
254  double maxPhi = pi;
255  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Booking user histos === with " << binEta
256  << " bins in eta from " << -maxEta << " to " << maxEta << " and " << binPhi
257  << " bins in phi from " << -maxPhi << " to " << maxPhi;
258 
259  std::string iter;
260  // total X0
261  for (int i = 0; i < maxSet; i++) {
262  iter = std::to_string(i);
263  me100[i] = tfile->make<TProfile>(
264  std::to_string(i + 100).c_str(), ("MB(X0) prof Eta in region " + iter).c_str(), binEta, -maxEta, maxEta);
265  me200[i] = tfile->make<TProfile>(
266  std::to_string(i + 200).c_str(), ("MB(L0) prof Eta in region " + iter).c_str(), binEta, -maxEta, maxEta);
267  me300[i] = tfile->make<TProfile>(
268  std::to_string(i + 300).c_str(), ("MB(Step) prof Eta in region " + iter).c_str(), binEta, -maxEta, maxEta);
269  me400[i] =
270  tfile->make<TH1F>(std::to_string(i + 400).c_str(), ("Eta in region " + iter).c_str(), binEta, -maxEta, maxEta);
271  me500[i] = tfile->make<TProfile>(
272  std::to_string(i + 500).c_str(), ("MB(X0) prof Ph in region " + iter).c_str(), binPhi, -maxPhi, maxPhi);
273  me600[i] = tfile->make<TProfile>(
274  std::to_string(i + 600).c_str(), ("MB(L0) prof Ph in region " + iter).c_str(), binPhi, -maxPhi, maxPhi);
275  me700[i] = tfile->make<TProfile>(
276  std::to_string(i + 700).c_str(), ("MB(Step) prof Ph in region " + iter).c_str(), binPhi, -maxPhi, maxPhi);
277  me800[i] =
278  tfile->make<TH1F>(std::to_string(i + 800).c_str(), ("Phi in region " + iter).c_str(), binPhi, -maxPhi, maxPhi);
279  me900[i] = tfile->make<TProfile2D>(std::to_string(i + 900).c_str(),
280  ("MB(X0) prof Eta Phi in region " + iter).c_str(),
281  binEta / 2,
282  -maxEta,
283  maxEta,
284  binPhi / 2,
285  -maxPhi,
286  maxPhi);
287  me1000[i] = tfile->make<TProfile2D>(std::to_string(i + 1000).c_str(),
288  ("MB(L0) prof Eta Phi in region " + iter).c_str(),
289  binEta / 2,
290  -maxEta,
291  maxEta,
292  binPhi / 2,
293  -maxPhi,
294  maxPhi);
295  me1100[i] = tfile->make<TProfile2D>(std::to_string(i + 1100).c_str(),
296  ("MB(Step) prof Eta Phi in region " + iter).c_str(),
297  binEta / 2,
298  -maxEta,
299  maxEta,
300  binPhi / 2,
301  -maxPhi,
302  maxPhi);
303  me1200[i] = tfile->make<TH2F>(std::to_string(i + 1200).c_str(),
304  ("Eta vs Phi in region " + iter).c_str(),
305  binEta / 2,
306  -maxEta,
307  maxEta,
308  binPhi / 2,
309  -maxPhi,
310  maxPhi);
311  }
312  for (int i = 0; i < maxSet2; i++) {
313  iter = std::to_string(i);
314  me1300[i] = tfile->make<TH1F>(std::to_string(i + 1300).c_str(),
315  ("Events with layers Hit (0 all, 1 HB, ..) for " + iter).c_str(),
316  binEta,
317  -maxEta,
318  maxEta);
319  me1400[i] = tfile->make<TH2F>(std::to_string(i + 1400).c_str(),
320  ("Eta vs Phi for layers hit in " + iter).c_str(),
321  binEta / 2,
322  -maxEta,
323  maxEta,
324  binPhi / 2,
325  -maxPhi,
326  maxPhi);
327  me1500[i] = tfile->make<TProfile>(std::to_string(i + 1500).c_str(),
328  ("Number of layers crossed (0 all, 1 HB, ..) for " + iter).c_str(),
329  binEta,
330  -maxEta,
331  maxEta);
332  }
333 
334  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Booking user histos done ===";
335 }

References binEta, binPhi, mps_fire::i, maxEta, HLT_2018_cff::maxPhi, maxSet, maxSet2, me100, me1000, me1100, me1200, me1300, me1400, me1500, me200, me300, me400, me500, me600, me700, me800, me900, pi, AlCaHLTBitMon_QueryRunRegistry::string, and compare::tfile.

Referenced by MaterialBudgetHcalHistos().

◆ fillBeginJob()

void MaterialBudgetHcalHistos::fillBeginJob ( const DDCompactView cpv)

Definition at line 35 of file MaterialBudgetHcalHistos.cc.

35  {
36  if (fillHistos) {
37  std::string attribute = "ReadOutName";
38  std::string value = "HcalHits";
39  DDSpecificsMatchesValueFilter filter1{DDValue(attribute, value, 0)};
40  DDFilteredView fv1(cpv, filter1);
41  sensitives = getNames(fv1);
42  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Names to be tested for " << attribute << " = "
43  << value << " has " << sensitives.size() << " elements";
44  for (unsigned int i = 0; i < sensitives.size(); i++)
45  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: sensitives[" << i << "] = " << sensitives[i];
46 
47  attribute = "Volume";
48  value = "HF";
49  DDSpecificsMatchesValueFilter filter2{DDValue(attribute, value, 0)};
50  DDFilteredView fv2(cpv, filter2);
51  hfNames = getNames(fv2);
52  fv2.firstChild();
53  DDsvalues_type sv(fv2.mergedSpecifics());
54  std::vector<double> temp = getDDDArray("Levels", sv);
55  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Names to be tested for " << attribute << " = "
56  << value << " has " << hfNames.size() << " elements";
57  for (unsigned int i = 0; i < hfNames.size(); i++) {
58  int level = static_cast<int>(temp[i]);
59  hfLevels.push_back(level);
60  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: HF[" << i << "] = " << hfNames[i]
61  << " at level " << hfLevels[i];
62  }
63 
64  std::string ecalRO[2] = {"EcalHitsEB", "EcalHitsEE"};
65  attribute = "ReadOutName";
66  for (int k = 0; k < 2; k++) {
67  value = ecalRO[k];
68  DDSpecificsMatchesValueFilter filter3{DDValue(attribute, value, 0)};
69  DDFilteredView fv3(cpv, filter3);
70  std::vector<std::string> senstmp = getNames(fv3);
71  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Names to be tested for " << attribute << " = "
72  << value << " has " << senstmp.size() << " elements";
73  for (unsigned int i = 0; i < senstmp.size(); i++)
74  sensitiveEC.push_back(senstmp[i]);
75  }
76  for (unsigned int i = 0; i < sensitiveEC.size(); i++)
77  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos:sensitiveEC[" << i << "] = " << sensitiveEC[i];
78  }
79 }

References fillHistos, DDFilteredView::firstChild(), getDDDArray(), getNames(), hfLevels, hfNames, mps_fire::i, dqmdumpme::k, personalPlayback::level, DDFilteredView::mergedSpecifics(), sensitiveEC, sensitives, AlCaHLTBitMon_QueryRunRegistry::string, pfDeepBoostedJetPreprocessParams_cfi::sv, and groupFilesInBlocks::temp.

Referenced by MaterialBudgetHcal::update().

◆ fillEndTrack()

void MaterialBudgetHcalHistos::fillEndTrack ( )

Definition at line 231 of file MaterialBudgetHcalHistos.cc.

231  {
232  edm::LogVerbatim("MaterialBudget") << "Number of layers hit in HB:" << nlayHB << " HE:" << nlayHE << " HO:" << nlayHO
233  << " HF:" << nlayHF;
234  if (fillHistos) {
235  fillHisto(maxSet - 1);
236  fillLayer();
237  }
238  if (printSum) {
239  for (unsigned int ii = 0; ii < matList.size(); ii++) {
240  edm::LogVerbatim("MaterialBudget") << matList[ii] << "\t" << stepLength[ii] << "\t" << radLength[ii] << "\t"
241  << intLength[ii];
242  }
243  }
244 }

References fillHisto(), fillHistos, fillLayer(), cuy::ii, intLength, matList, maxSet, nlayHB, nlayHE, nlayHF, nlayHO, printSum, radLength, and stepLength.

Referenced by MaterialBudgetHcal::update().

◆ fillHisto()

void MaterialBudgetHcalHistos::fillHisto ( int  ii)
private

Definition at line 337 of file MaterialBudgetHcalHistos.cc.

337  {
338 #ifdef EDM_ML_DEBUG
339  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos:FillHisto called with index " << ii
340  << " integrated step " << stepLen << " X0 " << radLen << " Lamda " << intLen;
341 #endif
342  if (ii >= 0 && ii < maxSet) {
343  me100[ii]->Fill(eta, radLen);
344  me200[ii]->Fill(eta, intLen);
345  me300[ii]->Fill(eta, stepLen);
346  me400[ii]->Fill(eta);
347 
348  if (eta >= etaLow && eta <= etaHigh) {
349  me500[ii]->Fill(phi, radLen);
350  me600[ii]->Fill(phi, intLen);
351  me700[ii]->Fill(phi, stepLen);
352  me800[ii]->Fill(phi);
353  }
354 
355  me900[ii]->Fill(eta, phi, radLen);
356  me1000[ii]->Fill(eta, phi, intLen);
357  me1100[ii]->Fill(eta, phi, stepLen);
358  me1200[ii]->Fill(eta, phi);
359  }
360 }

References eta, etaHigh, etaLow, cuy::ii, intLen, maxSet, me100, me1000, me1100, me1200, me200, me300, me400, me500, me600, me700, me800, me900, phi, radLen, and stepLen.

Referenced by fillEndTrack(), and fillPerStep().

◆ fillLayer()

void MaterialBudgetHcalHistos::fillLayer ( )
private

Definition at line 362 of file MaterialBudgetHcalHistos.cc.

362  {
363  me1300[0]->Fill(eta);
364  me1400[0]->Fill(eta, phi);
365  if (nlayHB > 0) {
366  me1300[1]->Fill(eta);
367  me1400[1]->Fill(eta, phi);
368  }
369  if (nlayHB >= 16) {
370  me1300[2]->Fill(eta);
371  me1400[2]->Fill(eta, phi);
372  }
373  if (nlayHE > 0) {
374  me1300[3]->Fill(eta);
375  me1400[3]->Fill(eta, phi);
376  }
377  if (nlayHE >= 16) {
378  me1300[4]->Fill(eta);
379  me1400[4]->Fill(eta, phi);
380  }
381  if (nlayHO > 0) {
382  me1300[5]->Fill(eta);
383  me1400[5]->Fill(eta, phi);
384  }
385  if (nlayHO >= 2) {
386  me1300[6]->Fill(eta);
387  me1400[6]->Fill(eta, phi);
388  }
389  if (nlayHF > 0) {
390  me1300[7]->Fill(eta);
391  me1400[7]->Fill(eta, phi);
392  }
393  if (nlayHB > 0 || nlayHE > 0 || (nlayHF > 0 && std::abs(eta) > 3.0)) {
394  me1300[8]->Fill(eta);
395  me1400[8]->Fill(eta, phi);
396  }
397  me1500[0]->Fill(eta, (double)(nlayHB + nlayHO + nlayHE + nlayHF));
398  me1500[1]->Fill(eta, (double)(nlayHB));
399  me1500[2]->Fill(eta, (double)(nlayHE));
400  me1500[4]->Fill(eta, (double)(nlayHF));
401 }

References funct::abs(), eta, me1300, me1400, me1500, nlayHB, nlayHE, nlayHF, nlayHO, and phi.

Referenced by fillEndTrack().

◆ fillPerStep()

void MaterialBudgetHcalHistos::fillPerStep ( const G4Step *  aStep)

Definition at line 108 of file MaterialBudgetHcalHistos.cc.

108  {
109  G4Material* material = aStep->GetPreStepPoint()->GetMaterial();
110  double step = aStep->GetStepLength();
111  double radl = material->GetRadlen();
112  double intl = material->GetNuclearInterLength();
113  double density = material->GetDensity() / (g / cm3);
114 
115  int idOld = id;
116  const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable();
117  std::string name = touch->GetVolume(0)->GetName();
118  const std::string& matName = material->GetName();
119  if (printSum) {
120  bool found = false;
121  for (unsigned int ii = 0; ii < matList.size(); ii++) {
122  if (matList[ii] == matName) {
123  stepLength[ii] += step;
124  radLength[ii] += (step / radl);
125  intLength[ii] += (step / intl);
126  found = true;
127  break;
128  }
129  }
130  if (!found) {
131  matList.push_back(matName);
132  stepLength.push_back(step);
133  radLength.push_back(step / radl);
134  intLength.push_back(step / intl);
135  }
136  edm::LogVerbatim("MaterialBudget") << "Volume " << name << " id " << id << ":" << idOld << " Step " << step
137  << " Material " << matName << " Old Length " << stepLen << " X0 " << step / radl
138  << ":" << radLen << " Lambda " << step / intl << ":" << intLen;
139  } else {
140  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Step at " << name << " id " << id << ":" << idOld
141  << " Length " << step << " in " << matName << " of density " << density
142  << " g/cc; Radiation Length " << radl << " mm; Interaction Length " << intl
143  << " mm\n"
144  << " Position "
145  << aStep->GetPreStepPoint()->GetPosition() << " Cylindrical R "
146  << aStep->GetPreStepPoint()->GetPosition().perp() << " Length (so far) "
147  << stepLen << " L/X0 " << step / radl << "/" << radLen << " L/Lambda "
148  << step / intl << "/" << intLen;
149  }
150 
151  int det = 0, lay = 0;
152  if (fillHistos) {
153  if (isItEC(name)) {
154  det = 1;
155  lay = 1;
156  } else {
157  if (isSensitive(name)) {
158  if (isItHF(touch)) {
159  det = 5;
160  lay = 21;
161  if (lay != layer)
162  nlayHF++;
163  } else {
164  det = (touch->GetReplicaNumber(1)) / 1000;
165  lay = (touch->GetReplicaNumber(0) / 10) % 100 + 3;
166  if (det == 4) {
167  double abeta = std::abs(eta);
168  if (abeta < 1.479)
169  lay = layer + 1;
170  else
171  lay--;
172  if (lay < 3)
173  lay = 3;
174  if (lay == layer)
175  lay++;
176  if (lay > 20)
177  lay = 20;
178  if (lay != layer)
179  nlayHE++;
180  } else if (lay != layer) {
181  if (lay >= 20)
182  nlayHO++;
183  else
184  nlayHB++;
185  }
186  }
187 #ifdef EDM_ML_DEBUG
188  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Det " << det << " Layer " << lay << " Eta "
189  << eta << " Phi " << phi / CLHEP::deg;
190 #endif
191  } else if (layer == 1) {
192  det = -1;
193  lay = 2;
194  }
195  }
196  if (det != 0) {
197  if (lay != layer) {
198  id = lay;
199  layer = lay;
200  }
201  }
202 
203  if (id > idOld) {
204 #ifdef EDM_ML_DEBUG
205  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Step at " << name << " calls filHisto with "
206  << (id - 1);
207 #endif
208  fillHisto(id - 1);
209  }
210  }
211 
212  stepLen += step;
213  radLen += (step / radl);
214  intLen += (step / intl);
215  if (fillHistos) {
216  if (id == 21) {
217  if (!isItHF(aStep->GetPostStepPoint()->GetTouchable())) {
218 #ifdef EDM_ML_DEBUG
219  edm::LogVerbatim("MaterialBudget")
220  << "MaterialBudgetHcalHistos: After HF in " << name << ":"
221  << aStep->GetPostStepPoint()->GetTouchable()->GetVolume(0)->GetName() << " calls fillHisto with " << id;
222 #endif
223  fillHisto(idOld);
224  id++;
225  layer = 0;
226  }
227  }
228  }
229 }

References funct::abs(), fastSimProducer_cff::density, eta, fillHisto(), fillHistos, newFWLiteAna::found, g, id, cuy::ii, intLen, intLength, isItEC(), isItHF(), isSensitive(), layer, matList, Skims_PA_cff::name, nlayHB, nlayHE, nlayHF, nlayHO, phi, printSum, radLen, radLength, stepLen, stepLength, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by MaterialBudgetHcal::update().

◆ fillStartTrack()

void MaterialBudgetHcalHistos::fillStartTrack ( const G4Track *  aTrack)

Definition at line 81 of file MaterialBudgetHcalHistos.cc.

81  {
82  id = layer = steps = 0;
83  radLen = intLen = stepLen = 0;
84  nlayHB = nlayHE = nlayHF = nlayHO = 0;
85 
86  const G4ThreeVector& dir = aTrack->GetMomentum();
87  if (dir.theta() != 0) {
88  eta = dir.eta();
89  } else {
90  eta = -99;
91  }
92  phi = dir.phi();
93  double theEnergy = aTrack->GetTotalEnergy();
94  int theID = (int)(aTrack->GetDefinition()->GetPDGEncoding());
95 
96  if (printSum) {
97  matList.clear();
98  stepLength.clear();
99  radLength.clear();
100  intLength.clear();
101  }
102 
103  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Track " << aTrack->GetTrackID() << " Code " << theID
104  << " Energy " << theEnergy / CLHEP::GeV << " GeV; Eta " << eta << " Phi "
105  << phi / CLHEP::deg << " PT " << dir.perp() / CLHEP::GeV << " GeV *****";
106 }

References DeadROC_duringRun::dir, eta, GeV, createfilelist::int, intLen, intLength, layer, matList, nlayHB, nlayHE, nlayHF, nlayHO, phi, printSum, radLen, radLength, stepLen, stepLength, and steps.

Referenced by MaterialBudgetHcal::update().

◆ getDDDArray()

std::vector< double > MaterialBudgetHcalHistos::getDDDArray ( const std::string &  str,
const DDsvalues_type sv 
)
private

Definition at line 424 of file MaterialBudgetHcalHistos.cc.

424  {
425 #ifdef EDM_ML_DEBUG
426  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos:getDDDArray called for " << str;
427 #endif
428  DDValue value(str);
429  if (DDfetch(&sv, value)) {
430  LogDebug("MaterialBudget") << value;
431  const std::vector<double>& fvec = value.doubles();
432  int nval = fvec.size();
433  if (nval < 1) {
434  throw cms::Exception("MaterialBudgetHcalHistos") << "nval = " << nval << " < 1 for array " << str << "\n";
435  }
436 
437  return fvec;
438  } else {
439  throw cms::Exception("MaterialBudgetHcalHistos") << "cannot get array " << str << "\n";
440  }
441 }

References DDfetch(), Exception, LogDebug, str, pfDeepBoostedJetPreprocessParams_cfi::sv, and relativeConstraints::value.

Referenced by fillBeginJob().

◆ getNames()

std::vector< std::string > MaterialBudgetHcalHistos::getNames ( DDFilteredView fv)
private

Definition at line 407 of file MaterialBudgetHcalHistos.cc.

407  {
408  std::vector<std::string> tmp;
409  bool dodet = fv.firstChild();
410  while (dodet) {
411  const DDLogicalPart& log = fv.logicalPart();
412  std::string namx = log.name().name();
413  bool ok = true;
414  for (unsigned int i = 0; i < tmp.size(); i++)
415  if (namx == tmp[i])
416  ok = false;
417  if (ok)
418  tmp.push_back(namx);
419  dodet = fv.next();
420  }
421  return tmp;
422 }

References DDFilteredView::firstChild(), mps_fire::i, dqm-mbProfile::log, DDFilteredView::logicalPart(), DDFilteredView::next(), convertSQLiteXML::ok, AlCaHLTBitMon_QueryRunRegistry::string, and createJobs::tmp.

Referenced by fillBeginJob().

◆ hend()

void MaterialBudgetHcalHistos::hend ( )
private

Definition at line 403 of file MaterialBudgetHcalHistos.cc.

403  {
404  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Save user histos ===";
405 }

Referenced by ~MaterialBudgetHcalHistos().

◆ isItEC()

bool MaterialBudgetHcalHistos::isItEC ( std::string  name)
private

Definition at line 465 of file MaterialBudgetHcalHistos.cc.

465  {
466  std::vector<std::string>::const_iterator it = sensitiveEC.begin();
467  std::vector<std::string>::const_iterator itEnd = sensitiveEC.end();
468  for (; it != itEnd; ++it)
469  if (name == *it)
470  return true;
471  return false;
472 }

References Skims_PA_cff::name, and sensitiveEC.

Referenced by fillPerStep().

◆ isItHF()

bool MaterialBudgetHcalHistos::isItHF ( const G4VTouchable *  touch)
private

Definition at line 452 of file MaterialBudgetHcalHistos.cc.

452  {
453  int levels = ((touch->GetHistoryDepth()) + 1);
454  for (unsigned int it = 0; it < hfNames.size(); it++) {
455  if (levels >= hfLevels[it]) {
456  std::string name = touch->GetVolume(levels - hfLevels[it])->GetName();
457  if (name == hfNames[it]) {
458  return true;
459  }
460  }
461  }
462  return false;
463 }

References hfLevels, hfNames, jets_cff::levels, Skims_PA_cff::name, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by fillPerStep().

◆ isSensitive()

bool MaterialBudgetHcalHistos::isSensitive ( std::string  name)
private

Definition at line 443 of file MaterialBudgetHcalHistos.cc.

443  {
444  std::vector<std::string>::const_iterator it = sensitives.begin();
445  std::vector<std::string>::const_iterator itEnd = sensitives.end();
446  for (; it != itEnd; ++it)
447  if (name == *it)
448  return true;
449  return false;
450 }

References Skims_PA_cff::name, and sensitives.

Referenced by fillPerStep().

Member Data Documentation

◆ binEta

int MaterialBudgetHcalHistos::binEta
private

Definition at line 45 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and MaterialBudgetHcalHistos().

◆ binPhi

int MaterialBudgetHcalHistos::binPhi
private

Definition at line 45 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and MaterialBudgetHcalHistos().

◆ eta

double MaterialBudgetHcalHistos::eta
private

◆ etaHigh

double MaterialBudgetHcalHistos::etaHigh
private

Definition at line 46 of file MaterialBudgetHcalHistos.h.

Referenced by fillHisto(), and MaterialBudgetHcalHistos().

◆ etaLow

double MaterialBudgetHcalHistos::etaLow
private

Definition at line 46 of file MaterialBudgetHcalHistos.h.

Referenced by fillHisto(), and MaterialBudgetHcalHistos().

◆ fillHistos

bool MaterialBudgetHcalHistos::fillHistos
private

◆ hfLevels

std::vector<int> MaterialBudgetHcalHistos::hfLevels
private

Definition at line 43 of file MaterialBudgetHcalHistos.h.

Referenced by fillBeginJob(), and isItHF().

◆ hfNames

std::vector<std::string> MaterialBudgetHcalHistos::hfNames
private

Definition at line 42 of file MaterialBudgetHcalHistos.h.

Referenced by fillBeginJob(), and isItHF().

◆ id

int MaterialBudgetHcalHistos::id
private

Definition at line 55 of file MaterialBudgetHcalHistos.h.

Referenced by fillPerStep().

◆ intLen

double MaterialBudgetHcalHistos::intLen
private

Definition at line 56 of file MaterialBudgetHcalHistos.h.

Referenced by fillHisto(), fillPerStep(), and fillStartTrack().

◆ intLength

std::vector<double> MaterialBudgetHcalHistos::intLength
private

Definition at line 48 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillPerStep(), and fillStartTrack().

◆ layer

int MaterialBudgetHcalHistos::layer
private

◆ matList

std::vector<std::string> MaterialBudgetHcalHistos::matList
private

Definition at line 47 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillPerStep(), and fillStartTrack().

◆ maxEta

double MaterialBudgetHcalHistos::maxEta
private

Definition at line 46 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and MaterialBudgetHcalHistos().

◆ maxSet

const int MaterialBudgetHcalHistos::maxSet = 25
staticprivate

Definition at line 41 of file MaterialBudgetHcalHistos.h.

Referenced by book(), fillEndTrack(), and fillHisto().

◆ maxSet2

const int MaterialBudgetHcalHistos::maxSet2 = 9
staticprivate

Definition at line 41 of file MaterialBudgetHcalHistos.h.

Referenced by book().

◆ me100

TProfile* MaterialBudgetHcalHistos::me100[maxSet]
private

Definition at line 51 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me1000

TProfile2D * MaterialBudgetHcalHistos::me1000[maxSet]
private

Definition at line 54 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me1100

TProfile2D * MaterialBudgetHcalHistos::me1100[maxSet]
private

Definition at line 54 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me1200

TH2F* MaterialBudgetHcalHistos::me1200[maxSet]
private

Definition at line 50 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me1300

TH1F * MaterialBudgetHcalHistos::me1300[maxSet2]
private

Definition at line 49 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillLayer().

◆ me1400

TH2F * MaterialBudgetHcalHistos::me1400[maxSet2]
private

Definition at line 50 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillLayer().

◆ me1500

TProfile* MaterialBudgetHcalHistos::me1500[maxSet2]
private

Definition at line 53 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillLayer().

◆ me200

TProfile * MaterialBudgetHcalHistos::me200[maxSet]
private

Definition at line 51 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me300

TProfile * MaterialBudgetHcalHistos::me300[maxSet]
private

Definition at line 51 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me400

TH1F* MaterialBudgetHcalHistos::me400[maxSet]
private

Definition at line 49 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me500

TProfile* MaterialBudgetHcalHistos::me500[maxSet]
private

Definition at line 52 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me600

TProfile * MaterialBudgetHcalHistos::me600[maxSet]
private

Definition at line 52 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me700

TProfile * MaterialBudgetHcalHistos::me700[maxSet]
private

Definition at line 52 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me800

TH1F * MaterialBudgetHcalHistos::me800[maxSet]
private

Definition at line 49 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ me900

TProfile2D* MaterialBudgetHcalHistos::me900[maxSet]
private

Definition at line 54 of file MaterialBudgetHcalHistos.h.

Referenced by book(), and fillHisto().

◆ nlayHB

int MaterialBudgetHcalHistos::nlayHB
private

Definition at line 58 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillLayer(), fillPerStep(), and fillStartTrack().

◆ nlayHE

int MaterialBudgetHcalHistos::nlayHE
private

Definition at line 58 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillLayer(), fillPerStep(), and fillStartTrack().

◆ nlayHF

int MaterialBudgetHcalHistos::nlayHF
private

Definition at line 58 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillLayer(), fillPerStep(), and fillStartTrack().

◆ nlayHO

int MaterialBudgetHcalHistos::nlayHO
private

Definition at line 58 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillLayer(), fillPerStep(), and fillStartTrack().

◆ phi

double MaterialBudgetHcalHistos::phi
private

◆ printSum

bool MaterialBudgetHcalHistos::printSum
private

◆ radLen

double MaterialBudgetHcalHistos::radLen
private

Definition at line 56 of file MaterialBudgetHcalHistos.h.

Referenced by fillHisto(), fillPerStep(), and fillStartTrack().

◆ radLength

std::vector<double> MaterialBudgetHcalHistos::radLength
private

Definition at line 48 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillPerStep(), and fillStartTrack().

◆ sensitiveEC

std::vector<std::string> MaterialBudgetHcalHistos::sensitiveEC
private

Definition at line 42 of file MaterialBudgetHcalHistos.h.

Referenced by fillBeginJob(), and isItEC().

◆ sensitives

std::vector<std::string> MaterialBudgetHcalHistos::sensitives
private

Definition at line 42 of file MaterialBudgetHcalHistos.h.

Referenced by fillBeginJob(), and isSensitive().

◆ stepLen

double MaterialBudgetHcalHistos::stepLen
private

Definition at line 56 of file MaterialBudgetHcalHistos.h.

Referenced by fillHisto(), fillPerStep(), and fillStartTrack().

◆ stepLength

std::vector<double> MaterialBudgetHcalHistos::stepLength
private

Definition at line 48 of file MaterialBudgetHcalHistos.h.

Referenced by fillEndTrack(), fillPerStep(), and fillStartTrack().

◆ steps

int MaterialBudgetHcalHistos::steps
private

Definition at line 55 of file MaterialBudgetHcalHistos.h.

Referenced by fillStartTrack().

personalPlayback.level
level
Definition: personalPlayback.py:22
MaterialBudgetHcalHistos::nlayHF
int nlayHF
Definition: MaterialBudgetHcalHistos.h:58
MaterialBudgetHcalHistos::nlayHO
int nlayHO
Definition: MaterialBudgetHcalHistos.h:58
MaterialBudgetHcalHistos::me700
TProfile * me700[maxSet]
Definition: MaterialBudgetHcalHistos.h:52
MaterialBudgetHcalHistos::me1300
TH1F * me1300[maxSet2]
Definition: MaterialBudgetHcalHistos.h:49
mps_fire.i
i
Definition: mps_fire.py:355
MaterialBudgetHcalHistos::maxSet2
static const int maxSet2
Definition: MaterialBudgetHcalHistos.h:41
MaterialBudgetHcalHistos::sensitiveEC
std::vector< std::string > sensitiveEC
Definition: MaterialBudgetHcalHistos.h:42
MaterialBudgetHcalHistos::radLength
std::vector< double > radLength
Definition: MaterialBudgetHcalHistos.h:48
MaterialBudgetHcalHistos::me1100
TProfile2D * me1100[maxSet]
Definition: MaterialBudgetHcalHistos.h:54
MaterialBudgetHcalHistos::intLen
double intLen
Definition: MaterialBudgetHcalHistos.h:56
step
step
Definition: StallMonitor.cc:94
MaterialBudgetHcalHistos::printSum
bool printSum
Definition: MaterialBudgetHcalHistos.h:44
MaterialBudgetHcalHistos::me400
TH1F * me400[maxSet]
Definition: MaterialBudgetHcalHistos.h:49
MaterialBudgetHcalHistos::getNames
std::vector< std::string > getNames(DDFilteredView &fv)
Definition: MaterialBudgetHcalHistos.cc:407
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
MaterialBudgetHcalHistos::me1200
TH2F * me1200[maxSet]
Definition: MaterialBudgetHcalHistos.h:50
DDFilteredView::logicalPart
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
Definition: DDFilteredView.cc:16
MaterialBudgetHcalHistos::hend
void hend()
Definition: MaterialBudgetHcalHistos.cc:403
MaterialBudgetHcalHistos::me1000
TProfile2D * me1000[maxSet]
Definition: MaterialBudgetHcalHistos.h:54
MaterialBudgetHcalHistos::isItHF
bool isItHF(const G4VTouchable *)
Definition: MaterialBudgetHcalHistos.cc:452
MaterialBudgetHcalHistos::me900
TProfile2D * me900[maxSet]
Definition: MaterialBudgetHcalHistos.h:54
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
MaterialBudgetHcalHistos::book
void book()
Definition: MaterialBudgetHcalHistos.cc:246
MaterialBudgetHcalHistos::fillHisto
void fillHisto(int ii)
Definition: MaterialBudgetHcalHistos.cc:337
DDFilteredView::firstChild
bool firstChild()
set the current node to the first child ...
Definition: DDFilteredView.cc:86
HLT_2018_cff.maxPhi
maxPhi
Definition: HLT_2018_cff.py:51498
DDFilteredView::next
bool next()
set current node to the next node in the filtered tree
Definition: DDFilteredView.cc:67
tfile
Definition: tfile.py:1
MaterialBudgetHcalHistos::id
int id
Definition: MaterialBudgetHcalHistos.h:55
pfDeepBoostedJetPreprocessParams_cfi.sv
sv
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:226
str
#define str(s)
Definition: TestProcessor.cc:48
DDfetch
bool DDfetch(const DDsvalues_type *, DDValue &)
helper for retrieving DDValues from DDsvalues_type *.
Definition: DDsvalues.cc:79
dqmdumpme.k
k
Definition: dqmdumpme.py:60
MaterialBudgetHcalHistos::phi
double phi
Definition: MaterialBudgetHcalHistos.h:57
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MaterialBudgetHcalHistos::me800
TH1F * me800[maxSet]
Definition: MaterialBudgetHcalHistos.h:49
MaterialBudgetHcalHistos::me1500
TProfile * me1500[maxSet2]
Definition: MaterialBudgetHcalHistos.h:53
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
MaterialBudgetHcalHistos::fillLayer
void fillLayer()
Definition: MaterialBudgetHcalHistos.cc:362
MaterialBudgetHcalHistos::nlayHE
int nlayHE
Definition: MaterialBudgetHcalHistos.h:58
MaterialBudgetHcalHistos::maxSet
static const int maxSet
Definition: MaterialBudgetHcalHistos.h:41
GeV
const double GeV
Definition: MathUtil.h:16
MaterialBudgetHcalHistos::me100
TProfile * me100[maxSet]
Definition: MaterialBudgetHcalHistos.h:51
MaterialBudgetHcalHistos::isItEC
bool isItEC(std::string)
Definition: MaterialBudgetHcalHistos.cc:465
DDLogicalPart
A DDLogicalPart aggregates information concerning material, solid and sensitveness ....
Definition: DDLogicalPart.h:93
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
MaterialBudgetHcalHistos::etaLow
double etaLow
Definition: MaterialBudgetHcalHistos.h:46
MaterialBudgetHcalHistos::binEta
int binEta
Definition: MaterialBudgetHcalHistos.h:45
value
Definition: value.py:1
edm::LogVerbatim
Definition: MessageLogger.h:297
MaterialBudgetHcalHistos::hfLevels
std::vector< int > hfLevels
Definition: MaterialBudgetHcalHistos.h:43
MaterialBudgetHcalHistos::me300
TProfile * me300[maxSet]
Definition: MaterialBudgetHcalHistos.h:51
MaterialBudgetHcalHistos::etaHigh
double etaHigh
Definition: MaterialBudgetHcalHistos.h:46
MaterialBudgetHcalHistos::steps
int steps
Definition: MaterialBudgetHcalHistos.h:55
MaterialBudgetHcalHistos::layer
int layer
Definition: MaterialBudgetHcalHistos.h:55
MaterialBudgetHcalHistos::stepLen
double stepLen
Definition: MaterialBudgetHcalHistos.h:56
compare.tfile
tfile
Definition: compare.py:325
MaterialBudgetHcalHistos::stepLength
std::vector< double > stepLength
Definition: MaterialBudgetHcalHistos.h:48
MaterialBudgetHcalHistos::fillHistos
bool fillHistos
Definition: MaterialBudgetHcalHistos.h:44
MaterialBudgetHcalHistos::matList
std::vector< std::string > matList
Definition: MaterialBudgetHcalHistos.h:47
DDValue
Definition: DDValue.h:21
relativeConstraints.value
value
Definition: relativeConstraints.py:53
MaterialBudgetHcalHistos::me600
TProfile * me600[maxSet]
Definition: MaterialBudgetHcalHistos.h:52
Exception
Definition: hltDiff.cc:246
MaterialBudgetHcalHistos::binPhi
int binPhi
Definition: MaterialBudgetHcalHistos.h:45
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
DDSpecificsMatchesValueFilter
Definition: DDFilter.h:70
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
MaterialBudgetHcalHistos::sensitives
std::vector< std::string > sensitives
Definition: MaterialBudgetHcalHistos.h:42
DDFilteredView
Definition: DDFilteredView.h:20
MaterialBudgetHcalHistos::isSensitive
bool isSensitive(std::string)
Definition: MaterialBudgetHcalHistos.cc:443
MaterialBudgetHcalHistos::maxEta
double maxEta
Definition: MaterialBudgetHcalHistos.h:46
pi
const Double_t pi
Definition: trackSplitPlot.h:36
cms::Exception
Definition: Exception.h:70
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MaterialBudgetHcalHistos::me500
TProfile * me500[maxSet]
Definition: MaterialBudgetHcalHistos.h:52
MaterialBudgetHcalHistos::eta
double eta
Definition: MaterialBudgetHcalHistos.h:57
DDsvalues_type
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
Definition: DDsvalues.h:12
MaterialBudgetHcalHistos::me1400
TH2F * me1400[maxSet2]
Definition: MaterialBudgetHcalHistos.h:50
MaterialBudgetHcalHistos::me200
TProfile * me200[maxSet]
Definition: MaterialBudgetHcalHistos.h:51
MaterialBudgetHcalHistos::intLength
std::vector< double > intLength
Definition: MaterialBudgetHcalHistos.h:48
cuy.ii
ii
Definition: cuy.py:590
MaterialBudgetHcalHistos::radLen
double radLen
Definition: MaterialBudgetHcalHistos.h:56
MaterialBudgetHcalHistos::getDDDArray
std::vector< double > getDDDArray(const std::string &str, const DDsvalues_type &sv)
Definition: MaterialBudgetHcalHistos.cc:424
jets_cff.levels
levels
Definition: jets_cff.py:23
g
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
fastSimProducer_cff.density
density
Definition: fastSimProducer_cff.py:61
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
MaterialBudgetHcalHistos::hfNames
std::vector< std::string > hfNames
Definition: MaterialBudgetHcalHistos.h:42
MaterialBudgetHcalHistos::nlayHB
int nlayHB
Definition: MaterialBudgetHcalHistos.h:58