CMS 3D CMS Logo

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

#include <HFShowerParam.h>

Classes

struct  Hit
 

Public Member Functions

std::vector< HitgetHits (const G4Step *aStep, double weight, bool &isKilled)
 
 HFShowerParam (const std::string &name, const HcalDDDSimConstants *hcons, const HcalSimulationParameters *hps, edm::ParameterSet const &p)
 
virtual ~HFShowerParam ()
 

Private Attributes

double aperture_
 
bool applyFidCut_
 
double attLMeanInv_
 
double edMin_
 
TH2F * em_2d_1_
 
TH2F * em_2d_2_
 
TH1F * em_lateral_1_
 
TH1F * em_lateral_2_
 
TH1F * em_long_1_
 
TH1F * em_long_1_tuned_
 
TH1F * em_long_2_
 
TH1F * em_long_gflash_
 
TH1F * em_long_sl_
 
G4int emPDG_
 
G4int epPDG_
 
std::unique_ptr< HFFibrefibre_
 
bool fillHisto_
 
G4int gammaPDG_
 
std::unique_ptr< HFGflashgflash_
 
std::vector< double > gpar_
 
const HcalDDDSimConstantshcalConstants_
 
TH1F * hzvem_
 
TH1F * hzvhad_
 
bool onlyLong_
 
bool parametrizeLast_
 
double pePerGeV_
 
double ref_index_
 
std::unique_ptr< HFShowerLibraryshowerLibrary_
 
bool trackEM_
 

Detailed Description

Definition at line 25 of file HFShowerParam.h.

Constructor & Destructor Documentation

HFShowerParam::HFShowerParam ( const std::string &  name,
const HcalDDDSimConstants hcons,
const HcalSimulationParameters hps,
edm::ParameterSet const &  p 
)

Definition at line 29 of file HFShowerParam.cc.

References aperture_, applyFidCut_, attLMeanInv_, funct::cos(), edMin_, em_2d_1_, em_2d_2_, em_lateral_1_, em_lateral_2_, em_long_1_, em_long_1_tuned_, em_long_2_, em_long_gflash_, em_long_sl_, fibre_, fillHisto_, HcalDDDSimConstants::getGparHF(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), gflash_, gpar_, hcalConstants_, hzvem_, hzvhad_, edm::Service< T >::isAvailable(), TFileDirectory::make(), TFileService::mkdir(), Skims_PA_cff::name, onlyLong_, AlCaHLTBitMon_ParallelJobs::p, parametrizeLast_, pePerGeV_, ref_index_, showerLibrary_, compare::tfile, trackEM_, and Calorimetry_cff::useShowerLibrary.

33  : hcalConstants_(hcons), fillHisto_(false) {
34  edm::ParameterSet m_HF = p.getParameter<edm::ParameterSet>("HFShower");
35  pePerGeV_ = m_HF.getParameter<double>("PEPerGeV");
36  trackEM_ = m_HF.getParameter<bool>("TrackEM");
37  bool useShowerLibrary = m_HF.getParameter<bool>("UseShowerLibrary");
38  bool useGflash = m_HF.getParameter<bool>("UseHFGflash");
39  edMin_ = m_HF.getParameter<double>("EminLibrary");
40  onlyLong_ = m_HF.getParameter<bool>("OnlyLong");
41  ref_index_ = m_HF.getParameter<double>("RefIndex");
42  double lambdaMean = m_HF.getParameter<double>("LambdaMean");
43  aperture_ = cos(asin(m_HF.getParameter<double>("Aperture")));
44  applyFidCut_ = m_HF.getParameter<bool>("ApplyFiducialCut");
45  parametrizeLast_ = m_HF.getUntrackedParameter<bool>("ParametrizeLast", false);
47 
48  edm::LogVerbatim("HFShower") << "HFShowerParam::Use of shower library is set to " << useShowerLibrary
49  << " Use of Gflash is set to " << useGflash << " P.E. per GeV " << pePerGeV_
50  << ", ref. index of fibre " << ref_index_ << ", Track EM Flag " << trackEM_ << ", edMin "
51  << edMin_ << " GeV, use of Short fibre info in"
52  << " shower library set to " << !(onlyLong_)
53  << ", use of parametrization for last part set to " << parametrizeLast_
54  << ", Mean lambda " << lambdaMean << ", aperture (cutoff) " << aperture_
55  << ", Application of Fiducial Cut " << applyFidCut_;
56 
57 #ifdef plotDebug
59  if (tfile.isAvailable()) {
60  fillHisto_ = true;
61  edm::LogVerbatim("HFShower") << "HFShowerParam::Save histos in directory "
62  << "ProfileFromParam";
63  TFileDirectory showerDir = tfile->mkdir("ProfileFromParam");
64  hzvem_ = showerDir.make<TH1F>("hzvem", "Longitudinal Profile (EM Part);Number of PE", 330, 0.0, 1650.0);
65  hzvhad_ = showerDir.make<TH1F>("hzvhad", "Longitudinal Profile (Had Part);Number of PE", 330, 0.0, 1650.0);
66  em_2d_1_ = showerDir.make<TH2F>(
67  "em_2d_1", "Lateral Profile vs. Shower Depth;cm;Events", 800, 800.0, 1600.0, 100, 50.0, 150.0);
68  em_long_1_ =
69  showerDir.make<TH1F>("em_long_1", "Longitudinal Profile;Radiation Length;Number of Spots", 800, 800.0, 1600.0);
70  em_long_1_tuned_ = showerDir.make<TH1F>(
71  "em_long_1_tuned", "Longitudinal Profile;Radiation Length;Number of Spots", 800, 800.0, 1600.0);
72  em_lateral_1_ = showerDir.make<TH1F>("em_lateral_1", "Lateral Profile;cm;Events", 100, 50.0, 150.0);
73  em_2d_2_ = showerDir.make<TH2F>(
74  "em_2d_2", "Lateral Profile vs. Shower Depth;cm;Events", 800, 800.0, 1600.0, 100, 50.0, 150.0);
75  em_long_2_ =
76  showerDir.make<TH1F>("em_long_2", "Longitudinal Profile;Radiation Length;Number of Spots", 800, 800.0, 1600.0);
77  em_lateral_2_ = showerDir.make<TH1F>("em_lateral_2", "Lateral Profile;cm;Events", 100, 50.0, 150.0);
78  em_long_gflash_ = showerDir.make<TH1F>(
79  "em_long_gflash", "Longitudinal Profile From GFlash;cm;Number of Spots", 800, 800.0, 1600.0);
80  em_long_sl_ = showerDir.make<TH1F>(
81  "em_long_sl", "Longitudinal Profile From Shower Library;cm;Number of Spots", 800, 800.0, 1600.0);
82  } else {
83  fillHisto_ = false;
84  edm::LogVerbatim("HFShower") << "HFShowerParam::No file is available for saving histos so the "
85  << "flag is set to false";
86  }
87 #endif
88 
89  if (useShowerLibrary)
90  showerLibrary_ = std::make_unique<HFShowerLibrary>(name, hcalConstants_, hps, p);
91  else
92  showerLibrary_.reset(nullptr);
93  if (useGflash)
94  gflash_ = std::make_unique<HFGflash>(p);
95  else
96  gflash_.reset(nullptr);
97  fibre_ = std::make_unique<HFFibre>(name, hcalConstants_, hps, p);
98  attLMeanInv_ = fibre_->attLength(lambdaMean);
99  edm::LogVerbatim("HFShower") << "att. length used for (lambda=" << lambdaMean
100  << ") = " << 1 / (attLMeanInv_ * CLHEP::cm) << " cm";
101 }
std::unique_ptr< HFGflash > gflash_
Definition: HFShowerParam.h:47
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
double aperture_
Definition: HFShowerParam.h:49
TH1F * em_long_sl_
Definition: HFShowerParam.h:55
double attLMeanInv_
Definition: HFShowerParam.h:49
double pePerGeV_
Definition: HFShowerParam.h:49
TH1F * em_long_2_
Definition: HFShowerParam.h:53
TH1F * em_long_1_tuned_
Definition: HFShowerParam.h:54
TH1F * em_long_1_
Definition: HFShowerParam.h:53
TH1F * em_long_gflash_
Definition: HFShowerParam.h:54
TH1F * em_lateral_2_
Definition: HFShowerParam.h:53
std::vector< double > gpar_
Definition: HFShowerParam.h:52
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
bool isAvailable() const
Definition: Service.h:40
std::unique_ptr< HFFibre > fibre_
Definition: HFShowerParam.h:46
T * make(const Args &...args) const
make new ROOT object
TH1F * em_lateral_1_
Definition: HFShowerParam.h:53
const std::vector< double > & getGparHF() const
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
bool parametrizeLast_
Definition: HFShowerParam.h:50
std::unique_ptr< HFShowerLibrary > showerLibrary_
Definition: HFShowerParam.h:45
double ref_index_
Definition: HFShowerParam.h:49
const HcalDDDSimConstants * hcalConstants_
Definition: HFShowerParam.h:44
HFShowerParam::~HFShowerParam ( )
virtual

Definition at line 103 of file HFShowerParam.cc.

103 {}

Member Function Documentation

std::vector< HFShowerParam::Hit > HFShowerParam::getHits ( const G4Step *  aStep,
double  weight,
bool &  isKilled 
)

Definition at line 105 of file HFShowerParam.cc.

References funct::abs(), aperture_, applyFidCut_, attLMeanInv_, HFShowerParam::Hit::depth, LEDCalibrationChannels::depth, HFShowerParam::Hit::edep, edMin_, em_2d_1_, em_2d_2_, em_lateral_1_, em_lateral_2_, em_long_1_, em_long_2_, em_long_gflash_, em_long_sl_, JetChargeProducer_cfi::exp, fibre_, fillHisto_, GeV, gflash_, gpar_, hfClusterShapes_cfi::hits, hzvem_, hzvhad_, mps_fire::i, cuy::ii, G4TrackToParticleID::isGammaElectronPositron(), convertSQLiteXML::ok, onlyLong_, trackingPlots::other, parametrizeLast_, castor_dqm_sourceclient_file_cfg::path, pePerGeV_, HFFibreFiducial::PMTNumber(), HFShowerParam::Hit::position, position, funct::pow(), diffTwoXMLs::r1, diffTwoXMLs::r2, ref_index_, alignCSCRings::s, showerLibrary_, mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, HFShowerParam::Hit::time, ntuplemaker::time, HLT_2018_cff::track, trackEM_, mps_merge::weight, z, and geometryCSVtoXML::zz.

105  {
106  auto const preStepPoint = aStep->GetPreStepPoint();
107  auto const track = aStep->GetTrack();
109  const G4ThreeVector& hitPoint = preStepPoint->GetPosition();
110  double zv = std::abs(hitPoint.z()) - gpar_[4] - 0.5 * gpar_[1];
111  G4ThreeVector localPoint = G4ThreeVector(hitPoint.x(), hitPoint.y(), zv);
112 
113  double pin = (preStepPoint->GetTotalEnergy()) / CLHEP::GeV;
114  double zint = hitPoint.z();
115  double zz = std::abs(zint) - gpar_[4];
116 
117 #ifdef EDM_ML_DEBUG
118  edm::LogVerbatim("HFShower") << "HFShowerParam: getHits " << track->GetDefinition()->GetParticleName()
119  << " of energy " << pin << " GeV Pos x,y,z = " << hitPoint.x() << "," << hitPoint.y()
120  << "," << zint << " (" << zz << "," << localPoint.z() << ", "
121  << (localPoint.z() + 0.5 * gpar_[1]) << ") Local " << localPoint;
122 #endif
123  std::vector<HFShowerParam::Hit> hits;
125  hit.position = hitPoint;
126 
127  // look for other charged particles
128  bool other = false;
129  double pBeta = track->GetDynamicParticle()->GetTotalMomentum() / track->GetDynamicParticle()->GetTotalEnergy();
130  double dirz = (track->GetDynamicParticle()->GetMomentumDirection()).z();
131  if (hitPoint.z() < 0)
132  dirz *= -1.;
133 #ifdef EDM_ML_DEBUG
134  edm::LogVerbatim("HFShower") << "HFShowerParam: getHits Momentum "
135  << track->GetDynamicParticle()->GetMomentumDirection() << " HitPoint " << hitPoint
136  << " dirz " << dirz;
137 #endif
138  if (!isEM && track->GetDefinition()->GetPDGCharge() != 0 && pBeta > (1 / ref_index_) &&
139  aStep->GetTotalEnergyDeposit() > 0.) {
140  other = true;
141  }
142 
143  // take only e+-/gamma/or special particles
144  if (isEM || other) {
145  // Leave out the last part
146  double edep = 0.;
147  if ((!trackEM_) && ((zz < (gpar_[1] - gpar_[2])) || parametrizeLast_) && (!other)) {
148  edep = pin;
149  isKilled = true;
150  } else if ((track->GetDefinition()->GetPDGCharge() != 0) && (pBeta > (1 / ref_index_)) && (dirz > aperture_)) {
151  edep = (aStep->GetTotalEnergyDeposit()) / GeV;
152  }
153  std::string path = "ShowerLibrary";
154 #ifdef EDM_ML_DEBUG
155  edm::LogVerbatim("HFShower") << "HFShowerParam: getHits edep = " << edep << " weight " << weight << " final "
156  << edep * weight << ", Kill = " << isKilled << ", pin = " << pin
157  << ", edMin = " << edMin_ << " Other " << other;
158 #endif
159  edep *= weight;
160  if (edep > 0) {
161  if ((showerLibrary_.get() || gflash_.get()) && isKilled && pin > edMin_ && (!other)) {
162  if (showerLibrary_.get()) {
163  std::vector<HFShowerLibrary::Hit> hitSL = showerLibrary_->getHits(aStep, isKilled, weight, onlyLong_);
164  for (unsigned int i = 0; i < hitSL.size(); i++) {
165  bool ok = true;
166 #ifdef EDM_ML_DEBUG
167  edm::LogVerbatim("HFShower") << "HFShowerParam: getHits applyFidCut = " << applyFidCut_;
168 #endif
169  if (applyFidCut_) { // @@ For showerlibrary no z-cut for Short (no z)
170  int npmt = HFFibreFiducial::PMTNumber(hitSL[i].position);
171  if (npmt <= 0)
172  ok = false;
173  }
174  if (ok) {
175  hit.position = hitSL[i].position;
176  hit.depth = hitSL[i].depth;
177  hit.time = hitSL[i].time;
178  hit.edep = 1;
179  hits.push_back(hit);
180 #ifdef plotDebug
181  if (fillHisto_) {
182  double zv = std::abs(hit.position.z()) - gpar_[4];
183  hzvem_->Fill(zv);
184  em_long_sl_->Fill(hit.position.z() / CLHEP::cm);
185  double sq = sqrt(pow(hit.position.x() / CLHEP::cm, 2) + pow(hit.position.y() / CLHEP::cm, 2));
186  double zp = hit.position.z() / CLHEP::cm;
187  if (hit.depth == 1) {
188  em_2d_1_->Fill(zp, sq);
189  em_lateral_1_->Fill(sq);
190  em_long_1_->Fill(zp);
191  } else if (hit.depth == 2) {
192  em_2d_2_->Fill(zp, sq);
193  em_lateral_2_->Fill(sq);
194  em_long_2_->Fill(zp);
195  }
196  }
197 #endif
198 #ifdef EDM_ML_DEBUG
199  edm::LogVerbatim("HFShower")
200  << "HFShowerParam: Hit at depth " << hit.depth << " with edep " << hit.edep << " Time " << hit.time;
201 #endif
202  }
203  }
204  } else { // GFlash clusters with known z
205  std::vector<HFGflash::Hit> hitSL = gflash_->gfParameterization(aStep, onlyLong_);
206  for (unsigned int i = 0; i < hitSL.size(); ++i) {
207  bool ok = true;
208  G4ThreeVector pe_effect(hitSL[i].position.x(), hitSL[i].position.y(), hitSL[i].position.z());
209  double zv = std::abs(pe_effect.z()) - gpar_[4];
210  //depth
211  int depth = 1;
212  int npmt = 0;
213  if (zv < 0. || zv > gpar_[1]) {
214 #ifdef mkdebug
215  edm::LogVerbatim("HFShower") << "-#Zcut-HFShowerParam::getHits:z=" << zv << ",m=" << gpar_[1];
216 #endif
217  ok = false;
218  }
219  if (ok && applyFidCut_) {
220  npmt = HFFibreFiducial::PMTNumber(pe_effect);
221 #ifdef EDM_ML_DEBUG
222  edm::LogVerbatim("HFShower") << "HFShowerParam::getHits:#PMT= " << npmt << ",z = " << zv;
223 #endif
224  if (npmt <= 0) {
225 #ifdef EDM_ML_DEBUG
226  edm::LogVerbatim("HFShower") << "-#PMT=0 cut-HFShowerParam::getHits: npmt = " << npmt;
227 #endif
228  ok = false;
229  } else if (npmt > 24) { // a short fibre
230  if (zv > gpar_[0]) {
231  depth = 2;
232  } else {
233 #ifdef EDM_ML_DEBUG
234  edm::LogVerbatim("HFShower") << "-SHORT cut-HFShowerParam::getHits:zMin=" << gpar_[0];
235 #endif
236  ok = false;
237  }
238  }
239 #ifdef EDM_ML_DEBUG
240  edm::LogVerbatim("HFShower")
241  << "HFShowerParam: npmt " << npmt << " zv " << std::abs(pe_effect.z()) << ":" << gpar_[4] << ":" << zv
242  << ":" << gpar_[0] << " ok " << ok << " depth " << depth;
243 #endif
244  } else {
245  if (G4UniformRand() > 0.5)
246  depth = 2;
247  if (depth == 2 && zv < gpar_[0])
248  ok = false;
249  }
250  //attenuation
251  double dist = fibre_->zShift(localPoint, depth, 0); // distance to PMT
252  double r1 = G4UniformRand();
253 #ifdef EDM_ML_DEBUG
254  edm::LogVerbatim("HFShower") << "HFShowerParam:Distance to PMT (" << npmt << ") " << dist
255  << ", exclusion flag " << (r1 > exp(-attLMeanInv_ * zv));
256 #endif
257  if (r1 > exp(-attLMeanInv_ * dist))
258  ok = false;
259  if (ok) {
260  double r2 = G4UniformRand();
261 #ifdef EDM_ML_DEBUG
262  edm::LogVerbatim("HFShower")
263  << "HFShowerParam:Extra exclusion " << r2 << ">" << weight << " " << (r2 > weight);
264 #endif
265  if (r2 < weight) {
266  double time = fibre_->tShift(localPoint, depth, 0);
267 
268  hit.position = hitSL[i].position;
269  hit.depth = depth;
270  hit.time = time + hitSL[i].time;
271  hit.edep = 1;
272  hits.push_back(hit);
273 #ifdef plotDebug
274  if (fillHisto_) {
275  em_long_gflash_->Fill(pe_effect.z() / CLHEP::cm, hitSL[i].edep);
276  hzvem_->Fill(zv);
277  double sq = sqrt(pow(hit.position.x() / CLHEP::cm, 2) + pow(hit.position.y() / CLHEP::cm, 2));
278  double zp = hit.position.z() / CLHEP::cm;
279  if (hit.depth == 1) {
280  em_2d_1_->Fill(zp, sq);
281  em_lateral_1_->Fill(s);
282  em_long_1_->Fill(zp);
283  } else if (hit.depth == 2) {
284  em_2d_2_->Fill(zp, sq);
285  em_lateral_2_->Fill(sq);
286  em_long_2_->Fill(zp);
287  }
288  }
289 #endif
290 #ifdef EDM_ML_DEBUG
291  edm::LogVerbatim("HFShower")
292  << "HFShowerParam: Hit at depth " << hit.depth << " with edep " << hit.edep << " Time " << hit.time;
293 #endif
294  }
295  }
296  }
297  }
298  } else {
299  path = "Rest";
300  edep *= pePerGeV_;
301  double tSlice = (aStep->GetPostStepPoint()->GetGlobalTime());
302  double time = fibre_->tShift(localPoint, 1, 0); // remaining part
303  bool ok = true;
304  if (applyFidCut_) { // @@ For showerlibrary no z-cut for Short (no z)
305  int npmt = HFFibreFiducial::PMTNumber(hitPoint);
306  if (npmt <= 0)
307  ok = false;
308  }
309 #ifdef EDM_ML_DEBUG
310  edm::LogVerbatim("HFShower") << "HFShowerParam: getHits hitPoint " << hitPoint << " flag " << ok;
311 #endif
312  if (ok) {
313  hit.depth = 1;
314  hit.time = tSlice + time;
315  hit.edep = edep;
316  hits.push_back(hit);
317 #ifdef EDM_ML_DEBUG
318  edm::LogVerbatim("HFShower") << "HFShowerParam: Hit at depth 1 with edep " << edep << " Time " << tSlice
319  << ":" << time << ":" << hit.time;
320 #endif
321 #ifdef plotDebug
322  double zv = std::abs(hitPoint.z()) - gpar_[4];
323  if (fillHisto_) {
324  hzvhad_->Fill(zv);
325  }
326 #endif
327  if (zz >= gpar_[0]) {
328  time = fibre_->tShift(localPoint, 2, 0);
329  hit.depth = 2;
330  hit.time = tSlice + time;
331  hits.push_back(hit);
332 #ifdef EDM_ML_DEBUG
333  edm::LogVerbatim("HFShower") << "HFShowerParam: Hit at depth 2 with edep " << edep << " Time " << tSlice
334  << ":" << time << hit.time;
335 #endif
336 #ifdef plotDebug
337  if (fillHisto_) {
338  hzvhad_->Fill(zv);
339  }
340 #endif
341  }
342  }
343  }
344 #ifdef EDM_ML_DEBUG
345  for (unsigned int ii = 0; ii < hits.size(); ++ii) {
346  double zv = std::abs(hits[ii].position.z());
347  if (zv > 12790)
348  edm::LogVerbatim("HFShower") << "HFShowerParam: Abnormal hit along " << path << " in "
349  << preStepPoint->GetPhysicalVolume()->GetLogicalVolume()->GetName() << " at "
350  << hits[ii].position << " zz " << zv << " Edep " << edep << " due to "
351  << track->GetDefinition()->GetParticleName() << " time " << hit.time;
352  }
353  edm::LogVerbatim("HFShower") << "HFShowerParam: getHits kill (" << isKilled << ") track " << track->GetTrackID()
354  << " at " << hitPoint << " and deposit " << edep << " " << hits.size() << " times"
355  << " ZZ " << zz << " " << gpar_[0];
356 #endif
357  }
358  }
359  return hits;
360 }
std::unique_ptr< HFGflash > gflash_
Definition: HFShowerParam.h:47
const double GeV
Definition: MathUtil.h:16
double aperture_
Definition: HFShowerParam.h:49
TH1F * em_long_sl_
Definition: HFShowerParam.h:55
double attLMeanInv_
Definition: HFShowerParam.h:49
double pePerGeV_
Definition: HFShowerParam.h:49
TH1F * em_long_2_
Definition: HFShowerParam.h:53
Definition: weight.py:1
TH1F * em_long_1_
Definition: HFShowerParam.h:53
TH1F * em_long_gflash_
Definition: HFShowerParam.h:54
TH1F * em_lateral_2_
Definition: HFShowerParam.h:53
std::vector< double > gpar_
Definition: HFShowerParam.h:52
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::unique_ptr< HFFibre > fibre_
Definition: HFShowerParam.h:46
TH1F * em_lateral_1_
Definition: HFShowerParam.h:53
ii
Definition: cuy.py:590
G4ThreeVector position
Definition: HFShowerParam.h:36
int PMTNumber(const G4ThreeVector &pe_effect)
bool parametrizeLast_
Definition: HFShowerParam.h:50
std::unique_ptr< HFShowerLibrary > showerLibrary_
Definition: HFShowerParam.h:45
static int position[264][3]
Definition: ReadPGInfo.cc:289
static bool isGammaElectronPositron(int pdgCode)
double ref_index_
Definition: HFShowerParam.h:49
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30

Member Data Documentation

double HFShowerParam::aperture_
private

Definition at line 49 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

bool HFShowerParam::applyFidCut_
private

Definition at line 50 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

double HFShowerParam::attLMeanInv_
private

Definition at line 49 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

double HFShowerParam::edMin_
private

Definition at line 49 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH2F* HFShowerParam::em_2d_1_
private

Definition at line 56 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH2F * HFShowerParam::em_2d_2_
private

Definition at line 56 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F * HFShowerParam::em_lateral_1_
private

Definition at line 53 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F * HFShowerParam::em_lateral_2_
private

Definition at line 53 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F* HFShowerParam::em_long_1_
private

Definition at line 53 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F * HFShowerParam::em_long_1_tuned_
private

Definition at line 54 of file HFShowerParam.h.

Referenced by HFShowerParam().

TH1F * HFShowerParam::em_long_2_
private

Definition at line 53 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F * HFShowerParam::em_long_gflash_
private

Definition at line 54 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F* HFShowerParam::em_long_sl_
private

Definition at line 55 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

G4int HFShowerParam::emPDG_
private

Definition at line 51 of file HFShowerParam.h.

G4int HFShowerParam::epPDG_
private

Definition at line 51 of file HFShowerParam.h.

std::unique_ptr<HFFibre> HFShowerParam::fibre_
private

Definition at line 46 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

bool HFShowerParam::fillHisto_
private

Definition at line 48 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

G4int HFShowerParam::gammaPDG_
private

Definition at line 51 of file HFShowerParam.h.

std::unique_ptr<HFGflash> HFShowerParam::gflash_
private

Definition at line 47 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

std::vector<double> HFShowerParam::gpar_
private

Definition at line 52 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

const HcalDDDSimConstants* HFShowerParam::hcalConstants_
private

Definition at line 44 of file HFShowerParam.h.

Referenced by HFShowerParam().

TH1F* HFShowerParam::hzvem_
private

Definition at line 54 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

TH1F * HFShowerParam::hzvhad_
private

Definition at line 54 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

bool HFShowerParam::onlyLong_
private

Definition at line 50 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

bool HFShowerParam::parametrizeLast_
private

Definition at line 50 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

double HFShowerParam::pePerGeV_
private

Definition at line 49 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

double HFShowerParam::ref_index_
private

Definition at line 49 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

std::unique_ptr<HFShowerLibrary> HFShowerParam::showerLibrary_
private

Definition at line 45 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().

bool HFShowerParam::trackEM_
private

Definition at line 50 of file HFShowerParam.h.

Referenced by getHits(), and HFShowerParam().