CMS 3D CMS Logo

MaterialBudgetHcalHistos.cc
Go to the documentation of this file.
2 
11 
12 #include "CLHEP/Units/GlobalPhysicalConstants.h"
13 #include "CLHEP/Units/GlobalSystemOfUnits.h"
14 
15 #include <string>
16 
17 //#define EDM_ML_DEBUG
18 
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 }
34 
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();
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 }
80 
81 void MaterialBudgetHcalHistos::fillStartTrack(const G4Track* aTrack) {
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 }
107 
108 void MaterialBudgetHcalHistos::fillPerStep(const G4Step* aStep) {
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 }
230 
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 }
245 
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 }
336 
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 }
361 
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 }
402 
404  edm::LogVerbatim("MaterialBudget") << "MaterialBudgetHcalHistos: Save user histos ===";
405 }
406 
407 std::vector<std::string> MaterialBudgetHcalHistos::getNames(DDFilteredView& fv) {
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 }
423 
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 }
442 
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 }
451 
452 bool MaterialBudgetHcalHistos::isItHF(const G4VTouchable* touch) {
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 }
464 
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 }
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
MessageLogger.h
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
DDFilteredView::mergedSpecifics
DDsvalues_type mergedSpecifics() const
Definition: DDFilteredView.cc:42
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
MaterialBudgetHcalHistos::me1200
TH2F * me1200[maxSet]
Definition: MaterialBudgetHcalHistos.h:50
MaterialBudgetHcalHistos::fillPerStep
void fillPerStep(const G4Step *)
Definition: MaterialBudgetHcalHistos.cc:108
DDFilteredView::logicalPart
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
Definition: DDFilteredView.cc:16
DDSplit.h
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
Service.h
DDFilteredView::next
bool next()
set current node to the next node in the filtered tree
Definition: DDFilteredView.cc:67
DDCompactView
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:80
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
DDValue.h
MaterialBudgetHcalHistos::phi
double phi
Definition: MaterialBudgetHcalHistos.h:57
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TFileService.h
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
edm::ParameterSet
Definition: ParameterSet.h:36
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
DDFilter.h
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
DDLogicalPart.h
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
MaterialBudgetHcalHistos::fillEndTrack
void fillEndTrack()
Definition: MaterialBudgetHcalHistos.cc:231
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
Exception.h
MaterialBudgetHcalHistos.h
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
MaterialBudgetHcalHistos::sensitives
std::vector< std::string > sensitives
Definition: MaterialBudgetHcalHistos.h:42
MaterialBudgetHcalHistos::fillStartTrack
void fillStartTrack(const G4Track *)
Definition: MaterialBudgetHcalHistos.cc:81
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::fillBeginJob
void fillBeginJob(const DDCompactView &)
Definition: MaterialBudgetHcalHistos.cc:35
MaterialBudgetHcalHistos::hfNames
std::vector< std::string > hfNames
Definition: MaterialBudgetHcalHistos.h:42
MaterialBudgetHcalHistos::MaterialBudgetHcalHistos
MaterialBudgetHcalHistos(const edm::ParameterSet &p)
Definition: MaterialBudgetHcalHistos.cc:19
MaterialBudgetHcalHistos::nlayHB
int nlayHB
Definition: MaterialBudgetHcalHistos.h:58