LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder Class Reference
Inheritance diagram for ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder:
ShowerRecoTools::IShowerTool

Public Member Functions

 Shower2DLinearRegressionTrackHitFinder (const fhicl::ParameterSet &pset)
 
int CalculateElement (const art::Ptr< recob::PFParticle > &pfparticle, art::Event &Event, reco::shower::ShowerElementHolder &ShowerEleHolder) override
 

Private Member Functions

std::vector< art::Ptr< recob::Hit > > FindInitialTrackHits (const detinfo::DetectorPropertiesData &detProp, std::vector< art::Ptr< recob::Hit >> &hits)
 
Int_t WeightedFit (const Int_t n, const Double_t *x, const Double_t *y, const Double_t *w, Double_t *parm)
 
int RunShowerTool (const art::Ptr< recob::PFParticle > &pfparticle, art::Event &Event, reco::shower::ShowerElementHolder &ShowerEleHolder, std::string evd_display_name_append="")
 
virtual void InitialiseProducers ()
 
void SetPtr (art::ProducesCollector *collector)
 
void InitaliseProducerPtr (reco::shower::ShowerProducedPtrsHolder &uniqueproducerPtrs)
 
virtual int AddAssociations (const art::Ptr< recob::PFParticle > &pfpPtr, art::Event &Event, reco::shower::ShowerElementHolder &ShowerEleHolder)
 
const shower::LArPandoraShowerAlgGetLArPandoraShowerAlg () const
 
template<class T >
art::Ptr< T > GetProducedElementPtr (std::string Name, reco::shower::ShowerElementHolder &ShowerEleHolder, int iter=-1)
 
template<class T >
void InitialiseProduct (std::string Name, std::string InstanceName="")
 
template<class T , class A , class B >
void AddSingle (A &a, B &b, std::string Name)
 
int GetVectorPtrSize (std::string Name)
 
void PrintPtrs ()
 
void PrintPtr (std::string Name)
 

Private Attributes

unsigned int fNfitpass
 
std::vector< unsigned int > fNfithits
 
std::vector< double > fToler
 
bool fApplyChargeWeight
 
art::InputTag fPFParticleLabel
 
int fVerbose
 
art::InputTag fHitLabel
 
std::string fShowerStartPositionInputLabel
 
std::string fShowerDirectionInputLabel
 
std::string fInitialTrackHitsOutputLabel
 
std::string fInitialTrackSpacePointsOutputLabel
 

Detailed Description

Constructor & Destructor Documentation

ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::Shower2DLinearRegressionTrackHitFinder ( const fhicl::ParameterSet pset)

Definition at line 63 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

References art::errors::Configuration, fNfithits, fNfitpass, and fToler.

65  : IShowerTool(pset.get<fhicl::ParameterSet>("BaseTools"))
66  , fNfitpass(pset.get<unsigned int>("Nfitpass"))
67  , fNfithits(pset.get<std::vector<unsigned int>>("Nfithits"))
68  , fToler(pset.get<std::vector<double>>("Toler"))
69  , fApplyChargeWeight(pset.get<bool>("ApplyChargeWeight"))
70  , fPFParticleLabel(pset.get<art::InputTag>("PFParticleLabel"))
71  , fVerbose(pset.get<int>("Verbose"))
72  , fHitLabel(pset.get<art::InputTag>("HitsModuleLabel"))
73  , fShowerStartPositionInputLabel(pset.get<std::string>("ShowerStartPositionInputLabel"))
74  , fShowerDirectionInputLabel(pset.get<std::string>("ShowerDirectionInputLabel"))
75  , fInitialTrackHitsOutputLabel(pset.get<std::string>("InitialTrackHitsOutputLabel"))
77  pset.get<std::string>("InitialTrackSpacePointsOutputLabel"))
78  {
79  if (fNfitpass != fNfithits.size() || fNfitpass != fToler.size()) {
81  << "Shower2DLinearRegressionTrackHitFinderEMShower: fNfithits and fToler need to have size "
82  "fNfitpass";
83  }
84  }
T get(std::string const &key) const
Definition: ParameterSet.h:314
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
IShowerTool(const fhicl::ParameterSet &pset)
Definition: IShowerTool.h:33

Member Function Documentation

virtual int ShowerRecoTools::IShowerTool::AddAssociations ( const art::Ptr< recob::PFParticle > &  pfpPtr,
art::Event Event,
reco::shower::ShowerElementHolder ShowerEleHolder 
)
inlinevirtualinherited
template<class T , class A , class B >
void ShowerRecoTools::IShowerTool::AddSingle ( A &  a,
B &  b,
std::string  Name 
)
inlineprotectedinherited

Definition at line 152 of file IShowerTool.h.

References reco::shower::ShowerProducedPtrsHolder::AddSingle().

153  {
154  UniquePtrs->AddSingle<T>(a, b, Name);
155  }
reco::shower::ShowerProducedPtrsHolder * UniquePtrs
Definition: IShowerTool.h:85
void AddSingle(A &a, B &b, const std::string &Name)
int ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::CalculateElement ( const art::Ptr< recob::PFParticle > &  pfparticle,
art::Event Event,
reco::shower::ShowerElementHolder ShowerEleHolder 
)
overridevirtual

Implements ShowerRecoTools::IShowerTool.

Definition at line 86 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

References geo::PlaneID::asPlaneID(), reco::shower::ShowerElementHolder::CheckElement(), fHitLabel, FindInitialTrackHits(), fInitialTrackHitsOutputLabel, fInitialTrackSpacePointsOutputLabel, fPFParticleLabel, fShowerDirectionInputLabel, fShowerStartPositionInputLabel, fVerbose, reco::shower::ShowerElementHolder::GetElement(), reco::shower::ShowerElementHolder::GetFindManyP(), ShowerRecoTools::IShowerTool::GetLArPandoraShowerAlg(), art::ProductRetriever::getValidHandle(), hits(), art::Ptr< T >::key(), shower::LArPandoraShowerAlg::OrderShowerHits(), and reco::shower::ShowerElementHolder::SetElement().

90  {
91 
92  //This is all based on the shower vertex being known. If it is not lets not do the track
93  if (!ShowerEleHolder.CheckElement(fShowerStartPositionInputLabel)) {
94  if (fVerbose)
95  mf::LogError("Shower2DLinearRegressionTrackHitFinder")
96  << "Start position not set, returning " << std::endl;
97  return 1;
98  }
99  if (!ShowerEleHolder.CheckElement(fShowerDirectionInputLabel)) {
100  if (fVerbose)
101  mf::LogError("Shower2DLinearRegressionTrackHitFinder")
102  << "Direction not set, returning " << std::endl;
103  return 1;
104  }
105 
106  geo::Point_t ShowerStartPosition{-999, -999, -999};
107  ShowerEleHolder.GetElement(fShowerStartPositionInputLabel, ShowerStartPosition);
108 
109  geo::Vector_t ShowerDirection = {-999, -999, -999};
110  ShowerEleHolder.GetElement(fShowerDirectionInputLabel, ShowerDirection);
111 
112  // Get the assocated pfParicle vertex PFParticles
113  auto const pfpHandle = Event.getValidHandle<std::vector<recob::PFParticle>>(fPFParticleLabel);
114 
115  //Get the clusters
116  auto const clusHandle = Event.getValidHandle<std::vector<recob::Cluster>>(fPFParticleLabel);
117 
118  const art::FindManyP<recob::Cluster>& fmc =
119  ShowerEleHolder.GetFindManyP<recob::Cluster>(pfpHandle, Event, fPFParticleLabel);
120  std::vector<art::Ptr<recob::Cluster>> clusters = fmc.at(pfparticle.key());
121 
122  if (clusters.size() < 2) {
123  if (fVerbose)
124  mf::LogError("Shower2DLinearRegressionTrackHitFinder")
125  << "Not enough clusters: " << clusters.size() << std::endl;
126  return 1;
127  }
128 
129  //Get the hit association
130  const art::FindManyP<recob::Hit>& fmhc =
131  ShowerEleHolder.GetFindManyP<recob::Hit>(clusHandle, Event, fPFParticleLabel);
132  std::map<geo::PlaneID, std::vector<art::Ptr<recob::Hit>>> plane_clusters;
133  //Loop over the clusters in the plane and get the hits
134  for (auto const& cluster : clusters) {
135 
136  //Get the hits
137  std::vector<art::Ptr<recob::Hit>> hits = fmhc.at(cluster.key());
138 
139  for (auto hit : hits) {
140  geo::WireID wire = hit->WireID();
141  geo::PlaneID plane = wire.asPlaneID();
142  plane_clusters[plane].push_back(hit);
143  }
144 
145  // Was having issues with clusters having hits in multiple planes breaking PMA
146  // So switched to the method above. May want to switch back when using PandoraTrack
147  //plane_clusters[plane].insert(plane_clusters[plane].end(),hits.begin(),hits.end());
148  }
149 
150  auto const clockData =
152  auto const detProp =
154 
155  std::vector<art::Ptr<recob::Hit>> InitialTrackHits;
156  //Loop over the clusters and order the hits and get the initial track hits in that plane
157  for (auto const& cluster : plane_clusters) {
158 
159  //Get the hits
160  std::vector<art::Ptr<recob::Hit>> hits = cluster.second;
161 
162  //Order the hits
164  detProp, hits, ShowerStartPosition, ShowerDirection);
165 
166  //Find the initial track hits
167  std::vector<art::Ptr<recob::Hit>> trackhits = FindInitialTrackHits(detProp, hits);
168 
169  InitialTrackHits.insert(InitialTrackHits.end(), trackhits.begin(), trackhits.end());
170  }
171 
172  //Holders for the initial track values.
173  ShowerEleHolder.SetElement(InitialTrackHits, fInitialTrackHitsOutputLabel);
174 
175  //Get the associated spacepoints
176  //Get the hits
177  auto const hitHandle = Event.getValidHandle<std::vector<recob::Hit>>(fHitLabel);
178 
179  //get the sp<->hit association
181  ShowerEleHolder.GetFindManyP<recob::SpacePoint>(hitHandle, Event, fPFParticleLabel);
182 
183  //Get the spacepoints associated to the track hit
184  std::vector<art::Ptr<recob::SpacePoint>> intitaltrack_sp;
185  for (auto const& hit : InitialTrackHits) {
186  std::vector<art::Ptr<recob::SpacePoint>> sps = fmsp.at(hit.key());
187  for (auto const sp : sps) {
188  intitaltrack_sp.push_back(sp);
189  }
190  }
191  ShowerEleHolder.SetElement(intitaltrack_sp, fInitialTrackSpacePointsOutputLabel);
192  return 0;
193  }
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
Definition: geo_vectors.h:160
The data type to uniquely identify a Plane.
Definition: geo_types.h:463
void SetElement(T &dataproduct, const std::string &Name, bool checktag=false)
Set of hits with a 2D structure.
Definition: Cluster.h:69
MaybeLogger_< ELseverityLevel::ELsev_error, false > LogError
Cluster finding and building.
void hits()
Definition: readHits.C:15
key_type key() const noexcept
Definition: Ptr.h:166
std::vector< art::Ptr< recob::Hit > > FindInitialTrackHits(const detinfo::DetectorPropertiesData &detProp, std::vector< art::Ptr< recob::Hit >> &hits)
bool CheckElement(const std::string &Name) const
constexpr PlaneID const & asPlaneID() const
Conversion to PlaneID (for convenience of notation).
Definition: geo_types.h:520
int GetElement(const std::string &Name, T &Element) const
void OrderShowerHits(detinfo::DetectorPropertiesData const &detProp, std::vector< art::Ptr< recob::Hit >> &hits, geo::Point_t const &ShowerPosition, geo::Vector_t const &ShowerDirection) const
Detector simulation of raw signals on wires.
const shower::LArPandoraShowerAlg & GetLArPandoraShowerAlg() const
Definition: IShowerTool.h:82
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:180
ValidHandle< PROD > getValidHandle(InputTag const &tag) const
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:46
const art::FindManyP< T1 > & GetFindManyP(const art::ValidHandle< std::vector< T2 >> &handle, const art::Event &evt, const art::InputTag &moduleTag)
std::vector< art::Ptr< recob::Hit > > ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::FindInitialTrackHits ( const detinfo::DetectorPropertiesData detProp,
std::vector< art::Ptr< recob::Hit >> &  hits 
)
private

Definition at line 196 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

References util::abs(), geo::vect::coord(), fApplyChargeWeight, fNfithits, fNfitpass, fToler, ShowerRecoTools::IShowerTool::GetLArPandoraShowerAlg(), shower::LArPandoraShowerAlg::HitCoordinates(), hits(), and WeightedFit().

Referenced by CalculateElement().

199  {
200 
201  std::vector<art::Ptr<recob::Hit>> trackHits;
202 
203  double parm[2];
204  int fitok = 0;
205  std::vector<double> wfit;
206  std::vector<double> tfit;
207  std::vector<double> cfit;
208 
209  for (size_t i = 0; i < fNfitpass; ++i) {
210 
211  // Fit a straight line through hits
212  unsigned int nhits = 0;
213  for (auto& hit : hits) {
214 
215  //Not sure I am a fan of doing things in wire tick space. What if id doesn't not iterate properly or the
216  //two planes in each TPC are not symmetric.
218 
219  if (i == 0 ||
220  (std::abs((coord.Y() - (parm[0] + coord.X() * parm[1])) *
221  std::cos(std::atan(parm[1]))) < fToler[i - 1]) ||
222  fitok == 1) {
223  ++nhits;
224  if (nhits == fNfithits[i] + 1) break;
225  wfit.push_back(coord.X());
226  tfit.push_back(coord.Y());
227 
228  if (fApplyChargeWeight) { cfit.push_back(hit->Integral()); }
229  else {
230  cfit.push_back(1.);
231  };
232  if (i == fNfitpass - 1) { trackHits.push_back(hit); }
233  }
234  }
235 
236  if (i < fNfitpass - 1 && wfit.size()) {
237  fitok = WeightedFit(wfit.size(), &wfit[0], &tfit[0], &cfit[0], &parm[0]);
238  }
239 
240  wfit.clear();
241  tfit.clear();
242  cfit.clear();
243  }
244  return trackHits;
245  }
auto coord(Vector &v, unsigned int n) noexcept
Returns an object to manage the coordinate n of a vector.
constexpr auto abs(T v)
Returns the absolute value of the argument.
Int_t WeightedFit(const Int_t n, const Double_t *x, const Double_t *y, const Double_t *w, Double_t *parm)
Detector simulation of raw signals on wires.
const shower::LArPandoraShowerAlg & GetLArPandoraShowerAlg() const
Definition: IShowerTool.h:82
TVector2 HitCoordinates(detinfo::DetectorPropertiesData const &detProp, art::Ptr< recob::Hit > const &hit) const
const shower::LArPandoraShowerAlg& ShowerRecoTools::IShowerTool::GetLArPandoraShowerAlg ( ) const
inlineprotectedinherited
template<class T >
art::Ptr<T> ShowerRecoTools::IShowerTool::GetProducedElementPtr ( std::string  Name,
reco::shower::ShowerElementHolder ShowerEleHolder,
int  iter = -1 
)
inlineprotectedinherited

Definition at line 102 of file IShowerTool.h.

References reco::shower::ShowerElementHolder::CheckElement(), reco::shower::ShowerProducedPtrsHolder::CheckUniqueProduerPtr(), reco::shower::ShowerProducedPtrsHolder::GetArtPtr(), and reco::shower::ShowerElementHolder::GetShowerNumber().

105  {
106 
107  //Check the element has been set
108  bool check_element = ShowerEleHolder.CheckElement(Name);
109  if (!check_element) {
110  throw cet::exception("IShowerTool") << "tried to get a element that does not exist. Failed "
111  "at making the art ptr for Element: "
112  << Name << std::endl;
113  }
114 
115  //Check the unique ptr has been set.
116  bool check_ptr = UniquePtrs->CheckUniqueProduerPtr(Name);
117  if (!check_ptr) {
118  throw cet::exception("IShowerTool")
119  << "tried to get a ptr that does not exist. Failed at making the art ptr for Element"
120  << Name;
121  }
122 
123  //Check if the user has defined an index if not just use the current shower index/
124  int index;
125  if (iter != -1) { index = iter; }
126  else {
127  index = ShowerEleHolder.GetShowerNumber();
128  }
129 
130  //Make the ptr
131  return UniquePtrs->GetArtPtr<T>(Name, index);
132  }
reco::shower::ShowerProducedPtrsHolder * UniquePtrs
Definition: IShowerTool.h:85
bool CheckUniqueProduerPtr(const std::string &Name) const
bool CheckElement(const std::string &Name) const
art::Ptr< T > GetArtPtr(const std::string &Name, const int &iter) const
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
int ShowerRecoTools::IShowerTool::GetVectorPtrSize ( std::string  Name)
inlineprotectedinherited
void ShowerRecoTools::IShowerTool::InitaliseProducerPtr ( reco::shower::ShowerProducedPtrsHolder uniqueproducerPtrs)
inlineinherited

Definition at line 68 of file IShowerTool.h.

69  {
70  UniquePtrs = &uniqueproducerPtrs;
71  }
reco::shower::ShowerProducedPtrsHolder * UniquePtrs
Definition: IShowerTool.h:85
virtual void ShowerRecoTools::IShowerTool::InitialiseProducers ( )
inlinevirtualinherited
template<class T >
void ShowerRecoTools::IShowerTool::InitialiseProduct ( std::string  Name,
std::string  InstanceName = "" 
)
inlineprotectedinherited

Definition at line 137 of file IShowerTool.h.

References art::ProducesCollector::produces(), and reco::shower::ShowerProducedPtrsHolder::SetShowerUniqueProduerPtr().

138  {
139 
140  if (collectorPtr == nullptr) {
141  mf::LogWarning("IShowerTool") << "The art::ProducesCollector ptr has not been set";
142  return;
143  }
144 
145  collectorPtr->produces<T>(InstanceName);
146  UniquePtrs->SetShowerUniqueProduerPtr(type<T>(), Name, InstanceName);
147  }
reco::shower::ShowerProducedPtrsHolder * UniquePtrs
Definition: IShowerTool.h:85
art::ProducesCollector * collectorPtr
Definition: IShowerTool.h:97
void produces(std::string const &instanceName={}, Persistable const persistable=Persistable::Yes)
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
int SetShowerUniqueProduerPtr(type< T >, const std::string &Name, const std::string &Instance="")
void ShowerRecoTools::IShowerTool::PrintPtr ( std::string  Name)
inlineprotectedinherited

Definition at line 162 of file IShowerTool.h.

References reco::shower::ShowerProducedPtrsHolder::PrintPtr().

Referenced by ShowerRecoTools::ShowerExampleTool::CalculateElement().

162 { UniquePtrs->PrintPtr(Name); }
reco::shower::ShowerProducedPtrsHolder * UniquePtrs
Definition: IShowerTool.h:85
void PrintPtr(const std::string &Name) const
void ShowerRecoTools::IShowerTool::PrintPtrs ( )
inlineprotectedinherited
int ShowerRecoTools::IShowerTool::RunShowerTool ( const art::Ptr< recob::PFParticle > &  pfparticle,
art::Event Event,
reco::shower::ShowerElementHolder ShowerEleHolder,
std::string  evd_display_name_append = "" 
)
inlineinherited

Definition at line 46 of file IShowerTool.h.

50  {
51 
52  int calculation_status = CalculateElement(pfparticle, Event, ShowerEleHolder);
53  if (calculation_status != 0) return calculation_status;
54  if (fRunEventDisplay) {
56  pfparticle, Event, ShowerEleHolder, evd_display_name_append);
57  }
58  return calculation_status;
59  }
void DebugEVD(art::Ptr< recob::PFParticle > const &pfparticle, art::Event const &Event, const reco::shower::ShowerElementHolder &ShowerEleHolder, std::string const &evd_disp_name_append="") const
virtual int CalculateElement(const art::Ptr< recob::PFParticle > &pfparticle, art::Event &Event, reco::shower::ShowerElementHolder &ShowerEleHolder)=0
const shower::LArPandoraShowerAlg & GetLArPandoraShowerAlg() const
Definition: IShowerTool.h:82
void ShowerRecoTools::IShowerTool::SetPtr ( art::ProducesCollector collector)
inlineinherited

Definition at line 65 of file IShowerTool.h.

65 { collectorPtr = collector; }
art::ProducesCollector * collectorPtr
Definition: IShowerTool.h:97
Int_t ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::WeightedFit ( const Int_t  n,
const Double_t *  x,
const Double_t *  y,
const Double_t *  w,
Double_t *  parm 
)
private

Definition at line 248 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

References DEFINE_ART_CLASS_TOOL, and n.

Referenced by FindInitialTrackHits().

253  {
254 
255  Double_t sumx = 0.;
256  Double_t sumx2 = 0.;
257  Double_t sumy = 0.;
258  Double_t sumxy = 0.;
259  Double_t sumw = 0.;
260  Double_t eparm[2];
261 
262  parm[0] = 0.;
263  parm[1] = 0.;
264  eparm[0] = 0.;
265  eparm[1] = 0.;
266 
267  for (Int_t i = 0; i < n; i++) {
268  sumx += x[i] * w[i];
269  sumx2 += x[i] * x[i] * w[i];
270  sumy += y[i] * w[i];
271  sumxy += x[i] * y[i] * w[i];
272  sumw += w[i];
273  }
274 
275  if (sumx2 * sumw - sumx * sumx == 0.) return 1;
276  if (sumx2 - sumx * sumx / sumw == 0.) return 1;
277 
278  parm[0] = (sumy * sumx2 - sumx * sumxy) / (sumx2 * sumw - sumx * sumx);
279  parm[1] = (sumxy - sumx * sumy / sumw) / (sumx2 - sumx * sumx / sumw);
280 
281  eparm[0] = sumx2 * (sumx2 * sumw - sumx * sumx);
282  eparm[1] = (sumx2 - sumx * sumx / sumw);
283 
284  if (eparm[0] < 0. || eparm[1] < 0.) return 1;
285 
286  eparm[0] = sqrt(eparm[0]) / (sumx2 * sumw - sumx * sumx);
287  eparm[1] = sqrt(eparm[1]) / (sumx2 - sumx * sumx / sumw);
288 
289  return 0;
290  }
Float_t x
Definition: compare.C:6
Float_t y
Definition: compare.C:6
Char_t n[5]
Float_t w
Definition: plot.C:20

Member Data Documentation

bool ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fApplyChargeWeight
private

Definition at line 53 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by FindInitialTrackHits().

art::InputTag ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fHitLabel
private

Definition at line 56 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().

std::string ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fInitialTrackHitsOutputLabel
private

Definition at line 59 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().

std::string ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fInitialTrackSpacePointsOutputLabel
private

Definition at line 60 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().

std::vector<unsigned int> ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fNfithits
private
unsigned int ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fNfitpass
private
art::InputTag ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fPFParticleLabel
private

Definition at line 54 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().

std::string ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fShowerDirectionInputLabel
private

Definition at line 58 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().

std::string ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fShowerStartPositionInputLabel
private

Definition at line 57 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().

std::vector<double> ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fToler
private
int ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::fVerbose
private

Definition at line 55 of file Shower2DLinearRegressionTrackHitFinder_tool.cc.

Referenced by CalculateElement().


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