MDT timing smearing for slow muons

This page describes the principle procedure to perform the MDT MC smearing for slow muons. It is applied on chamber level, but requires some work to be done for every single drift tube. The current procedure is based on many successive steps of development, which are still clearly discernable. Faster and less memory-intensive procedures are of course possible.

Tube correction constants

The first step is to get the necessary correction constants for the drift-tube level of the smearing. It serves to make sure the simulated timing distribution is not shifted from its expected central value at t0=0, and allows the rejection of tubes that were not used in data. A set of correction constants have been written in the file "mdtIdSmearingConstants-00-02-03.dat", which is appended to this page. It contains a list of 7 numbers that correspond to:

1: tube identifier

2: width of timing distribution in data

3: mean of timing distribution in MC

4: mean correction applied to data - UNUSED

5: smearing width for the drift tube

6: sharpening factor for the drift tube

7: width of timing distribution in MC - UNUSED

Associate tube to MDT chamber

The file "MdtInformation-00-02-03-MC.dat" contains all information about the position inside the detector. For completeness, the entries correspond to:

tube identifier - chamber identifier - eta chamber - phi chamber - chamber name - technology - multilayer - tube layer - tube - station name index - technology index

important for the smearing are only the first two entries. The tube ID and the chamber ID. A hit occuring on any drift tube can thus be associated to the corresponding MDT chamber.

Chamber smearing constants

The smearing constants used for the actual smearing on chamber level are stored in the file "mdtStationSmearing-00-02-03.dat". It contains:

1: chamber identifier

2: chamber timing mean correction

3: smearing width Gaussian contribution (sigmaSmearGaus)

4: smearing width Breit-Wigner contribution (sigmaSmearBW)

Smearing procedure

1. Loop over slow muons and MDT hits therein (hitTechnology is 2 for MDTs)

2. Reject hits on tubes which were not used in data. For such rejected tubes the values of the smearing width and sharpening factor for the drift tube have been set to -1:

if ( (<smearing width for the drift tube> == -1) && (<sharpening factor for the drift tube> == -1) ) continue;

3. Sharpening. This is necessary since simulation underestimates the timing resolution in data. The following function returns a correction to sharpen the time-of-flight measurement. The input parameters are the measured time of flight (tof), the shift as written in the SlowMuon container that counteracts the smearing applied during reconstruction, the position x,y and z from the slow muon container, the tube mean correction from the tube calibration file and the beta calculated from truth.

float [[MSTimingCorrection][MSTimingCorrection]] :: getSharpeningValue ( float tof, float shift, float x, float y, float z, float meanCorrection, float truthBeta )

 double c = 299.792458; // mm/ns
 double truthFlightTime;

 if ( truthBeta > 0 ) truthFlightTime = TMath::Sqrt( (x*x) + (y*y) + (z*z) ) / (truthBeta*c);
 else truthFlightTime = TMath::Sqrt( (x*x) + (y*y) + (z*z) ) / c;
 double t0 = tof - truthFlightTime;

 double sharpT0 = (t0 + shift - meanCorrection) * MDTSHARPENINGFACTOR;

 return (sharpT0 - t0);


The sharpening constant MDTSHARPENINGFACTOR is set to 0.7.

4. Calculate the smeared tof:

if ( (sigmaSmearGaus != -1) && (sigmaSmearBW != -1) ) {
    rGaus = r.Gaus(0.0,sigmaSmearGaus);
    rBW = r.BreitWigner(0.0,sigmaSmearBW);
    while ( rBW > (BREITWIGNERCUTOFF * sigmaSmearBW) ) rBW = r.BreitWigner(0.0,sigmaSmearBW);

Here, r is a random number and BREITWIGNERCUTOFF is fixed to 7.2 and prevents random numbers to be chosen from the large Breit-Wigner tails.

5. Calculate smeared time of flight:

<smeared_tof>= <SlowMuon_tof> + <sharpening_correction> - meanCorrectionStation + rGaus + rBW;

6. The uncertainty on the measurement is taken from data.

sigma_t = <width of timing distribution in data>

7. Calculate 1/beta with the hitDistance calculated from position information of the hit

invbeta = (tof * c) / hitDistance;
invbetaError = sigma_t * c / hitDistance;

8. Reject

if ( invbetaError <= 0.0 ) continue;
if ( fabs(1.0 - (1.0/invbeta)) > 1.0 ) continue;

9. Weighted average

up += invbeta * (1.0/(invbetaError*invbetaError));
down += 1.0/(invbetaError*invbetaError);

10. Calculation of smeared beta. After the loop over all hits:

double invbetaAvg = (down != 0) ? up / down : -1.0;
double averageBeta = 1.0 / invbetaAvg;
double error_invbeta = TMath::Sqrt( 1.0 / down );
double error_beta = 1.0 / ( invbetaAvg * invbetaAvg ) * error_invbeta;

-- JochenJensHeinrich - 2017-10-24

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatdat MdtInformation-00-02-03-MC.dat r1 manage 21206.7 K 2017-10-24 - 18:52 JochenJensHeinrich Drift tube details
Unknown file formatdat mdtIdSmearingConstants-00-02-03.dat r1 manage 21272.5 K 2017-10-24 - 18:30 JochenJensHeinrich MDT drift tube MC parameters
Unknown file formatdat mdtStationSmearing-00-02-03.dat r1 manage 28.7 K 2017-10-24 - 19:10 JochenJensHeinrich Smearing constants for chamber-based MDT smearing
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r2 - 2017-10-24 - JochenJensHeinrich
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback