Skip to content

xAOD MuonEDM for Mdt drift circles

Johannes Junggeburth requested to merge jojungge/athena:newMDTxAOD into master

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

Edited by Johannes Junggeburth

Merge request reports