Public Member Functions | Private Member Functions | Private Attributes | List of all members
DAQQuickClustering Class Reference

#include <DAQQuickClustering_module.h>

Inheritance diagram for DAQQuickClustering:
art::EDAnalyzer art::detail::Analyzer art::detail::LegacyModule art::Observer art::ModuleBase

Public Member Functions

 DAQQuickClustering (fhicl::ParameterSet const &p)
 
 DAQQuickClustering (DAQQuickClustering const &)=delete
 
 DAQQuickClustering (DAQQuickClustering &&)=delete
 
DAQQuickClusteringoperator= (DAQQuickClustering const &)=delete
 
DAQQuickClusteringoperator= (DAQQuickClustering &&)=delete
 
void analyze (art::Event const &evt) override
 
void reconfigure (fhicl::ParameterSet const &p)
 
void beginJob () override
 
void endJob () override
 
- Public Member Functions inherited from art::EDAnalyzer
 EDAnalyzer (fhicl::ParameterSet const &pset)
 
template<typename Config >
 EDAnalyzer (Table< Config > const &config)
 
std::string workerType () const
 
- Public Member Functions inherited from art::detail::Analyzer
virtual ~Analyzer () noexcept
 
 Analyzer (fhicl::ParameterSet const &pset)
 
template<typename Config >
 Analyzer (Table< Config > const &config)
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
- Public Member Functions inherited from art::Observer
 ~Observer () noexcept
 
 Observer (Observer const &)=delete
 
 Observer (Observer &&)=delete
 
Observeroperator= (Observer const &)=delete
 
Observeroperator= (Observer &&)=delete
 
void registerProducts (ProductDescriptions &, ModuleDescription const &)
 
void fillDescriptions (ModuleDescription const &)
 
fhicl::ParameterSetID selectorConfig () const
 
- Public Member Functions inherited from art::ModuleBase
virtual ~ModuleBase () noexcept
 
 ModuleBase ()
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Private Member Functions

void ResetVariables ()
 
void trigger (std::vector< cluster > &vec_Clusters, unsigned int const &config)
 
void clusterCut (std::vector< cluster > &vec_Clusters, unsigned int const &config)
 
void clusterChannels (std::vector< recoHit > &vec_Hits, std::vector< ClusterHitsInTime > &vec_ChannelCluster, unsigned int const &config)
 
void makeConfigGraph ()
 
void FillMyMaps (std::map< int, simb::MCParticle > &MyMap, art::FindManyP< simb::MCParticle > Assn, art::ValidHandle< std::vector< simb::MCTruth > > Hand)
 
PType WhichParType (int TrID)
 
bool InMyMap (int TrID, std::map< int, simb::MCParticle > ParMap)
 

Private Attributes

std::vector< int > cut_AdjChanTolerance
 
std::vector< int > cut_HitsInWindow
 
std::vector< int > cut_MinChannels
 
std::vector< int > cut_MinChanWidth
 
std::vector< float > cut_TimeWindowSize
 
std::vector< float > cut_TotalADC
 
int firstCatch
 
int secondCatch
 
int thirdCatch
 
std::string fRawDigitLabel
 
std::string fHitLabel
 
std::string fGEANTLabel
 
std::string fMARLLabel
 
std::map< int, simb::MCParticleMarlParts
 
std::string fAPALabel
 
std::map< int, simb::MCParticleAPAParts
 
std::string fCPALabel
 
std::map< int, simb::MCParticleCPAParts
 
std::string fAr39Label
 
std::map< int, simb::MCParticleAr39Parts
 
std::string fNeutLabel
 
std::map< int, simb::MCParticleNeutParts
 
std::string fKrypLabel
 
std::map< int, simb::MCParticleKrypParts
 
std::string fPlonLabel
 
std::map< int, simb::MCParticlePlonParts
 
std::string fRdonLabel
 
std::map< int, simb::MCParticleRdonParts
 
std::string fAr42Label
 
std::map< int, simb::MCParticleAr42Parts
 
std::map< int, PTypetrkIDToPType
 
unsigned int NConfigs
 
unsigned int NCuts
 
double detectorScaling
 
int Run
 
int SubRun
 
int Event
 
std::map< int, std::vector< double > > map_EventToMC
 
TTree * t_Output_unusedhits
 
TTree * t_Output_clusteredhits
 
TH1D * h_ENu_MC
 
TH1D * h_MarlTime_MC
 
TH1D * h_TimeElapsed
 
int out_Cluster
 
int out_Event
 
int out_Config
 
int out_StartChan
 
int out_EndChan
 
int out_ChanWidth
 
int out_NChan
 
int out_Type
 
int out_NHits
 
float out_SumADC
 
float out_FirstTimeHit
 
float out_LastTimeHit
 
float out_TimeWidth
 
double out_ENu
 
double out_ENu_Lep
 
double out_MarlTime
 
std::vector< int > out_HitView
 
std::vector< int > out_GenType
 
std::vector< int > out_HitChan
 
std::vector< double > out_HitTime
 
std::vector< double > out_HitSADC
 
std::vector< double > out_HitRMS
 
int NTotHits
 
int NColHits
 
int NIndHits
 
int nHitsNotBackTracked
 
int HitView [nMaxHits]
 
int HitSize [nMaxHits]
 
int HitTPC [nMaxHits]
 
int HitChan [nMaxHits]
 
float HitTime [nMaxHits]
 
float HitRMS [nMaxHits]
 
float HitSADC [nMaxHits]
 
float HitInt [nMaxHits]
 
float HitPeak [nMaxHits]
 
int GenType [nMaxHits]
 
float Hit_X [nMaxHits]
 
float Hit_Y [nMaxHits]
 
float Hit_Z [nMaxHits]
 
float Hit_Energy [nMaxHits]
 
float Hit_NumElectrons [nMaxHits]
 
int NCorrespondingIDEs [nMaxHits]
 
int TotGen_Marl
 
int TotGen_APA
 
int TotGen_CPA
 
int TotGen_Ar39
 
int TotGen_Neut
 
int TotGen_Kryp
 
int TotGen_Plon
 
int TotGen_Rdon
 
int TotGen_Ar42
 
int VertexChan
 
int Nu_Type
 
int Nu_Lep_Type
 
int Mode
 
int CCNC
 
int HitNucleon
 
int Target
 
std::vector< int > MarlSample
 
std::vector< double > MarlTime
 
std::vector< double > MarlWeight
 
double ENu
 
double ENu_Lep
 
double VertX
 
double VertY
 
double VertZ
 
double VertexT
 
double Px
 
double Py
 
double Pz
 
art::ServiceHandle< geo::Geometrygeo
 
art::ServiceHandle< cheat::BackTrackerServicebt_serv
 
art::ServiceHandle< cheat::ParticleInventoryServicepi_serv
 

Additional Inherited Members

- Public Types inherited from art::EDAnalyzer
using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 
- Protected Member Functions inherited from art::Observer
std::string const & processName () const
 
bool wantAllEvents () const noexcept
 
bool wantEvent (ScheduleID id, Event const &e) const
 
Handle< TriggerResultsgetTriggerResults (Event const &e) const
 
 Observer (fhicl::ParameterSet const &config)
 
 Observer (std::vector< std::string > const &select_paths, std::vector< std::string > const &reject_paths, fhicl::ParameterSet const &config)
 
- Protected Member Functions inherited from art::ModuleBase
ConsumesCollectorconsumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Detailed Description

Definition at line 193 of file DAQQuickClustering_module.h.

Constructor & Destructor Documentation

DAQQuickClustering::DAQQuickClustering ( fhicl::ParameterSet const &  p)
explicit

Definition at line 97 of file DAQQuickClustering_module.cc.

97  :EDAnalyzer(p){
98 
99  this->reconfigure(p);
100 
101 }
EDAnalyzer(fhicl::ParameterSet const &pset)
Definition: EDAnalyzer.h:25
p
Definition: test.py:223
void reconfigure(fhicl::ParameterSet const &p)
DAQQuickClustering::DAQQuickClustering ( DAQQuickClustering const &  )
delete
DAQQuickClustering::DAQQuickClustering ( DAQQuickClustering &&  )
delete

Member Function Documentation

void DAQQuickClustering::analyze ( art::Event const &  evt)
overridevirtual

Implements art::EDAnalyzer.

Definition at line 407 of file DAQQuickClustering_module.cc.

408 {
409  ResetVariables();
410 
411  Run = evt.run();
412  SubRun = evt.subRun();
413  Event = evt.event();
414 
415  //GET INFORMATION ABOUT THE DETECTOR'S GEOMETRY.
416  auto const* geo = lar::providerFrom<geo::Geometry>();
417 
418 // GET THE RECO HITS.
419  auto reco_hits = evt.getValidHandle<std::vector<recob::Hit> >(fHitLabel);
420 
421  //LIFT OUT THE MARLEY PARTICLES.
422  auto MarlTrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fMARLLabel);
423  art::FindManyP<simb::MCParticle> MarlAssn(MarlTrue,evt,fGEANTLabel);
424  FillMyMaps(MarlParts, MarlAssn, MarlTrue);
425  TotGen_Marl = MarlParts.size();
426 
427  //SUPERNOVA TRUTH.
428  art::FindManyP<sim::SupernovaTruth> SNTruth(MarlTrue, evt, fMARLLabel);
429 
430  double Px_(0), Py_(0), Pz_(0), Pnorm(1);
431  for(unsigned int i = 0; i < MarlTrue->size(); i++)
432  {
433  Nu_Type = MarlTrue->at(i).GetNeutrino().Nu().PdgCode();
434  ENu = MarlTrue->at(i).GetNeutrino().Nu().E();
435  Mode = MarlTrue->at(i).GetNeutrino().Mode();
436  CCNC = MarlTrue->at(i).GetNeutrino().CCNC();
437  Target = MarlTrue->at(i).GetNeutrino().Target();
438  HitNucleon = MarlTrue->at(i).GetNeutrino().HitNuc();
439  Nu_Lep_Type = MarlTrue->at(i).GetNeutrino().Lepton().PdgCode();
440  VertX = MarlTrue->at(i).GetNeutrino().Lepton().Vx();
441  VertY = MarlTrue->at(i).GetNeutrino().Lepton().Vy();
442  VertZ = MarlTrue->at(i).GetNeutrino().Lepton().Vz();
443  Px_ = MarlTrue->at(i).GetNeutrino().Lepton().Px();
444  Py_ = MarlTrue->at(i).GetNeutrino().Lepton().Py();
445  Pz_ = MarlTrue->at(i).GetNeutrino().Lepton().Pz();
446  ENu_Lep = MarlTrue->at(i).GetNeutrino().Lepton().E();
447  for (unsigned int j = 0; j < SNTruth.at(i).size(); j++)
448  {
449  const sim::SupernovaTruth ThisTr = (*SNTruth.at(i).at(j));
450  MarlTime .push_back(ThisTr.SupernovaTime);
451  MarlWeight.push_back(ThisTr.Weight);
452  MarlSample.push_back(ThisTr.SamplingMode);
453  }
454  }
455  Pnorm = std::sqrt(Px_*Px_+Py_*Py_+Pz_*Pz_);
456  Px = Px_/Pnorm;
457  Py = Py_/Pnorm;
458  Pz = Pz_/Pnorm;
459  bool caught = false;
460  double Vertex[3] = {VertX, VertY, VertZ};
462  geo::PlaneID Plane(geo->FindTPCAtPosition(Vertex),geo::kZ);
463  try
464  {
465  WireID = geo->NearestWireID(Vertex, Plane);
466  }
467  catch(...)
468  {
469  caught = true;
470  }
471 
472  if(caught)
473  VertexChan = -1;
474  else
475  VertexChan = geo->PlaneWireToChannel(WireID);
476 
477  //CM/MICROSECOND.
478  auto const clockData = art::ServiceHandle<detinfo::DetectorClocksService const>()->DataFor(evt);
479  auto const detProp = art::ServiceHandle<detinfo::DetectorPropertiesService const>()->DataFor(evt, clockData);
480  double drift_velocity = detProp.DriftVelocity(detProp.Efield(),detProp.Temperature());
481  //CM/TICK
482  drift_velocity = drift_velocity*0.5;
483  VertexT = VertX/drift_velocity;
484 
485  auto APATrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fAPALabel);
486  art::FindManyP<simb::MCParticle> APAAssn(APATrue,evt,fGEANTLabel);
487  FillMyMaps( APAParts, APAAssn, APATrue );
488  TotGen_APA = APAParts.size();
489 
490  auto CPATrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fCPALabel);
491  art::FindManyP<simb::MCParticle> CPAAssn(CPATrue,evt,fGEANTLabel);
492  FillMyMaps( CPAParts, CPAAssn, CPATrue );
493  TotGen_CPA = CPAParts.size();
494 
495  auto Ar39True = evt.getValidHandle<std::vector<simb::MCTruth> >(fAr39Label);
496  art::FindManyP<simb::MCParticle> Ar39Assn(Ar39True,evt,fGEANTLabel);
497  FillMyMaps( Ar39Parts, Ar39Assn, Ar39True );
498  TotGen_Ar39 = Ar39Parts.size();
499 
500  auto NeutTrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fNeutLabel);
501  art::FindManyP<simb::MCParticle> NeutAssn(NeutTrue,evt,fGEANTLabel);
502  FillMyMaps( NeutParts, NeutAssn, NeutTrue );
503  TotGen_Neut = NeutParts.size();
504 
505  auto KrypTrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fKrypLabel);
506  art::FindManyP<simb::MCParticle> KrypAssn(KrypTrue,evt,fGEANTLabel);
507  FillMyMaps( KrypParts, KrypAssn, KrypTrue );
508  TotGen_Kryp = KrypParts.size();
509 
510  auto PlonTrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fPlonLabel);
511  art::FindManyP<simb::MCParticle> PlonAssn(PlonTrue,evt,fGEANTLabel);
512  FillMyMaps( PlonParts, PlonAssn, PlonTrue );
513  TotGen_Plon = PlonParts.size();
514 
515  auto RdonTrue = evt.getValidHandle<std::vector<simb::MCTruth> >(fRdonLabel);
516  art::FindManyP<simb::MCParticle> RdonAssn(RdonTrue,evt,fGEANTLabel);
517  FillMyMaps( RdonParts, RdonAssn, RdonTrue );
518  TotGen_Rdon = RdonParts.size();
519 
520  auto Ar42True = evt.getValidHandle<std::vector<simb::MCTruth> >(fAr42Label);
521  art::FindManyP<simb::MCParticle> Ar42Assn(Ar42True,evt,fGEANTLabel);
522  FillMyMaps( Ar42Parts, Ar42Assn, Ar42True );
523  TotGen_Ar42 = Ar42Parts.size();
524 
525  std::map<PType, std::map< int, simb::MCParticle >&> PTypeToMap{
526  { kMarl, MarlParts},
527  {kAPA, APAParts},
528  {kCPA, CPAParts},
529  {kAr39, Ar39Parts},
530  {kNeut, NeutParts},
531  {kKryp, KrypParts},
532  {kPlon, PlonParts},
533  {kRdon, RdonParts},
534  {kAr42, Ar42Parts}
535  };
536 
537  for(auto const& it : PTypeToMap){
538  const PType p=it.first;
539  auto const& m=it.second;
540  for(auto const& it2 : m){
541  trkIDToPType.insert(std::make_pair(it2.first, p));
542  }
543  }
544 
545  //std::cout << "THE EVENTS NUMBER IS: " << Event << std::endl;
546 
547  std::vector< recob::Hit > ColHits_Marl;
548  std::vector< recob::Hit > ColHits_CPA;
549  std::vector< recob::Hit > ColHits_APA;
550  std::vector< recob::Hit > ColHits_Ar39;
551  std::vector< recob::Hit > ColHits_Neut;
552  std::vector< recob::Hit > ColHits_Kryp;
553  std::vector< recob::Hit > ColHits_Plon;
554  std::vector< recob::Hit > ColHits_Rdon;
555  std::vector< recob::Hit > ColHits_Oth;
556  std::vector< recob::Hit > ColHits_Ar42;
557 
558  NTotHits = reco_hits->size();
559  int colHitCount(0);
560  int LoopHits = std::min( NTotHits, nMaxHits );
561  //if(LoopHits != NTotHits)
562  // std::cerr << "---- There are " << NTotHits
563  // << " hits in the event, but array is of size "
564  // << nMaxHits << ", so looping over first " << LoopHits
565  // << " hits." << std::endl;
566 
567  for(int hit = 0; hit < LoopHits; ++hit)
568  {
569  recob::Hit const& ThisHit = reco_hits->at(hit);
570  if(ThisHit.View() == geo::kU || ThisHit.View() == geo::kV) ++NIndHits;
571  else ++NColHits;
572  }
573 
574  for(int hit = 0; hit < LoopHits; ++hit)
575  {
576  recob::Hit const& ThisHit = reco_hits->at(hit);
577 
578  if (ThisHit.View() == 2) {
579  std::vector< sim::TrackIDE > ThisHitIDE;
580  //GETTING HOLD OF THE SIM::IDEs.
581  std::vector<const sim::IDE*> ThisSimIDE;
582  try
583  {
584  ThisHitIDE = bt_serv->HitToTrackIDEs(clockData, ThisHit );
585  }
586  catch(...)
587  {
588  //std::cout << "FIRST CATCH" << std::endl;
589  firstCatch++;
590  try
591  {
592  ThisSimIDE = bt_serv->HitToSimIDEs_Ps(clockData, ThisHit);
593  }
594  catch(...)
595  {
596  //std::cout << "SECOND CATCH" << std::endl;
597  secondCatch++;
598  continue;
599  }
600  continue;
601  }
602  try
603  {
604  ThisSimIDE = bt_serv->HitToSimIDEs_Ps(clockData, ThisHit);
605  }
606  catch(...)
607  {
608  //std::cout << "THIRD CATCH" << std::endl;
609  thirdCatch++;
610  continue;
611  }
612 
613  HitView[colHitCount] = ThisHit.View();
614  HitSize[colHitCount] = ThisHit.EndTick() - ThisHit.StartTick();
615  HitTPC [colHitCount] = ThisHit.WireID().TPC;
616  HitChan[colHitCount] = ThisHit.Channel();
617  HitTime[colHitCount] = ThisHit.PeakTime();
618  HitRMS [colHitCount] = ThisHit.RMS();
619  HitSADC[colHitCount] = ThisHit.SummedADC();
620  HitInt [colHitCount] = ThisHit.Integral();
621  HitPeak[colHitCount] = ThisHit.PeakAmplitude();
622  NCorrespondingIDEs[colHitCount] = ThisHitIDE.size();
623 
624  if(ThisHitIDE.size()==0)
626 
627  //WHICH PARTICLE CONTRIBUTED MOST TO THE HIT.
628  int MainTrID = -1;
629  double TopEFrac = -DBL_MAX;
630  for (size_t ideL=0; ideL < ThisHitIDE.size(); ++ideL)
631  {
632  if ( ThisHitIDE[ideL].energyFrac > TopEFrac )
633  {
634  TopEFrac = ThisHitIDE[ideL].energyFrac;
635  MainTrID = ThisHitIDE[ideL].trackID;
636  }
637  }
638 
639  PType ThisPType = WhichParType( MainTrID );
640  GenType[colHitCount] = ThisPType;
641 
642  if(MainTrID == -1)
643  {
644  Hit_X[colHitCount] = -1;
645  Hit_Y[colHitCount] = -1;
646  Hit_Z[colHitCount] = -1;
647  Hit_Energy[colHitCount] = -1;
648  Hit_NumElectrons[colHitCount] = -1;
649  }
650  else
651  {
652  for(unsigned int i = 0; i < ThisSimIDE.size(); i++)
653  {
654  if(ThisSimIDE.at(i)->trackID==MainTrID)
655  {
656  Hit_X[colHitCount] = ThisSimIDE.at(i)->x;
657  Hit_Y[colHitCount] = ThisSimIDE.at(i)->y;
658  Hit_Z[colHitCount] = ThisSimIDE.at(i)->z;
659  Hit_Energy[colHitCount] = ThisSimIDE.at(i)->energy;
660  Hit_NumElectrons[colHitCount] = ThisSimIDE.at(i)->numElectrons;
661  break;
662  }
663  }
664  }
665  switch (ThisPType){
666  case kUnknown: { ColHits_Oth .push_back( ThisHit ); break; }
667  case kMarl: { ColHits_Marl.push_back( ThisHit ); break; }
668  case kAPA: { ColHits_APA .push_back( ThisHit ); break; }
669  case kCPA: { ColHits_CPA .push_back( ThisHit ); break; }
670  case kAr39: { ColHits_Ar39.push_back( ThisHit ); break; }
671  case kNeut: { ColHits_Neut.push_back( ThisHit ); break; }
672  case kKryp: { ColHits_Kryp.push_back( ThisHit ); break; }
673  case kPlon: { ColHits_Plon.push_back( ThisHit ); break; }
674  case kRdon: { ColHits_Rdon.push_back( ThisHit ); break; }
675  case kAr42: { ColHits_Ar42.push_back( ThisHit ); break; }
676  default: break;
677  }
678 
679  colHitCount++;
680  }
681  }
682 
683  std::vector<int> vec_ClusterCount(NConfigs);
684 
685  h_ENu_MC ->Fill(1000*ENu);
686  h_MarlTime_MC->Fill(MarlTime.back());
687 
688  map_EventToMC[Event] = {ENu, ENu_Lep, MarlTime.back()};
689 
690  //MAKE RECOHIT OBJECTS EVENTWISE FROM THE TREE.
691  std::vector<recoHit> vec_Hits;
692  for(int j = 0; j < NColHits; j++)
693  {
694  recoHit hit(Event, HitView[j], GenType[j],
695  HitChan[j], HitTime[j], HitSADC[j], HitRMS[j]);
696  vec_Hits.push_back(hit);
697  }
698 
699  for(unsigned int j = 0; j < 1; j++)
700  {
701  std::vector<ClusterHitsInTime> vec_ChannelCluster;
702  std::vector<cluster> vec_Clusters;
703  TStopwatch *timeElapsed = new TStopwatch();
704  clusterChannels(vec_Hits, vec_ChannelCluster, j);
705 
706  for(unsigned int k = 0; k < vec_ChannelCluster.size(); k++)
707  {
708  std::vector<cluster> vec_Temp = vec_ChannelCluster.at(k).getClusterVector();
709  //std::cout << " vec_temp.size() " << vec_Temp.size() << std::endl;
710  for(unsigned int l = 0; l < vec_Temp.size(); l++)
711  vec_Clusters.push_back(vec_Temp.at(l));
712  }
713  clusterCut(vec_Clusters, j);
714  trigger (vec_Clusters, j);
715  h_TimeElapsed->Fill(timeElapsed->RealTime()*1000);
716  delete timeElapsed;
717  timeElapsed = NULL;
718  //std::cout << " vec_Cluster.size() " << vec_Clusters.size() << std::endl;
719 
720  //FILL THE OUTPUT TREE.
721  for(unsigned int k = 0; k < vec_Clusters.size(); k++)
722  {
723  if(vec_Clusters.at(k).getTriggerFlag()==1)
724  {
725  out_Config = j;
726  out_Cluster = vec_ClusterCount.at(j);
727  out_Event = vec_Clusters.at(k).getEvent();
728  out_StartChan = vec_Clusters.at(k).getStartChan();
729  out_EndChan = vec_Clusters.at(k).getEndChan();
730  out_ChanWidth = vec_Clusters.at(k).getChanWidth();
731  out_NChan = vec_Clusters.at(k).getNChan();
732  out_Type = vec_Clusters.at(k).getType();
733  out_NHits = vec_Clusters.at(k).getNHits();
734  out_SumADC = vec_Clusters.at(k).getHitSADC();
735  out_FirstTimeHit = vec_Clusters.at(k).getFirstTimeHit();
736  out_LastTimeHit = vec_Clusters.at(k).getLastTimeHit();
737  out_TimeWidth = vec_Clusters.at(k).getTimeWidth();
738  out_ENu = map_EventToMC[vec_Clusters.at(k).getEvent()].at(0);
739  out_ENu_Lep = map_EventToMC[vec_Clusters.at(k).getEvent()].at(1);
740  out_MarlTime = map_EventToMC[vec_Clusters.at(k).getEvent()].at(2);
741  for(unsigned int l = 0; l < vec_Clusters.at(k).getHits().size(); l++)
742  {
743  out_HitView.push_back(vec_Clusters.at(k).getHits().at(l).getHitView());
744  out_GenType.push_back(vec_Clusters.at(k).getHits().at(l).getGenType());
745  out_HitChan.push_back(vec_Clusters.at(k).getHits().at(l).getHitChan());
746  out_HitTime.push_back(vec_Clusters.at(k).getHits().at(l).getHitTime());
747  out_HitSADC.push_back(vec_Clusters.at(k).getHits().at(l).getHitSADC());
748  out_HitRMS .push_back(vec_Clusters.at(k).getHits().at(l).getHitRMS ());
749  }
750  t_Output_clusteredhits->Fill();
751  out_HitView.clear(); out_GenType.clear(); out_HitChan.clear();
752  out_HitTime.clear(); out_HitSADC.clear(); out_HitRMS.clear();
753 
754  vec_ClusterCount.at(j)++;
755  }
756  }
757  vec_ChannelCluster.clear();
758  vec_Clusters.clear();
759  }
760  vec_Hits.clear();
761 }
std::vector< int > MarlSample
std::map< int, simb::MCParticle > NeutParts
unsigned int event
Definition: DataStructs.h:636
std::map< int, PType > trkIDToPType
unsigned int run
Definition: DataStructs.h:637
std::vector< sim::TrackIDE > HitToTrackIDEs(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
void FillMyMaps(std::map< int, simb::MCParticle > &MyMap, art::FindManyP< simb::MCParticle > Assn, art::ValidHandle< std::vector< simb::MCTruth > > Hand)
Planes which measure V.
Definition: geo_types.h:130
geo::WireID WireID() const
Definition: Hit.h:233
float RMS() const
RMS of the hit shape, in tick units.
Definition: Hit.h:220
The data type to uniquely identify a Plane.
Definition: geo_types.h:472
std::vector< double > MarlTime
Planes which measure Z direction.
Definition: geo_types.h:132
float Integral() const
Integral under the calibrated signal waveform of the hit, in tick x ADC units.
Definition: Hit.h:224
geo::View_t View() const
View for the plane of the hit.
Definition: Hit.h:232
std::vector< double > out_HitTime
std::map< int, std::vector< double > > map_EventToMC
static QStrList * l
Definition: config.cpp:1044
SupernovaSamplingMode_t SamplingMode
Method used to sample the supernova neutrino&#39;s energy and arrival time.
std::vector< double > MarlWeight
float PeakAmplitude() const
The estimated amplitude of the hit at its peak, in ADC units.
Definition: Hit.h:221
std::map< int, simb::MCParticle > CPAParts
std::map< int, simb::MCParticle > Ar42Parts
double Weight
Statistical weight for this neutrino vertex.
std::vector< double > out_HitRMS
Planes which measure U.
Definition: geo_types.h:129
IDparameter< geo::WireID > WireID
Member type of validated geo::WireID parameter.
std::map< int, simb::MCParticle > MarlParts
p
Definition: test.py:223
std::map< int, simb::MCParticle > APAParts
void clusterChannels(std::vector< recoHit > &vec_Hits, std::vector< ClusterHitsInTime > &vec_ChannelCluster, unsigned int const &config)
raw::TDCtick_t StartTick() const
Initial tdc tick for hit.
Definition: Hit.h:216
void clusterCut(std::vector< cluster > &vec_Clusters, unsigned int const &config)
Detector simulation of raw signals on wires.
raw::TDCtick_t EndTick() const
Final tdc tick for hit.
Definition: Hit.h:217
float PeakTime() const
Time of the signal peak, in tick units.
Definition: Hit.h:218
double SupernovaTime
Arrival time of the supernova neutrino (seconds)
std::vector< int > out_HitView
T min(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
Definition: statistics.h:55
void trigger(std::vector< cluster > &vec_Clusters, unsigned int const &config)
float SummedADC() const
The sum of calibrated ADC counts of the hit (0. by default)
Definition: Hit.h:223
unsigned int subRun
Definition: DataStructs.h:638
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
Definition: ModuleGraph.h:25
std::map< int, simb::MCParticle > PlonParts
const int nMaxHits
std::vector< const sim::IDE * > HitToSimIDEs_Ps(detinfo::DetectorClocksData const &clockData, recob::Hit const &hit) const
art::ServiceHandle< cheat::BackTrackerService > bt_serv
2D representation of charge deposited in the TDC/wire plane
Definition: Hit.h:48
std::map< int, simb::MCParticle > Ar39Parts
TCEvent evt
Definition: DataStructs.cxx:7
TPCID_t TPC
Index of the TPC within its cryostat.
Definition: geo_types.h:406
std::map< int, simb::MCParticle > RdonParts
std::vector< double > out_HitSADC
recob::tracking::Plane Plane
Definition: TrackState.h:17
LArSoft geometry interface.
Definition: ChannelGeo.h:16
raw::ChannelID_t Channel() const
ID of the readout channel the hit was extracted from.
Definition: Hit.h:230
std::vector< int > out_GenType
std::map< int, simb::MCParticle > KrypParts
std::vector< int > out_HitChan
void DAQQuickClustering::beginJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 293 of file DAQQuickClustering_module.cc.

294 {
295 
297 
298  makeConfigGraph();
299 
300  t_Output_unusedhits = tfs->make<TTree>("DAQQuickClustering_unusedhits",
301  "DAQQuickClustering_unusedhits");
302 
303  t_Output_unusedhits->Branch("Cluster", &out_Cluster, "Cluster/I");
304  t_Output_unusedhits->Branch("Event", &out_Event, "Event/I");
305  t_Output_unusedhits->Branch("Config", &out_Config, "Config/I");
306  t_Output_unusedhits->Branch("StartChan", &out_StartChan, "StartChan/I");
307  t_Output_unusedhits->Branch("EndChan", &out_EndChan, "EndChan/I");
308  t_Output_unusedhits->Branch("ChanWidth", &out_ChanWidth, "ChanWidth/I");
309  t_Output_unusedhits->Branch("NChan", &out_NChan, "NChan/I");
310  t_Output_unusedhits->Branch("Type", &out_Type, "Type/I");
311  t_Output_unusedhits->Branch("NHits", &out_NHits, "NHits/I");
312  t_Output_unusedhits->Branch("SumADC", &out_SumADC, "SumADC/F");
313  t_Output_unusedhits->Branch("FirstTimeHit", &out_FirstTimeHit,"FirstTimeHit/F");
314  t_Output_unusedhits->Branch("LastTimeHit", &out_LastTimeHit, "LastTimeHit/F");
315  t_Output_unusedhits->Branch("TimeWidth", &out_TimeWidth, "TimeWidth/F");
316  t_Output_unusedhits->Branch("ENu", &out_ENu, "ENu/D");
317  t_Output_unusedhits->Branch("ENu_Lep", &out_ENu_Lep, "ENu_Lep/D");
318  t_Output_unusedhits->Branch("MarlTime", &out_MarlTime, "MarlTime/D");
319  t_Output_unusedhits->Branch("HitView", &out_HitView);
320  t_Output_unusedhits->Branch("GenType", &out_GenType);
321  t_Output_unusedhits->Branch("HitChan", &out_HitChan);
322  t_Output_unusedhits->Branch("HitTime", &out_HitTime);
323  t_Output_unusedhits->Branch("HitSADC", &out_HitSADC);
324  t_Output_unusedhits->Branch("HitRMS", &out_HitRMS);
325 
326  t_Output_clusteredhits = tfs->make<TTree>("DAQQuickClustering_clusteredhits",
327  "DAQQuickClustering_clusteredhits");
328 
329  t_Output_clusteredhits->Branch("Cluster", &out_Cluster, "Cluster/I");
330  t_Output_clusteredhits->Branch("Event", &out_Event, "Event/I");
331  t_Output_clusteredhits->Branch("Config", &out_Config, "Config/I");
332  t_Output_clusteredhits->Branch("StartChan", &out_StartChan, "StartChan/I");
333  t_Output_clusteredhits->Branch("EndChan", &out_EndChan, "EndChan/I");
334  t_Output_clusteredhits->Branch("ChanWidth", &out_ChanWidth, "ChanWidth/I");
335  t_Output_clusteredhits->Branch("NChan", &out_NChan, "NChan/I");
336  t_Output_clusteredhits->Branch("Type", &out_Type, "Type/I");
337  t_Output_clusteredhits->Branch("NHits", &out_NHits, "NHits/I");
338  t_Output_clusteredhits->Branch("SumADC", &out_SumADC, "SumADC/F");
339  t_Output_clusteredhits->Branch("FirstTimeHit", &out_FirstTimeHit,"FirstTimeHit/F");
340  t_Output_clusteredhits->Branch("LastTimeHit", &out_LastTimeHit, "LastTimeHit/F");
341  t_Output_clusteredhits->Branch("TimeWidth", &out_TimeWidth, "TimeWidth/F");
342  t_Output_clusteredhits->Branch("ENu", &out_ENu, "ENu/D");
343  t_Output_clusteredhits->Branch("ENu_Lep", &out_ENu_Lep, "ENu_Lep/D");
344  t_Output_clusteredhits->Branch("MarlTime", &out_MarlTime, "MarlTime/D");
345  t_Output_clusteredhits->Branch("HitView", &out_HitView);
346  t_Output_clusteredhits->Branch("GenType", &out_GenType);
347  t_Output_clusteredhits->Branch("HitChan", &out_HitChan);
348  t_Output_clusteredhits->Branch("HitTime", &out_HitTime);
349  t_Output_clusteredhits->Branch("HitSADC", &out_HitSADC);
350  t_Output_clusteredhits->Branch("HitRMS", &out_HitRMS);
351  h_ENu_MC = tfs->make<TH1D>("h_ENu_MC","h_ENu_MC",35,0,50);
352  h_MarlTime_MC = tfs->make<TH1D>("h_MarlTime_MC","h_MarlTime_MC",100,-0.1,10.5);
353  h_TimeElapsed = tfs->make<TH1D>("h_TimeElapsed", "h_TimeElapsed", 50,0,0.5);
354  h_ENu_MC->Sumw2();
355  std::cout << "Finished beginJob" << std::endl;
356 }
std::vector< double > out_HitTime
std::vector< double > out_HitRMS
std::vector< int > out_HitView
std::vector< double > out_HitSADC
std::vector< int > out_GenType
QTextStream & endl(QTextStream &s)
std::vector< int > out_HitChan
void DAQQuickClustering::clusterChannels ( std::vector< recoHit > &  vec_Hits,
std::vector< ClusterHitsInTime > &  vec_ChannelCluster,
unsigned int const &  config 
)
private

Definition at line 193 of file DAQQuickClustering_module.cc.

196 {
197  //HERE IT IS ASSUMED THAT THE HITS APPEAR SEQUENTIALLY BY CHANNEL.
198 
199  for(unsigned int i = 0; i < vec_Hits.size()-1; i++)
200  {
201  std::vector<recoHit> vec_TempHits;
202  double width = std::abs(vec_Hits.at(i ).getHitChan()-
203  vec_Hits.at(i+1).getHitChan());
204  //std::cout << cut_AdjChanTolerance.at(config) << std::endl;
205  if(width <= cut_AdjChanTolerance.at(config))
206  {
207  int channelCount = 1;
208 
209  vec_TempHits.push_back(vec_Hits.at(i ));
210  vec_TempHits.push_back(vec_Hits.at(i+1));
211 
212  while((i+channelCount+1)<vec_Hits.size() &&
213  std::abs(vec_Hits.at(i+channelCount).getHitChan()-vec_Hits.at(i+channelCount+1).getHitChan())<=cut_AdjChanTolerance.at(config))
214  {
215  vec_TempHits.push_back(vec_Hits.at(i + channelCount + 1));
216  channelCount++;
217  }
218 
219  i = i + channelCount;
221  temp.DoIt(vec_TempHits);
222 
223  vec_ChannelCluster.push_back(temp);
224  //std::cout << " vec_ChannelCluster.size() " << vec_ChannelCluster.size() << std::endl;
225 
226  }
227  }
228 
229  return;
230 }
T abs(T value)
std::vector< int > cut_AdjChanTolerance
static Config * config
Definition: config.cpp:1054
std::vector< float > cut_TimeWindowSize
void DAQQuickClustering::clusterCut ( std::vector< cluster > &  vec_Clusters,
unsigned int const &  config 
)
private

Definition at line 234 of file DAQQuickClustering_module.cc.

235 {
236  //REMEMBER WE NEED BOTH A MAXIMUM AND MINIMUM CHANNEL WIDTH DUE TO COSMICS.
237 
238  for(std::vector<cluster>::iterator it_Clusters=vec_Clusters.begin();
239  it_Clusters!=vec_Clusters.end();)
240  {
241  bool fail_MinChannels(false), fail_ChanWidth(false), fail_TotalADC(false);
242  if(it_Clusters->getNChan()<cut_MinChannels.at(config))
243  fail_MinChannels = true;
244 
245  if(it_Clusters->getChanWidth()<cut_MinChanWidth.at(config))
246  fail_ChanWidth = true;
247 
248  if(it_Clusters->getHitSADC()<cut_TotalADC.at(config))
249  fail_TotalADC = true;
250 
251  if(fail_MinChannels == true || fail_ChanWidth == true || fail_TotalADC == true)
252  it_Clusters = vec_Clusters.erase(it_Clusters);
253  else
254  it_Clusters++;
255  }
256  return;
257 }
intermediate_table::iterator iterator
std::vector< int > cut_MinChannels
std::vector< int > cut_MinChanWidth
static Config * config
Definition: config.cpp:1054
std::vector< float > cut_TotalADC
void DAQQuickClustering::endJob ( )
overridevirtual

Reimplemented from art::EDAnalyzer.

Definition at line 384 of file DAQQuickClustering_module.cc.

385 {
386  std::cout << "Job ended." << std::endl;
387  std::cerr << "firstCatch " << firstCatch << std::endl;
388  std::cerr << "secondCatch " << secondCatch << std::endl;
389  std::cerr << "thirdCatch " << thirdCatch << std::endl;
390 }
QTextStream & endl(QTextStream &s)
void DAQQuickClustering::FillMyMaps ( std::map< int, simb::MCParticle > &  MyMap,
art::FindManyP< simb::MCParticle Assn,
art::ValidHandle< std::vector< simb::MCTruth > >  Hand 
)
private

Definition at line 393 of file DAQQuickClustering_module.cc.

396 {
397  for ( size_t L1=0; L1 < Hand->size(); ++L1 ) {
398  for ( size_t L2=0; L2 < Assn.at(L1).size(); ++L2 ) {
399  const simb::MCParticle ThisPar = (*Assn.at(L1).at(L2));
400  MyMap[ThisPar.TrackId()] = ThisPar;
401  }
402  }
403  return;
404 }
int TrackId() const
Definition: MCParticle.h:210
bool DAQQuickClustering::InMyMap ( int  TrID,
std::map< int, simb::MCParticle ParMap 
)
private

Definition at line 371 of file DAQQuickClustering_module.cc.

372 {
373 
375  ParIt = ParMap.find(TrID);
376 
377  if(ParIt != ParMap.end()) return true;
378  else return false;
379 
380 }
intermediate_table::iterator iterator
void DAQQuickClustering::makeConfigGraph ( )
private

Definition at line 273 of file DAQQuickClustering_module.cc.

274 {
276 
277  for(unsigned int i = 0; i < NConfigs; i++)
278  {
279  TGraph* g_config = tfs->make<TGraph>(NCuts);
280  g_config->SetName(Form("g_ConfigDefinitions%i",i));
281  g_config->SetPoint(0, 1, cut_AdjChanTolerance[i]);
282  g_config->SetPoint(1, 2, cut_HitsInWindow [i]);
283  g_config->SetPoint(2, 3, cut_MinChannels [i]);
284  g_config->SetPoint(3, 4, cut_MinChanWidth [i]);
285  g_config->SetPoint(4, 5, cut_TimeWindowSize [i]);
286  g_config->SetPoint(5, 6, cut_TotalADC [i]);
287  }
288 
289 }
std::vector< int > cut_HitsInWindow
std::vector< int > cut_MinChannels
std::vector< int > cut_MinChanWidth
std::vector< int > cut_AdjChanTolerance
std::vector< float > cut_TimeWindowSize
std::vector< float > cut_TotalADC
DAQQuickClustering& DAQQuickClustering::operator= ( DAQQuickClustering const &  )
delete
DAQQuickClustering& DAQQuickClustering::operator= ( DAQQuickClustering &&  )
delete
void DAQQuickClustering::reconfigure ( fhicl::ParameterSet const &  p)

Definition at line 105 of file DAQQuickClustering_module.cc.

106 {
107 
108  fRawDigitLabel = p.get<std::string>("RawDigitLabel");
109  fHitLabel = p.get<std::string>("HitLabel" );
110 
111  fGEANTLabel = p.get<std::string>("GEANT4Label" );
112  fMARLLabel = p.get<std::string>("MARLEYLabel" );
113  fAPALabel = p.get<std::string>("APALabel" );
114  fCPALabel = p.get<std::string>("CPALabel" );
115  fAr39Label = p.get<std::string>("Argon39Label" );
116  fNeutLabel = p.get<std::string>("NeutronLabel" );
117  fKrypLabel = p.get<std::string>("KryptonLabel" );
118  fPlonLabel = p.get<std::string>("PoloniumLabel");
119  fRdonLabel = p.get<std::string>("RadonLabel" );
120  fAr42Label = p.get<std::string>("Argon42Label" );
121 
122 
123  cut_AdjChanTolerance = p.get<std::vector<int>> ("AdjChanTolerance");
124  cut_HitsInWindow = p.get<std::vector<int>> ("HitsInWindow");
125  cut_MinChannels = p.get<std::vector<int>> ("MinChannels");
126  cut_MinChanWidth = p.get<std::vector<int>> ("MinChanWidth");
127  cut_TimeWindowSize = p.get<std::vector<float>>("TimeWindowSize");
128  cut_TotalADC = p.get<std::vector<float>>("TotalADC");
129 
130  NConfigs = cut_AdjChanTolerance.size();
131  NCuts = 6;
132 
133  detectorScaling = p.get<double>("detectorScaling");
134 
135 } // Reconfigure
std::vector< int > cut_HitsInWindow
std::vector< int > cut_MinChannels
std::string string
Definition: nybbler.cc:12
std::vector< int > cut_MinChanWidth
std::vector< int > cut_AdjChanTolerance
std::vector< float > cut_TimeWindowSize
p
Definition: test.py:223
std::vector< float > cut_TotalADC
void DAQQuickClustering::ResetVariables ( )
private

Definition at line 139 of file DAQQuickClustering_module.cc.

140 {
141  MarlParts.clear(); APAParts .clear(); CPAParts .clear(); Ar39Parts.clear();
142  NeutParts.clear(); KrypParts.clear(); PlonParts.clear(); RdonParts.clear();
143  Ar42Parts.clear();
144  trkIDToPType.clear();
145  Run = SubRun = Event = -1;
146 
149  TotGen_Ar42 = 0;
150 
151  out_HitView.clear();
152  out_GenType.clear();
153  out_HitChan.clear();
154  out_HitTime.clear();
155  out_HitSADC.clear();
156  out_HitRMS .clear();
157 
158  NTotHits = NColHits = NIndHits = 0;
160  for (int hh=0; hh<nMaxHits; ++hh)
161  {
162  HitView[hh] = HitSize[hh] = HitChan[hh] = GenType[hh] = 0;
163  HitTime[hh] = HitRMS [hh] = HitSADC[hh] = 0;
164  HitInt [hh] = HitPeak[hh] = HitTPC [hh] = 0;
165  NCorrespondingIDEs[hh] = 0;
166  Hit_X[hh] = 0;
167  Hit_Y[hh] = 0;
168  Hit_Z[hh] = 0;
169  Hit_Energy[hh] = 0;
170  Hit_NumElectrons[hh] = 0;
171  }
172 
173  MarlSample.clear();
174  MarlTime .clear();
175  MarlWeight.clear();
176  ENu = 0;
177  ENu_Lep = 0;
178  VertX = 0;
179  VertY = 0;
180  VertZ = 0;
181  VertexT = 0;
182  Px = 0;
183  Py = 0;
184  Pz = 0;
185  VertexChan = 0;
186  map_EventToMC.clear();
187 
188 
189 }
std::vector< int > MarlSample
std::map< int, simb::MCParticle > NeutParts
std::map< int, PType > trkIDToPType
std::vector< double > MarlTime
std::vector< double > out_HitTime
std::map< int, std::vector< double > > map_EventToMC
std::vector< double > MarlWeight
std::map< int, simb::MCParticle > CPAParts
std::map< int, simb::MCParticle > Ar42Parts
std::vector< double > out_HitRMS
std::map< int, simb::MCParticle > MarlParts
std::map< int, simb::MCParticle > APAParts
std::vector< int > out_HitView
std::map< int, simb::MCParticle > PlonParts
const int nMaxHits
std::map< int, simb::MCParticle > Ar39Parts
std::map< int, simb::MCParticle > RdonParts
std::vector< double > out_HitSADC
std::vector< int > out_GenType
std::map< int, simb::MCParticle > KrypParts
std::vector< int > out_HitChan
void DAQQuickClustering::trigger ( std::vector< cluster > &  vec_Clusters,
unsigned int const &  config 
)
private

Definition at line 261 of file DAQQuickClustering_module.cc.

262 {
263 
264  for(unsigned int i = 0; i < vec_Clusters.size(); i++)
265  if(vec_Clusters.at(i).getNHits()>=cut_HitsInWindow.at(config))
266  vec_Clusters.at(i).setTriggerFlag(1);
267 
268  return;
269 }
std::vector< int > cut_HitsInWindow
static Config * config
Definition: config.cpp:1054
PType DAQQuickClustering::WhichParType ( int  TrID)
private

Definition at line 359 of file DAQQuickClustering_module.cc.

360 {
361  PType ThisPType = kUnknown;
362  auto const& it=trkIDToPType.find(TrID);
363  if(it!=trkIDToPType.end()){
364  ThisPType=it->second;
365  }
366 
367  return ThisPType;
368 }
std::map< int, PType > trkIDToPType

Member Data Documentation

std::map< int, simb::MCParticle > DAQQuickClustering::APAParts
private

Definition at line 240 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::Ar39Parts
private

Definition at line 242 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::Ar42Parts
private

Definition at line 247 of file DAQQuickClustering_module.h.

art::ServiceHandle<cheat::BackTrackerService> DAQQuickClustering::bt_serv
private

Definition at line 346 of file DAQQuickClustering_module.h.

int DAQQuickClustering::CCNC
private

Definition at line 329 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::CPAParts
private

Definition at line 241 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::cut_AdjChanTolerance
private

Definition at line 225 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::cut_HitsInWindow
private

Definition at line 226 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::cut_MinChannels
private

Definition at line 227 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::cut_MinChanWidth
private

Definition at line 228 of file DAQQuickClustering_module.h.

std::vector<float> DAQQuickClustering::cut_TimeWindowSize
private

Definition at line 229 of file DAQQuickClustering_module.h.

std::vector<float> DAQQuickClustering::cut_TotalADC
private

Definition at line 230 of file DAQQuickClustering_module.h.

double DAQQuickClustering::detectorScaling
private

Definition at line 255 of file DAQQuickClustering_module.h.

double DAQQuickClustering::ENu
private

Definition at line 335 of file DAQQuickClustering_module.h.

double DAQQuickClustering::ENu_Lep
private

Definition at line 336 of file DAQQuickClustering_module.h.

int DAQQuickClustering::Event
private

Definition at line 259 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fAPALabel
private

Definition at line 240 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fAr39Label
private

Definition at line 242 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fAr42Label
private

Definition at line 247 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fCPALabel
private

Definition at line 241 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fGEANTLabel
private

Definition at line 238 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fHitLabel
private

Definition at line 237 of file DAQQuickClustering_module.h.

int DAQQuickClustering::firstCatch
private

Definition at line 232 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fKrypLabel
private

Definition at line 244 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fMARLLabel
private

Definition at line 239 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fNeutLabel
private

Definition at line 243 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fPlonLabel
private

Definition at line 245 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fRawDigitLabel
private

Definition at line 236 of file DAQQuickClustering_module.h.

std::string DAQQuickClustering::fRdonLabel
private

Definition at line 246 of file DAQQuickClustering_module.h.

int DAQQuickClustering::GenType[nMaxHits]
private

Definition at line 308 of file DAQQuickClustering_module.h.

art::ServiceHandle<geo::Geometry> DAQQuickClustering::geo
private

Definition at line 345 of file DAQQuickClustering_module.h.

TH1D* DAQQuickClustering::h_ENu_MC
private

Definition at line 268 of file DAQQuickClustering_module.h.

TH1D* DAQQuickClustering::h_MarlTime_MC
private

Definition at line 269 of file DAQQuickClustering_module.h.

TH1D* DAQQuickClustering::h_TimeElapsed
private

Definition at line 270 of file DAQQuickClustering_module.h.

float DAQQuickClustering::Hit_Energy[nMaxHits]
private

Definition at line 312 of file DAQQuickClustering_module.h.

float DAQQuickClustering::Hit_NumElectrons[nMaxHits]
private

Definition at line 313 of file DAQQuickClustering_module.h.

float DAQQuickClustering::Hit_X[nMaxHits]
private

Definition at line 309 of file DAQQuickClustering_module.h.

float DAQQuickClustering::Hit_Y[nMaxHits]
private

Definition at line 310 of file DAQQuickClustering_module.h.

float DAQQuickClustering::Hit_Z[nMaxHits]
private

Definition at line 311 of file DAQQuickClustering_module.h.

int DAQQuickClustering::HitChan[nMaxHits]
private

Definition at line 302 of file DAQQuickClustering_module.h.

float DAQQuickClustering::HitInt[nMaxHits]
private

Definition at line 306 of file DAQQuickClustering_module.h.

int DAQQuickClustering::HitNucleon
private

Definition at line 330 of file DAQQuickClustering_module.h.

float DAQQuickClustering::HitPeak[nMaxHits]
private

Definition at line 307 of file DAQQuickClustering_module.h.

float DAQQuickClustering::HitRMS[nMaxHits]
private

Definition at line 304 of file DAQQuickClustering_module.h.

float DAQQuickClustering::HitSADC[nMaxHits]
private

Definition at line 305 of file DAQQuickClustering_module.h.

int DAQQuickClustering::HitSize[nMaxHits]
private

Definition at line 300 of file DAQQuickClustering_module.h.

float DAQQuickClustering::HitTime[nMaxHits]
private

Definition at line 303 of file DAQQuickClustering_module.h.

int DAQQuickClustering::HitTPC[nMaxHits]
private

Definition at line 301 of file DAQQuickClustering_module.h.

int DAQQuickClustering::HitView[nMaxHits]
private

Definition at line 299 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::KrypParts
private

Definition at line 244 of file DAQQuickClustering_module.h.

std::map<int,std::vector<double> > DAQQuickClustering::map_EventToMC
private

Definition at line 261 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::MarlParts
private

Definition at line 239 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::MarlSample
private

Definition at line 332 of file DAQQuickClustering_module.h.

std::vector<double> DAQQuickClustering::MarlTime
private

Definition at line 333 of file DAQQuickClustering_module.h.

std::vector<double> DAQQuickClustering::MarlWeight
private

Definition at line 334 of file DAQQuickClustering_module.h.

int DAQQuickClustering::Mode
private

Definition at line 328 of file DAQQuickClustering_module.h.

int DAQQuickClustering::NColHits
private

Definition at line 296 of file DAQQuickClustering_module.h.

unsigned int DAQQuickClustering::NConfigs
private

Definition at line 252 of file DAQQuickClustering_module.h.

int DAQQuickClustering::NCorrespondingIDEs[nMaxHits]
private

Definition at line 314 of file DAQQuickClustering_module.h.

unsigned int DAQQuickClustering::NCuts
private

Definition at line 253 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::NeutParts
private

Definition at line 243 of file DAQQuickClustering_module.h.

int DAQQuickClustering::nHitsNotBackTracked
private

Definition at line 298 of file DAQQuickClustering_module.h.

int DAQQuickClustering::NIndHits
private

Definition at line 297 of file DAQQuickClustering_module.h.

int DAQQuickClustering::NTotHits
private

Definition at line 295 of file DAQQuickClustering_module.h.

int DAQQuickClustering::Nu_Lep_Type
private

Definition at line 327 of file DAQQuickClustering_module.h.

int DAQQuickClustering::Nu_Type
private

Definition at line 326 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_ChanWidth
private

Definition at line 277 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_Cluster
private

Definition at line 272 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_Config
private

Definition at line 274 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_EndChan
private

Definition at line 276 of file DAQQuickClustering_module.h.

double DAQQuickClustering::out_ENu
private

Definition at line 285 of file DAQQuickClustering_module.h.

double DAQQuickClustering::out_ENu_Lep
private

Definition at line 286 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_Event
private

Definition at line 273 of file DAQQuickClustering_module.h.

float DAQQuickClustering::out_FirstTimeHit
private

Definition at line 282 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::out_GenType
private

Definition at line 289 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::out_HitChan
private

Definition at line 290 of file DAQQuickClustering_module.h.

std::vector<double> DAQQuickClustering::out_HitRMS
private

Definition at line 293 of file DAQQuickClustering_module.h.

std::vector<double> DAQQuickClustering::out_HitSADC
private

Definition at line 292 of file DAQQuickClustering_module.h.

std::vector<double> DAQQuickClustering::out_HitTime
private

Definition at line 291 of file DAQQuickClustering_module.h.

std::vector<int> DAQQuickClustering::out_HitView
private

Definition at line 288 of file DAQQuickClustering_module.h.

float DAQQuickClustering::out_LastTimeHit
private

Definition at line 283 of file DAQQuickClustering_module.h.

double DAQQuickClustering::out_MarlTime
private

Definition at line 287 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_NChan
private

Definition at line 278 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_NHits
private

Definition at line 280 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_StartChan
private

Definition at line 275 of file DAQQuickClustering_module.h.

float DAQQuickClustering::out_SumADC
private

Definition at line 281 of file DAQQuickClustering_module.h.

float DAQQuickClustering::out_TimeWidth
private

Definition at line 284 of file DAQQuickClustering_module.h.

int DAQQuickClustering::out_Type
private

Definition at line 279 of file DAQQuickClustering_module.h.

art::ServiceHandle<cheat::ParticleInventoryService> DAQQuickClustering::pi_serv
private

Definition at line 347 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::PlonParts
private

Definition at line 245 of file DAQQuickClustering_module.h.

double DAQQuickClustering::Px
private

Definition at line 341 of file DAQQuickClustering_module.h.

double DAQQuickClustering::Py
private

Definition at line 342 of file DAQQuickClustering_module.h.

double DAQQuickClustering::Pz
private

Definition at line 343 of file DAQQuickClustering_module.h.

std::map< int, simb::MCParticle > DAQQuickClustering::RdonParts
private

Definition at line 246 of file DAQQuickClustering_module.h.

int DAQQuickClustering::Run
private

Definition at line 257 of file DAQQuickClustering_module.h.

int DAQQuickClustering::secondCatch
private

Definition at line 233 of file DAQQuickClustering_module.h.

int DAQQuickClustering::SubRun
private

Definition at line 258 of file DAQQuickClustering_module.h.

TTree* DAQQuickClustering::t_Output_clusteredhits
private

Definition at line 266 of file DAQQuickClustering_module.h.

TTree* DAQQuickClustering::t_Output_unusedhits
private

Definition at line 265 of file DAQQuickClustering_module.h.

int DAQQuickClustering::Target
private

Definition at line 331 of file DAQQuickClustering_module.h.

int DAQQuickClustering::thirdCatch
private

Definition at line 234 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_APA
private

Definition at line 316 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Ar39
private

Definition at line 318 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Ar42
private

Definition at line 323 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_CPA
private

Definition at line 317 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Kryp
private

Definition at line 320 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Marl
private

Definition at line 315 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Neut
private

Definition at line 319 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Plon
private

Definition at line 321 of file DAQQuickClustering_module.h.

int DAQQuickClustering::TotGen_Rdon
private

Definition at line 322 of file DAQQuickClustering_module.h.

std::map<int, PType> DAQQuickClustering::trkIDToPType
private

Definition at line 250 of file DAQQuickClustering_module.h.

int DAQQuickClustering::VertexChan
private

Definition at line 325 of file DAQQuickClustering_module.h.

double DAQQuickClustering::VertexT
private

Definition at line 340 of file DAQQuickClustering_module.h.

double DAQQuickClustering::VertX
private

Definition at line 337 of file DAQQuickClustering_module.h.

double DAQQuickClustering::VertY
private

Definition at line 338 of file DAQQuickClustering_module.h.

double DAQQuickClustering::VertZ
private

Definition at line 339 of file DAQQuickClustering_module.h.


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