FillReco.cxx
Go to the documentation of this file.
1 #include "CAFMaker/FillReco.h"
2 
3 #include "CAFMaker/FillTruth.h" // for FillParticleTruth()
4 
6 
8 #include "Geometry/Geometry.h"
10 
11 #include "RecoBase/CellHit.h"
12 #include "RecoBase/Cluster.h"
13 #include "RecoBase/FitSum.h"
14 #include "RecoBase/Prong.h"
15 #include "RecoBase/RecoHit.h"
16 #include "RecoBase/Shower.h"
17 #include "RecoBase/Track.h"
18 #include "RecoBase/Energy.h"
19 
20 #include "Simulation/Particle.h"
21 
22 #include "MEFinder/MEClusters.h"
24 
25 #include "CosRej/TrkCntObj.h"
26 #include "NDReco/NDRecoTrkObj.h"
27 #include "NDReco/NDRecoBpfObj.h"
28 #include "NDReco/NDRecoPngObj.h"
29 #include "TrackInfo/TrackInfoObj.h"
30 
31 namespace caf
32 {
33  //......................................................................
34  void AddTrkMEToVec(const me::TrkME& michel,
35  std::vector<SRTrkME>* vec,
36  SRTrack& srTrk,
37  const std::vector<rb::Cluster>& sliceList,
38  std::vector<cheat::TrackIDE>& allTracks,
39  std::vector<cheat::TrackIDE>& sliceTracks,
40  std::vector<cheat::TrackIDE>& allTracksBirks,
41  std::vector<cheat::TrackIDE>& sliceTracksBirks,
42  int sliceIdx)
43  {
44  vec->push_back(SRTrkME());
45  SRTrkME& srME = vec->back();
46 
47  srME.nhitx = michel.NXCell();
48  srME.nhity = michel.NYCell();
49  srME.mid = michel.MID();
50  srME.calE = michel.CalorimetricEnergy();
51  srME.adc = michel.TotalADC();
52  srME.deltat = michel.DeltaT();
53  srME.disttotrack = michel.DistToTrk();
54  srME.meanpos = TVector3(michel.MeanX(),michel.MeanY(),michel.MeanZ());
55  srME.truth = FillParticleTruth(sliceList,
56  michel.AllCells(),
57  allTracks,
58  sliceTracks,
59  allTracksBirks,
60  sliceTracksBirks,
61  sliceIdx);
62 
63  srTrk.me.push_back(srME); // Also copy this TrkME to parent track
64  }
65 
66  //......................................................................
67  bool IsTrueDiF(const rb::Cluster& slice)
68  {
70  if(!bt->HaveTruthInfo()) return false;
71 
72  const std::vector<const sim::Particle*> particles = bt->HitsToParticle(slice.AllCells());
73 
74  for(const sim::Particle* part: particles){
75  // Check to see if we're dealing with an electron, continue if not.
76  if(abs(part->PdgCode()) != 11) continue;
77 
78  // Check to see if mother is a muon, continue if not
79  const int motherId = part->Mother();
80  if(motherId == 0) continue;
81  const sim::Particle* mother = bt->TrackIDToParticle(motherId);
82  if(!mother) continue;
83  if(abs(mother->PdgCode()) != 13) continue;
84 
85  if(part->Process() != "Decay") continue;
86  if(mother->EndMomentum().P() < 1e-5) continue;
87 
88  return true;
89  } //particle loop
90 
91  // None of the particles matched the conditions
92  return false;
93  }
94 
95  //......................................................................
96 
97  void FillDiFVars(const rb::Cluster& slice,
98  const std::vector<rb::Cluster>& sliceList,
99  std::vector<cheat::TrackIDE>& allTracks,
100  std::vector<cheat::TrackIDE>& sliceTracks,
101  std::vector<cheat::TrackIDE>& allTracksBirks,
102  std::vector<cheat::TrackIDE>& sliceTracksBirks,
103  int sliceIdx,
104  SRMRProperties& srMR)
105  {
106  srMR.isDiF = IsTrueDiF(slice);
107 
108  srMR.nhit = slice.NCell();
109  srMR.nhitx = slice.NXCell();
110  srMR.nhity = slice.NYCell();
111  srMR.nplane = slice.ExtentPlane();
112  srMR.nplanex = slice.ExtentPlane(geo::kX);
113  srMR.nplaney = slice.ExtentPlane(geo::kY);
116  srMR.minplane = slice.MinPlane(geo::kXorY);
117  srMR.maxplane = slice.MaxPlane(geo::kXorY);
118  srMR.calE = slice.CalorimetricEnergy();
119 
120  srMR.truth = FillParticleTruth(sliceList,
121  slice.AllCells(),
122  allTracks,
123  sliceTracks,
124  allTracksBirks,
125  sliceTracksBirks,
126  sliceIdx);
127  srMR.truthXView = FillParticleTruth(sliceList,
128  slice.XCells(),
129  allTracks,
130  sliceTracks,
131  allTracksBirks,
132  sliceTracksBirks,
133  sliceIdx);
134  srMR.truthYView = FillParticleTruth(sliceList,
135  slice.YCells(),
136  allTracks,
137  sliceTracks,
138  allTracksBirks,
139  sliceTracksBirks,
140  sliceIdx);
141  if (slice.NXCell() == 0) srMR.view = kY;
142  else if (slice.NYCell() == 0) srMR.view = kX;
143  else srMR.view = kXorY;
144  }
145 
146  //......................................................................
147 
148  void AddSlcMEToVec(const me::SlcME& michel,
149  std::vector<SRSlcME>* vec,
150  const std::vector<rb::Cluster>& sliceList,
151  std::vector<cheat::TrackIDE>& allTracks,
152  std::vector<cheat::TrackIDE>& sliceTracks,
153  std::vector<cheat::TrackIDE>& allTracksBirks,
154  std::vector<cheat::TrackIDE>& sliceTracksBirks,
155  int sliceIdx)
156  {
157  vec->push_back(SRSlcME());
158  SRSlcME& srME = vec->back();
159 
160  srME.mid = michel.MID();
161  srME.nhitx = michel.NXCell();
162  srME.nhity = michel.NYCell();
163  srME.adc = michel.TotalADC();
164  srME.calE = michel.CalorimetricEnergy();
165  srME.deltat = michel.DeltaT();
166  srME.disttoslc = michel.DistToSlc();
167  srME.meanpos = TVector3(michel.MeanX(),michel.MeanY(),michel.MeanZ());
168 
169  srME.truth = FillParticleTruth(sliceList,
170  michel.AllCells(),
171  allTracks,
172  sliceTracks,
173  allTracksBirks,
174  sliceTracksBirks,
175  sliceIdx);
176  }
177 
178  //......................................................................
179  template<class T> void FillProngVars(const rb::Prong& prng,
180  T& srPrng,
181  const std::vector<rb::Cluster>& sliceList,
182  std::vector<cheat::TrackIDE>& allTracks,
183  std::vector<cheat::TrackIDE>& sliceTracks,
184  std::vector<cheat::TrackIDE>& allTracksBirks,
185  std::vector<cheat::TrackIDE>& sliceTracksBirks,
186  int sliceIdx)
187  {
188  srPrng.nhit = prng.NCell();
189  srPrng.nhitx = prng.NXCell();
190  srPrng.nhity = prng.NYCell();
191  srPrng.nplane = prng.ExtentPlane();
192  srPrng.maxplanecont = prng.MostContiguousPlanes(geo::kXorY);
193  srPrng.maxplanegap = prng.MostMissingPlanes(geo::kXorY);
194  srPrng.start = prng.Start();
195  srPrng.dir = prng.Dir();
196  srPrng.pngminx = prng.MinX();
197  srPrng.pngminy = prng.MinY();
198  srPrng.pngmaxx = prng.MaxX();
199  srPrng.pngmaxy = prng.MaxY();
200  srPrng.calE = prng.CalorimetricEnergy();
201 
202  srPrng.len = prng.TotalLength();
203  srPrng.meantime = prng.MeanTNS();
204  srPrng.maxtime = prng.MaxTNS();
205  srPrng.mintime = prng.MinTNS();
206 
207 
208  srPrng.truth = FillParticleTruth(sliceList,
209  prng.AllCells(),
210  allTracks,
211  sliceTracks,
212  allTracksBirks,
213  sliceTracksBirks,
214  sliceIdx);
215  srPrng.truthXView = FillParticleTruth(sliceList,
216  prng.XCells(),
217  allTracks,
218  sliceTracks,
219  allTracksBirks,
220  sliceTracksBirks,
221  sliceIdx);
222  srPrng.truthYView = FillParticleTruth(sliceList,
223  prng.YCells(),
224  allTracks,
225  sliceTracks,
226  allTracksBirks,
227  sliceTracksBirks,
228  sliceIdx);
229 
230  if (prng.NXCell() == 0) srPrng.view = kY;
231  else if (prng.NYCell() == 0) srPrng.view = kX;
232  else srPrng.view = kXorY;
233 
235 
236  double totW = 0;
237  double resAvgTime = 0;
238  double ret = 0;
239 
240  for ( unsigned int i = 0; i < prng.NCell(); ++i)
241  {
242  const art::Ptr<rb::CellHit>& chit = prng.Cell(i);
243  double w = 1;
244  w *= cal->GetTimeRes(*chit);
245  ret += (chit->TNS()*(1/w));
246  totW += (1/w);
247  }
248  resAvgTime = ret/totW;
249  srPrng.meantimeRes = resAvgTime;
250 
251 
252  }
253 
254  // Explicitly instantiate the variants of this that are used
255  template void FillProngVars<SRProng>(const rb::Prong&,
256  SRProng&,
257  const std::vector<rb::Cluster>&,
258  std::vector<cheat::TrackIDE>& allTracks,
259  std::vector<cheat::TrackIDE>& sliceTracks,
260  std::vector<cheat::TrackIDE>& allTracksBirks,
261  std::vector<cheat::TrackIDE>& sliceTracksBirks,
262  int);
263  template void FillProngVars<SRFuzzyKProng>(const rb::Prong&,
264  SRFuzzyKProng&,
265  const std::vector<rb::Cluster>&,
266  std::vector<cheat::TrackIDE>& allTracks,
267  std::vector<cheat::TrackIDE>& sliceTracks,
268  std::vector<cheat::TrackIDE>& allTracksBirks,
269  std::vector<cheat::TrackIDE>& sliceTracksBirks,
270  int);
271  template void FillProngVars<SRTrack>(const rb::Prong&,
272  SRTrack&,
273  const std::vector<rb::Cluster>&,
274  std::vector<cheat::TrackIDE>& allTracks,
275  std::vector<cheat::TrackIDE>& sliceTracks,
276  std::vector<cheat::TrackIDE>& allTracksBirks,
277  std::vector<cheat::TrackIDE>& sliceTracksBirks,
278  int);
279 
280  //......................................................................
282  SRTrack& srTrk,
283  const std::vector<rb::Cluster>& sliceList,
284  std::vector<cheat::TrackIDE>& allTracks,
285  std::vector<cheat::TrackIDE>& sliceTracks,
286  std::vector<cheat::TrackIDE>& allTracksBirks,
287  std::vector<cheat::TrackIDE>& sliceTracksBirks,
288  int sliceIdx)
289  {
290  FillProngVars(trk, srTrk, sliceList, allTracks, sliceTracks, allTracksBirks, sliceTracksBirks, sliceIdx);
291  srTrk.stop = trk.Stop();
292  srTrk.stopdir = trk.StopDir();
293  // From N. Raddatz and K. Sachdev, see DocDB 7658-v2, slide 11
294  // trkLength * MIP dE/dx
295  srTrk.lenE = srTrk.len * 0.00157;
296 
297  srTrk.nplanegap = trk.NMissingPlanes(geo::kXorY);
298  }
299 
300  //......................................................................
302  const rb::Energy &energy,
303  SRTrack& srTrk,
304  const std::vector<rb::Cluster>& sliceList,
305  std::vector<cheat::TrackIDE>& allTracks,
306  std::vector<cheat::TrackIDE>& sliceTracks,
307  std::vector<cheat::TrackIDE>& allTracksBirks,
308  std::vector<cheat::TrackIDE>& sliceTracksBirks,
309  int sliceIdx)
310  {
311  FillTrackVars(trk, srTrk, sliceList, allTracks, sliceTracks, allTracksBirks, sliceTracksBirks, sliceIdx);
312  srTrk.overlapE = energy.E();
313  }
314 
315  //......................................................................
316  void FillTrackVarsBpfFitSum(const rb::FitSum &fitsum,
317  SRBpfTrack& srBpfTrk)
318  {
319  srBpfTrk.pdg = fitsum.PDG();
320  srBpfTrk.chi2T = (fitsum.Chi2(0) +
321  fitsum.Chi2(1) +
322  fitsum.Chi2(2) +
323  fitsum.Chi2(3))/
324  (fitsum.Ndof(0)+
325  fitsum.Ndof(1)-4);
326  srBpfTrk.chi2Hit = (fitsum.Chi2(0)+fitsum.Chi2(1))/
327  (fitsum.Ndof(0)+fitsum.Ndof(1)-2);
328  srBpfTrk.chi2Scat = (fitsum.Chi2(2)+fitsum.Chi2(3))/
329  (fitsum.Ndof(2)+fitsum.Ndof(3)-2);
330  //rb::FitSum::FourMom() -> momentum, energy
331  srBpfTrk.momentum.SetX(fitsum.FourMom().Px());
332  srBpfTrk.momentum.SetY(fitsum.FourMom().Py());
333  srBpfTrk.momentum.SetZ(fitsum.FourMom().Pz());
334  srBpfTrk.energy = fitsum.FourMom().E();
335  }
336 
337  //......................................................................
338  void FillTrackVarsBpfPid(const bpfit::BPFPId& bpfpid,
339  SRBpfTrack& srBpfTrk)
340  {
341  srBpfTrk.pid = bpfpid.Value();
342  srBpfTrk.dEdXLL = bpfpid.GetdEdXLL();
343  srBpfTrk.hitRatio = bpfpid.GetHitRatio();
344  }
345 
346  //......................................................................
347  void FillSliceVars(const rb::Cluster& slice,
348  caf::SRSlice& srslice,
349  bool allowEmpty)
350  {
354 
355  const double wx = (slice.NXCell() > 0) ? slice.W(slice.XCell(0).get()) : 0;
356  const double wy = (slice.NYCell() > 0) ? slice.W(slice.YCell(0).get()) : 0;
357 
358  // Hit counters:
359  int nCalHit = 0;
360  int nMipHit = 0;
361  int nNoiseHit = 0;
362 
363  unsigned int minCellsFromEdge = 99999999;
364  double sliceTimingSD = 0;
365  double sliceTimingAvg = 0;
366  double noiseE(0), totE(0);
367  double noisePE(0), totPE(0);
368 
369  // Loop over slice in question here:
370  for(unsigned int hitIdx = 0; hitIdx < slice.NCell(); ++hitIdx)
371  {
372  const art::Ptr<rb::CellHit>& chit = slice.Cell(hitIdx);
373  // Get calbrated reco hit:
374  const rb::RecoHit rhit(cal->MakeRecoHit(*chit,
375  chit->View() == geo::kX ? wx : wy));
376 
377  const int planeNum = chit->Plane();
378  const unsigned int cellsFromEdge = std::min((unsigned int)chit->Cell(), geom->Plane(planeNum)->Ncells() - 1 - chit->Cell());
379 
380  if(cellsFromEdge < minCellsFromEdge)
381  {
382  minCellsFromEdge = cellsFromEdge;
383  }
384 
385  if ( bt->IsNoise(chit) )
386  noisePE+=chit->PE();
387  totPE+=chit->PE();
388 
389 
390  // Make sure things have been calibrated:
391  if(!rhit.IsCalibrated())
392  {
393  LOG_DEBUG("CAFMaker") << "Not calibrated?! "
394  << chit->Plane() << " " << chit->Cell();
395  continue;
396  }
397 
398  // Count up both the total calibrated hits
399  // and the MIP hits from 100-245 PECorr
400  // Count up total hits:
401  nCalHit++;
402  // Count up MIP hits:
403  if ( (rhit.PECorr()>100.0) && (rhit.PECorr()<245.0) ) nMipHit++;
404  // Count up noise hits:
405  if ( bt->IsNoise(chit) ){
406  nNoiseHit++;
407  noiseE+=rhit.GeV();
408  }
409  totE+=rhit.GeV();
410 
411  //Calculate slice timing information
412  //Need timing to be in microseconds
413  double Tus = (chit->TNS())/1000;
414  sliceTimingAvg += Tus;
415  sliceTimingSD += Tus * Tus;
416  } // end of slice loop
417 
418  srslice.nhit = slice.NCell();
419  srslice.ncalhit = nCalHit;
420  srslice.nmiphit = nMipHit;
421  srslice.nnoisehit = nNoiseHit;
422  if( totPE!=0. ) srslice.fracnoisePE = noisePE / totPE;
423  if( totE!=0. ) srslice.fracnoiseE = noiseE / totE;
425 
426  if(!allowEmpty || slice.NCell() > 0) {
427 
428  srslice.firstplane = slice.MinPlane();
429  srslice.lastplane = slice.MaxPlane();
430  srslice.firstcell = slice.MinCell(geo::kXorY);
431  srslice.lastcell = slice.MaxCell(geo::kXorY);
432  srslice.ncellsfromedge = minCellsFromEdge;
433 
434  srslice.calE = slice.CalorimetricEnergy();
435  srslice.starttime = slice.MinTNS();
436  srslice.endtime = slice.MaxTNS();
437  srslice.meantime = slice.MeanTNS();
438 
439  double Tave = sliceTimingAvg/slice.NCell();
440  float Tsd = sqrt(sliceTimingSD/(slice.NCell()) - Tave*Tave);
441  srslice.tsd = Tsd*1000.0; //Convert back to ns
442 
443  TVector3 boxmin, boxmax, meanpos;
444  slice.MinMaxMeanXYZ(boxmin, boxmax, meanpos);
445  srslice.boxmin = boxmin;
446  srslice.boxmax = boxmax;
447  srslice.meanpos = meanpos;
448 
449  }
450  }
451 
452  //......................................................................
453  void FillShowerVars(const rb::Shower& shw,
454  caf::SRFuzzyKProng& srshw,
455  const std::vector<rb::Cluster>& sliceList,
456  std::vector<cheat::TrackIDE>& allTracks,
457  std::vector<cheat::TrackIDE>& sliceTracks,
458  std::vector<cheat::TrackIDE>& allTracksBirks,
459  std::vector<cheat::TrackIDE>& sliceTracksBirks,
460  int sliceIdx)
461  {
462  srshw.shwlid.nhit = shw.NCell();
463  srshw.shwlid.nhitx = shw.NXCell();
464  srshw.shwlid.nhity = shw.NYCell();
465  srshw.shwlid.nplane = shw.ExtentPlane();
466  srshw.shwlid.nplanex = shw.ExtentPlane(geo::kX);
467  srshw.shwlid.nplaney = shw.ExtentPlane(geo::kY);
470  srshw.shwlid.len = shw.TotalLength();
471  srshw.shwlid.calE = shw.CalorimetricEnergy();
472  srshw.shwlid.start = shw.Start();
473  srshw.shwlid.dir = shw.Dir();
474  srshw.shwlid.stop = shw.Stop();
475 
476  srshw.truth = FillParticleTruth(sliceList,
477  shw.AllCells(),
478  allTracks,
479  sliceTracks,
480  allTracksBirks,
481  sliceTracksBirks,
482  sliceIdx);
483  srshw.truthXView = FillParticleTruth(sliceList,
484  shw.XCells(),
485  allTracks,
486  sliceTracks,
487  allTracksBirks,
488  sliceTracksBirks,
489  sliceIdx);
490  srshw.truthYView = FillParticleTruth(sliceList,
491  shw.YCells(),
492  allTracks,
493  sliceTracks,
494  allTracksBirks,
495  sliceTracksBirks,
496  sliceIdx);
497  if (shw.NXCell() == 0) srshw.shwlid.view = kY;
498  else if (shw.NYCell() == 0) srshw.shwlid.view = kX;
499  else srshw.shwlid.view = kXorY;
500  }
501 
502  //----------------------------------------------------------------------------
503 
504  void FillDiFShowerVars(const rb::Shower& shw,
505  const std::vector<rb::Cluster>& sliceList,
506  std::vector<cheat::TrackIDE>& allTracks,
507  std::vector<cheat::TrackIDE>& sliceTracks,
508  std::vector<cheat::TrackIDE>& allTracksBirks,
509  std::vector<cheat::TrackIDE>& sliceTracksBirks,
510  int sliceIdx, SRMRProperties& srMR)
511  {
512  srMR.isShwDiF = IsTrueDiF(shw);
513 
514  srMR.lid.nhit = shw.NCell();
515  srMR.lid.nhitx = shw.NXCell();
516  srMR.lid.nhity = shw.NYCell();
517  srMR.lid.nplane = shw.ExtentPlane();
518  srMR.lid.nplanex = shw.ExtentPlane(geo::kX);
519  srMR.lid.nplaney = shw.ExtentPlane(geo::kY);
522  srMR.lid.len = shw.TotalLength();
523  srMR.lid.calE = shw.CalorimetricEnergy();
524  srMR.lid.start = shw.Start();
525  srMR.lid.dir = shw.Dir();
526  srMR.lid.stop = shw.Stop();
527 
528  srMR.lid.truth = FillParticleTruth(sliceList,
529  shw.AllCells(),
530  allTracks,
531  sliceTracks,
532  allTracksBirks,
533  sliceTracksBirks,
534  sliceIdx);
535  srMR.lid.truthXView = FillParticleTruth(sliceList,
536  shw.XCells(),
537  allTracks,
538  sliceTracks,
539  allTracksBirks,
540  sliceTracksBirks,
541  sliceIdx);
542  srMR.lid.truthYView = FillParticleTruth(sliceList,
543  shw.YCells(),
544  allTracks,
545  sliceTracks,
546  allTracksBirks,
547  sliceTracksBirks,
548  sliceIdx);
549  if (shw.NXCell() == 0) srMR.lid.view = kY;
550  else if (shw.NYCell() == 0) srMR.lid.view = kX;
551  else srMR.lid.view = kXorY;
552  }
553 
554  //----------------------------------------------------------------------------
556  SRTrack& srTrk)
557  {
558  srTrk.trkfwdcell = trkcnt.TrkFwdCell();
559  srTrk.trkfwdcellnd = trkcnt.TrkFwdCellND();
560  srTrk.trkbakcell = trkcnt.TrkBakCell();
561  srTrk.trkbakcellnd = trkcnt.TrkBakCellND();
562  srTrk.leninact = trkcnt.TrkLenInAct();
563  srTrk.lenincat = trkcnt.TrkLenInCat();
564  srTrk.trkyposattrans = trkcnt.TrkYPosAtTrans();
565  srTrk.vtxdist = trkcnt.VtxDist();
566  srTrk.enddist = trkcnt.EndDist();
567  srTrk.trkfwddist = trkcnt.TrkFwdDist();
568  srTrk.trkfwdair = trkcnt.TrkFwdAir();
569  srTrk.trkfwdsteel = trkcnt.TrkFwdSteel();
570  srTrk.trkbakdist = trkcnt.TrkBakDist();
571  srTrk.trkbakair = trkcnt.TrkBakAir();
572  srTrk.trkbaksteel = trkcnt.TrkBakSteel();
573  }
574 
575  //----------------------------------------------------------------------------
577  SRKalmanTrack& srTrk)
578  {
579  srTrk.scatt15 = pionreco.TrackScatt15();
580  srTrk.scatt30 = pionreco.TrackScatt30();
581  srTrk.dedx15 = pionreco.TrackDedx15();
582  srTrk.dedx30 = pionreco.TrackDedx30();
583  srTrk.activity15 = pionreco.TrackActivity15();
584  srTrk.activity30 = pionreco.TrackActivity30();
585  srTrk.activity45 = pionreco.TrackActivity45();
586  srTrk.prox15 = pionreco.TrackProximity15();
587  srTrk.prox30 = pionreco.TrackProximity30();
588  srTrk.mvapiE = pionreco.TrackPionEMVA();
589  }
590 
591  //----------------------------------------------------------------------------
593  SRBpfTrack& srTrk)
594  {
595  srTrk.scatt15 = pionreco.TrackScatt15();
596  srTrk.scatt30 = pionreco.TrackScatt30();
597  srTrk.dedx15 = pionreco.TrackDedx15();
598  srTrk.dedx30 = pionreco.TrackDedx30();
599  srTrk.activity15 = pionreco.TrackActivity15();
600  srTrk.activity30 = pionreco.TrackActivity30();
601  srTrk.activity45 = pionreco.TrackActivity45();
602  srTrk.prox15 = pionreco.TrackProximity15();
603  srTrk.prox30 = pionreco.TrackProximity30();
604  srTrk.mvapiE = pionreco.TrackPionEMVA();
605  }
606 
607  //----------------------------------------------------------------------------
609  SRFuzzyKProng& srPng)
610  {
611  srPng.dedx15 = pionreco.ProngDedx15();
612  srPng.dedx30 = pionreco.ProngDedx30();
613  srPng.activity15 = pionreco.ProngActivity15();
614  srPng.activity30 = pionreco.ProngActivity30();
615  srPng.activity45 = pionreco.ProngActivity45();
616  srPng.prox15 = pionreco.ProngProximity15();
617  srPng.prox30 = pionreco.ProngProximity30();
618  srPng.mvapiE = pionreco.ProngPionEMVA();
619  }
620 
621 
622  //----------------------------------------------------------------------------
624  SRTrack& srTrk)
625  {
626  srTrk.avedEdxlast10cm = trkinfo.AvedEdxTrackLast10cm();
627  srTrk.avedEdxlast20cm = trkinfo.AvedEdxTrackLast20cm();
628  srTrk.avedEdxlast30cm = trkinfo.AvedEdxTrackLast30cm();
629  srTrk.avedEdxlast40cm = trkinfo.AvedEdxTrackLast40cm();
630  }
631 
632 }
633 
634 
unsigned short nhit
number of hits
Represents output from SlcMEFilter.
Definition: SRSlcME.h:11
template void FillProngVars< SRTrack >(const rb::Prong &, SRTrack &, const std::vector< rb::Cluster > &, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int)
SRShowerLID shwlid
Shower information.
Definition: SRFuzzyKProng.h:18
float TNS() const
Definition: CellHit.h:46
float calE
Calorimetric Energy [GeV].
Definition: SRTrkME.h:26
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float TrackActivity30() const
float TrackActivity30() const
SRParticleTruth truthXView
Truth information for the prong.
Definition: SRProng.h:47
float avedEdxlast20cm
Average dE/dx in the last 20 cm approximately.
Definition: SRTrack.h:73
float TrkFwdAir() const
Definition: TrkCntObj.h:50
back track the reconstruction to the simulation
float TrackActivity15() const
float disttoslc
Minimum distance between hits in ME and parent (cm)
Definition: SRSlcME.h:24
virtual double W(const rb::CellHit *chit) const
Estimate the unmeasured coordinate of chit.
Definition: Cluster.cxx:121
float ProngActivity15() const
int PdgCode() const
Definition: MCParticle.h:211
unsigned short maxplanecont
maximum number of contiguous planes in prong
Definition: SRShower.h:29
template void FillProngVars< SRFuzzyKProng >(const rb::Prong &, SRFuzzyKProng &, const std::vector< rb::Cluster > &, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int)
float mvapiE
measure of reconstructed energy assuming this track is a charged pion
Definition: SRBpfTrack.h:35
unsigned short nhitx
number of hits in x-view
unsigned int NCell(geo::View_t view) const
Number of cells in view view.
Definition: Cluster.cxx:134
unsigned short nplaney
number of planes spanned in y view
float TrkFwdDist() const
Definition: TrkCntObj.h:48
float trkbakdist
Kalmantrack projected distance (cm) from start point backwards to det edge.
Definition: SRTrack.h:69
const art::PtrVector< rb::CellHit > & XCells() const
Get all cells from the x-view.
Definition: Cluster.h:124
float TrackProximity15() const
float VtxDist() const
Definition: TrkCntObj.h:46
SRParticleTruth truthXView
Truth information for the prong.
double TrkLenInAct() const
Definition: TrkCntObj.h:43
art::Ptr< rb::CellHit > XCell(unsigned int xIdx) const
Get the ith cell in the x-view.
Definition: Cluster.cxx:157
float E() const
Definition: Energy.cxx:27
SRVector3D dir
Shower direction at start point [unit vector recommended].
Definition: SRShower.h:33
double DistToSlc() const
Definition: MEClusters.cxx:12
float mvapiE
PionReco measure of particle energy, assuming a charged pion.
Definition: SRFuzzyKProng.h:28
float AvedEdxTrackLast20cm() const
Definition: TrackInfoObj.h:30
SRVector3D meanpos
The mean position of the ME cluster.
Definition: SRSlcME.h:25
unsigned int lastplane
last plane
Definition: SRSlice.h:27
unsigned int firstplane
first plane
Definition: SRSlice.h:26
float TrackDedx15() const
void SetX(float _x)
Definition: SRVector3D.h:28
unsigned short nhity
number of hits in yview
Definition: SRTrkME.h:25
X or Y views.
Definition: PlaneGeo.h:30
float enddist
Definition: SRTrack.h:65
unsigned short Plane() const
Definition: CellHit.h:39
float chi2Scat
chi^2 from the scattering angle
Definition: SRBpfTrack.h:21
SRVector3D boxmax
Maximum coordinates box containing all the hits [cm].
Definition: SRSlice.h:47
float activity15
PionReco activity within 15 cm of prong end, in GeV, ignoring 30 cm near vertex.
Definition: SRFuzzyKProng.h:23
unsigned short nplaney
number of planes spanned in y view
Definition: SRShower.h:39
geo::View_t View() const
Definition: CellHit.h:41
A reconstructed shower from the MRProperties module.
int TrkBakCellND() const
Definition: TrkCntObj.h:42
void FillTrackVars(const rb::Track &trk, SRTrack &srTrk, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx)
Definition: FillReco.cxx:281
float TrackPionEMVA() const
float avedEdxlast30cm
Average dE/dx in the last 30 cm approximately.
Definition: SRTrack.h:74
void FillTrackContainmentVars(const cosrej::TrkCntObj &trkcnt, SRTrack &srTrk)
Function to fill SRTrack containment information.
Definition: FillReco.cxx:555
T sqrt(T number)
Definition: d0nt_math.hpp:156
float trkfwdair
for Kalmantrack projected distance forwards how much is through air (ND only, NYI) ...
Definition: SRTrack.h:67
unsigned short nhit
number of hits
Definition: SRShower.h:25
Vertical planes which measure X.
Definition: PlaneGeo.h:28
unsigned int Ncells() const
Number of cells in this plane.
Definition: PlaneGeo.h:43
float deltat
Time delay (ns)
Definition: SRSlcME.h:22
float dedx15
measure of dedx ignoring 15 cm near EA vertex
Definition: SRKalmanTrack.h:26
float scatt30
measure of track scatter ignoring 30 cm near EA vertex
Definition: SRBpfTrack.h:27
float starttime
start time [ns]
Definition: SRSlice.h:39
rb::RecoHit MakeRecoHit(rb::CellHit const &cellhit, double w)
void FillNDRecoPngVars(const ndreco::NDRecoPngObj &pionreco, SRFuzzyKProng &srPng)
Definition: FillReco.cxx:608
float calE
Calorimetric Energy of ME (GeV)
Definition: SRSlcME.h:21
A collection of associated CellHits.
Definition: Cluster.h:47
float ProngDedx30() const
double MeanZ(rb::AveragingScheme scheme=kDefaultScheme) const
Definition: Cluster.h:233
unsigned short maxplanegap
maximum number of gapped planes in prong
float trkyposattrans
Y position at transition to muon catcher, for determining if track went through air gap (ND only) ...
Definition: SRTrack.h:63
float TrkBakDist() const
Definition: TrkCntObj.h:49
unsigned short nhitx
number of hits in x-view
Definition: SRShower.h:26
double TrkLenInCat() const
Definition: TrkCntObj.h:44
unsigned int MaxCell(geo::View_t view) const
Definition: Cluster.cxx:518
float EndDist() const
Definition: TrkCntObj.h:47
void abs(TH1 *hist)
View_t view
Prong view caf::kX = 0, caf::kY = 1 or caf::kXorY = 2.
float chi2Hit
chi^2 from the hit-trajectory
Definition: SRBpfTrack.h:20
float adc
Total ADC in the ME cluster.
Definition: SRTrkME.h:28
float TrackScatt30() const
float TrackDedx30() const
SRParticleTruth truth
Truth information for the prong.
Definition: SRShower.h:42
A rb::Prong with full reconstructed trajectory.
Definition: Track.h:20
float calE
energy based on summed calibrated deposited charge [GeV]
Definition: SRShower.h:31
float avedEdxlast40cm
Average dE/dx in the last 40 cm approximately.
Definition: SRTrack.h:75
float dedx30
measure of dedx ignoring 30 cm near EA vertex
Definition: SRBpfTrack.h:29
const int Ndof(int index) const
Definition: FitSum.h:68
const PlaneGeo * Plane(unsigned int i) const
virtual TVector3 Start() const
Definition: Prong.h:73
float deltat
time difference [ns]
Definition: SRTrkME.h:27
float TrackPionEMVA() const
void FillNDRecoTrkVars(const ndreco::NDRecoTrkObj &pionreco, SRKalmanTrack &srTrk)
Functions to fill SRKalmanTrack pion energy reconstruction information.
Definition: FillReco.cxx:576
double MaxX() const
Definition: Cluster.h:217
float AvedEdxTrackLast30cm() const
Definition: TrackInfoObj.h:31
float GetdEdXLL() const
Definition: BPFPId.h:44
float fracnoisePE
Fraction of energy which comes from noise.
Definition: SRSlice.h:35
void FillProngVars(const rb::Prong &prng, T &srPrng, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx)
Definition: FillReco.cxx:179
float trkbaksteel
for Kalmantrack projected distance backwards, how much is through steel (ND only, currently is just d...
Definition: SRTrack.h:71
double Value() const
Definition: PID.h:22
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
int TrkFwdCellND() const
Definition: TrkCntObj.h:40
art::PtrVector< rb::CellHit > AllCells() const
Get all cells from both views.
Definition: Cluster.cxx:180
bool IsNoise(const art::Ptr< rb::CellHit > &hit) const
Is this hit not associated with any particles?
unsigned short minplane
minimum plane from the cluster
const int PDG() const
Definition: FitSum.h:73
void SetZ(float _z)
Definition: SRVector3D.h:30
Calibrated quantities relying on position in the orthogonal view. To generate a rb::CellHit from a rb...
Definition: RecoHit.h:19
SRParticleTruth truthYView
Truth information for the prong.
double MeanX(rb::AveragingScheme scheme=kDefaultScheme) const
Definition: Cluster.h:231
float prox15
PionReco measure of proximity to other prongs, ignoring 15 cm near vertex.
Definition: SRFuzzyKProng.h:26
double leninact
track length in active detector
Definition: SRTrack.h:61
virtual double TotalLength() const
Length (cm) of a shower.
Definition: Shower.cxx:43
float ProngActivity30() const
void FillTrackVarsBpfPid(const bpfit::BPFPId &bpfpid, SRBpfTrack &srBpfTrk)
Definition: FillReco.cxx:338
unsigned short Cell() const
Definition: CellHit.h:40
Track finder for cosmic rays.
float endtime
end time [ns]
Definition: SRSlice.h:40
double MinTNS() const
Definition: Cluster.cxx:482
SRParticleTruth FillParticleTruth(const std::vector< rb::Cluster > &sliceList, const art::PtrVector< rb::CellHit > &hits, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx)
Function to fill the particle truth for a set of hits.
Definition: FillTruth.cxx:25
SRParticleTruth truth
Truth information for the michel cluster.
Definition: SRTrkME.h:31
int MostMissingPlanes(geo::View_t view) const
Longest run of adjacent planes with no hits.
Definition: Cluster.cxx:668
TString part[npart]
Definition: Style.C:32
double TotalADC() const
Sum of the ADC of all the contained hits.
Definition: Cluster.cxx:360
virtual double TotalLength() const
Distance along prong to reach last cell hit.
Definition: Prong.cxx:186
double DeltaT() const
Definition: MEClusters.cxx:10
SRVector3D boxmin
Minimum coordinates box containing all the hits [cm].
Definition: SRSlice.h:46
unsigned short maxplane
maximum plane from the cluster
double MeanY(rb::AveragingScheme scheme=kDefaultScheme) const
Definition: Cluster.h:232
double CalorimetricEnergy(EEnergyCalcScheme escheme=kRecomputeEnergy) const
Simple estimate of neutrino energy.
Definition: Cluster.cxx:439
float activity30
measure of activity within 30 cm of end of track ignoring 30 cm near vertex
Definition: SRBpfTrack.h:31
float scatt15
measure of track scatter ignoring 15 cm near EA vertex
Definition: SRKalmanTrack.h:24
if(dump)
float ProngActivity45() const
float TrackProximity30() const
void FillDiFVars(const rb::Cluster &slice, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx, SRMRProperties &srMR)
Definition: FillReco.cxx:97
Variables describing Michel E&#39;s found around the end of a track.
Definition: SRTrkME.h:15
float disttotrack
Distance between end of track and Michel hits [cm].
Definition: SRTrkME.h:29
art::Ptr< rb::CellHit > YCell(unsigned int yIdx) const
Get the ith cell in the y-view.
Definition: Cluster.cxx:165
unsigned short maxplanecont
maximum number of contiguous planes in prong
const TLorentzVector FourMom() const
Definition: FitSum.h:72
unsigned int nmiphit
number of minimum ionizing hits
Definition: SRSlice.h:24
const art::PtrVector< rb::CellHit > & YCells() const
Get all cells from the x-view.
Definition: Cluster.h:126
int trkfwdcell
track forward cell from end to detector edge
Definition: SRTrack.h:57
float calE
Calorimetric energy of the cluster [GeV].
Definition: SRSlice.h:38
virtual TVector3 Dir() const
Unit vector describing prong direction.
Definition: Prong.h:77
TVector3 Stop() const
Endpoint of the shower.
Definition: Shower.cxx:55
unsigned short nplanex
number of planes spanned in x view
SRParticleTruth truth
Truth information for the prong.
double energy
Definition: plottest35.C:25
float PE() const
Definition: CellHit.h:42
double MID() const
Definition: MEClusters.cxx:8
int trkbakcellnd
track backeard cell from start to detector edge with muon catcher included
Definition: SRTrack.h:60
float scatt30
measure of track scatter ignoring 30 cm near EA vertex
Definition: SRKalmanTrack.h:25
float GetHitRatio() const
Definition: BPFPId.h:45
float TrackDedx30() const
float TrackDedx15() const
float energy
reconstructed total energy
Definition: SRBpfTrack.h:25
float pid
pid score for this track
Definition: SRBpfTrack.h:18
bool IsCalibrated() const
You MUST check here before accessing PECorr, MIP or GeV.
Definition: RecoHit.cxx:35
float tsd
standard deviation of slice hits in time in nanoseconds
Definition: SRSlice.h:42
float lenE
energy based on track length and MIP assumption [GeV]
Definition: SRTrack.h:44
float activity15
measure of activity within 15 cm of end of track ignoring 30 cm near vertex
Definition: SRKalmanTrack.h:28
Eigen::VectorXd vec
unsigned short nplanex
number of planes spanned in x view
Definition: SRShower.h:38
unsigned short nplanegap
total number of missing planes on track
Definition: SRTrack.h:33
unsigned short nhity
number of hits in y-view
unsigned short nhity
Number of hits in Michel cluster.
Definition: SRSlcME.h:20
const double Chi2(int index) const
Definition: FitSum.h:61
unsigned short nplane
number of planes spanned
float activity15
measure of activity within 15 cm of end of track ignoring 30 cm near vertex
Definition: SRBpfTrack.h:30
float dEdXLL
dE/dx log-likelihood (input to the muon PID)
Definition: SRBpfTrack.h:22
float AvedEdxTrackLast40cm() const
Definition: TrackInfoObj.h:32
double MinY() const
Definition: Cluster.h:205
float TrackActivity45() const
SRVector3D momentum
reconstructed momentum (access via: sel.bpfid.momentum.{x,y,z})
Definition: SRBpfTrack.h:24
float ProngDedx15() const
SRVector3D start
Shower start point in detector coordinates. [cm].
Definition: SRShower.h:32
unsigned short nhitx
Number of hits in Michel cluster.
Definition: SRSlcME.h:19
float hitRatio
ratio of hits in track to hits in prong (input to the muon PID)
Definition: SRBpfTrack.h:23
SRParticleTruth truthYView
Truth information for the prong.
Definition: SRShower.h:44
An SRSlice contains overarching information for a slice.
Definition: SRSlice.h:15
unsigned int nhit
number of hits
Definition: SRSlice.h:22
float mid
Michel Electron Identifier.
Definition: SRTrkME.h:20
void FillDiFShowerVars(const rb::Shower &shw, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx, SRMRProperties &srMR)
Definition: FillReco.cxx:504
void FillTrackInfoVars(const trackinfo::TrackInfoObj &trkinfo, SRTrack &srTrk)
Function to fill additional SRTrack information.
Definition: FillReco.cxx:623
float TrkYPosAtTrans() const
Definition: TrkCntObj.h:45
float chi2T
total chi^2 from the track fit ( [hit-trajectory chi^2] + [scattering angle chi^2]) (input to the muo...
Definition: SRBpfTrack.h:19
float ProngPionEMVA() const
double MaxTNS() const
Definition: Cluster.cxx:528
void FillSliceVars(const rb::Cluster &slice, caf::SRSlice &srslice, bool allowEmpty)
Definition: FillReco.cxx:347
const sim::Particle * TrackIDToParticle(int const &id) const
Returns a pointer to the sim::Particle object corresponding to the given TrackID. ...
void FillShowerVars(const rb::Shower &shw, caf::SRFuzzyKProng &srshw, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, const int &sliceIdx)
Definition: FillPIDs.cxx:142
float TrackProximity30() const
unsigned short nplane
number of planes spanned
Definition: SRShower.h:28
unsigned int NYCell() const
Number of cells in the y-view.
Definition: Cluster.h:108
void FillTrackVarsBpfFitSum(const rb::FitSum &fitsum, SRBpfTrack &srBpfTrk)
Definition: FillReco.cxx:316
SRShowerLID lid
LID PID information for the MR Shower.
unsigned int MinPlane(geo::View_t view=geo::kXorY) const
Definition: Cluster.cxx:462
unsigned int ncalhit
number of hits with calibration
Definition: SRSlice.h:23
unsigned int firstcell
first cell
Definition: SRSlice.h:28
X or Y views.
Definition: SREnums.h:24
unsigned short nhity
number of hits in y-view
Definition: SRShower.h:27
float ProngProximity30() const
int NMissingPlanes(geo::View_t view) const
Total number of missing planes in cluster.
Definition: Cluster.cxx:693
unsigned int ncellsfromedge
minimum number of cells to edge of detector
Definition: SRSlice.h:30
art::Ptr< rb::CellHit > Cell(geo::View_t view, unsigned int viewIdx) const
Get the ith cell from view view.
Definition: Cluster.cxx:145
SRVector3D stop
Track end point in detector coordinates. [cm].
Definition: SRTrack.h:46
SRParticleTruth truth
Truth information for the prong.
Definition: SRProng.h:46
float prox30
PionReco measure of proximity to other prongs, ignoring 30 cm near vertex.
Definition: SRFuzzyKProng.h:27
int trkbakcell
track backeard cell from start to detector edge
Definition: SRTrack.h:59
float vtxdist
Definition: SRTrack.h:64
float len
track length [cm]
Definition: SRTrack.h:41
float dedx30
PionReco dedx calc ignoring 30 cm near vertex.
Definition: SRFuzzyKProng.h:22
float calE
energy based on summed calibrated deposited charge [GeV]
void FillTrackVarsWithOverlapE(const rb::Track &trk, const rb::Energy &energy, SRTrack &srTrk, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx)
Function to fill SRTrack branch if overlapping energy object is present.
Definition: FillReco.cxx:301
float GeV() const
Definition: RecoHit.cxx:69
A Cluster with defined start position and direction.
Definition: Prong.h:19
float dedx15
PionReco dedx calc ignoring 15 cm near vertex.
Definition: SRFuzzyKProng.h:21
float mid
Michel Electron Identifier LL.
Definition: SRSlcME.h:16
bool IsTrueDiF(const rb::Cluster &slice)
Helper for FillDiFVars and FillDiFShowerVars.
Definition: FillReco.cxx:67
SRVector3D meanpos
The mean position of the ME cluster.
Definition: SRTrkME.h:30
virtual TVector3 StopDir() const
Get direction at the stop point.
Definition: Track.cxx:193
T const * get() const
Definition: Ptr.h:321
A container for energy information.
Definition: Energy.h:20
Horizontal planes which measure Y.
Definition: SREnums.h:23
float trkfwdsteel
for Kalmantrack projected distance forwards, how much is through steel (ND only, currently is just di...
Definition: SRTrack.h:68
void AddTrkMEToVec(const me::TrkME &michel, std::vector< SRTrkME > *vec, SRTrack &srTrk, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx)
Definition: FillReco.cxx:34
void FillNDRecoBPFVars(const ndreco::NDRecoBpfObj &pionreco, SRBpfTrack &srTrk)
Definition: FillReco.cxx:592
SRParticleTruth truthYView
Truth information for the prong.
Definition: SRProng.h:48
A rb::Prong with a length.
Definition: Shower.h:18
unsigned int NXCell() const
Number of cells in the x-view.
Definition: Cluster.h:106
float dedx15
measure of dedx ignoring 15 cm near EA vertex
Definition: SRBpfTrack.h:28
float TrackScatt15() const
unsigned int MinCell(geo::View_t view) const
Definition: Cluster.cxx:472
int MostContiguousPlanes(geo::View_t view) const
Longest run of adjacent planes with hits.
Definition: Cluster.cxx:635
unsigned int nnoisehit
Number of noise hits (calibrated)
Definition: SRSlice.h:33
double MeanTNS(rb::AveragingScheme scheme=kDefaultScheme) const
Definition: Cluster.cxx:554
void geom(int which=0)
Definition: geom.C:163
bool HaveTruthInfo() const
Is this a file with truth info in? (Is BackTracker going to be any use to you?)
Definition: BackTracker.h:133
unsigned int ExtentPlane(geo::View_t view=geo::kXorY) const
Definition: Cluster.h:250
float TrackScatt30() const
Vertical planes which measure X.
Definition: SREnums.h:22
float activity45
PionReco activity within 45 cm of prong end, in GeV, ignoring 30 cm near vertex.
Definition: SRFuzzyKProng.h:25
unsigned short nhitx
number of hits in xview
Definition: SRTrkME.h:24
float overlapE
overlapping energy calculated by the NumuEnergy/TrackOverlapECalc module.
Definition: SRTrack.h:45
int TrkFwdCell() const
distance (dist,cm) through muon catcher traveled, when projected forwards to detector edge...
Definition: TrkCntObj.h:39
float TrkBakAir() const
Definition: TrkCntObj.h:52
float trkbakair
for Kalmantrack projected distance backwards how much is through air (ND only, NYI) ...
Definition: SRTrack.h:70
float activity30
measure of activity within 30 cm of end of track ignoring 30 cm near vertex
Definition: SRKalmanTrack.h:29
float TrackActivity45() const
unsigned int MaxPlane(geo::View_t view=geo::kXorY) const
Definition: Cluster.cxx:508
void AddSlcMEToVec(const me::SlcME &michel, std::vector< SRSlcME > *vec, const std::vector< rb::Cluster > &sliceList, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int sliceIdx)
Definition: FillReco.cxx:148
float mvapiE
measure of reconstructed energy assuming this track is a charged pion
Definition: SRKalmanTrack.h:33
template void FillProngVars< SRProng >(const rb::Prong &, SRProng &, const std::vector< rb::Cluster > &, std::vector< cheat::TrackIDE > &allTracks, std::vector< cheat::TrackIDE > &sliceTracks, std::vector< cheat::TrackIDE > &allTracksBirks, std::vector< cheat::TrackIDE > &sliceTracksBirks, int)
SRVector3D stop
shower stop point
Definition: SRShower.h:41
unsigned int lastcell
last cell
Definition: SRSlice.h:29
double T
Definition: Xdiff_gwt.C:5
void MinMaxMeanXYZ(TVector3 &lo, TVector3 &hi, TVector3 &mean, rb::AveragingScheme scheme=kDefaultScheme) const
Gets the min/max/mean all at once, called by the functions above.
Definition: Cluster.cxx:582
float dedx30
measure of dedx ignoring 30 cm near EA vertex
Definition: SRKalmanTrack.h:27
int trkfwdcellnd
track forward cell from end to detector edge with muon catcher included
Definition: SRTrack.h:58
This module creates Common Analysis Files.
Definition: FileReducer.h:10
float TrackProximity15() const
float PECorr() const
Definition: RecoHit.cxx:47
SRVector3D meanpos
Mean position of hits in slice, weighted by charge [cm].
Definition: SRSlice.h:48
float fracnoiseE
Fraction of energy which comes from noise.
Definition: SRSlice.h:34
float avedEdxlast10cm
Average dE/dx in the last 10 cm approximately.
Definition: SRTrack.h:72
T min(const caf::Proxy< T > &a, T b)
TVector3 Stop() const
Position of the final trajectory point.
Definition: Track.cxx:186
SRParticleTruth truth
Truth information for the michel cluster.
Definition: SRSlcME.h:26
float activity45
measure of activity within 45 cm of end of track ignoring 30 cm near vertex
Definition: SRBpfTrack.h:32
std::vector< SRTrkME > me
Definition: SRTrack.h:52
float ProngProximity15() const
Float_t e
Definition: plot.C:35
unsigned int ncontplanes
number of continuous planes
Definition: SRSlice.h:25
int pdg
pdg code for the tracking assumption used to make this track
Definition: SRBpfTrack.h:17
#define for
Definition: msvc_pragmas.h:3
float len
track length [cm]
Definition: SRShower.h:34
Float_t w
Definition: plot.C:20
unsigned short maxplanegap
maximum number of gapped planes in prong
Definition: SRShower.h:30
double DistToTrk() const
Definition: MEClusters.cxx:34
float TrkFwdSteel() const
Definition: TrkCntObj.h:51
double MinX() const
Definition: Cluster.h:204
float TrackActivity15() const
int TrkBakCell() const
Definition: TrkCntObj.h:41
float activity30
PionReco activity within 30 cm of prong end, in GeV, ignoring 30 cm near vertex.
Definition: SRFuzzyKProng.h:24
SRVector3D stopdir
Track direction at end point [unit vector recommended].
Definition: SRTrack.h:47
const TLorentzVector & EndMomentum() const
Definition: MCParticle.h:239
View_t view
Prong view caf::kX = 0, caf::kY = 1 or caf::kXorY = 2.
Definition: SRShower.h:35
void SetY(float _y)
Definition: SRVector3D.h:29
Encapsulate the geometry of one entire detector (near, far, ndos)
float scatt15
measure of track scatter ignoring 15 cm near EA vertex
Definition: SRBpfTrack.h:26
SRParticleTruth truthXView
Truth information for the prong.
Definition: SRShower.h:43
float meantime
mean time, weighted by charge [ns]
Definition: SRSlice.h:41
float TrackScatt15() const
std::vector< const sim::Particle * > HitsToParticle(const std::vector< const rb::CellHit * > &hits) const
Returns vector of sim::Particle objects contributing to the given collection of hits.
A container for kinematic information.
Definition: FitSum.h:22
float AvedEdxTrackLast10cm() const
Definition: TrackInfoObj.h:29
double lenincat
track length in muon catcher
Definition: SRTrack.h:62
double MaxY() const
Definition: Cluster.h:218
float TrkBakSteel() const
Definition: TrkCntObj.h:53
float adc
Total ADC in the ME cluster.
Definition: SRSlcME.h:23
float trkfwddist
Kalmantrack projected distance (cm) from end point forwards to det edge.
Definition: SRTrack.h:66
float activity45
measure of activity within 45 cm of end of track ignoring 30 cm near vertex
Definition: SRKalmanTrack.h:30