xAOD MuonEDM for Mdt drift circles
Moin Moin everybody,
this is a first proposoal to replace the MdtPrepData by the xAOD::MdtDriftCircle
class. Thus far, we store for the Mdts the timing, charge counts & a status flag, additionally to the 1 dimensional local position & covariance.
/** @brief Returns the TDC (typically range is 0 to 2500). */
int tdc() const;
/** @brief Returns the ADC (typically range is 0 to 250)*/
int adc() const;
/** @brief Returns the status of the measurement */
MdtDriftCircleStatus status() const;
I took the
PixelCluster_v1 as template. I noted that the class additionally stores the globalPosition of the measurement. Is this needed in a later processing step or is it just a convenience avoiding the navigation through the readout geometry?. Second question: Would it be an option to synchronize the MeasurementType
flag with the upcoming flags in the ActsReadoutGeomtry (cf. GeometryDefs)
Eventhough, the
template < int N >
Eigen::Map<const Eigen::Matrix<float,N,1>> localPosition() const;
template < int N >
Eigen::Map<const Eigen::Matrix<float,N,N>> localCovariance() const;
methods of the UncalibratedMeasurement_v1 are templated in size, I noted that the backend storage always uses arrays of size 3 and 9, respectively. In the case of an one dimensional array, we could give away quite a lot of memory. To check how much disk space would be lost, I introduced the second generation of the UncalibratedMeasurement with varying backend storage. From a quick comparison using the q449
, it seems that ROOT manages to compress the local positions to essentially the same size while for the covariances we're loosing roughly 9% disk space.
*............................................................................*
*Br 24 :xAOD::MdtDriftCircleAuxContainer_v1_xAODMdtCirclesAuxDyn.localPositionDim3 : *
* | vector<array<float,3> > *
*Entries : 100 : Total Size= 6789953 bytes File Size = 1320288 *
*Baskets : 36 : Basket Size= 334336 bytes Compression= 5.14 *
*............................................................................*
*Br 25 :xAOD::MdtDriftCircleAuxContainer_v1_xAODMdtCirclesAuxDyn.localCovarianceDim3 : *
* | vector<array<float,9> > *
*Entries : 100 : Total Size= 20351881 bytes File Size = 1152468 *
*Baskets : 36 : Basket Size= 1000448 bytes Compression= 17.66 *
*............................................................................*
*............................................................................*
*Br 24 :xAOD::MdtDriftCircleAuxContainer_v1_xAODMdtCirclesAuxDyn.localPositionDim1 : *
* | vector<array<float,1> > *
*Entries : 100 : Total Size= 2268084 bytes File Size = 1315436 *
*Baskets : 29 : Basket Size= 116736 bytes Compression= 1.72 *
*............................................................................*
*Br 25 :xAOD::MdtDriftCircleAuxContainer_v1_xAODMdtCirclesAuxDyn.localCovarianceDim1 : *
* | vector<array<float,1> > *
*Entries : 100 : Total Size= 2268150 bytes File Size = 1051034 *
*Baskets : 29 : Basket Size= 116736 bytes Compression= 2.16 *
*............................................................................*
Tagging: @emoyse, @ncalace, @tbold, @pagessin, @tstreble, @tadej, @akraszna