LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
FlashHypothesisAnaAlg.cxx
Go to the documentation of this file.
1 
11 #include "FlashHypothesisAnaAlg.h"
12 #include "FlashHypothesis.h"
14 #include "FlashHypothesisCreator.h"
15 #include "SimPhotonCounterAlg.h"
16 
23 
24 #include "TTree.h"
25 
27  TH1F* h_h_p,
28  TH1F* h_s_p,
29  TH1F* h_c_p,
30  TH1F* h_h_l,
31  TH1F* h_s_l,
32  TH1F* h_c_l,
33  TH1F* h_h_t,
34  TH1F* h_s_t,
35  TH1F* h_c_t,
36  geo::Geometry const& geom)
37 {
38  fTree = tree;
40  tree, h_h_p, h_s_p, h_c_p, h_h_l, h_s_l, h_c_l, h_h_t, h_s_t, h_c_t, geom.NOpDets(), false);
41 
42  fMCTAlg.SetOutputTree(tree, false);
43 }
44 
46 {
47 
48  fOpDetPositions_Y.resize(geom.NOpDets());
49  fOpDetPositions_Z.resize(geom.NOpDets());
50 
51  for (size_t i_opdet = 0; i_opdet < geom.NOpDets(); i_opdet++) {
52  auto const xyz = geom.Cryostat().OpDet(i_opdet).GetCenter();
53  fOpDetPositions_Y[i_opdet] = (float)xyz.Y();
54  fOpDetPositions_Z[i_opdet] = (float)xyz.Z();
55  }
56 }
57 
58 void opdet::FlashHypothesisAnaAlg::RunComparison(const unsigned int run,
59  const unsigned int event,
60  std::vector<sim::MCTrack> const& mctrackVec,
61  std::vector<sim::SimPhotons> const& simPhotonsVec,
62  Providers_t providers,
63  opdet::OpDigiProperties const& opdigip,
65 {
66  auto const* geom = providers.get<geo::GeometryCore>();
67 
68  FlashHypothesisCollection fhc(geom->NOpDets());
69  for (auto const& mctrack : mctrackVec) {
70  if (mctrack.size() == 0) continue;
71  std::vector<float> dEdxVector(mctrack.size() - 1, fdEdx);
73  mctrack, dEdxVector, providers, pvs, opdigip, fXOffset);
74  }
75 
76  fSPCAlg.InitializeCounters(*geom, opdigip);
77  fSPCAlg.AddSimPhotonsVector(simPhotonsVec);
78 
80  event,
81  fhc,
85 
86  fMCTAlg.FillTree(run, event, mctrackVec);
87 
88  fTree->Fill();
89 }
Encapsulate the construction of a single cyostat.
void InitializeCounters(geo::GeometryCore const &, opdet::OpDigiProperties const &)
FlashHypothesisCollection GetFlashHypothesisCollection(recob::Track const &track, std::vector< float > const &dEdxVector, Providers_t providers, phot::PhotonVisibilityService const &pvs, opdet::OpDigiProperties const &opdigip, float XOffset=0)
void SetOutputTree(TTree *, bool fill=true)
void RunComparison(const unsigned int run, const unsigned int event, std::vector< sim::MCTrack > const &, std::vector< sim::SimPhotons > const &, Providers_t providers, opdet::OpDigiProperties const &opdigip, phot::PhotonVisibilityService const &pvs)
std::vector< float > fOpDetPositions_Y
void FillTree(unsigned int, unsigned int, const std::vector< sim::MCTrack > &)
Provider const * get() const
Returns the provider with the specified type.
Definition: ProviderPack.h:182
FlashHypothesisCreator fFHCreator
SimPhotonCounter const & GetSimPhotonCounter(size_t)
CryostatGeo const & Cryostat(CryostatID const &cryoid=cryostat_zero) const
Returns the specified cryostat.
std::vector< float > fOpDetPositions_Z
void AddSimPhotonsVector(std::vector< sim::SimPhotons > const &)
Access the description of detector geometry.
void SetOutputObjects(TTree *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, geo::Geometry const &)
const OpDetGeo & OpDet(unsigned int iopdet) const
Return the iopdet&#39;th optical detector in the cryostat.
Definition: CryostatGeo.cxx:95
The geometry of one entire detector, as served by art.
Definition: Geometry.h:181
Description of geometry of one entire detector.
Definition: GeometryCore.h:119
Class def header for mctrack data container.
FlashHypothesisComparison fFHCompare
void SetOutputObjects(TTree *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, TH1F *, const unsigned int, bool fill=true)
unsigned int NOpDets() const
Number of OpDets in the whole detector.
Encapsulate the geometry of an optical detector.
geo::Point_t const & GetCenter() const
Definition: OpDetGeo.h:72
sim::MCTrackCollectionAnaAlg fMCTAlg
Container for a list of pointers to providers.
Definition: ProviderPack.h:111
void RunComparison(const unsigned int, const unsigned int, const FlashHypothesisCollection &, const SimPhotonCounter &, const std::vector< float > &, const std::vector< float > &)
void FillOpDetPositions(geo::Geometry const &)
art framework interface to geometry description
Event finding and building.