Belle II Software development
reconstruction modules

Classes

class  BeamSpotCollectorModule
 This collects the track parameters of the mu+mu- events for calibration of the BeamSpot using CAF and AirFlow. More...
 
class  BoostVectorCollectorModule
 This collects the track parameters and momenta of the mu+mu- events for calibration of the BoostVector using CAF and AirFlow. More...
 
class  ClusterMatcherModule
 Match KLM Clusters to close ECL Clusters. More...
 
class  DetectorOccupanciesDQMModule
 DQM Module for basic detector quantities before the HLT filter. More...
 
class  EcmsCollectorModule
 Collector for the collision energy calibration based on the hadronic modes. More...
 
class  EventsOfDoomBusterModule
 Module that flags an event destined for doom at reconstruction, based on the size of selected hits/digits containers after the unpacking. More...
 
class  EventT0CombinerModule
 Module to combine the EventT0 values from multiple sub-detectors. More...
 
class  EventT0DQMModule
 This module to design collect the event t0 values base on different detectors and physics processes. More...
 
class  EventT0ValidationModule
 This module to design collect the event t0 values base on different detectors and physics processes. More...
 
class  BeamSpotMonitorModule
 Module for the monitoring of the BeamSpot position and size. More...
 
class  DataWriterModule
 Module to write Ntuples for KlId BKG classifier training. More...
 
class  ECLExpertModule
 Module to perform the ECL Klong ID classification. More...
 
class  KLMExpertModule
 Module to perform the KLM KlId classification. More...
 
class  KlongValidationModule
 Module used by the validation server to generate root files for the validation. More...
 
class  KLMMuonIDDNNExpertModule
 KLMMuonIDDNNExpert for calculating Neural Network based muonID. More...
 
class  MdstPIDModule
 a module to fill PIDLikelihoods More...
 
class  PIDNtupleModule
 makes PID ntuple from mdst input More...
 
class  HelixHelper
 Helper class representing a helical track. More...
 
class  VXDDedxPIDModule
 Extract dE/dx from fitted tracks. More...
 
class  VXDDedxPIDRemakerModule
 Module that re-makes VXD PID likelihoods by taking dE/dx stored in VXDDedxTracks and lookup table PDF's from DB. More...
 

Functions

 REG_MODULE (VXDDedxPIDRemaker)
 Register module.
 
 VXDDedxPIDRemakerModule ()
 Default constructor.
 
void checkPDFs ()
 Check the pdfs for consistency every time they change in the database.
 
virtual void initialize () override
 Initialize the module.
 
virtual void event () override
 This method is called for each event.
 

Variables

static const double realNaN = std::numeric_limits<double>::quiet_NaN()
 This collects the B-meson properties in the hadronic B-decays It is used for the Ecms calibration in AirFlow.
 
static ROOT::Math::XYZVector minimize_distance_to_point
 user supplied point we're trying to find the nearest helix point to
 
static ROOT::Math::XYZVector minimize_distance_to_line_a
 first user supplied line we're trying to find the nearest helix point to
 
static ROOT::Math::XYZVector minimize_distance_to_line_b
 second user supplied line we're trying to find the nearest helix point to
 
static HelixHelper const * helix_object
 keep a 'this' pointer around for minimization
 

Detailed Description

Function Documentation

◆ checkPDFs()

void checkPDFs ( )
private

Check the pdfs for consistency every time they change in the database.

Definition at line 44 of file VXDDedxPIDRemakerModule.cc.

45 {
46 if (m_usePXD) {
47 if (not m_PXDDedxPDFs) B2FATAL("No PXD dE/dx PDF's available");
48 bool ok = m_PXDDedxPDFs->checkPDFs(not m_useIndividualHits);
49 if (not ok) B2FATAL("Binning or ranges of PXD dE/dx PDF's differ");
50 }
51 if (m_useSVD) {
52 if (not m_SVDDedxPDFs) B2FATAL("No SVD Dedx PDF's available");
53 bool ok = m_SVDDedxPDFs->checkPDFs(not m_useIndividualHits);
54 if (not ok) B2FATAL("Binning or ranges of SVD dE/dx PDF's differ");
55 }
56 }
DBObjPtr< SVDdEdxPDFs > m_SVDDedxPDFs
look-up tables of SVD PDF's
bool m_usePXD
use PXD data for likelihood
DBObjPtr< PXDdEdxPDFs > m_PXDDedxPDFs
look-up tables of PXD PDF's
bool m_useSVD
use SVD data for likelihood
bool m_useIndividualHits
use individual hits (true) or truncated mean (false) to determine likelihoods

◆ event()

void event ( void  )
overridevirtual

This method is called for each event.

All processing of the event takes place in this method.

Reimplemented from Module.

Definition at line 74 of file VXDDedxPIDRemakerModule.cc.

75 {
76 m_dedxLikelihoods.clear();
77
78 for (const auto& track : m_tracks) {
79 auto* dedxTrack = track.getRelatedTo<VXDDedxTrack>();
80 if (not dedxTrack) continue;
81
82 // re-calculate log likelihoods
83 dedxTrack->clearLogLikelihoods();
84 bool truncated = not m_useIndividualHits;
85 if (m_usePXD) dedxTrack->addLogLikelihoods(m_PXDDedxPDFs->getPDFs(truncated), Dedx::c_PXD, truncated);
86 if (m_useSVD) dedxTrack->addLogLikelihoods(m_SVDDedxPDFs->getPDFs(truncated), Dedx::c_SVD, truncated);
87
88 // save log likelihoods
89 if (dedxTrack->areLogLikelihoodsAvailable()) {
90 auto* likelihoodObj = m_dedxLikelihoods.appendNew(dedxTrack->getLogLikelihoods());
91 track.addRelationTo(likelihoodObj);
92 }
93 }
94
95 }
StoreArray< VXDDedxLikelihood > m_dedxLikelihoods
collection of VXDDedxLikelihoods
StoreArray< Track > m_tracks
collection of Tracks

◆ initialize()

void initialize ( void  )
overridevirtual

Initialize the module.

Reimplemented from Module.

Definition at line 58 of file VXDDedxPIDRemakerModule.cc.

59 {
60 // required inputs
61 m_tracks.isRequired();
62 m_dedxTracks.isRequired();
63
64 // register likelihoods
65 m_dedxLikelihoods.registerInDataStore();
66 m_tracks.registerRelationTo(m_dedxLikelihoods);
67
68 // check PDF's and add callback
69 m_SVDDedxPDFs.addCallback([this]() {checkPDFs();});
70 m_PXDDedxPDFs.addCallback([this]() {checkPDFs();});
71 checkPDFs();
72 }
StoreArray< VXDDedxTrack > m_dedxTracks
collection of VXDDedxTracks
void checkPDFs()
Check the pdfs for consistency every time they change in the database.

◆ VXDDedxPIDRemakerModule()

Default constructor.

Definition at line 30 of file VXDDedxPIDRemakerModule.cc.

30 : Module()
31 {
33
34 // Set module description
35 setDescription("Module that re-makes VXD PID likelihoods by taking dE/dx stored in VXDDedxTracks and lookup table PDF's from DB.");
36
37 // Parameter definitions
38 addParam("useIndividualHits", m_useIndividualHits,
39 "Use individual hits (true) or truncated mean (false) to determine likelihoods", false);
40 addParam("usePXD", m_usePXD, "Use dE/dx from PXD", false);
41 addParam("useSVD", m_useSVD, "Use dE/dx from SVD", true);
42 }
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:214
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition: Module.cc:208
Module()
Constructor.
Definition: Module.cc:30
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition: Module.h:80
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition: Module.h:559

Variable Documentation

◆ helix_object

HelixHelper const * helix_object
staticprivate

keep a 'this' pointer around for minimization

Definition at line 168 of file HelixHelper.h.

◆ minimize_distance_to_line_a

ROOT::Math::XYZVector minimize_distance_to_line_a
staticprivate

first user supplied line we're trying to find the nearest helix point to

Definition at line 164 of file HelixHelper.h.

◆ minimize_distance_to_line_b

ROOT::Math::XYZVector minimize_distance_to_line_b
staticprivate

second user supplied line we're trying to find the nearest helix point to

Definition at line 166 of file HelixHelper.h.

◆ minimize_distance_to_point

ROOT::Math::XYZVector minimize_distance_to_point
staticprivate

user supplied point we're trying to find the nearest helix point to

Definition at line 162 of file HelixHelper.h.

◆ realNaN

const double realNaN = std::numeric_limits<double>::quiet_NaN()
static

This collects the B-meson properties in the hadronic B-decays It is used for the Ecms calibration in AirFlow.

NaN with double precision for dummy entry

Definition at line 24 of file EcmsCollectorModule.h.