LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
ClusteringValidation::ClusterCounter Class Reference

Public Member Functions

void AddHitPreClustering (TrackID id)
 
void AddSignalHitPostClustering (ClusterID id)
 
void AddNoiseHitPostClustering (ClusterID id)
 
void AssociateClusterAndTrack (ClusterID clusID, TrackID trackID)
 
double GetCompleteness (ClusterID id)
 
double GetCleanliness (ClusterID id)
 
double GetEfficiency (TrackID id)
 
ClusterIDs GetListOfClusterIDs ()
 
TrackIDs GetListOfTrackIDs ()
 
int GetNumberHitsFromTrack (TrackID id)
 
int GetNumberHitsInCluster (ClusterID id)
 
int GetNumberHitsInPlane ()
 
std::vector< std::pair< TrackID, ClusterIDs > > GetPhotons ()
 
TrackID GetTrack (ClusterID id)
 
bool IsNoise (ClusterID id)
 
bool IsNoise (TrackID id)
 
bool PassesCut ()
 

Private Attributes

std::map< TrackID, int > numHitsPreClustering
 
std::map< ClusterID, int > numSignalHitsPostClustering
 
std::map< ClusterID, int > numNoiseHitsPostClustering
 
std::map< ClusterID, TrackIDclusterToTrackID
 
std::map< TrackID, ClusterIDstrackToClusterIDs
 
std::map< TrackID, std::map< std::string, double > > particleProperties
 
std::map< TrackID, simb::MCParticletrueParticles
 
art::ServiceHandle< cheat::BackTrackerService const > bt_serv
 
art::ServiceHandle< cheat::ParticleInventoryServicepi_serv
 

Detailed Description

Definition at line 62 of file ClusteringValidation_module.cc.

Member Function Documentation

void ClusteringValidation::ClusterCounter::AddHitPreClustering ( TrackID  id)

Definition at line 95 of file ClusteringValidation_module.cc.

96 {
97  ++numHitsPreClustering[trackID];
98 }
void ClusteringValidation::ClusterCounter::AddNoiseHitPostClustering ( ClusterID  id)

Definition at line 105 of file ClusteringValidation_module.cc.

106 {
107  ++numNoiseHitsPostClustering[clusID];
108 }
std::map< ClusterID, int > numNoiseHitsPostClustering
void ClusteringValidation::ClusterCounter::AddSignalHitPostClustering ( ClusterID  id)

Definition at line 100 of file ClusteringValidation_module.cc.

101 {
102  ++numSignalHitsPostClustering[clusID];
103 }
std::map< ClusterID, int > numSignalHitsPostClustering
void ClusteringValidation::ClusterCounter::AssociateClusterAndTrack ( ClusterID  clusID,
TrackID  trackID 
)

Definition at line 110 of file ClusteringValidation_module.cc.

112 {
113  clusterToTrackID[clusID] = trackID;
114  trackToClusterIDs[trackID].push_back(clusID);
115 }
std::map< TrackID, ClusterIDs > trackToClusterIDs
std::map< ClusterID, TrackID > clusterToTrackID
double ClusteringValidation::ClusterCounter::GetCleanliness ( ClusterID  id)

Definition at line 123 of file ClusteringValidation_module.cc.

124 {
125  return (double)numSignalHitsPostClustering[clusID] / (double)(GetNumberHitsInCluster(clusID));
126 }
std::map< ClusterID, int > numSignalHitsPostClustering
double ClusteringValidation::ClusterCounter::GetCompleteness ( ClusterID  id)

Definition at line 117 of file ClusteringValidation_module.cc.

118 {
119  return (double)numSignalHitsPostClustering[clusID] /
120  (double)numHitsPreClustering[clusterToTrackID[clusID]];
121 }
std::map< ClusterID, int > numSignalHitsPostClustering
std::map< ClusterID, TrackID > clusterToTrackID
double ClusteringValidation::ClusterCounter::GetEfficiency ( TrackID  id)

Definition at line 128 of file ClusteringValidation_module.cc.

129 {
130  return 1 / (double)trackToClusterIDs.at(trackID).size();
131 }
std::map< TrackID, ClusterIDs > trackToClusterIDs
ClusterIDs ClusteringValidation::ClusterCounter::GetListOfClusterIDs ( )

Definition at line 151 of file ClusteringValidation_module.cc.

152 {
153  ClusterIDs v;
155  i != clusterToTrackID.end();
156  i++)
157  v.push_back(i->first);
158  return v;
159 }
intermediate_table::iterator iterator
std::vector< ClusterID > ClusterIDs
std::map< ClusterID, TrackID > clusterToTrackID
TrackIDs ClusteringValidation::ClusterCounter::GetListOfTrackIDs ( )

Definition at line 161 of file ClusteringValidation_module.cc.

162 {
163  TrackIDs v;
165  i != trackToClusterIDs.end();
166  i++)
167  v.push_back(i->first);
168  return v;
169 }
intermediate_table::iterator iterator
std::vector< TrackID > TrackIDs
std::map< TrackID, ClusterIDs > trackToClusterIDs
int ClusteringValidation::ClusterCounter::GetNumberHitsFromTrack ( TrackID  id)

Definition at line 133 of file ClusteringValidation_module.cc.

134 {
135  return numHitsPreClustering[trackID];
136 }
int ClusteringValidation::ClusterCounter::GetNumberHitsInCluster ( ClusterID  id)

Definition at line 138 of file ClusteringValidation_module.cc.

139 {
141 }
std::map< ClusterID, int > numNoiseHitsPostClustering
std::map< ClusterID, int > numSignalHitsPostClustering
int ClusteringValidation::ClusterCounter::GetNumberHitsInPlane ( )

Definition at line 143 of file ClusteringValidation_module.cc.

144 {
145  int nHits = 0;
146  for (auto& trackHits : numHitsPreClustering)
147  nHits += trackHits.second;
148  return nHits;
149 }
std::vector< std::pair< TrackID, ClusterIDs > > ClusteringValidation::ClusterCounter::GetPhotons ( )

Definition at line 171 of file ClusteringValidation_module.cc.

References track.

172 {
173  std::vector<std::pair<TrackID, ClusterIDs>> photonVector;
174  for (unsigned int track = 0; track < GetListOfTrackIDs().size(); ++track)
175  if (!IsNoise(GetListOfTrackIDs().at(track)) &&
177  photonVector.push_back(std::pair<TrackID, ClusterIDs>(
179  return photonVector;
180 }
int PdgCode() const
Definition: MCParticle.h:213
const simb::MCParticle * TrackIdToParticle_P(int id) const
std::map< TrackID, ClusterIDs > trackToClusterIDs
Float_t track
Definition: plot.C:35
art::ServiceHandle< cheat::ParticleInventoryService > pi_serv
TrackID ClusteringValidation::ClusterCounter::GetTrack ( ClusterID  id)

Definition at line 182 of file ClusteringValidation_module.cc.

183 {
184  return clusterToTrackID.at(id);
185 }
std::map< ClusterID, TrackID > clusterToTrackID
bool ClusteringValidation::ClusterCounter::IsNoise ( ClusterID  id)

Definition at line 187 of file ClusteringValidation_module.cc.

188 {
189  return IsNoise(clusterToTrackID.at(clusID));
190 }
std::map< ClusterID, TrackID > clusterToTrackID
bool ClusteringValidation::ClusterCounter::IsNoise ( TrackID  id)

Definition at line 192 of file ClusteringValidation_module.cc.

193 {
194  return (int)trackID == 0 ? true : false;
195 }
bool ClusteringValidation::ClusterCounter::PassesCut ( )

Definition at line 197 of file ClusteringValidation_module.cc.

References util::size().

198 {
199  if (GetPhotons().size() > 2 || GetPhotons().size() == 0) return false;
200  TrackIDs goodPhotons;
201  for (unsigned int photon = 0; photon < GetPhotons().size(); ++photon)
202  for (unsigned int cluster = 0; cluster < GetPhotons().at(photon).second.size(); ++cluster)
203  if (GetCompleteness(GetPhotons().at(photon).second.at(cluster)) > 0.5)
204  goodPhotons.push_back(GetPhotons().at(photon).first);
205  if ((GetPhotons().size() == 2 && goodPhotons.size() > 2) ||
206  (GetPhotons().size() == 1 && goodPhotons.size() > 1))
207  std::cout << "More than 2 with >50%?!" << std::endl;
208  bool pass = ((GetPhotons().size() == 2 && goodPhotons.size() == 2) ||
209  (GetPhotons().size() == 1 && goodPhotons.size() == 1));
210  return pass;
211 }
std::vector< TrackID > TrackIDs
Cluster finding and building.
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Definition: StdUtils.h:101
std::vector< std::pair< TrackID, ClusterIDs > > GetPhotons()
second_as<> second
Type of time stored in seconds, in double precision.
Definition: spacetime.h:82

Member Data Documentation

art::ServiceHandle<cheat::BackTrackerService const> ClusteringValidation::ClusterCounter::bt_serv
private

Definition at line 91 of file ClusteringValidation_module.cc.

std::map<ClusterID, TrackID> ClusteringValidation::ClusterCounter::clusterToTrackID
private

Definition at line 86 of file ClusteringValidation_module.cc.

std::map<TrackID, int> ClusteringValidation::ClusterCounter::numHitsPreClustering
private

Definition at line 83 of file ClusteringValidation_module.cc.

std::map<ClusterID, int> ClusteringValidation::ClusterCounter::numNoiseHitsPostClustering
private

Definition at line 85 of file ClusteringValidation_module.cc.

std::map<ClusterID, int> ClusteringValidation::ClusterCounter::numSignalHitsPostClustering
private

Definition at line 84 of file ClusteringValidation_module.cc.

std::map<TrackID, std::map<std::string, double> > ClusteringValidation::ClusterCounter::particleProperties
private

Definition at line 88 of file ClusteringValidation_module.cc.

art::ServiceHandle<cheat::ParticleInventoryService> ClusteringValidation::ClusterCounter::pi_serv
private

Definition at line 92 of file ClusteringValidation_module.cc.

std::map<TrackID, ClusterIDs> ClusteringValidation::ClusterCounter::trackToClusterIDs
private

Definition at line 87 of file ClusteringValidation_module.cc.

std::map<TrackID, simb::MCParticle> ClusteringValidation::ClusterCounter::trueParticles
private

Definition at line 89 of file ClusteringValidation_module.cc.


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