17#ifndef INTEGRATEDCLUSTERCALIBRATOR_H_
18#define INTEGRATEDCLUSTERCALIBRATOR_H_
30template <
typename T0,
typename... Ts>
33 return ((
first.size() == rest.size()) && ...);
54 std::copy(
data.mITOFCNCl.begin(),
data.mITOFCNCl.end(),
mITOFCNCl.begin() + posIndex);
55 std::copy(
data.mITOFCQ.begin(),
data.mITOFCQ.end(),
mITOFCQ.begin() + posIndex);
59 void insert(
const unsigned int nDummyValues)
61 std::vector<float> vecTmp(nDummyValues, 0);
67 void resize(
const unsigned int nTotal)
92 const int shiftN = std::pow(2, nBits);
94 const auto mantissa = std::frexp(
value, &exp2);
95 const auto mantissaRounded = std::round(mantissa * shiftN) / shiftN;
96 return std::ldexp(mantissaRounded, exp2);
101 std::transform(
mIQMaxA.begin(),
mIQMaxA.end(),
mIQMaxA.begin(), [
this, nBits](
float val) { return compression(val, nBits); });
102 std::transform(
mIQMaxC.begin(),
mIQMaxC.end(),
mIQMaxC.begin(), [
this, nBits](
float val) { return compression(val, nBits); });
103 std::transform(
mIQTotA.begin(),
mIQTotA.end(),
mIQTotA.begin(), [
this, nBits](
float val) { return compression(val, nBits); });
104 std::transform(
mIQTotC.begin(),
mIQTotC.end(),
mIQTotC.begin(), [
this, nBits](
float val) { return compression(val, nBits); });
105 std::transform(
mINClA.begin(),
mINClA.end(),
mINClA.begin(), [
this, nBits](
float val) { return compression(val, nBits); });
106 std::transform(
mINClC.begin(),
mINClC.end(),
mINClC.begin(), [
this, nBits](
float val) { return compression(val, nBits); });
119 std::copy(
data.mIQMaxA.begin(),
data.mIQMaxA.end(),
mIQMaxA.begin() + posIndex);
120 std::copy(
data.mIQMaxC.begin(),
data.mIQMaxC.end(),
mIQMaxC.begin() + posIndex);
121 std::copy(
data.mIQTotA.begin(),
data.mIQTotA.end(),
mIQTotA.begin() + posIndex);
122 std::copy(
data.mIQTotC.begin(),
data.mIQTotC.end(),
mIQTotC.begin() + posIndex);
123 std::copy(
data.mINClA.begin(),
data.mINClA.end(),
mINClA.begin() + posIndex);
124 std::copy(
data.mINClC.begin(),
data.mINClC.end(),
mINClC.begin() + posIndex);
128 void insert(
const unsigned int nDummyValues)
130 std::vector<float> vecTmp(nDummyValues, 0);
135 mINClA.insert(
mINClA.begin(), vecTmp.begin(), vecTmp.end());
136 mINClC.insert(
mINClC.begin(), vecTmp.begin(), vecTmp.end());
164 std::transform(
mIQMaxA.begin(),
mIQMaxA.end(),
mIQMaxA.begin(), [factor](
const float val) { return val * factor; });
165 std::transform(
mIQMaxC.begin(),
mIQMaxC.end(),
mIQMaxC.begin(), [factor](
const float val) { return val * factor; });
166 std::transform(
mIQTotA.begin(),
mIQTotA.end(),
mIQTotA.begin(), [factor](
const float val) { return val * factor; });
167 std::transform(
mIQTotC.begin(),
mIQTotC.end(),
mIQTotC.begin(), [factor](
const float val) { return val * factor; });
168 std::transform(
mINClA.begin(),
mINClA.end(),
mINClA.begin(), [factor](
const float val) { return val * factor; });
169 std::transform(
mINClC.begin(),
mINClC.end(),
mINClC.begin(), [factor](
const float val) { return val * factor; });
412 void setBinning(
const int nBinsPhi,
const int nBinsTgl,
const int qPtBins,
const int nBinsMult,
float tglMax,
float qPtMax,
float multMax)
527 std::copy(
data.mINChanA.begin(),
data.mINChanA.end(),
mINChanA.begin() + posIndex);
528 std::copy(
data.mINChanC.begin(),
data.mINChanC.end(),
mINChanC.begin() + posIndex);
529 std::copy(
data.mIAmplA.begin(),
data.mIAmplA.end(),
mIAmplA.begin() + posIndex);
530 std::copy(
data.mIAmplC.begin(),
data.mIAmplC.end(),
mIAmplC.begin() + posIndex);
534 void insert(
const unsigned int nDummyValues)
536 std::vector<float> vecTmp(nDummyValues, 0);
566 std::transform(
mIAmplA.begin(),
mIAmplA.end(),
mIAmplA.begin(), [factor](
const float val) { return val * factor; });
567 std::transform(
mIAmplC.begin(),
mIAmplC.end(),
mIAmplC.begin(), [factor](
const float val) { return val * factor; });
588 std::copy(
data.mINChanA.begin(),
data.mINChanA.end(),
mINChanA.begin() + posIndex);
589 std::copy(
data.mIAmplA.begin(),
data.mIAmplA.end(),
mIAmplA.begin() + posIndex);
593 void insert(
const unsigned int nDummyValues)
595 std::vector<float> vecTmp(nDummyValues, 0);
618 std::transform(
mIAmplA.begin(),
mIAmplA.end(),
mIAmplA.begin(), [factor](
const float val) { return val * factor; });
641 std::copy(
data.mINChanA.begin(),
data.mINChanA.end(),
mINChanA.begin() + posIndex);
642 std::copy(
data.mINChanC.begin(),
data.mINChanC.end(),
mINChanC.begin() + posIndex);
643 std::copy(
data.mIAmplA.begin(),
data.mIAmplA.end(),
mIAmplA.begin() + posIndex);
644 std::copy(
data.mIAmplC.begin(),
data.mIAmplC.end(),
mIAmplC.begin() + posIndex);
648 void insert(
const unsigned int nDummyValues)
650 std::vector<float> vecTmp(nDummyValues, 0);
680 std::transform(
mIAmplA.begin(),
mIAmplA.end(),
mIAmplA.begin(), [factor](
const float val) { return val * factor; });
681 std::transform(
mIAmplC.begin(),
mIAmplC.end(),
mIAmplC.begin(), [factor](
const float val) { return val * factor; });
696template <
typename DataT>
709 void print()
const { LOGP(info,
"TF Range from {} to {} with {} of remaining data", mTFFirst, mTFLast, mRemainingData); }
734 void dumpToFile(
const char* outFileName =
"IntegratedClusters.root",
const char* outName =
"IC")
const;
738 void dumpToTree(
const char* outFileName =
"ICTree.root");
748 unsigned int mNValuesPerTF{};
749 bool mInitialize{
true};
753 void initData(
const unsigned int valuesPerTF);
758template <
typename DataT>
763 using CalibVector = std::vector<DataT>;
764 using TFinterval = std::vector<std::pair<TFType, TFType>>;
765 using TimeInterval = std::vector<std::pair<long, long>>;
775 bool hasEnoughData(const
Slot& slot) const final {
return slot.getContainer()->hasEnoughData(); }
802 TFinterval mIntervals;
803 TimeInterval mTimeIntervals;
void initOutput() final
clearing all calibration objects in the output buffer
~IntegratedClusterCalibrator() final=default
default destructor
const TFinterval & getTFinterval() const
bool hasCalibrationData() const
check if calibration data is available
Slot & emplaceNewSlot(bool front, TFType tstart, TFType tend) final
Creates new time slot.
const TimeInterval & getTimeIntervals() const
IntegratedClusterCalibrator()=default
default constructor
bool hasEnoughData(const Slot &slot) const final
check if given slot has already enough data
void setDebug(const bool debug)
set if debug objects will be created
void finalizeSlot(Slot &slot) final
storing the integrated currents for given slot
class for accumulating integrated currents
IntegratedClusters()=default
\default constructor for ROOT I/O
void dumpToTree(const char *outFileName="ICTree.root")
void merge(const IntegratedClusters *prev)
merging TOF currents with previous interval
IntegratedClusters(o2::calibration::TFType tFirst, o2::calibration::TFType tLast)
void setCurrents(const DataT ¤ts)
void print() const
print summary informations
bool hasEnoughData() const
const auto & getCurrents() const &
void setStartTime(long timeMS)
setting the start time
void fill(const o2::calibration::TFType tfID, const DataT ¤tsContainer)
void dumpToFile(const char *outFileName="IntegratedClusters.root", const char *outName="IC") const
GLsizei const GLfloat * value
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
bool sameSize(T0 const &first, Ts const &... rest)
struct containing the integrated FDD currents
std::vector< float > mINChanA
integrated 1D FIT currents for NChan A
size_t getEntries() const
void normalize(const float factor)
normalize currents
long mTimeMS
start time in ms
std::vector< float > mIAmplC
integrated 1D FIT currents for Ampl C
bool isEmpty() const
check if values are empty
void insert(const unsigned int nDummyValues)
void fill(const unsigned int posIndex, const IFDDC &data)
std::vector< float > mINChanC
integrated 1D FIT currents for NChan C
void reset()
reset buffered currents
std::vector< float > mIAmplA
integrated 1D FIT currents for Ampl A
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
bool areSameSize() const
check if stored currents have same number of entries
void setStartTime(long timeMS)
struct containing the integrated FT0 currents
bool isEmpty() const
check if values are empty
void setStartTime(long timeMS)
std::vector< float > mIAmplA
integrated 1D FIT currents for Ampl A
void fill(const unsigned int posIndex, const IFT0C &data)
std::vector< float > mINChanA
integrated 1D FIT currents for NChan A
void normalize(const float factor)
normalize currents
bool areSameSize() const
check if stored currents have same number of entries
long mTimeMS
start time in ms
std::vector< float > mIAmplC
integrated 1D FIT currents for Ampl C
std::vector< float > mINChanC
integrated 1D FIT currents for NChan C
void reset()
reset buffered currents
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
void insert(const unsigned int nDummyValues)
size_t getEntries() const
struct containing the integrated FV0 currents
size_t getEntries() const
bool isEmpty() const
check if values are empty
bool areSameSize() const
check if stored currents have same number of entries
void fill(const unsigned int posIndex, const IFV0C &data)
long mTimeMS
start time in ms
void reset()
reset buffered currents
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
std::vector< float > mIAmplA
integrated 1D FIT currents for Ampl A
void normalize(const float factor)
normalize currents
void setStartTime(long timeMS)
std::vector< float > mINChanA
integrated 1D FIT currents for NChan A
void insert(const unsigned int nDummyValues)
struct containing the integrated TOF currents
bool isEmpty() const
check if values are empty
std::vector< float > mITOFCNCl
integrated 1D TOF cluster currents
void fill(const unsigned int posIndex, const ITOFC &data)
void setStartTime(long timeMS)
void insert(const unsigned int nDummyValues)
long mTimeMS
start time in ms
size_t getEntries() const
std::vector< float > mITOFCQ
integrated 1D TOF qTot currents
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
bool areSameSize() const
check if stored currents have same number of entries
struct containing the integrated TPC currents
std::vector< float > mINClA
integrated 1D-currents for NCl A-side
void fill(const unsigned int posIndex, const ITPCC &data)
std::vector< float > mIQMaxC
integrated 1D-currents for QMax C-side
void insert(const unsigned int nDummyValues)
bool areSameSize() const
check if stored currents have same number of entries
void setStartTime(long timeMS)
std::vector< float > mIQTotA
integrated 1D-currents for QTot A-side
float compression(float value, const int nBits) const
void normalize(const float factor)
normalize currents
std::vector< float > mIQMaxA
integrated 1D-currents for QMax A-side
void compress(const int nBits)
std::vector< float > mINClC
integrated 1D-currents for NCl A-side
std::vector< float > mIQTotC
integrated 1D-currents for QTot A-side
bool isEmpty() const
check if values are empty
size_t getEntries() const
void reset()
reset buffered currents
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
long mTimeMS
start time in ms
std::vector< float > mITSTPC_A_MatchEff
matching efficiency of ITS-TPC tracks A-side
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
std::vector< float > mITSTPC_C_MatchEff
matching efficiency of ITS-TPC tracks C-side
ClassDefNV(ITSTPC_Matching, 2)
std::vector< float > mITSTPC_A_Chi2Match
ITS-TPC chi2 A-side.
std::vector< float > mITSTPC_C_Chi2Match
ITS-TPC chi2 C-side.
std::vector< float > mDCAr_comb_A_RMS
DCAr RMS for ITS-TPC track - A-side.
std::vector< float > mTPCSigmaZ2A_RMS
sigmaZ2 RMS at vertex
std::vector< float > mSqrtITSChi2_Ncl_C_Median
sqrt(ITC chi2 / ncl)
ITSTPC_Matching mITSTPCAll
ITS-TPC matching efficiency for ITS standalone + afterburner.
std::vector< float > nPrimVertices
number of primary vertices
std::vector< float > mITSTPCDeltaP4_C_RMS
RMS of track param TPC - track param ITS-TPC for param 4 - A-side.
std::vector< float > mTPCSigmaZ2C_RMS
sigmaZ2 RMS at vertex
TimeSeries mTSTPC
TPC standalone DCAs.
std::vector< float > mITSTPCDeltaP4_A_Median
track param TPC - track param ITS-TPC for param 4 - A-side
ITSTPC_Matching mITSTPCStandalone
ITS-TPC matching efficiency for ITS standalone.
std::vector< float > vertexY_ITS_RMS
vertex y RMS selected with ITS cut 0.2<nContributorsITS/nContributors<0.8
std::vector< float > mITSTPCDeltaP4_C_Median
track param TPC - track param ITS-TPC for param 4 - A-side
std::vector< float > nPrimVertices_ITS
number of primary vertices selected with ITS cut 0.2<nContributorsITS/nContributors<0....
std::vector< float > vertexZ_ITSTPC_Median
vertex z position with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0.95
std::vector< float > mITSTPCDeltaP3_A_RMS
RMS of track param TPC - track param ITS-TPC for param 3 - A-side.
std::vector< float > mITS_A_NCl_Median
its number of clusters
std::vector< float > mDCAr_comb_C_Median
DCAr for ITS-TPC track - C-side.
std::vector< float > nVertexContributors_ITS_Median
number of primary vertices selected with ITS cut 0.2<nContributorsITS/nContributors<0....
std::vector< float > mSqrtITSChi2_Ncl_A_Median
sqrt(ITC chi2 / ncl)
std::vector< float > vertexZ_ITS_Median
vertex z position selected with ITS cut 0.2<nContributorsITS/nContributors<0.8
std::vector< float > mSqrtITSChi2_Ncl_C_RMS
sqrt(ITC chi2 / ncl)
std::vector< float > mDCAz_comb_A_RMS
DCAz RMS for ITS-TPC track - A-side.
std::vector< float > vertexX_ITSTPC_RMS
vertex x RMS with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0.95
std::vector< float > mITSTPCDeltaP2_C_RMS
RMS of track param TPC - track param ITS-TPC for param 2 - A-side.
std::vector< float > mITSTPCDeltaP3_A_Median
track param TPC - track param ITS-TPC for param 3 - A-side
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
std::vector< float > mITSTPCDeltaP2_A_Median
track param TPC - track param ITS-TPC for param 2 - A-side
std::vector< float > vertexZ_ITS_RMS
vertex z RMS selected with ITS cut 0.2<nContributorsITS/nContributors<0.8
std::vector< float > mSqrtITSChi2_Ncl_A_RMS
sqrt(ITC chi2 / ncl)
ClassDefNV(TimeSeriesITSTPC, 5)
std::vector< float > vertexX_ITS_Median
vertex x position selected with ITS cut 0.2<nContributorsITS/nContributors<0.8
std::vector< float > mITSTPCDeltaP2_C_Median
track param TPC - track param ITS-TPC for param 2 - A-side
std::vector< unsigned int > mOccupancyMapTPC
cluster occupancy map
std::vector< float > mITSTPCDeltaP4_A_RMS
RMS of track param TPC - track param ITS-TPC for param 4 - A-side.
std::vector< float > mTPCSigmaY2A_Median
sigmaY2 at vertex
std::vector< float > vertexZ_ITSTPC_RMS
vertex z RMS with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0.95
std::vector< float > nVertexContributors_ITSTPC_Median
number of primary vertices with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0....
std::vector< float > vertexX_ITS_RMS
vertex x RMS selected with ITS cut 0.2<nContributorsITS/nContributors<0.8
std::vector< float > nVertexContributors_ITS_RMS
number of primary vertices selected with ITS cut 0.2<nContributorsITS/nContributors<0....
std::vector< float > mITSTPCDeltaP3_C_RMS
RMS of track param TPC - track param ITS-TPC for param 3 - A-side.
std::vector< float > nVertexContributors_Quantiles
number of primary vertices for quantiles 0.1, 0.2, ... 0.9 and truncated mean values 0....
TimeSeries mTSITSTPC
ITS-TPC standalone DCAs.
std::vector< float > mTPCSigmaY2C_Median
sigmaY2 at vertex
std::vector< float > vertexY_ITSTPC_Median
vertex y position with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0.95
std::vector< float > nPrimVertices_ITSTPC
number of primary vertices with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0....
std::vector< float > mTPCSigmaZ2C_Median
sigmaZ2 at vertex
std::vector< float > mITS_C_NCl_RMS
its number of clusters
std::vector< float > vertexY_ITS_Median
vertex y position selected with ITS cut 0.2<nContributorsITS/nContributors<0.8
std::vector< float > nVertexContributors_ITSTPC_RMS
number of primary vertices with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0....
std::vector< float > mDCAz_comb_A_Median
DCAz for ITS-TPC track - A-side.
std::vector< float > mDCAz_comb_C_RMS
DCAz RMS for ITS-TPC track - C-side.
ITSTPC_Matching mITSTPCAfterburner
ITS-TPC matchin efficiency fir ITS afterburner.
std::vector< float > mTPCSigmaY2C_RMS
sigmaY2 RMS at vertex
int quantileValues
! number of values in quantiles + truncated mean (hardcoded for the moment)
std::vector< float > mITSTPCDeltaP3_C_Median
track param TPC - track param ITS-TPC for param 3 - A-side
std::vector< float > mDCAz_comb_C_Median
DCAz for ITS-TPC track - C-side.
std::vector< float > mTPCSigmaZ2A_Median
sigmaZ2 at vertex
std::vector< float > mDCAr_comb_C_RMS
DCAr RMS for ITS-TPC track - C-side.
std::vector< float > vertexY_ITSTPC_RMS
vertex y RMS with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0.95
void setStartTime(long timeMS)
std::vector< float > mITS_C_NCl_Median
its number of clusters
TimeSeriesdEdx mdEdxQTot
time series for dE/dx qTot monitoring
std::vector< float > mITS_A_NCl_RMS
its number of clusters
std::vector< float > mITSTPCDeltaP2_A_RMS
RMS of track param TPC - track param ITS-TPC for param 2 - A-side.
std::vector< float > mTPCSigmaY2A_RMS
sigmaY2 RMS at vertex
std::vector< float > mDCAr_comb_A_Median
DCAr for ITS-TPC track - A-side.
std::vector< float > vertexX_ITSTPC_Median
vertex x position with ITS-TPC cut (nContributorsITS + nContributorsITSTPC)<0.95
void setBinning(const int nBinsPhi, const int nBinsTgl, const int qPtBins, const int nBinsMult, float tglMax, float qPtMax, float multMax)
TimeSeriesdEdx mdEdxQMax
time series for dE/dx qMax monitoring
struct containing time series values
unsigned char mNBinsTgl
number of phi bins
std::vector< float > mDCAr_A_NTracks
number of tracks used to calculate the DCAs
std::vector< float > mMIPdEdxRatioQTotA
ratio of MIP/dEdx - qTot -
unsigned char mMultBins
multiplicity bins
std::vector< float > mMIPdEdxRatioQTotC
ratio of MIP/dEdx - qTot -
int getIndexInt(int slice=0) const
unsigned char mNBinsPhi
number of tgl bins
std::vector< float > mDCAr_C_NTracks
number of tracks used to calculate the DCAs
std::vector< float > mDCAr_C_Median
integrated 1D DCAr for C-side weighted mean in phi/tgl slices
std::vector< float > mTPCNClC
number of TPC cluster
ClassDefNV(TimeSeries, 1)
std::vector< float > mMIPdEdxRatioQMaxC
ratio of MIP/dEdx - qMax -
void setStartTime(long timeMS)
std::vector< float > mDCAr_A_WeightedMean
integrated 1D DCAr for A-side weighted mean in phi/tgl slices
std::vector< float > mDCAz_A_RMS
integrated 1D DCAz for A-side RMS in phi/tgl slices
float mMultMax
max local multiplicity
std::vector< float > mTPCNClA
number of TPC cluster
std::vector< float > mDCAz_C_Median
integrated 1D DCAz for C-side median in phi/tgl slices
int getIndexPhi(const int iPhi, int slice=0) const
std::vector< float > mTPCChi2C
Chi2 of TPC tracks.
std::vector< float > mDCAz_A_Median
integrated 1D DCAz for A-side median in phi/tgl slices
std::vector< float > mDCAr_C_RMS
integrated 1D DCAr for C-side RMS in phi/tgl slices
std::vector< float > mDCAz_A_NTracks
number of tracks used to calculate the DCAs
std::vector< float > mDCAr_A_Median
integrated 1D DCAr for A-side median in phi/tgl slices
std::vector< float > mDCAz_C_NTracks
number of tracks used to calculate the DCAs
int getIndexTgl(const int iTgl, int slice=0) const
std::vector< float > mMIPdEdxRatioQMaxA
ratio of MIP/dEdx - qMax -
void resize(const unsigned int nTotal)
resize buffer for accumulated currents
std::vector< float > mDCAz_C_WeightedMean
integrated 1D DCAz for C-side weighted mean in phi/tgl slices
std::vector< float > mTPCChi2A
Chi2 of TPC tracks.
std::vector< float > mDCAz_C_RMS
integrated 1D DCAz for C-side RMS in phi/tgl slices
int getIndexqPt(const int iqPt, int slice=0) const
long mTimeMS
start time in ms
std::vector< float > mDCAr_A_RMS
integrated 1D DCAr for A-side RMS in phi/tgl slices
unsigned char mNBinsqPt
number of qPt bins
int getIndexMult(const int iMult, int slice=0) const
float mTglMax
absolute max tgl
std::vector< float > mDCAz_A_WeightedMean
integrated 1D DCAz for A-side weighted mean in phi/tgl slices
std::vector< float > mDCAr_C_WeightedMean
integrated 1D DCAr for C-side median in phi/tgl slices
std::vector< float > mLogdEdx_C_OROC2_Median
log(dedxOROC2 / dEdx) - C-side
void resize(const unsigned int nTotal)
std::vector< float > mLogdEdx_A_IROC_RMS
log(dedxIROC / dEdx) - A-side
std::vector< float > mLogdEdx_C_IROC_Median
log(dedxIROC / dEdx) - C-side
std::vector< float > mLogdEdx_A_OROC3_Median
log(dedxOROC3 / dEdx) - A-side
std::vector< float > mLogdEdx_A_OROC2_RMS
log(dedxOROC2 / dEdx) - A-side
std::vector< float > mLogdEdx_A_OROC3_RMS
log(dedxOROC3 / dEdx) - A-side
ClassDefNV(TimeSeriesdEdx, 1)
std::vector< float > mLogdEdx_A_Median
log(dEdx_exp(pion)/dEdx) - A-side
std::vector< float > mLogdEdx_C_OROC1_Median
log(dedxOROC1 / dEdx) - C-side
std::vector< float > mLogdEdx_C_Median
log(dEdx_exp(pion)/dEdx) - C-side
std::vector< float > mLogdEdx_C_RMS
log(dEdx_exp(pion)/dEdx) - C-side
std::vector< float > mLogdEdx_A_OROC1_RMS
log(dedxOROC1 / dEdx) - A-side
std::vector< float > mLogdEdx_C_OROC3_Median
log(dedxOROC3 / dEdx) - C-side
std::vector< float > mLogdEdx_C_OROC1_RMS
log(dedxOROC1 / dEdx) - C-side
std::vector< float > mLogdEdx_C_IROC_RMS
log(dedxIROC / dEdx) - C-side
std::vector< float > mLogdEdx_A_IROC_Median
log(dedxIROC / dEdx) - A-side
std::vector< float > mLogdEdx_A_OROC2_Median
log(dedxOROC2 / dEdx) - A-side
std::vector< float > mLogdEdx_C_OROC2_RMS
log(dedxOROC2 / dEdx) - C-side
std::vector< float > mLogdEdx_A_OROC1_Median
log(dedxOROC1 / dEdx) - A-side
std::vector< float > mLogdEdx_A_RMS
log(dEdx_exp(pion)/dEdx) - A-side
std::vector< float > mLogdEdx_C_OROC3_RMS
log(dedxOROC3 / dEdx) - C-side