LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
lbne::PhotonCounterT0Matching Class Reference
Inheritance diagram for lbne::PhotonCounterT0Matching:
art::EDProducer art::ProducerBase art::Consumer art::EngineCreator art::ProductRegistryHelper

Public Types

using ModuleType = EDProducer
 
using WorkerType = WorkerT< EDProducer >
 
template<typename UserConfig , typename KeysToIgnore = void>
using Table = ProducerBase::Table< UserConfig, KeysToIgnore >
 

Public Member Functions

 PhotonCounterT0Matching (fhicl::ParameterSet const &p)
 
 PhotonCounterT0Matching (PhotonCounterT0Matching const &)=delete
 
 PhotonCounterT0Matching (PhotonCounterT0Matching &&)=delete
 
PhotonCounterT0Matchingoperator= (PhotonCounterT0Matching const &)=delete
 
PhotonCounterT0Matchingoperator= (PhotonCounterT0Matching &&)=delete
 
void produce (art::Event &e) override
 
void beginJob () override
 
void reconfigure (fhicl::ParameterSet const &p)
 
template<typename PROD , BranchType B = InEvent>
ProductID getProductID (std::string const &instanceName={}) const
 
template<typename PROD , BranchType B>
ProductID getProductID (ModuleDescription const &moduleDescription, std::string const &instanceName) const
 
bool modifiesEvent () const
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > consumes (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< T > consumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > mayConsume (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< T > mayConsumeView (InputTag const &it)
 
base_engine_tcreateEngine (seed_t seed)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make, label_t const &engine_label)
 
seed_t get_seed_value (fhicl::ParameterSet const &pset, char const key[]="seed", seed_t const implicit_seed=-1)
 

Static Public Member Functions

static cet::exempt_ptr< Consumernon_module_context ()
 

Protected Member Functions

CurrentProcessingContext const * currentContext () const
 
void validateConsumedProduct (BranchType const bt, ProductInfo const &pi)
 
void prepareForJob (fhicl::ParameterSet const &pset)
 
void showMissingConsumes () const
 

Private Member Functions

void TrackProp (double TrackStart_X, double TrackEnd_X, double &TrackLength_X, double &TrackCentre_X, double TrackStart_Y, double TrackEnd_Y, double &TrackLength_Y, double &TrackCentre_Y, double TrackStart_Z, double TrackEnd_Z, double &TrackLength_Z, double &TrackCentre_Z, double trkTimeStart, double trkTimeEnd, double &trkTimeLengh, double &trkTimeCentre, double &TrackLength)
 
double DistFromPoint (double StartY, double EndY, double StartZ, double EndZ, double PointY, double PointZ)
 

Private Attributes

std::string fTrackModuleLabel
 
std::string fShowerModuleLabel
 
std::string fHitsModuleLabel
 
std::string fFlashModuleLabel
 
std::string fTruthT0ModuleLabel
 
double fPredictedXConstant
 
double fPredictedXPower = 1
 
double fPredictedExpConstant
 
double fPredictedExpGradient
 
double fDriftWindowSize
 
double fWeightOfDeltaYZ
 
double fMatchCriteria
 
double fPEThreshold
 
bool fVerbosity
 
double TrackLength_X
 
double TrackCentre_X
 
double BestTrackCentre_X
 
double TrackLength_Y
 
double TrackCentre_Y
 
double TrackLength_Z
 
double TrackCentre_Z
 
double trkTimeStart
 
double trkTimeEnd
 
double trkTimeLengh
 
double trkTimeCentre
 
double BesttrkTimeCentre
 
double TrackLength
 
double BestTrackLength
 
double PredictedX
 
double BestPredictedX
 
double TimeSepPredX
 
double BestTimeSepPredX
 
double DeltaPredX
 
double BestDeltaPredX
 
double minYZSep
 
double BestminYZSep
 
double FitParam
 
double BestFitParam
 
double FlashTime
 
double BestFlashTime
 
double TimeSep
 
double BestTimeSep
 
int BestFlash
 
int FlashTriggerType =1
 
double YZSep
 
double MCTruthT0
 
TTree * fTree
 
TH2D * hPredX_T
 
TH2D * hPredX_PE
 
TH2D * hPredX_T_PE
 
TH2D * hdeltaX_deltaYZ
 
TH2D * hdeltaYZ_Length
 
TH2D * hFitParam_Length
 
TH2D * hPhotonT0_MCT0
 
TH1D * hT0_diff_full
 
TH1D * hT0_diff_zoom
 

Detailed Description

Definition at line 86 of file PhotonCounterT0Matching_module.cc.

Member Typedef Documentation

using art::EDProducer::ModuleType = EDProducer
inherited

Definition at line 34 of file EDProducer.h.

template<typename UserConfig , typename KeysToIgnore = void>
using art::EDProducer::Table = ProducerBase::Table<UserConfig, KeysToIgnore>
inherited

Definition at line 43 of file EDProducer.h.

using art::EDProducer::WorkerType = WorkerT<EDProducer>
inherited

Definition at line 35 of file EDProducer.h.

Constructor & Destructor Documentation

lbne::PhotonCounterT0Matching::PhotonCounterT0Matching ( fhicl::ParameterSet const &  p)
explicit

Definition at line 164 of file PhotonCounterT0Matching_module.cc.

References reconfigure().

167 {
168  // Call appropriate produces<>() functions here.
169  produces< std::vector<anab::T0> >();
170  produces< art::Assns<recob::Track , anab::T0> >();
171  produces< art::Assns<recob::Shower, anab::T0> > ();
172  reconfigure(p);
173 }
void reconfigure(fhicl::ParameterSet const &p)
lbne::PhotonCounterT0Matching::PhotonCounterT0Matching ( PhotonCounterT0Matching const &  )
delete
lbne::PhotonCounterT0Matching::PhotonCounterT0Matching ( PhotonCounterT0Matching &&  )
delete

Member Function Documentation

void lbne::PhotonCounterT0Matching::beginJob ( )
overridevirtual

Reimplemented from art::EDProducer.

Definition at line 196 of file PhotonCounterT0Matching_module.cc.

References BestFitParam, BestFlashTime, BestminYZSep, BestPredictedX, BestTimeSep, BestTimeSepPredX, BestTrackCentre_X, BesttrkTimeCentre, fTree, hdeltaX_deltaYZ, hdeltaYZ_Length, hFitParam_Length, hPhotonT0_MCT0, hPredX_PE, hPredX_T, hPredX_T_PE, hT0_diff_full, hT0_diff_zoom, art::TFileDirectory::make(), and MCTruthT0.

197 {
198  // Implementation of optional member function here.
200  fTree = tfs->make<TTree>("PhotonCounterT0Matching","PhotonCounterT0");
201  fTree->Branch("TrackCentre_X",&BestTrackCentre_X,"TrackCentre_X/D");
202  fTree->Branch("PredictedX" ,&BestPredictedX ,"PredictedX/D");
203  fTree->Branch("TrackTimeCent",&BesttrkTimeCentre,"TimeSepPredX/D");
204  fTree->Branch("FlashTime" ,&BestFlashTime ,"FlashTime/D");
205  fTree->Branch("TimeSep" ,&BestTimeSep ,"TimeSep/D");
206  fTree->Branch("TimeSepPredX" ,&BestTimeSepPredX ,"TimeSepPredX/D");
207  fTree->Branch("minYZSep" ,&BestminYZSep ,"minYZSep/D");
208  fTree->Branch("FitParam" ,&BestFitParam ,"FitParam/D");
209  fTree->Branch("MCTruthT0" ,&MCTruthT0 ,"MCTruthT0/D");
210 
211  hPredX_T = tfs->make<TH2D>("hPredX_T" ,"Predicted X from timing information against reconstructed X; Reconstructed X (cm); Predicted X (cm)", 30, 0, 300, 30, 0, 300 );
212  hPredX_PE = tfs->make<TH2D>("hPredX_PE","Predicted X from PE information against reconstructed X; Reconstructed X (cm); Predicted X (cm)" , 30, 0, 300, 30, 0, 300 );
213  hPredX_T_PE = tfs->make<TH2D>("hPredX_T_PE",
214  "Predicted X position from time and PE information; Predicted X from timing information (cm); Predicted X from PE information",
215  60, 0, 300, 60, 0, 300);
216  hdeltaX_deltaYZ = tfs->make<TH2D>("hdeltaX_deltaYZ",
217  "Difference between X predicted from PE's and T agaisnt distance of flash from track in YZ; Difference in X predicted from PE's and T (cm); Distance of flash from track in YZ (cm)",
218  40, 0, 200, 40, 0, 100);
219  hdeltaYZ_Length = tfs->make<TH2D>("hdeltaYZ_Length",
220  "Distance of flash from track against track length; Distance from flash to track (cm); Track length (cm)",
221  20, 0, 100, 60, 0, 300);
222  hFitParam_Length = tfs->make<TH2D>("hFitParam_Length", "How fit correlates with track length; Fit correlation; Track Length (cm)", 50, 0, 250, 30, 0, 300);
223  hPhotonT0_MCT0 = tfs->make<TH2D>("hPhotonT0_MCT0" , "Comparing Photon Counter reconstructed T0 against MCTruth T0; Photon Counter T0 (us); MCTruthT0 T0 (us)", 1760, -1600, 16000, 1760, -1600, 16000);
224  hT0_diff_full = tfs->make<TH1D>("hT0_diff_full" , "Difference between MCTruth T0 and photon detector T0; Time difference (us); Number", 500, -2500, 2500);
225  hT0_diff_zoom = tfs->make<TH1D>("hT0_diff_zoom" , "Difference between MCTruth T0 and photon detector T0; Time difference (us); Number", 320, -1.6, 1.6);
226 }
T * make(ARGS...args) const
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::consumes ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::consumes ( InputTag const &  it)
inherited

Definition at line 147 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

148 {
149  if (!moduleContext_)
150  return ProductToken<T>::invalid();
151 
152  consumables_[BT].emplace_back(ConsumableType::Product,
153  TypeID{typeid(T)},
154  it.label(),
155  it.instance(),
156  it.process());
157  return ProductToken<T>{it};
158 }
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename T , art::BranchType BT>
void art::Consumer::consumesMany ( )
inherited

Definition at line 162 of file Consumer.h.

163 {
164  if (!moduleContext_)
165  return;
166 
167  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
168 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::consumesView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::consumesView ( InputTag const &  it)
inherited

Definition at line 172 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

173 {
174  if (!moduleContext_)
175  return ViewToken<T>::invalid();
176 
177  consumables_[BT].emplace_back(ConsumableType::ViewElement,
178  TypeID{typeid(T)},
179  it.label(),
180  it.instance(),
181  it.process());
182  return ViewToken<T>{it};
183 }
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited

Definition at line 32 of file EngineCreator.cc.

References art::EngineCreator::rng().

34 {
35  return rng()->createEngine(
36  placeholder_schedule_id(), seed, kind_of_engine_to_make);
37 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited

Definition at line 40 of file EngineCreator.cc.

References art::EngineCreator::rng().

43 {
44  return rng()->createEngine(
45  placeholder_schedule_id(), seed, kind_of_engine_to_make, engine_label);
46 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
CurrentProcessingContext const * art::EDProducer::currentContext ( ) const
protectedinherited

Definition at line 120 of file EDProducer.cc.

References art::EDProducer::current_context_.

121  {
122  return current_context_.get();
123  }
CPC_exempt_ptr current_context_
Definition: EDProducer.h:116
double lbne::PhotonCounterT0Matching::DistFromPoint ( double  StartY,
double  EndY,
double  StartZ,
double  EndZ,
double  PointY,
double  PointZ 
)
private

Calculate the distance between the centre of the flash and the centre of a line connecting two adjacent space points.

Definition at line 477 of file PhotonCounterT0Matching_module.cc.

References DEFINE_ART_MODULE.

Referenced by produce().

477  {
479  double Length = hypot ( fabs( EndY - StartY), fabs ( EndZ - StartZ ) );
480  // double distance = (double)((point.x - line_start.x) * (line_end.y - line_start.y) - (point.y - line_start.y) * (line_end.x - line_start.x)) / normalLength;
481  double distance = ( (PointZ - StartZ) * (EndY - StartY) - (PointY - StartY) * (EndZ - StartZ) ) / Length;
482  return fabs(distance);
483 }
EngineCreator::seed_t EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited

Definition at line 49 of file EngineCreator.cc.

References fhicl::ParameterSet::get().

Referenced by art::MixFilter< T >::initEngine_().

52 {
53  auto const& explicit_seeds = pset.get<std::vector<int>>(key, {});
54  return explicit_seeds.empty() ? implicit_seed : explicit_seeds.front();
55 }
template<typename PROD , BranchType B>
ProductID art::EDProducer::getProductID ( std::string const &  instanceName = {}) const
inlineinherited

Definition at line 123 of file EDProducer.h.

References art::EDProducer::moduleDescription_.

124  {
125  return ProducerBase::getProductID<PROD, B>(moduleDescription_,
126  instanceName);
127  }
ModuleDescription moduleDescription_
Definition: EDProducer.h:115
template<typename PROD , BranchType B>
ProductID art::ProducerBase::getProductID ( ModuleDescription const &  moduleDescription,
std::string const &  instanceName 
) const
inherited

Definition at line 56 of file ProducerBase.h.

References B, and art::ModuleDescription::moduleLabel().

Referenced by art::ProducerBase::modifiesEvent().

58  {
59  auto const& pd =
60  get_ProductDescription<PROD>(B, md.moduleLabel(), instanceName);
61  return pd.productID();
62  }
Int_t B
Definition: plot.C:25
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::mayConsume ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::mayConsume ( InputTag const &  it)
inherited

Definition at line 190 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

191 {
192  if (!moduleContext_)
193  return ProductToken<T>::invalid();
194 
195  consumables_[BT].emplace_back(ConsumableType::Product,
196  TypeID{typeid(T)},
197  it.label(),
198  it.instance(),
199  it.process());
200  return ProductToken<T>{it};
201 }
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename T , art::BranchType BT>
void art::Consumer::mayConsumeMany ( )
inherited

Definition at line 205 of file Consumer.h.

206 {
207  if (!moduleContext_)
208  return;
209 
210  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
211 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::mayConsumeView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::mayConsumeView ( InputTag const &  it)
inherited

Definition at line 215 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

216 {
217  if (!moduleContext_)
218  return ViewToken<T>::invalid();
219 
220  consumables_[BT].emplace_back(ConsumableType::ViewElement,
221  TypeID{typeid(T)},
222  it.label(),
223  it.instance(),
224  it.process());
225  return ViewToken<T>{it};
226 }
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
bool art::ProducerBase::modifiesEvent ( ) const
inlineinherited

Definition at line 40 of file ProducerBase.h.

References art::ProducerBase::getProductID().

41  {
42  return true;
43  }
PhotonCounterT0Matching& lbne::PhotonCounterT0Matching::operator= ( PhotonCounterT0Matching const &  )
delete
PhotonCounterT0Matching& lbne::PhotonCounterT0Matching::operator= ( PhotonCounterT0Matching &&  )
delete
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited

Definition at line 89 of file Consumer.cc.

References fhicl::ParameterSet::get_if_present().

Referenced by art::EDProducer::doBeginJob(), art::EDFilter::doBeginJob(), and art::EDAnalyzer::doBeginJob().

90 {
91  if (!moduleContext_)
92  return;
93 
94  pset.get_if_present("errorOnMissingConsumes", requireConsumes_);
95  for (auto& consumablesPerBranch : consumables_) {
96  cet::sort_all(consumablesPerBranch);
97  }
98 }
bool requireConsumes_
Definition: Consumer.h:137
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
void lbne::PhotonCounterT0Matching::produce ( art::Event e)
overridevirtual

Implements art::EDProducer.

Definition at line 228 of file PhotonCounterT0Matching_module.cc.

References BestDeltaPredX, BestFitParam, BestFlash, BestFlashTime, BestminYZSep, BestPredictedX, BestTimeSep, BestTimeSepPredX, BestTrackCentre_X, BestTrackLength, BesttrkTimeCentre, util::CreateAssn(), DeltaPredX, DistFromPoint(), fDriftWindowSize, fFlashModuleLabel, fHitsModuleLabel, Fill(), art::fill_ptr_vector(), FitParam, FlashTime, FlashTriggerType, fMatchCriteria, fPEThreshold, fPredictedExpConstant, fPredictedExpGradient, fPredictedXConstant, fPredictedXPower, fShowerModuleLabel, fTrackModuleLabel, fTree, fTruthT0ModuleLabel, fVerbosity, fWeightOfDeltaYZ, art::DataViewImpl::getByLabel(), hdeltaX_deltaYZ, hdeltaYZ_Length, hFitParam_Length, hPhotonT0_MCT0, hPredX_PE, hPredX_T, hPredX_T_PE, hT0_diff_full, hT0_diff_zoom, art::Handle< T >::isValid(), MCTruthT0, minYZSep, PredictedX, art::Event::put(), TimeSep, TimeSepPredX, TrackCentre_X, TrackCentre_Y, TrackCentre_Z, TrackLength, TrackLength_X, TrackLength_Y, TrackLength_Z, TrackProp(), trkTimeCentre, trkTimeEnd, trkTimeLengh, trkTimeStart, and YZSep.

229 {
230  // Access art services...
232  auto const* detprop = lar::providerFrom<detinfo::DetectorPropertiesService>();
233  auto const* timeservice = lar::providerFrom<detinfo::DetectorClocksService>();
234  //Commenting this out since it doesn't appear to actually be used.
235 // art::ServiceHandle<cheat::BackTrackerService> bt_serv;
236 
237  //TrackList handle
238  art::Handle< std::vector<recob::Track> > trackListHandle;
239  std::vector<art::Ptr<recob::Track> > tracklist;
240  if (evt.getByLabel(fTrackModuleLabel,trackListHandle))
241  art::fill_ptr_vector(tracklist, trackListHandle);
242 
243  //ShowerList handle
244  art::Handle< std::vector<recob::Shower> > showerListHandle;
245  std::vector<art::Ptr<recob::Shower> > showerlist;
246  if (evt.getByLabel(fShowerModuleLabel,showerListHandle))
247  art::fill_ptr_vector(showerlist, showerListHandle);
248 
249  //HitList Handle
250  art::Handle< std::vector<recob::Hit> > hitListHandle;
251  std::vector<art::Ptr<recob::Hit> > hitlist;
252  if (evt.getByLabel(fHitsModuleLabel,hitListHandle))
253  art::fill_ptr_vector(hitlist, hitListHandle);
254 
255  //FlashList Handle
257  std::vector<art::Ptr<recob::OpFlash> > flashlist;
258  if (evt.getByLabel(fFlashModuleLabel, flashListHandle))
259  art::fill_ptr_vector(flashlist, flashListHandle);
260 
261  // Create anab::T0 objects and make association with recob::Track
262 
263  std::unique_ptr< std::vector<anab::T0> > T0col( new std::vector<anab::T0>);
264  std::unique_ptr< art::Assns<recob::Track, anab::T0> > Trackassn( new art::Assns<recob::Track, anab::T0>);
265  std::unique_ptr< art::Assns<recob::Shower, anab::T0> > Showerassn( new art::Assns<recob::Shower, anab::T0>);
266 
267  if (trackListHandle.isValid() && flashListHandle.isValid() ){
268  //Access tracks and hits
269  art::FindManyP<recob::Hit> fmtht(trackListHandle, evt, fTrackModuleLabel);
270  art::FindMany<anab::T0> fmtruth(trackListHandle, evt, fTruthT0ModuleLabel);
271 
272  size_t NTracks = tracklist.size();
273  size_t NFlashes = flashlist.size();
274 
275  if (fVerbosity)
276  std::cout << "There were " << NTracks << " tracks and " << NFlashes << " flashes in this event." << std::endl;
277 
278  // Now to access PhotonCounter for each track...
279  for(size_t iTrk=0; iTrk < NTracks; ++iTrk) {
280  if (fVerbosity) std::cout << "\n New Track " << (int)iTrk << std::endl;
281  // Reset Variables.
284  bool ValidTrack = false;
285 
286  // Work out Properties of the track.
287  recob::Track::Point_t trackStart, trackEnd;
288  std::tie(trackStart, trackEnd) = tracklist[iTrk]->Extent();
289  std::vector< art::Ptr<recob::Hit> > allHits = fmtht.at(iTrk);
290  size_t nHits = allHits.size();
291  trkTimeStart = allHits[nHits-1]->PeakTime() / timeservice->TPCClock().Frequency(); //Got in ticks, now in us!
292  trkTimeEnd = allHits[0]->PeakTime() / timeservice->TPCClock().Frequency(); //Got in ticks, now in us!
293  TrackProp ( trackStart.X(), trackEnd.X(), TrackLength_X, TrackCentre_X,
294  trackStart.Y(), trackEnd.Y(), TrackLength_Y, TrackCentre_Y,
295  trackStart.Z(), trackEnd.Z(), TrackLength_Z, TrackCentre_Z,
296  trkTimeStart , trkTimeEnd , trkTimeLengh , trkTimeCentre, // times in us!
297  TrackLength);
298 
299  // Some cout statement about track properties.
300  if (fVerbosity) {
301  std::cout << trackStart.X() << " " << trackEnd.X() << " " << TrackLength_X << " " << TrackCentre_X
302  << "\n" << trackStart.Y() << " " << trackEnd.Y() << " " << TrackLength_Y << " " << TrackCentre_Y
303  << "\n" << trackStart.Z() << " " << trackEnd.Z() << " " << TrackLength_Z << " " << TrackCentre_Z
304  << "\n" << trkTimeStart << " " << trkTimeEnd << " " << trkTimeLengh << " " << trkTimeCentre
305  << std::endl;
306  }
307  // ----- Loop over flashes ------
308  for ( size_t iFlash=0; iFlash < NFlashes; ++iFlash ) {
309  //Reset some flash specific quantities
310  YZSep = minYZSep = 9999;
311  FlashTime = TimeSep = 9999;
313  // Check flash could be caused by track...
314  FlashTime = flashlist[iFlash]->Time(); // Got in us!
315  TimeSep = trkTimeCentre - FlashTime; // Time in us!
316  if ( TimeSep < 0 || TimeSep > (fDriftWindowSize/timeservice->TPCClock().Frequency() ) ) continue; // Times compared in us!
317 
318  // Check flash has enough PE's to satisfy our threshold
319  if ( flashlist[iFlash]->TotalPE() < fPEThreshold ) continue;
320 
321  // Work out some quantities for this flash...
322  // PredictedX = ( A / x^n ) + exp ( B + Cx )
323  PredictedX = (fPredictedXConstant / pow ( flashlist[iFlash]->TotalPE(), fPredictedXPower ) ) + ( exp ( fPredictedExpConstant + ( fPredictedExpGradient * flashlist[iFlash]->TotalPE() ) ) );
324  TimeSepPredX = TimeSep * detprop->DriftVelocity(); // us * cm/us = cm!
326  // Dependant on each point...
327  for ( size_t Point = 1; Point < tracklist[iTrk]->NumberTrajectoryPoints(); ++Point ) {
328  TVector3 NewPoint = tracklist[iTrk]->LocationAtPoint(Point);
329  TVector3 PrevPoint = tracklist[iTrk]->LocationAtPoint(Point-1);
330  YZSep = DistFromPoint ( NewPoint[1], PrevPoint[1], NewPoint[2], PrevPoint[2],
331  flashlist[iFlash]->YCenter(), flashlist[iFlash]->ZCenter());
332  if ( Point == 1 ) minYZSep = YZSep;
333  if ( YZSep < minYZSep ) minYZSep = YZSep;
334  }
335 
336  // Determine how well matched this track is......
338  else if (fMatchCriteria == 1) FitParam = minYZSep;
339  else if (fMatchCriteria == 2) FitParam = DeltaPredX;
340 
341  //----FLASH INFO-----
342  if (fVerbosity) {
343  std::cout << "\nFlash " << (int)iFlash << " " << TrackCentre_X << ", " << TimeSepPredX << " - " << PredictedX << " = "
344  << DeltaPredX << ", " << minYZSep << " -> " << FitParam << std::endl;
345  }
346  //----Select best flash------
347  //double YFitRegion = (-1 * DeltaPredX ) + 80;
348  //if ( minYZSep > YFitRegion ) continue;
349  if ( FitParam < BestFitParam ) {
350  ValidTrack = true;
351  BestFlash = (int)iFlash;
360  BestFlashTime = FlashTime;
362  } // Find best Flash
363  } // Loop over Flashes
364 
365  // ---- Now Make association and fill TTree/Histos with the best matched flash.....
366  if (ValidTrack) {
367 
368  // -- Fill Histos --
375  // ------ Compare Photon Matched to MCTruth Matched -------
376  if ( fmtruth.isValid() ) {
377  std::vector<const anab::T0*> T0s = fmtruth.at((int)iTrk);
378  for ( size_t i=0; i<T0s.size(); ++i) {
379  MCTruthT0 = T0s[i]->Time() / 1e3; // Got in ns, now in us!!
380  hPhotonT0_MCT0 ->Fill( BestFlashTime, MCTruthT0 );
381  hT0_diff_full -> Fill( MCTruthT0 - BestFlashTime );
382  hT0_diff_zoom -> Fill( MCTruthT0 - BestFlashTime );
383  //std::cout << "Size " << T0s.size() << " " << MCTruthT0 << " " << BestFlashTime << std::endl;
384  }
385  }
386  // -- Fill TTree --
387  fTree->Fill();
388  //Make Association
389  T0col->push_back(anab::T0(BestFlashTime * 1e3,
391  (int)BestFlash,
392  (*T0col).size(),
394  ));
395  util::CreateAssn(*this, evt, *T0col, tracklist[iTrk], *Trackassn);
396  } // Valid Track
397  } // Loop over tracks
398  }
399  /* // ------------------------------------------------- SHOWER STUFF -------------------------------------------------
400  if (showerListHandle.isValid()){
401  art::FindManyP<recob::Hit> fmsht(showerListHandle,evt, fShowerModuleLabel);
402  // Now Loop over showers....
403  size_t NShowers = showerlist.size();
404  for (size_t Shower = 0; Shower < NShowers; ++Shower) {
405  ShowerMatchID = 0;
406  ShowerID = 0;
407  ShowerT0 = 0;
408  std::vector< art::Ptr<recob::Hit> > allHits = fmsht.at(Shower);
409 
410  std::map<int,double> showeride;
411  for(size_t h = 0; h < allHits.size(); ++h){
412  art::Ptr<recob::Hit> hit = allHits[h];
413  std::vector<sim::IDE> ides;
414  std::vector<sim::TrackIDE> TrackIDs = bt->HitToTrackID(hit);
415 
416  for(size_t e = 0; e < TrackIDs.size(); ++e){
417  showeride[TrackIDs[e].trackID] += TrackIDs[e].energy;
418  }
419  }
420  // Work out which IDE despoited the most charge in the hit if there was more than one.
421  double maxe = -1;
422  double tote = 0;
423  for (std::map<int,double>::iterator ii = showeride.begin(); ii!=showeride.end(); ++ii){
424  tote += ii->second;
425  if ((ii->second)>maxe){
426  maxe = ii->second;
427  ShowerID = ii->first;
428  }
429  }
430  // Now have MCParticle trackID corresponding to shower, so get PdG code and T0 etc.
431  const simb::MCParticle *particle = bt->TrackIDToParticle(ShowerID);
432  ShowerT0 = particle->T();
433  ShowerID = particle->TrackId();
434  ShowerTriggerType = 1; // Using PhotonCounter as trigger, so tigger type is 1.
435 
436  T0col->push_back(anab::T0(ShowerT0,
437  ShowerTriggerType,
438  ShowerID,
439  (*T0col).size()
440  ));
441  util::CreateAssn(*this, evt, *T0col, showerlist[Shower], *Showerassn);
442  }// Loop over showers
443  }
444  */
445  evt.put(std::move(T0col));
446  evt.put(std::move(Trackassn));
447  evt.put(std::move(Showerassn));
448 
449 } // Produce
TNtupleSim Fill(f1, f2, f3, f4)
Definition: T0.h:19
double DistFromPoint(double StartY, double EndY, double StartZ, double EndZ, double PointY, double PointZ)
bool isValid() const
Definition: Handle.h:190
std::tuple< double, double, const reco::ClusterHit3D * > Point
Definitions used by the VoronoiDiagram algorithm.
Definition: DCEL.h:34
bool CreateAssn(PRODUCER const &prod, art::Event &evt, std::vector< T > const &a, art::Ptr< U > const &b, art::Assns< U, T > &assn, std::string a_instance, size_t indx=UINT_MAX)
Creates a single one-to-one association.
void TrackProp(double TrackStart_X, double TrackEnd_X, double &TrackLength_X, double &TrackCentre_X, double TrackStart_Y, double TrackEnd_Y, double &TrackLength_Y, double &TrackCentre_Y, double TrackStart_Z, double TrackEnd_Z, double &TrackLength_Z, double &TrackCentre_Z, double trkTimeStart, double trkTimeEnd, double &trkTimeLengh, double &trkTimeCentre, double &TrackLength)
tracking::Point_t Point_t
Definition: Track.h:55
void fill_ptr_vector(std::vector< Ptr< T >> &ptrs, H const &h)
Definition: Ptr.h:464
void lbne::PhotonCounterT0Matching::reconfigure ( fhicl::ParameterSet const &  p)

Definition at line 175 of file PhotonCounterT0Matching_module.cc.

References fDriftWindowSize, fFlashModuleLabel, fHitsModuleLabel, fMatchCriteria, fPEThreshold, fPredictedExpConstant, fPredictedExpGradient, fPredictedXConstant, fShowerModuleLabel, fTrackModuleLabel, fTruthT0ModuleLabel, fVerbosity, fWeightOfDeltaYZ, and fhicl::ParameterSet::get().

Referenced by PhotonCounterT0Matching().

176 {
177  // Implementation of optional member function here.
178  fTrackModuleLabel = (p.get< std::string > ("TrackModuleLabel" ) );
179  fShowerModuleLabel = (p.get< std::string > ("ShowerModuleLabel") );
180  fHitsModuleLabel = (p.get< std::string > ("HitsModuleLabel" ) );
181  fFlashModuleLabel = (p.get< std::string > ("FlashModuleLabel" ) );
182  fTruthT0ModuleLabel = (p.get< std::string > ("TruthT0ModuleLabel"));
183 
184  fPredictedXConstant = (p.get< double > ("PredictedXConstant" ) );
185  fPredictedExpConstant = (p.get< double > ("PredictedExpConstant" ) );
186  fPredictedExpGradient = (p.get< double > ("PredictedExpGradient" ) );
187 
188  fDriftWindowSize = (p.get< double > ("DriftWindowSize" ) );
189  fWeightOfDeltaYZ = (p.get< double > ("WeightOfDeltaYZ" ) );
190  fMatchCriteria = (p.get< double > ("MatchCriteria" ) );
191  fPEThreshold = (p.get< double > ("PEThreshold" ) );
192 
193  fVerbosity = (p.get< bool > ("Verbose",false) );
194 }
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

Definition at line 125 of file Consumer.cc.

Referenced by art::EDProducer::doEndJob(), art::EDFilter::doEndJob(), art::EDAnalyzer::doEndJob(), and art::RootOutput::endJob().

126 {
127  if (!moduleContext_)
128  return;
129 
130  // If none of the branches have missing consumes statements, exit early.
131  if (std::all_of(cbegin(missingConsumes_),
132  cend(missingConsumes_),
133  [](auto const& perBranch) { return perBranch.empty(); }))
134  return;
135 
136  constexpr cet::HorizontalRule rule{60};
137  mf::LogPrint log{"MTdiagnostics"};
138  log << '\n'
139  << rule('=') << '\n'
140  << "The following consumes (or mayConsume) statements are missing from\n"
141  << module_context(moduleDescription_) << '\n'
142  << rule('-') << '\n';
143 
144  cet::for_all_with_index(
145  missingConsumes_, [&log](std::size_t const i, auto const& perBranch) {
146  for (auto const& pi : perBranch) {
147  log << " "
148  << assemble_consumes_statement(static_cast<BranchType>(i), pi)
149  << '\n';
150  }
151  });
152  log << rule('=');
153 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139
void lbne::PhotonCounterT0Matching::TrackProp ( double  TrackStart_X,
double  TrackEnd_X,
double &  TrackLength_X,
double &  TrackCentre_X,
double  TrackStart_Y,
double  TrackEnd_Y,
double &  TrackLength_Y,
double &  TrackCentre_Y,
double  TrackStart_Z,
double  TrackEnd_Z,
double &  TrackLength_Z,
double &  TrackCentre_Z,
double  trkTimeStart,
double  trkTimeEnd,
double &  trkTimeLengh,
double &  trkTimeCentre,
double &  TrackLength 
)
private

Calculate central values for track X, Y, Z and time, as well as lengths and overall track length.

Definition at line 451 of file PhotonCounterT0Matching_module.cc.

References TrackLength_X, TrackLength_Y, TrackLength_Z, trkTimeLengh, and trkTimeStart.

Referenced by produce().

455  {
457  TrackLength_X = fabs ( TrackEnd_X - TrackStart_X );
458  if ( TrackStart_X < TrackEnd_X ) TrackCentre_X = TrackStart_X + 0.5*TrackLength_X;
459  else TrackCentre_X = TrackStart_X - 0.5*TrackLength_X;
460 
461  TrackLength_Y = fabs ( TrackEnd_Y - TrackStart_Y );
462  if ( TrackStart_Y < TrackEnd_Y ) TrackCentre_Y = TrackStart_Y + 0.5*TrackLength_Y;
463  else TrackCentre_Y = TrackStart_Y - 0.5*TrackLength_Y;
464 
465  TrackLength_Z = fabs ( TrackEnd_Z - TrackStart_Z );
466  if ( TrackStart_Z < TrackEnd_Z ) TrackCentre_Z = TrackStart_Z + 0.5*TrackLength_Z;
467  else TrackCentre_Z = TrackStart_Z - 0.5*TrackLength_Z;
468 
470  trkTimeCentre = trkTimeStart + 0.5*trkTimeLengh;
471 
472  TrackLength = pow( pow((TrackEnd_X-TrackStart_X), 2) + pow((TrackEnd_Y-TrackStart_Y), 2) + pow((TrackEnd_Z-TrackStart_Z), 2) , 0.5);
473 
474  return;
475 }
void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited

Definition at line 101 of file Consumer.cc.

References art::errors::ProductRegistrationFailure.

103 {
104  // Early exits if consumes tracking has been disabled or if the
105  // consumed product is an allowed consumable.
106  if (!moduleContext_)
107  return;
108 
109  if (cet::binary_search_all(consumables_[bt], pi))
110  return;
111 
112  if (requireConsumes_) {
114  "Consumer: an error occurred during validation of a "
115  "retrieved product\n\n")
116  << "The following consumes (or mayConsume) statement is missing from\n"
117  << module_context(moduleDescription_) << ":\n\n"
118  << " " << assemble_consumes_statement(bt, pi) << "\n\n";
119  }
120 
121  missingConsumes_[bt].insert(pi);
122 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
bool requireConsumes_
Definition: Consumer.h:137
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139

Member Data Documentation

double lbne::PhotonCounterT0Matching::BestDeltaPredX
private

Definition at line 141 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::BestFitParam
private

Definition at line 143 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

int lbne::PhotonCounterT0Matching::BestFlash
private

Definition at line 146 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::BestFlashTime
private

Definition at line 144 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::BestminYZSep
private

Definition at line 142 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::BestPredictedX
private

Definition at line 139 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::BestTimeSep
private

Definition at line 145 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::BestTimeSepPredX
private

Definition at line 140 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::BestTrackCentre_X
private

Definition at line 132 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::BestTrackLength
private

Definition at line 138 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::BesttrkTimeCentre
private

Definition at line 137 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::DeltaPredX
private

Definition at line 141 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::fDriftWindowSize
private

Definition at line 125 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

std::string lbne::PhotonCounterT0Matching::fFlashModuleLabel
private

Definition at line 119 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

std::string lbne::PhotonCounterT0Matching::fHitsModuleLabel
private

Definition at line 118 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::FitParam
private

Definition at line 143 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::FlashTime
private

Definition at line 144 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

int lbne::PhotonCounterT0Matching::FlashTriggerType =1
private

Definition at line 147 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::fMatchCriteria
private

Definition at line 127 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::fPEThreshold
private

Definition at line 128 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::fPredictedExpConstant
private

Definition at line 123 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::fPredictedExpGradient
private

Definition at line 124 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::fPredictedXConstant
private

Definition at line 121 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::fPredictedXPower = 1
private

Definition at line 122 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

std::string lbne::PhotonCounterT0Matching::fShowerModuleLabel
private

Definition at line 117 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

std::string lbne::PhotonCounterT0Matching::fTrackModuleLabel
private

Definition at line 116 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

TTree* lbne::PhotonCounterT0Matching::fTree
private

Definition at line 151 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

std::string lbne::PhotonCounterT0Matching::fTruthT0ModuleLabel
private

Definition at line 120 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

bool lbne::PhotonCounterT0Matching::fVerbosity
private

Definition at line 129 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

double lbne::PhotonCounterT0Matching::fWeightOfDeltaYZ
private

Definition at line 126 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and reconfigure().

TH2D* lbne::PhotonCounterT0Matching::hdeltaX_deltaYZ
private

Definition at line 155 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH2D* lbne::PhotonCounterT0Matching::hdeltaYZ_Length
private

Definition at line 156 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH2D* lbne::PhotonCounterT0Matching::hFitParam_Length
private

Definition at line 157 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH2D* lbne::PhotonCounterT0Matching::hPhotonT0_MCT0
private

Definition at line 158 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH2D* lbne::PhotonCounterT0Matching::hPredX_PE
private

Definition at line 153 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH2D* lbne::PhotonCounterT0Matching::hPredX_T
private

Definition at line 152 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH2D* lbne::PhotonCounterT0Matching::hPredX_T_PE
private

Definition at line 154 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH1D* lbne::PhotonCounterT0Matching::hT0_diff_full
private

Definition at line 159 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

TH1D* lbne::PhotonCounterT0Matching::hT0_diff_zoom
private

Definition at line 160 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::MCTruthT0
private

Definition at line 149 of file PhotonCounterT0Matching_module.cc.

Referenced by beginJob(), and produce().

double lbne::PhotonCounterT0Matching::minYZSep
private

Definition at line 142 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::PredictedX
private

Definition at line 139 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TimeSep
private

Definition at line 145 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TimeSepPredX
private

Definition at line 140 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TrackCentre_X
private

Definition at line 132 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TrackCentre_Y
private

Definition at line 133 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TrackCentre_Z
private

Definition at line 134 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TrackLength
private

Definition at line 138 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::TrackLength_X
private

Definition at line 132 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and TrackProp().

double lbne::PhotonCounterT0Matching::TrackLength_Y
private

Definition at line 133 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and TrackProp().

double lbne::PhotonCounterT0Matching::TrackLength_Z
private

Definition at line 134 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and TrackProp().

double lbne::PhotonCounterT0Matching::trkTimeCentre
private

Definition at line 137 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::trkTimeEnd
private

Definition at line 135 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().

double lbne::PhotonCounterT0Matching::trkTimeLengh
private

Definition at line 135 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and TrackProp().

double lbne::PhotonCounterT0Matching::trkTimeStart
private

Definition at line 135 of file PhotonCounterT0Matching_module.cc.

Referenced by produce(), and TrackProp().

double lbne::PhotonCounterT0Matching::YZSep
private

Definition at line 149 of file PhotonCounterT0Matching_module.cc.

Referenced by produce().


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