Belle II Software  release-08-01-10
BestMatchedTruthVarSet Class Reference

Class to compute floating point variables from a track which can be recorded as a flat TNtuple or serve as input to a MVA method. More...

#include <BestMatchedTruthVarSet.h>

Inheritance diagram for BestMatchedTruthVarSet:
Collaboration diagram for BestMatchedTruthVarSet:

Public Types

using Object = typename Super::Object
 Type from which variables should be extracted.
 

Public Member Functions

void initialize () final
 Require the Monte Carlo truth information at initialisation.
 
void beginEvent () final
 Prepare the Monte Carlo truth information at start of the event.
 
bool extract (const CDCTrack *ptrCDCTrack) override
 Generate and assign the contained variables. More...
 
std::vector< Named< Float_t * > > getNamedVariables (const std::string &prefix) override
 Getter for the named references to the individual variables Base implementaton returns empty vector.
 
std::vector< Named< Float_t * > > getNamedVariables ()
 Getter for the named references to the individual variables.
 
MayBePtr< Float_t > find (const std::string &varName) override
 Pointer to the variable with the given name. More...
 
virtual bool extract (const Object *obj)
 Main method that extracts the variable values from the complex object. More...
 
bool extract (const Object &obj)
 Method for extraction from an object instead of a pointer.
 
std::map< std::string, Float_t > getNamedValues (const std::string &prefix) const
 Getter for a map of names to float values. More...
 
std::map< std::string, Float_t > getNamedValues () const
 Getter for a map of names to float values.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 

Protected Member Functions

Float_t get () const
 Getter for the value of the ith variable. Static version.
 
Float_t & var ()
 Reference getter for the value of the ith variable. Static version.
 
AssignFinite< Float_t > finitevar ()
 Reference getter for the value of the ith variable. Transforms non-finite values to finite value.
 
void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Static Protected Member Functions

constexpr static int named (const char *name)
 Getter for the index from the name. More...
 

Private Types

using Super = VarSet< BestMatchedTruthVarNames >
 Type of the base class.
 

Private Attributes

StoreObjPtr< EventMetaDatam_eventMetaData
 Pointer to the store array object with the EventMetaData.
 
FixedSizeNamedFloatTuple< BestMatchedTruthVarNamesm_variables
 Memory for nVars floating point values.
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
bool m_initialized = false
 Flag to keep track whether initialization happend before.
 
bool m_terminated = false
 Flag to keep track whether termination happend before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Static Private Attributes

static const size_t nVars
 Number of floating point values represented by this class.
 

Detailed Description

Class to compute floating point variables from a track which can be recorded as a flat TNtuple or serve as input to a MVA method.

Definition at line 58 of file BestMatchedTruthVarSet.h.

Member Function Documentation

◆ extract() [1/2]

bool extract ( const CDCTrack ptrCDCTrack)
override

Generate and assign the contained variables.

Find the MC track with the highest number of hits in the segment

Flag if CDCTrack is matched in CDCMCTrackLookUp, which uses m_minimalMatchPurity = 0.5

count number of correct hits

Definition at line 33 of file BestMatchedTruthVarSet.cc.

34 {
35  if (not ptrCDCTrack) return false;
36 
38  const CDCMCTrackLookUp& mcTrackLookUp = CDCMCTrackLookUp::getInstance();
39  const CDCMCHitLookUp& hitLookUp = CDCMCHitLookUp::getInstance();
41 
42  ITrackType trackMCMatch = mcTrackLookUp.getMCTrackId(ptrCDCTrack);
43  bool trackIsFake = false;
44 
45  unsigned int numberOfCorrectHits = 0;
46 
48  bool trackHasMinimalMatchPurity = (trackMCMatch != INVALID_ITRACK);
49 
50  if (not trackHasMinimalMatchPurity) {
51  trackIsFake = true;
52  } else {
54  auto hitIsCorrect = [&hitLookUp, &trackMCMatch](const CDCRecoHit3D & recoHit) {
55  return hitLookUp.getMCTrackId(recoHit.getWireHit().getHit()) == trackMCMatch;
56  };
57  numberOfCorrectHits = std::count_if(begin(*ptrCDCTrack), end(*ptrCDCTrack), hitIsCorrect);
58 
59  const double purity = (double)numberOfCorrectHits / ptrCDCTrack->size();
60  if (purity < 0.8) {
61  trackIsFake = true;
62  } else {
63  trackIsFake = false;
64  }
65  }
66 
67  bool trackIsClone = cloneLookUp.isTrackClone(*ptrCDCTrack);
68  bool matchedNotClone = (not trackIsClone) and (not trackIsFake);
69  var<named("truth")>() = matchedNotClone;
70  var<named("truth_track_is_fake")>() = trackIsFake;
71  var<named("truth_track_is_matched")>() = not trackIsFake;
72  var<named("truth_matched_hits")>() = numberOfCorrectHits;
73  var<named("truth_track_is_clone")>() = trackIsClone;
74  var<named("truth_first_nloops")>() = mcTrackLookUp.getFirstNLoops(ptrCDCTrack);
75  var<named("truth_event_id")>() = m_eventMetaData->getEvent();
76  var<named("truth_MCTrackID")>() = trackMCMatch;
77  return true;
78 }
StoreObjPtr< EventMetaData > m_eventMetaData
Pointer to the store array object with the EventMetaData.
Class providing information whether a PR CDC track is the best match or a clone.
bool isTrackClone(const CDCTrack &cdcTrack)
getter for information from m_cdcTrackIsCloneMap
static CDCMCCloneLookUp & getInstance()
Getter for the singletone instance.
ITrackType getMCTrackId(const ACDCHitCollection *ptrHits) const
Getter for the Monte Carlo track id matched to this collection of hits.
Index getFirstNLoops(const ACDCHitCollection *ptrHits) const
Getter for number of loops till the first hit the collection of hits which has the Monte Carlo track ...
Interface class to the Monte Carlo information for individual hits.
ITrackType getMCTrackId(const CDCHit *ptrHit) const
Returns the track id for the hit.
static const CDCMCHitLookUp & getInstance()
Getter for the singletone instance.
Specialisation of the lookup for the truth values of reconstructed tracks.
static const CDCMCTrackLookUp & getInstance()
Getter for the singletone instance.
Class representing a three dimensional reconstructed hit.
Definition: CDCRecoHit3D.h:52
constexpr static int named(const char *name)
Getter for the index from the name.
Definition: VarSet.h:78
Float_t & var()
Reference getter for the value of the ith variable. Static version.
Definition: VarSet.h:93

◆ extract() [2/2]

virtual bool extract ( const Object obj)
inlinevirtualinherited

Main method that extracts the variable values from the complex object.

Returns indication whether the extraction could be completed successfully. Base implementation returns always true.

Parameters
objdummy object not used
Returns
: always true for the base implementation

Definition at line 50 of file BaseVarSet.h.

◆ find()

MayBePtr<Float_t> find ( const std::string &  varName)
inlineoverridevirtualinherited

Pointer to the variable with the given name.

Returns nullptr if not found.

Reimplemented from BaseVarSet< AVarNames::Object >.

Definition at line 64 of file VarSet.h.

◆ getNamedValues()

std::map<std::string, Float_t> getNamedValues ( const std::string &  prefix) const
inlineinherited

Getter for a map of names to float values.

Parameters
prefixName prefix to apply to all variable names.

Definition at line 83 of file BaseVarSet.h.

◆ named()

constexpr static int named ( const char *  name)
inlinestaticconstexprprotectedinherited

Getter for the index from the name.

Looks through the associated names and returns the right index if found Returns nVars (one after the last element) if not found.

Parameters
nameName of the sought variable
Returns
Index of the name, nVars if not found.

Definition at line 78 of file VarSet.h.


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