9#include <framework/logging/Logger.h>
10#include <svd/reconstruction/RawCluster.h>
11#include <vxd/geometry/GeoCache.h>
12#include <svd/geometry/SensorInfo.h>
13#include <framework/core/Environment.h>
15#include <framework/datastore/StoreArray.h>
16#include <svd/dataobjects/SVDShaperDigit.h>
17#include <svd/calibration/SVDPulseShapeCalibrations.h>
18#include <svd/reconstruction/SVDMaxSumAlgorithm.h>
34 , m_cutAdjacent(cutAdjacent)
38 , m_seedInternalIndex(-1)
39 , m_storeShaperDigitsName(
"SVDShaperDigits")
46 , m_cutAdjacent(cutAdjacent)
50 , m_seedInternalIndex(-1)
51 , m_storeShaperDigitsName(storeShaperDigitsName)
108 B2ERROR(
"oopps ... you are asking for the cluster samples of a cluster candidate with no strips");
123 const SVDShaperDigit* shaperdigit = m_storeShaperDigits[istrip.shaperDigitIndex];
124 if (!shaperdigit) B2ERROR(
"No SVDShaperDigit for this strip! Are you sure you set the correct SVDShaperDigit StoreArray name?");
126 for (
int iSample = 0; iSample < static_cast<int>(APVsamples.size()); ++iSample)
130 returnSamples.at(iSample) += APVsamples.at(iSample);
134 return returnSamples;
This class defines the dbobject and the methods to access the SVD calibrations from the local runs pr...
double getChargeFromADC(const Belle2::VxdID &sensorID, const bool &isU, const unsigned short &strip, const double &pulseADC) const
Return the charge (number of electrons/holes) collected on a specific strip, given the number of ADC ...
The SVD ShaperDigit class.
std::array< APVFloatSampleType, c_nAPVSamples > APVFloatSamples
array of APVFloatSampleType objects
APVFloatSamples getSamples() const
Get array of samples.
short int getCellID() const
Get strip ID.
RawCluster()
Default Constructor to create an empty RawCluster.
std::pair< int, std::vector< float > > getMaxSum3Samples(bool inElectrons=false) const
std::string m_storeShaperDigitsName
Name of the collection to use for the SVDShaperDigits.
Belle2::SVDShaperDigit::APVFloatSamples getClsSamples(bool inElectrons) const
int m_seedInternalIndex
stripsInRawCluster index of the seed strip of the cluster
bool add(VxdID vxdID, bool isUside, struct StripInRawCluster &aStrip)
Add a Strip to the current cluster.
bool m_isUside
side of the cluster
VxdID m_vxdID
VxdID of the cluster.
float m_seedSNR
SNR (using MaxSample) of the seed strip.
int m_seedMaxSample
ADC MaxSample of the seed strip.
double m_cutSeed
SNR above which the strip can be considered as seed.
int m_seedIndex
SVDShaperDigit index of the seed strip of the cluster.
std::vector< StripInRawCluster > m_strips
vector containing the strips in the cluster
double m_cutAdjacent
SNR above which the strip can be considered for clustering.
Class implementing the MaxSum algorithm.
std::vector< float > getSelectedSamples()
Accessor to arrays stored in the data store.
Class to uniquely identify a any structure of the PXD and SVD.
Abstract base class for different kinds of events.
structure containing the relevant informations of each strip of the raw cluster
int shaperDigitIndex
index of the shaper digit
int maxSample
ADC max of the acquired samples.