 |
Belle II Software
release-05-02-19
|
11 #ifndef VXDDEDXPIDMODULE_H
12 #define VXDDEDXPIDMODULE_H
14 #include <framework/core/Module.h>
15 #include <framework/gearbox/Const.h>
16 #include <framework/datastore/StoreArray.h>
18 #include <reconstruction/dataobjects/VXDDedxTrack.h>
19 #include <reconstruction/dataobjects/VXDDedxLikelihood.h>
20 #include <reconstruction/dataobjects/DedxConstants.h>
22 #include <mdst/dataobjects/Track.h>
23 #include <mdst/dataobjects/MCParticle.h>
24 #include <tracking/dataobjects/RecoTrack.h>
25 #include <svd/dataobjects/SVDCluster.h>
26 #include <pxd/dataobjects/PXDCluster.h>
28 #include <framework/database/DBObjPtr.h>
29 #include <reconstruction/dbobjects/DedxPDFs.h>
54 class VXDDedxPIDModule :
public Module {
69 virtual void event()
override;
102 void calculateMeans(
double* mean,
double* truncatedMean,
double* truncatedMeanErr,
const std::vector<double>& dedx)
const;
static const unsigned int c_SetSize
Number of elements (for use in array bounds etc.)
bool m_useSVD
use SVD hits for likelihood
double m_trackDistanceThreshhold
Use a faster helix parametrisation, with corrections as soon as the approximation is more than ....
DBObjPtr< DedxPDFs > m_DBDedxPDFs
DB object for dedx:momentum PDFs.
int m_trackID
counter for tracks in this event
static double getTraversedLength(const PXDCluster *hit, const HelixHelper *helix)
returns traversed length through active medium of given PXDCluster.
int m_eventID
counter for events
void checkPDFs()
Check the pdfs for consistency everytime they change in the database.
Helper class representing a helical track.
VXDDedxPIDModule()
Default constructor.
Debug output for VXDDedxPID module.
StoreArray< RecoTrack > m_recoTracks
Required array of input RecoTracks.
StoreArray< Track > m_tracks
Required array of Tracks.
Class for accessing objects in the database.
void calculateMeans(double *mean, double *truncatedMean, double *truncatedMeanErr, const std::vector< double > &dedx) const
Save arithmetic and truncated mean for the 'dedx' values.
void savePXDLogLikelihood(double(&logl)[Const::ChargedStable::c_SetSize], double p, float dedx) const
for all particles in the PXD, save log-likelihood values into 'logl'.
void saveSiHits(VXDDedxTrack *track, const HelixHelper &helix, const std::vector< HitClass * > &hits) const
save energy loss and hit information from SVD/PXDHits to track
Abstract base class for different kinds of events.
bool m_onlyPrimaryParticles
Only save data for primary particles (as determined by MC truth)
bool m_usePXD
use PXD hits for likelihood
StoreArray< VXDDedxTrack > m_dedxTracks
Output array of VXDDedxTracks.
bool m_useIndividualHits
Include PDF value for each hit in likelihood.
The PXD Cluster class This class stores all information about reconstructed PXD clusters The position...
virtual void terminate() override
End of the event processing.
StoreArray< MCParticle > m_mcparticles
Optional array of MCParticles.
StoreArray< VXDDedxLikelihood > m_dedxLikelihoods
Output array of VXDDedxLikelihoods.
bool detectorEnabled(Dedx::Detector d) const
should info from this detector be included in likelihood?
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
virtual void initialize() override
Initialize the module.
bool m_ignoreMissingParticles
Ignore particles for which no PDFs are found.
Accessor to arrays stored in the data store.
StoreArray< SVDCluster > m_svdClusters
Optional array of SVDClusters.
StoreArray< PXDCluster > m_pxdClusters
Optional array of PXDClusters.
bool m_enableDebugOutput
Whether to save information on tracks and associated hits and dE/dx values in VXDDedxTrack objects.
void saveSVDLogLikelihood(double(&logl)[Const::ChargedStable::c_SetSize], double p, float dedx) const
for all particles in the SVD, save log-likelihood values into 'logl'.
virtual ~VXDDedxPIDModule()
Destructor.
virtual void event() override
This method is called for each event.