LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
shower::TCShowerElectronLikelihood Class Reference
Inheritance diagram for shower::TCShowerElectronLikelihood:
art::EDAnalyzer art::detail::Analyzer art::detail::LegacyModule art::Observer art::ModuleBase

Public Types

using ModuleType = EDAnalyzer
 

Public Member Functions

 TCShowerElectronLikelihood (fhicl::ParameterSet const &pset)
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
std::unique_ptr< Worker > makeWorker (WorkerParams const &wp)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Protected Member Functions

std::string const & processName () const
 
bool wantAllEvents () const noexcept
 
bool wantEvent (ScheduleID id, Event const &e) const
 
Handle< TriggerResults > getTriggerResults (Event const &e) const
 
ConsumesCollector & consumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Private Member Functions

void beginJob () override
 
void analyze (const art::Event &evt) override
 
void getShowerProfile (detinfo::DetectorClocksData const &clockdata, detinfo::DetectorPropertiesData const &detProp, std::vector< art::Ptr< recob::Hit >> showerhits, TVector3 shwvtx, TVector3 shwdir)
 
void findEnergyBin ()
 
double getLongLikelihood ()
 
double getTranLikelihood ()
 
void resetProfiles ()
 

Private Attributes

std::string fTemplateFile
 
std::string fROOTfile
 
TH3F * longTemplate
 
TH3F * tranTemplate
 
TH3F * tranTemplate_1
 
TH3F * tranTemplate_2
 
TH3F * tranTemplate_3
 
TH3F * tranTemplate_4
 
TH3F * tranTemplate_5
 
TProfile2D * longTemplateProf2D
 
TProfile2D * tranTemplateProf2D
 
TProfile2D * tranTemplateProf2D_1
 
TProfile2D * tranTemplateProf2D_2
 
TProfile2D * tranTemplateProf2D_3
 
TProfile2D * tranTemplateProf2D_4
 
TProfile2D * tranTemplateProf2D_5
 
TH1F * energyDist
 
TH1F * longLikelihoodHist
 
TH1F * tranLikelihoodHist
 
TH1F * longProfHist
 
TH1F * tranProfHist_1
 
TH1F * tranProfHist_2
 
TH1F * tranProfHist_3
 
TH1F * tranProfHist_4
 
TH1F * tranProfHist_5
 
TH1F * longProfile
 
TH1F * tranProfile
 
TH1F * tranProfile_1
 
TH1F * tranProfile_2
 
TH1F * tranProfile_3
 
TH1F * tranProfile_4
 
TH1F * tranProfile_5
 
int energyGuess
 
double energyChi2
 
int maxt
 
const int LBINS = 20
 
const int LMIN = 0
 
const int LMAX = 5
 
const int TBINS = 20
 
const int TMIN = -5
 
const int TMAX = 5
 
const double X0 = 14
 
std::string fHitModuleLabel
 
std::string fShowerModuleLabel
 
std::string fTemplateModuleLabel
 
std::string fGenieGenModuleLabel
 
std::string fDigitModuleLabel
 
calo::CalorimetryAlg fCalorimetryAlg
 

Detailed Description

Definition at line 38 of file TCShowerElectronLikelihood_module.cc.

Member Typedef Documentation

Definition at line 22 of file EDAnalyzer.h.

Constructor & Destructor Documentation

shower::TCShowerElectronLikelihood::TCShowerElectronLikelihood ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 123 of file TCShowerElectronLikelihood_module.cc.

References file, fROOTfile, fTemplateFile, fhicl::ParameterSet::get(), LBINS, LMAX, LMIN, longProfile, longTemplate, longTemplateProf2D, TBINS, TMAX, TMIN, tranProfile, tranProfile_1, tranProfile_2, tranProfile_3, tranProfile_4, tranProfile_5, tranTemplate, tranTemplate_1, tranTemplate_2, tranTemplate_3, tranTemplate_4, tranTemplate_5, tranTemplateProf2D, tranTemplateProf2D_1, tranTemplateProf2D_2, tranTemplateProf2D_3, tranTemplateProf2D_4, and tranTemplateProf2D_5.

124  : EDAnalyzer(pset)
125  , fHitModuleLabel(pset.get<std::string>("HitModuleLabel", "trajcluster"))
126  , fShowerModuleLabel(pset.get<std::string>("ShowerModuleLabel", "tcshower"))
127  , fGenieGenModuleLabel(pset.get<std::string>("GenieGenModuleLabel", "generator"))
128  , fCalorimetryAlg(pset.get<fhicl::ParameterSet>("CalorimetryAlg"))
129 {
130  fTemplateFile = pset.get<std::string>("TemplateFile");
131  cet::search_path sp("FW_SEARCH_PATH");
132  if (!sp.find_file(fTemplateFile, fROOTfile))
133  throw cet::exception("TCShowerElectronLikelihood")
134  << "cannot find the root template file: \n"
135  << fTemplateFile << "\n bail ungracefully.\n";
136 
137  std::unique_ptr<TFile> file{TFile::Open(fROOTfile.c_str())};
138 
139  longTemplate = file->Get<TH3F>("tcshowertemplate/fLongitudinal");
140  tranTemplate = file->Get<TH3F>("tcshowertemplate/fTransverse");
141  tranTemplate_1 = file->Get<TH3F>("tcshowertemplate/fTransverse_1");
142  tranTemplate_2 = file->Get<TH3F>("tcshowertemplate/fTransverse_2");
143  tranTemplate_3 = file->Get<TH3F>("tcshowertemplate/fTransverse_3");
144  tranTemplate_4 = file->Get<TH3F>("tcshowertemplate/fTransverse_4");
145  tranTemplate_5 = file->Get<TH3F>("tcshowertemplate/fTransverse_5");
146 
147  longTemplateProf2D = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoLong2D");
148  tranTemplateProf2D = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoTrans2D");
149  tranTemplateProf2D_1 = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoTrans2D_1");
150  tranTemplateProf2D_2 = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoTrans2D_2");
151  tranTemplateProf2D_3 = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoTrans2D_3");
152  tranTemplateProf2D_4 = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoTrans2D_4");
153  tranTemplateProf2D_5 = file->Get<TProfile2D>("tcshowertemplate/fShowerProfileRecoTrans2D_5");
154 
155  longProfile = new TH1F("longProfile", "longitudinal shower profile;t;Q", LBINS, LMIN, LMAX);
156  tranProfile = new TH1F("tranProfile", "transverse shower profile;dist (cm);Q", TBINS, TMIN, TMAX);
157 
158  tranProfile_1 = new TH1F(
159  "tranProfile_1", "transverse shower profile [0 <= t < 1];dist (cm);Q", TBINS, TMIN, TMAX);
160  tranProfile_2 = new TH1F(
161  "tranProfile_2", "transverse shower profile [1 <= t < 2];dist (cm);Q", TBINS, TMIN, TMAX);
162  tranProfile_3 = new TH1F(
163  "tranProfile_3", "transverse shower profile [2 <= t < 3];dist (cm);Q", TBINS, TMIN, TMAX);
164  tranProfile_4 = new TH1F(
165  "tranProfile_4", "transverse shower profile [3 <= t < 4];dist (cm);Q", TBINS, TMIN, TMAX);
166  tranProfile_5 = new TH1F(
167  "tranProfile_5", "transverse shower profile [4 <= t < 5];dist (cm);Q", TBINS, TMIN, TMAX);
168 } // TCShowerElectronLikelihood
EDAnalyzer(fhicl::ParameterSet const &pset)
Definition: EDAnalyzer.cc:6
TFile * file
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33

Member Function Documentation

void shower::TCShowerElectronLikelihood::analyze ( const art::Event evt)
overrideprivate

Definition at line 199 of file TCShowerElectronLikelihood_module.cc.

References util::abs(), simb::MCNeutrino::CCNC(), simb::MCParticle::E(), energyDist, energyGuess, fGenieGenModuleLabel, fHitModuleLabel, art::fill_ptr_vector(), findEnergyBin(), fShowerModuleLabel, art::ProductRetriever::getByLabel(), getLongLikelihood(), simb::MCTruth::GetNeutrino(), getShowerProfile(), getTranLikelihood(), simb::MCNeutrino::Lepton(), longLikelihoodHist, longProfHist, longProfile, maxt, simb::MCTruth::NeutrinoSet(), simb::MCNeutrino::Nu(), simb::MCParticle::PdgCode(), resetProfiles(), tranLikelihoodHist, tranProfHist_1, tranProfHist_2, tranProfHist_3, tranProfHist_4, tranProfHist_5, tranProfile_1, tranProfile_2, tranProfile_3, tranProfile_4, tranProfile_5, X0, and Z.

200 {
201  resetProfiles();
202 
204  std::vector<art::Ptr<recob::Hit>> hitlist;
205  if (evt.getByLabel(fHitModuleLabel, hitListHandle)) art::fill_ptr_vector(hitlist, hitListHandle);
206 
207  art::Handle<std::vector<recob::Shower>> showerListHandle;
208  std::vector<art::Ptr<recob::Shower>> showerlist;
209  if (evt.getByLabel(fShowerModuleLabel, showerListHandle))
210  art::fill_ptr_vector(showerlist, showerListHandle);
211 
212  art::Handle<std::vector<simb::MCTruth>> mctruthListHandle;
213  std::vector<art::Ptr<simb::MCTruth>> mclist;
214  if (evt.getByLabel(fGenieGenModuleLabel, mctruthListHandle))
215  art::fill_ptr_vector(mclist, mctruthListHandle);
216 
217  art::FindManyP<recob::Hit> shwfm(showerListHandle, evt, fShowerModuleLabel);
218 
219  if (showerlist.size()) {
220  auto const clock_data =
222  auto const det_prop =
224  std::vector<art::Ptr<recob::Hit>> showerhits = shwfm.at(0);
226  clock_data, det_prop, showerhits, showerlist[0]->ShowerStart(), showerlist[0]->Direction());
227 
228  maxt = std::ceil((90 - showerlist[0]->ShowerStart().Z()) / X0);
229 
230  findEnergyBin();
231 
234 
235  // check true shower energy
236  if (mclist.size()) {
237  art::Ptr<simb::MCTruth> mctruth = mclist[0];
238  if (mctruth->NeutrinoSet()) {
239  if (std::abs(mctruth->GetNeutrino().Nu().PdgCode()) == 12 &&
240  mctruth->GetNeutrino().CCNC() == 0) {
241  double elep = mctruth->GetNeutrino().Lepton().E();
242  energyDist->Fill(elep - energyGuess);
243  } // cc nue
244  } // neutrinoset
245  } // mclist
246  } // showerlist
247 
254 } // analyze
double E(const int i=0) const
Definition: MCParticle.h:234
int PdgCode() const
Definition: MCParticle.h:213
int CCNC() const
Definition: MCNeutrino.h:148
const simb::MCNeutrino & GetNeutrino() const
Definition: MCTruth.h:77
void getShowerProfile(detinfo::DetectorClocksData const &clockdata, detinfo::DetectorPropertiesData const &detProp, std::vector< art::Ptr< recob::Hit >> showerhits, TVector3 shwvtx, TVector3 shwdir)
const simb::MCParticle & Nu() const
Definition: MCNeutrino.h:146
constexpr auto abs(T v)
Returns the absolute value of the argument.
Float_t Z
Definition: plot.C:37
const simb::MCParticle & Lepton() const
Definition: MCNeutrino.h:147
bool getByLabel(std::string const &label, std::string const &instance, Handle< PROD > &result) const
Direction
Definition: types.h:12
bool NeutrinoSet() const
Definition: MCTruth.h:78
void fill_ptr_vector(std::vector< Ptr< T >> &ptrs, H const &h)
Definition: Ptr.h:306
void shower::TCShowerElectronLikelihood::beginJob ( )
overrideprivatevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 172 of file TCShowerElectronLikelihood_module.cc.

References energyDist, LBINS, LMAX, LMIN, longLikelihoodHist, longProfHist, TBINS, TMAX, TMIN, tranLikelihoodHist, tranProfHist_1, tranProfHist_2, tranProfHist_3, tranProfHist_4, and tranProfHist_5.

173 {
174 
176 
177  energyDist = tfs->make<TH1F>("energyDist", "true energy - guess energy", 41, -20.5, 20.5);
178  longLikelihoodHist = tfs->make<TH1F>("longLikelihoodHist", "longitudinal likelihood", 20, 0, 2);
179  tranLikelihoodHist = tfs->make<TH1F>("tranLikelihoodHist", "transverse likelihood", 20, 0, 3);
180 
181  // just for printing purposes
182  longProfHist =
183  tfs->make<TH1F>("longProfHist", "longitudinal e- profile (reco);t;Q", LBINS, LMIN, LMAX);
184  tranProfHist_1 = tfs->make<TH1F>(
185  "tranProfHist", "transverse e- profile (reco) [0 <= t < 1];dist (cm);Q", TBINS, TMIN, TMAX);
186  tranProfHist_2 = tfs->make<TH1F>(
187  "tranProfHist", "transverse e- profile (reco) [1 <= t < 2];dist (cm);Q", TBINS, TMIN, TMAX);
188  tranProfHist_3 = tfs->make<TH1F>(
189  "tranProfHist", "transverse e- profile (reco) [2 <= t < 3];dist (cm);Q", TBINS, TMIN, TMAX);
190  tranProfHist_4 = tfs->make<TH1F>(
191  "tranProfHist", "transverse e- profile (reco) [3 <= t < 4];dist (cm);Q", TBINS, TMIN, TMAX);
192  tranProfHist_5 = tfs->make<TH1F>(
193  "tranProfHist", "transverse e- profile (reco) [4 <= t < 5];dist (cm);Q", TBINS, TMIN, TMAX);
194 
195 } // beginJob
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 61 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().

62  {
63  return collector_.consumes<T, BT>(tag);
64  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ProductToken< T > consumes(InputTag const &)
ConsumesCollector & art::ModuleBase::consumesCollector ( )
protectedinherited

Definition at line 57 of file ModuleBase.cc.

References art::ModuleBase::collector_.

58  {
59  return collector_;
60  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 75 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().

76  {
77  collector_.consumesMany<T, BT>();
78  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::consumesView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::consumesView ( InputTag const &  tag)
inherited

Definition at line 68 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().

69  {
70  return collector_.consumesView<T, BT>(tag);
71  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > consumesView(InputTag const &)
void art::detail::Analyzer::doBeginJob ( SharedResources const &  resources)
inherited

Definition at line 25 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

26  {
27  setupQueues(resources);
28  ProcessingFrame const frame{ScheduleID{}};
29  beginJobWithFrame(frame);
30  }
virtual void beginJobWithFrame(ProcessingFrame const &)=0
virtual void setupQueues(SharedResources const &)=0
bool art::detail::Analyzer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 68 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

69  {
70  ProcessingFrame const frame{mc.scheduleID()};
71  beginRunWithFrame(std::as_const(rp).makeRun(mc), frame);
72  return true;
73  }
virtual void beginRunWithFrame(Run const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 84 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

85  {
86  ProcessingFrame const frame{mc.scheduleID()};
87  beginSubRunWithFrame(std::as_const(srp).makeSubRun(mc), frame);
88  return true;
89  }
virtual void beginSubRunWithFrame(SubRun const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doEndJob ( )
inherited

Definition at line 33 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

34  {
35  ProcessingFrame const frame{ScheduleID{}};
36  endJobWithFrame(frame);
37  }
virtual void endJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Analyzer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 76 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

77  {
78  ProcessingFrame const frame{mc.scheduleID()};
79  endRunWithFrame(std::as_const(rp).makeRun(mc), frame);
80  return true;
81  }
virtual void endRunWithFrame(Run const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 92 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

93  {
94  ProcessingFrame const frame{mc.scheduleID()};
95  endSubRunWithFrame(std::as_const(srp).makeSubRun(mc), frame);
96  return true;
97  }
virtual void endSubRunWithFrame(SubRun const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doEvent ( EventPrincipal ep,
ModuleContext const &  mc,
std::atomic< std::size_t > &  counts_run,
std::atomic< std::size_t > &  counts_passed,
std::atomic< std::size_t > &  counts_failed 
)
inherited

Definition at line 100 of file Analyzer.cc.

References e, and art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

105  {
106  auto const e = std::as_const(ep).makeEvent(mc);
107  if (wantEvent(mc.scheduleID(), e)) {
108  ++counts_run;
109  ProcessingFrame const frame{mc.scheduleID()};
110  analyzeWithFrame(e, frame);
111  ++counts_passed;
112  }
113  return true;
114  }
bool wantEvent(ScheduleID id, Event const &e) const
Definition: Observer.cc:63
Float_t e
Definition: plot.C:35
virtual void analyzeWithFrame(Event const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited

Definition at line 47 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

48  {
49  ProcessingFrame const frame{ScheduleID{}};
51  }
TFile fb("Li6.root")
virtual void respondToCloseInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 61 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

62  {
63  ProcessingFrame const frame{ScheduleID{}};
65  }
virtual void respondToCloseOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Analyzer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited

Definition at line 40 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

41  {
42  ProcessingFrame const frame{ScheduleID{}};
44  }
TFile fb("Li6.root")
virtual void respondToOpenInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 54 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

55  {
56  ProcessingFrame const frame{ScheduleID{}};
58  }
virtual void respondToOpenOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void shower::TCShowerElectronLikelihood::findEnergyBin ( )
private

Definition at line 354 of file TCShowerElectronLikelihood_module.cc.

References energyChi2, energyGuess, longProfile, longTemplate, longTemplateProf2D, tranProfile, tranProfile_1, tranProfile_2, tranProfile_3, tranProfile_4, tranProfile_5, tranTemplate, tranTemplateProf2D_1, tranTemplateProf2D_2, tranTemplateProf2D_3, tranTemplateProf2D_4, and tranTemplateProf2D_5.

Referenced by analyze().

355 {
356 
357  if (longProfile->GetNbinsX() != longTemplate->GetNbinsX())
358  throw cet::exception("TCShowerElectronLikelihood")
359  << "Bin mismatch in longitudinal profile template \n";
360 
361  if (tranProfile->GetNbinsX() != tranTemplate->GetNbinsX())
362  throw cet::exception("TCShowerElectronLikelihood")
363  << "Bin mismatch in transverse profile template \n";
364 
365  double chi2min = 999999;
366  double bestbin = -1;
367 
368  int ebins = longTemplate->GetNbinsY();
369  int lbins = longTemplate->GetNbinsX();
370  int tbins = tranTemplate->GetNbinsX();
371 
372  for (int i = 0; i < ebins; ++i) {
373  double thischi2 = 0;
374 
375  TProfile* ltemp = longTemplateProf2D->ProfileX("_x", i + 1, i + 1);
376  TProfile* ttemp_1 = tranTemplateProf2D_1->ProfileX("_x_1", i + 1, i + 1);
377  TProfile* ttemp_2 = tranTemplateProf2D_2->ProfileX("_x_2", i + 1, i + 1);
378  TProfile* ttemp_3 = tranTemplateProf2D_3->ProfileX("_x_3", i + 1, i + 1);
379  TProfile* ttemp_4 = tranTemplateProf2D_4->ProfileX("_x_4", i + 1, i + 1);
380  TProfile* ttemp_5 = tranTemplateProf2D_5->ProfileX("_x_5", i + 1, i + 1);
381 
382  int nlbins = 0;
383  int ntbins = 0;
384 
385  for (int j = 0; j < lbins; ++j) {
386  double obs = longProfile->GetBinContent(j + 1);
387  double exp = ltemp->GetBinContent(j + 1);
388  if (obs != 0) {
389  thischi2 += cet::square(obs - exp) / exp;
390  ++nlbins;
391  }
392  } // loop through longitudinal bins
393 
394  for (int j = 0; j < tbins; ++j) {
395  double obs = tranProfile_1->GetBinContent(j + 1);
396  double exp = ttemp_1->GetBinContent(j + 1);
397  if (obs != 0) {
398  thischi2 += cet::square(obs - exp) / exp;
399  ++ntbins;
400  }
401 
402  obs = tranProfile_2->GetBinContent(j + 1);
403  exp = ttemp_2->GetBinContent(j + 1);
404  if (obs != 0) {
405  thischi2 += cet::square(obs - exp) / exp;
406  ++ntbins;
407  }
408 
409  obs = tranProfile_3->GetBinContent(j + 1);
410  exp = ttemp_3->GetBinContent(j + 1);
411  if (obs != 0) {
412  thischi2 += cet::square(obs - exp) / exp;
413  ++ntbins;
414  }
415 
416  obs = tranProfile_4->GetBinContent(j + 1);
417  exp = ttemp_4->GetBinContent(j + 1);
418  if (obs != 0) {
419  thischi2 += cet::square(obs - exp) / exp;
420  ++ntbins;
421  }
422 
423  obs = tranProfile_5->GetBinContent(j + 1);
424  exp = ttemp_5->GetBinContent(j + 1);
425  if (obs != 0) {
426  thischi2 += cet::square(obs - exp) / exp;
427  ++ntbins;
428  }
429  } // loop through longitudinal bins
430 
431  thischi2 /= (nlbins + ntbins);
432 
433  if (thischi2 < chi2min) {
434  chi2min = thischi2;
435  bestbin = i;
436  }
437 
438  } // loop through energy bins
439 
440  energyChi2 = chi2min;
441  energyGuess = bestbin + 1;
442 } // findEnergyBin
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
std::array< std::vector< ProductInfo >, NumBranchTypes > const & art::ModuleBase::getConsumables ( ) const
inherited

Definition at line 43 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().

44  {
45  return collector_.getConsumables();
46  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables() const
double shower::TCShowerElectronLikelihood::getLongLikelihood ( )
private

Definition at line 446 of file TCShowerElectronLikelihood_module.cc.

References energyGuess, LBINS, longProfile, and longTemplate.

Referenced by analyze().

447 {
448  if (energyGuess < 0) return -9999.;
449  int energyBin = energyGuess;
450 
451  double longLikelihood = 0.;
452  int nbins = 0;
453 
454  for (int i = 0; i < LBINS; ++i) {
455  double qval = longProfile->GetBinContent(i + 1);
456  int qbin = longTemplate->GetZaxis()->FindBin(qval);
457  int binentries = longTemplate->GetBinContent(i + 1, energyBin, qbin);
458  int totentries = longTemplate->Integral(i + 1, i + 1, energyBin, energyBin, 0, 100);
459  if (qval > 0) {
460  ++nbins;
461  double prob = (double)binentries / totentries * 100;
462  if (binentries > 0) longLikelihood += log(prob);
463  }
464  } // loop through
465 
466  longLikelihood /= nbins;
467 
468  std::cout << longLikelihood << std::endl;
469  return longLikelihood;
470 } // getLongLikelihood
void shower::TCShowerElectronLikelihood::getShowerProfile ( detinfo::DetectorClocksData const &  clockdata,
detinfo::DetectorPropertiesData const &  detProp,
std::vector< art::Ptr< recob::Hit >>  showerhits,
TVector3  shwvtx,
TVector3  shwdir 
)
private

Definition at line 276 of file TCShowerElectronLikelihood_module.cc.

References util::abs(), detinfo::DetectorPropertiesData::ConvertXToTicks(), detinfo::DetectorPropertiesData::DriftVelocity(), detinfo::DetectorPropertiesData::Efield(), fCalorimetryAlg, Get, calo::CalorimetryAlg::LifetimeCorrection(), longProfile, detinfo::sampling_rate(), detinfo::DetectorPropertiesData::Temperature(), geo::vect::toPoint(), geo::vect::toVector(), tranProfile, tranProfile_1, tranProfile_2, tranProfile_3, tranProfile_4, tranProfile_5, and X0.

Referenced by analyze().

282 {
283  auto const& wireReadoutGeom = art::ServiceHandle<geo::WireReadout const>()->Get();
284 
285  auto collectionPlaneID = geo::PlaneID(0, 0, 1);
286  auto const& collectionPlane = wireReadoutGeom.Plane(collectionPlaneID);
287 
288  using namespace geo::vect;
289  auto const shwvtx_p = toPoint(shwvtx);
290  auto const shwvtx_p2 = shwvtx_p + toVector(shwdir);
291 
292  double shwVtxTime = detProp.ConvertXToTicks(shwvtx_p.X(), collectionPlaneID);
293  double shwVtxWire = collectionPlane.WireCoordinate(shwvtx_p);
294 
295  double shwTwoTime = detProp.ConvertXToTicks(shwvtx_p2.X(), collectionPlaneID);
296  double shwTwoWire = collectionPlane.WireCoordinate(shwvtx_p2);
297 
298  for (size_t i = 0; i < showerhits.size(); ++i) {
299  if (showerhits[i]->WireID().Plane != collectionPlaneID.Plane) continue;
300 
301  double wirePitch = wireReadoutGeom.Plane(showerhits[i]->WireID()).WirePitch();
302  double tickToDist = detProp.DriftVelocity(detProp.Efield(), detProp.Temperature());
303  tickToDist *= 1.e-3 * sampling_rate(clockdata); // 1e-3 is conversion of 1/us to 1/ns
304 
305  double xvtx = shwVtxTime * tickToDist;
306  double yvtx = shwVtxWire * wirePitch;
307 
308  double xtwo = shwTwoTime * tickToDist;
309  double ytwo = shwTwoWire * wirePitch;
310 
311  double xtwoorth = (ytwo - yvtx) + xvtx;
312  double ytwoorth = -(xtwo - xvtx) + yvtx;
313 
314  double xhit = showerhits[i]->PeakTime() * tickToDist;
315  double yhit = showerhits[i]->WireID().Wire * wirePitch;
316 
317  double ldist = std::abs((ytwoorth - yvtx) * xhit - (xtwoorth - xvtx) * yhit + xtwoorth * yvtx -
318  ytwoorth * xvtx) /
319  std::hypot(ytwoorth - yvtx, xtwoorth - xvtx);
320  double tdist = ((ytwo - yvtx) * xhit - (xtwo - xvtx) * yhit + xtwo * yvtx - ytwo * xvtx) /
321  std::hypot(ytwo - yvtx, xtwo - xvtx);
322 
323  double to3D = 1. / std::hypot(xvtx - xtwo,
324  yvtx - ytwo); // distance between two points in 3D space is one
325  ldist *= to3D;
326  tdist *= to3D;
327  double t = ldist / X0;
328 
329  double Q = showerhits[i]->Integral() *
330  fCalorimetryAlg.LifetimeCorrection(clockdata, detProp, showerhits[i]->PeakTime());
331 
332  longProfile->Fill(t, Q);
333  tranProfile->Fill(tdist, Q);
334 
335  if (t < 1)
336  tranProfile_1->Fill(tdist, Q);
337  else if (t < 2)
338  tranProfile_2->Fill(tdist, Q);
339  else if (t < 3)
340  tranProfile_3->Fill(tdist, Q);
341  else if (t < 4)
342  tranProfile_4->Fill(tdist, Q);
343  else if (t < 5)
344  tranProfile_5->Fill(tdist, Q);
345 
346  } // loop through showerhits
347 
348  return;
349 
350 } // getShowerProfile
constexpr auto abs(T v)
Returns the absolute value of the argument.
cout<< "Opened file "<< fin<< " ixs= "<< ixs<< endl;if(ixs==0) hhh=(TH1F *) fff-> Get("h1")
Definition: AddMC.C:8
IDparameter< geo::PlaneID > PlaneID
Member type of validated geo::PlaneID parameter.
Utilities to manipulate geometry vectors.The utilities include generic vector interface facilities al...
IDparameter< geo::WireID > WireID
Member type of validated geo::WireID parameter.
Point_t toPoint(Point const &p)
Convert the specified point into a geo::Point_t.
Vector_t toVector(Vector const &v)
Convert the specified vector into a geo::Vector_t.
double LifetimeCorrection(detinfo::DetectorClocksData const &clock_data, detinfo::DetectorPropertiesData const &det_prop, double time, double T0=0) const
double sampling_rate(DetectorClocksData const &data)
Returns the period of the TPC readout electronics clock.
double shower::TCShowerElectronLikelihood::getTranLikelihood ( )
private

Definition at line 474 of file TCShowerElectronLikelihood_module.cc.

References DEFINE_ART_MODULE, energyGuess, TBINS, tranProfile_1, tranProfile_2, tranProfile_3, tranProfile_4, tranProfile_5, tranTemplate_1, tranTemplate_2, tranTemplate_3, tranTemplate_4, and tranTemplate_5.

Referenced by analyze().

475 {
476  if (energyGuess < 0) return -9999.;
477  int energyBin = energyGuess;
478 
479  double tranLikelihood_1 = 0;
480  double tranLikelihood_2 = 0;
481  double tranLikelihood_3 = 0;
482  double tranLikelihood_4 = 0;
483  double tranLikelihood_5 = 0;
484 
485  double qval;
486  int qbin, binentries, totentries;
487 
488  int nbins = 0;
489 
490  for (int i = 0; i < TBINS; ++i) {
491  qval = tranProfile_1->GetBinContent(i + 1);
492  qbin = tranTemplate_1->GetZaxis()->FindBin(qval);
493  binentries = tranTemplate_1->GetBinContent(i + 1, energyBin, qbin);
494  totentries = tranTemplate_1->Integral(i + 1, i + 1, energyBin, energyBin, 0, 100);
495  if (qval > 0) {
496  ++nbins;
497  double prob = (double)binentries / totentries * 100;
498  if (binentries > 0) tranLikelihood_1 += log(prob);
499  }
500 
501  qval = tranProfile_2->GetBinContent(i + 1);
502  qbin = tranTemplate_2->GetZaxis()->FindBin(qval);
503  binentries = tranTemplate_2->GetBinContent(i + 1, energyBin, qbin);
504  totentries = tranTemplate_2->Integral(i + 1, i + 1, energyBin, energyBin, 0, 100);
505  if (qval > 0) {
506  ++nbins;
507  double prob = (double)binentries / totentries * 100;
508  if (binentries > 0) tranLikelihood_2 += log(prob);
509  }
510 
511  qval = tranProfile_3->GetBinContent(i + 1);
512  qbin = tranTemplate_3->GetZaxis()->FindBin(qval);
513  binentries = tranTemplate_3->GetBinContent(i + 1, energyBin, qbin);
514  totentries = tranTemplate_3->Integral(i + 1, i + 1, energyBin, energyBin, 0, 100);
515  if (qval > 0) {
516  ++nbins;
517  double prob = (double)binentries / totentries * 100;
518  if (binentries > 0) tranLikelihood_3 += log(prob);
519  }
520 
521  qval = tranProfile_4->GetBinContent(i + 1);
522  qbin = tranTemplate_4->GetZaxis()->FindBin(qval);
523  binentries = tranTemplate_4->GetBinContent(i + 1, energyBin, qbin);
524  totentries = tranTemplate_4->Integral(i + 1, i + 1, energyBin, energyBin, 0, 100);
525  if (qval > 0) {
526  ++nbins;
527  double prob = (double)binentries / totentries * 100;
528  if (binentries > 0) tranLikelihood_4 += log(prob);
529  }
530 
531  qval = tranProfile_5->GetBinContent(i + 1);
532  qbin = tranTemplate_5->GetZaxis()->FindBin(qval);
533  binentries = tranTemplate_5->GetBinContent(i + 1, energyBin, qbin);
534  totentries = tranTemplate_5->Integral(i + 1, i + 1, energyBin, energyBin, 0, 100);
535  if (qval > 0) {
536  ++nbins;
537  double prob = (double)binentries / totentries * 100;
538  if (binentries > 0) tranLikelihood_5 += log(prob);
539  }
540 
541  } // loop through
542 
543  double const tranLikelihood =
544  (tranLikelihood_1 + tranLikelihood_2 + tranLikelihood_3 + tranLikelihood_4 + tranLikelihood_5) /
545  nbins;
546  std::cout << tranLikelihood << std::endl;
547  return tranLikelihood;
548 } // getTranLikelihood
Handle< TriggerResults > art::Observer::getTriggerResults ( Event const &  e) const
protectedinherited

Definition at line 75 of file Observer.cc.

References art::ProductRetriever::get(), and art::Observer::selectors_.

Referenced by art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().

76  {
77  if (selectors_) {
78  return selectors_->getOneTriggerResults(e);
79  }
80 
81  // The following applies for cases where no SelectEvents entries
82  // exist.
83  Handle<TriggerResults> h;
84  if (e.get(empty_process_name, h)) {
85  return h;
86  }
87  return Handle<TriggerResults>{};
88  }
Float_t e
Definition: plot.C:35
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79
std::unique_ptr< Worker > art::ModuleBase::makeWorker ( WorkerParams const &  wp)
inherited

Definition at line 37 of file ModuleBase.cc.

References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.

38  {
39  return doMakeWorker(wp);
40  }
virtual std::unique_ptr< Worker > doMakeWorker(WorkerParams const &wp)=0
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 82 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().

83  {
84  return collector_.mayConsume<T, BT>(tag);
85  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 96 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().

97  {
98  collector_.mayConsumeMany<T, BT>();
99  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::mayConsumeView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::mayConsumeView ( InputTag const &  tag)
inherited

Definition at line 89 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().

90  {
91  return collector_.mayConsumeView<T, BT>(tag);
92  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > mayConsumeView(InputTag const &)
ModuleDescription const & art::ModuleBase::moduleDescription ( ) const
inherited

Definition at line 13 of file ModuleBase.cc.

References art::errors::LogicError.

Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().

14  {
15  if (md_.has_value()) {
16  return *md_;
17  }
18 
20  "There was an error while calling moduleDescription().\n"}
21  << "The moduleDescription() base-class member function cannot be called\n"
22  "during module construction. To determine which module is "
23  "responsible\n"
24  "for calling it, find the '<module type>:<module "
25  "label>@Construction'\n"
26  "tag in the message prefix above. Please contact artists@fnal.gov\n"
27  "for guidance.\n";
28  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
string const & art::Observer::processName ( ) const
protectedinherited

Definition at line 57 of file Observer.cc.

References art::Observer::process_name_.

Referenced by art::FileDumperOutput::printPrincipal().

58  {
59  return process_name_;
60  }
std::string process_name_
Definition: Observer.h:76
void shower::TCShowerElectronLikelihood::resetProfiles ( )
private

Definition at line 258 of file TCShowerElectronLikelihood_module.cc.

References energyChi2, energyGuess, longProfile, maxt, tranProfile, tranProfile_1, tranProfile_2, tranProfile_3, tranProfile_4, and tranProfile_5.

Referenced by analyze().

void art::ModuleBase::setModuleDescription ( ModuleDescription const &  md)
inherited

Definition at line 31 of file ModuleBase.cc.

References art::ModuleBase::md_.

32  {
33  md_ = md;
34  }
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited

Definition at line 49 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().

50  {
51  // Now that we know we have seen all the consumes declarations,
52  // sort the results for fast lookup later.
53  collector_.sortConsumables(current_process_name);
54  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
void sortConsumables(std::string const &current_process_name)
bool art::Observer::wantAllEvents ( ) const
inlineprotectednoexceptinherited

Definition at line 31 of file Observer.h.

References e, art::Observer::getTriggerResults(), art::Observer::wantAllEvents_, and art::Observer::wantEvent().

32  {
33  return wantAllEvents_;
34  }
bool wantAllEvents_
Definition: Observer.h:75
bool art::Observer::wantEvent ( ScheduleID  id,
Event const &  e 
) const
protectedinherited

Definition at line 63 of file Observer.cc.

References art::Observer::rejectors_, art::Observer::selectors_, and art::Observer::wantAllEvents_.

Referenced by art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().

64  {
65  if (wantAllEvents_) {
66  return true;
67  }
68  bool const select_event = selectors_ ? selectors_->matchEvent(id, e) : true;
69  bool const reject_event =
70  rejectors_ ? rejectors_->matchEvent(id, e) : false;
71  return select_event and not reject_event;
72  }
bool wantAllEvents_
Definition: Observer.h:75
std::optional< detail::ProcessAndEventSelectors > rejectors_
Definition: Observer.h:80
Float_t e
Definition: plot.C:35
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79

Member Data Documentation

double shower::TCShowerElectronLikelihood::energyChi2
private

Definition at line 96 of file TCShowerElectronLikelihood_module.cc.

Referenced by findEnergyBin(), and resetProfiles().

TH1F* shower::TCShowerElectronLikelihood::energyDist
private

Definition at line 76 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

int shower::TCShowerElectronLikelihood::energyGuess
private
calo::CalorimetryAlg shower::TCShowerElectronLikelihood::fCalorimetryAlg
private

Definition at line 115 of file TCShowerElectronLikelihood_module.cc.

Referenced by getShowerProfile().

std::string shower::TCShowerElectronLikelihood::fDigitModuleLabel
private

Definition at line 113 of file TCShowerElectronLikelihood_module.cc.

std::string shower::TCShowerElectronLikelihood::fGenieGenModuleLabel
private

Definition at line 112 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze().

std::string shower::TCShowerElectronLikelihood::fHitModuleLabel
private

Definition at line 109 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze().

std::string shower::TCShowerElectronLikelihood::fROOTfile
private

Definition at line 58 of file TCShowerElectronLikelihood_module.cc.

Referenced by TCShowerElectronLikelihood().

std::string shower::TCShowerElectronLikelihood::fShowerModuleLabel
private

Definition at line 110 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze().

std::string shower::TCShowerElectronLikelihood::fTemplateFile
private

Definition at line 57 of file TCShowerElectronLikelihood_module.cc.

Referenced by TCShowerElectronLikelihood().

std::string shower::TCShowerElectronLikelihood::fTemplateModuleLabel
private

Definition at line 111 of file TCShowerElectronLikelihood_module.cc.

const int shower::TCShowerElectronLikelihood::LBINS = 20
private
const int shower::TCShowerElectronLikelihood::LMAX = 5
private

Definition at line 101 of file TCShowerElectronLikelihood_module.cc.

Referenced by beginJob(), and TCShowerElectronLikelihood().

const int shower::TCShowerElectronLikelihood::LMIN = 0
private

Definition at line 100 of file TCShowerElectronLikelihood_module.cc.

Referenced by beginJob(), and TCShowerElectronLikelihood().

TH1F* shower::TCShowerElectronLikelihood::longLikelihoodHist
private

Definition at line 77 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::longProfHist
private

Definition at line 80 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::longProfile
private
TH3F* shower::TCShowerElectronLikelihood::longTemplate
private
TProfile2D* shower::TCShowerElectronLikelihood::longTemplateProf2D
private
int shower::TCShowerElectronLikelihood::maxt
private

Definition at line 97 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and resetProfiles().

const int shower::TCShowerElectronLikelihood::TBINS = 20
private
const int shower::TCShowerElectronLikelihood::TMAX = 5
private

Definition at line 105 of file TCShowerElectronLikelihood_module.cc.

Referenced by beginJob(), and TCShowerElectronLikelihood().

const int shower::TCShowerElectronLikelihood::TMIN = -5
private

Definition at line 104 of file TCShowerElectronLikelihood_module.cc.

Referenced by beginJob(), and TCShowerElectronLikelihood().

TH1F* shower::TCShowerElectronLikelihood::tranLikelihoodHist
private

Definition at line 78 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::tranProfHist_1
private

Definition at line 81 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::tranProfHist_2
private

Definition at line 82 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::tranProfHist_3
private

Definition at line 83 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::tranProfHist_4
private

Definition at line 84 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::tranProfHist_5
private

Definition at line 85 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and beginJob().

TH1F* shower::TCShowerElectronLikelihood::tranProfile
private
TH1F* shower::TCShowerElectronLikelihood::tranProfile_1
private
TH1F* shower::TCShowerElectronLikelihood::tranProfile_2
private
TH1F* shower::TCShowerElectronLikelihood::tranProfile_3
private
TH1F* shower::TCShowerElectronLikelihood::tranProfile_4
private
TH1F* shower::TCShowerElectronLikelihood::tranProfile_5
private
TH3F* shower::TCShowerElectronLikelihood::tranTemplate
private
TH3F* shower::TCShowerElectronLikelihood::tranTemplate_1
private
TH3F* shower::TCShowerElectronLikelihood::tranTemplate_2
private
TH3F* shower::TCShowerElectronLikelihood::tranTemplate_3
private
TH3F* shower::TCShowerElectronLikelihood::tranTemplate_4
private
TH3F* shower::TCShowerElectronLikelihood::tranTemplate_5
private
TProfile2D* shower::TCShowerElectronLikelihood::tranTemplateProf2D
private

Definition at line 68 of file TCShowerElectronLikelihood_module.cc.

Referenced by TCShowerElectronLikelihood().

TProfile2D* shower::TCShowerElectronLikelihood::tranTemplateProf2D_1
private
TProfile2D* shower::TCShowerElectronLikelihood::tranTemplateProf2D_2
private
TProfile2D* shower::TCShowerElectronLikelihood::tranTemplateProf2D_3
private
TProfile2D* shower::TCShowerElectronLikelihood::tranTemplateProf2D_4
private
TProfile2D* shower::TCShowerElectronLikelihood::tranTemplateProf2D_5
private
const double shower::TCShowerElectronLikelihood::X0 = 14
private

Definition at line 107 of file TCShowerElectronLikelihood_module.cc.

Referenced by analyze(), and getShowerProfile().


The documentation for this class was generated from the following file: