Tracker RecHits (TrackingRecHitProducer)

Complete: 3

General strategy

The RecHit production consists in taking all the PSimHit's generated by the FamosSimHit producer, and applying a smearing to their position, according to the average resolution functions predicted by the GEANT-based simulation for single muons, for each of the pixel and silicon detector layers. This strategy has (as yet) several consequences:

  • Edge effects are not reproduced. Worse: it may well be that, after smearing, the smeared RecHit position be no longer on a physical module! This will have to be fixed rather sooner than later. (It's already the to-do list, which is a good sign!)

  • Large occupancy effects are not reproduced. In particular, two PSimHits located at exactly the same place will always give two RecHit's, no matter what. As the full pattern recognition is, for the time being, not allowed to use re-use the same RecHit for two different tracks, this feature of the FastSimulation is bound to turn into a larger tracking efficiency in, e.g., very energetic/boosted jets. The solution here is to fix the full pattern recognition, though, rather than degrading artificially the FastSimulation.

  • Average resolution functions may hide specific behaviour as a function of the track parameters. These effects have been tentatively all accounted for in the FastSimulation (see below), but some may have been overlooked. It the lack of such effects are demonstrated with detailed comparisons with the GEANT-based simulation or with data, they will be implemented without delay in the FastSimulation.

  • The silicon-strip layer PSimHits produced by the FamosSimHit producer are all given on the one-sided layers (i.e., there are two such hits on double-sided layers, one on the mono layer, one on the stereo layer). The smeared RecHits are therefore all 1D RecHit's. A specific matching is performed (see below) to return 2D RecHit's on double-sided layers.

Another piece of strategy specific to the FastSimulation is the RecHit ordering for subsequent use in the tracking. The fast version of the tracking used in the FastSimulation consists in fitting in turn all the RecHit's produced from PSimHit's belonging to a each SimTrack, hence dropping the need of the CPU-demanding pattern recognition. For this reason, the RecHit's are stored in a RangeMap< unsigned TrackId, OwnVector< RecHit > >, where TrackId refers to the index of the corresponding SimTrack in the SimTrackContainer, instead of in a RangeMap< DetId, OwnVector< RecHit > >. For the full pattern recognition to be used in the FastSimulation (this option is not yet implemented), a translator to the original map is also available.

Finally, the RecHit's produced by the TrackingRecHitProducer are (at the time of writing) not identical to the RecHit's produced by the GEANT-based simulation. Indeed, the latter have a pointer to the correponding digi (a cluster of strips or pixels), which the FastSimulation does not simulate. This is the main reason why the full pattern recognition option is not yet implemented, as it expects such RecHit's to properly operate. Thoughts are currently going on to overcome this modest issue.

General steering

The random number initialization for this step is included as follows,

untracked uint32 siTrackerGaussianSmearingRecHits = 24680
together with the following .cfi include file:
# Gaussian Smearing RecHit producer
FastSimulation/TrackingRecHitProducer/data/SiTrackerGaussianSmearingRecHitConverter.cfi
itself included in
FastSimulation/Configuration/data/FamosSequences.cff

The parameters used for the Tracker RecHit production are as follows:

module siTrackerGaussianSmearingRecHits = SiTrackerGaussianSmearingRecHitConverter {

    # FAMOS RecHit name
    vstring ROUList = {"TrackerHits"}

    # The smallest pT for which RecHit are created
    double DeltaRaysMomentumCut = 0.5 # the default is 0.5 GeV/c

    # The verbosity level
    untracked int32  VerboseLevel = 2

    // If you want to have RecHits == PSimHits (tracking with PSimHits)
    bool trackingPSimHits = false # the default is false

    // Needed to compute Pixel Errors
    string PixelErrorParametrization = "NOTcmsim"

    // Pixel
    string PixelMultiplicityFile      = "FastSimulation/TrackingRecHitProducer/data/PixelData.root"
    string PixelBarrelResolutionFile  = "FastSimulation/TrackingRecHitProducer/data/PixelBarrelResolution.root"
    string PixelForwardResolutionFile = "FastSimulation/TrackingRecHitProducer/data/PixelForwardResolution.root"
    int32  AlphaBarrelMultiplicity    = 4
    int32  BetaBarrelMultiplicity     = 6
    int32  AlphaForwardMultiplicity   = 3
    int32  BetaForwardMultiplicity    = 3
    double AlphaBarrel_BinMin    = -0.2
    double AlphaBarrel_BinWidth  =  0.1
    int32  AlphaBarrel_BinN      =  4
    double BetaBarrel_BinMin     =  0.0
    double BetaBarrel_BinWidth   =  0.2
    int32  BetaBarrel_BinN       =  7
    double AlphaForward_BinMin   =  0.0
    double AlphaForward_BinWidth =  0.0
    int32  AlphaForward_BinN     =  0
    double BetaForward_BinMin    =  0.0
    double BetaForward_BinWidth  =  0.0
    int32  BetaForward_BinN      =  0

    // TIB
    double TIB1x = 0.00195
    double TIB1y = 3.3775 // 11.7/sqrt(12.)
    double TIB2x = 0.00191
    double TIB2y = 3.3775 // 11.7/sqrt(12.)
    double TIB3x = 0.00325
    double TIB3y = 3.3775 // 11.7/sqrt(12.)
    double TIB4x = 0.00323
    double TIB4y = 3.3775 // 11.7/sqrt(12.)

    // TID
    double TID1x = 0.00262
    double TID1y = 3.6662 // 12.7/sqrt(12.)
    double TID2x = 0.00354
    double TID2y = 3.6662 // 12.7/sqrt(12.)
    double TID3x = 0.00391
    double TID3y = 3.4352 // 11.9/sqrt(12.)

    // TOB
    double TOB1x = 0.00461
    double TOB1y = 5.2836 // 2*9.1514/sqrt(12.)
    double TOB2x = 0.00458
    double TOB2y = 5.2836 // 2*9.1514/sqrt(12.)
    double TOB3x = 0.00488
    double TOB3y = 5.2836 // 2*9.1514/sqrt(12.)
    double TOB4x = 0.00491
    double TOB4y = 5.2836 // 2*9.1514/sqrt(12.)
    double TOB5x = 0.00293
    double TOB5y = 5.2836 // 2*9.1514/sqrt(12.)
    double TOB6x = 0.00299
    double TOB6y = 5.2836 // 2*9.1514/sqrt(12.)

    // TEC
    double TEC1x = 0.00262
    double TEC1y = 3.6662 // 12.7/sqrt(12.)
    double TEC2x = 0.00354
    double TEC2y = 3.6662 // 12.7/sqrt(12.)
    double TEC3x = 0.00391
    double TEC3y = 3.4352 // 11.9/sqrt(12.)
    double TEC4x = 0.00346
    double TEC4y = 3.4930 // 12.1/sqrt(12.)
    double TEC5x = 0.00378
    double TEC5y = 7.1014 // 2*12.3/sqrt(12.)
    double TEC6x = 0.00508
    double TEC6y = 6.8704 // 2*11.9/sqrt(12.)
    double TEC7x = 0.00422
    double TEC7y = 6.9859 // 2*12.1/sqrt(12.)

    // Hit Finding Probabilities
    double HitFindingProbability_PXB  = 1.00
    double HitFindingProbability_PXF  = 1.00
    double HitFindingProbability_TIB1 = 1.00
    double HitFindingProbability_TIB2 = 1.00
    double HitFindingProbability_TIB3 = 1.00
    double HitFindingProbability_TIB4 = 1.00
    double HitFindingProbability_TID1 = 1.00
    double HitFindingProbability_TID2 = 1.00
    double HitFindingProbability_TID3 = 1.00
    double HitFindingProbability_TOB1 = 1.00
    double HitFindingProbability_TOB2 = 1.00
    double HitFindingProbability_TOB3 = 1.00
    double HitFindingProbability_TOB4 = 1.00
    double HitFindingProbability_TOB5 = 1.00
    double HitFindingProbability_TOB6 = 1.00
    double HitFindingProbability_TEC1 = 1.00
    double HitFindingProbability_TEC2 = 1.00
    double HitFindingProbability_TEC3 = 1.00
    double HitFindingProbability_TEC4 = 1.00
    double HitFindingProbability_TEC5 = 1.00
    double HitFindingProbability_TEC6 = 1.00
    double HitFindingProbability_TEC7 = 1.00
    //
}

The general steering of the RecHit smearing is done with the first four parameters:

  • ROUList is the list of names given to the tracker RecHit's. Unlike in the GEANT-based simulation, only one name is given to the whole collection (the names of hits coming from the GEANT-based simulation are among "TrackerHitsPixelBarrelLowTof","TrackerHitsPixelBarrelHighTof", "TrackerHitsPixelEndcapLowTof","TrackerHitsPixelEndcapHighTof", "TrackerHitsTIBLowTof", "TrackerHitsTIBHighTof", "TrackerHitsTIDLowTof", "TrackerHitsTIDHighTof", "TrackerHitsTOBLowTof", "TrackerHitsTOBHighTof", "TrackerHitsTECLowTof", "TrackerHitsTECHighTof", "TrackerHitsPixelBarrelLowTof", "TrackerHitsPixelBarrelHighTof", "TrackerHitsPixelEndcapLowTof", and "TrackerHitsPixelEndcapHighTof". Should this list of names be needed for such or such use case not thought of yet, it'd be implemented immediately in the FastSimulation.

  • DeltaRaysMomentumCut is the smallest SimTrack pT (in GeV/c) for which RecHit's will be created. Note that PSimHit's are created by the FamosSimHit producer only abouve a certain pT cut too (set by default to 0.8 GeV/c). No RecHit's will therefore be produced below the larger of the cut values.

  • VerboseLevel is the verbosity level and is certainly meant for experts only. It is set by default to 2, for which I see no output. (I'll check later if this parameter has an effect at all in the present version of the code... if not, it'll be simply removed.)

  • trackingPSimHits,when set to true, return RecHit's at the exact same position as the original PSimHit's. It allows for detailed studies of effects other than the detector resolution (such as the effects of the interaction in the tracker material or, when the latter are also turned off, the effect of the tracking algorithm on perfect hits).

The other parameters are specific to either the Pixel or to the Silicon-Strip RecHit's, and are described in turn below.

Pixel RecHit smearing

The Pixel RecHit smearing is perfomed according to the (RecHit-SimHit) position distributions obtained from the GEANT-based simulation for single muons of 100 GeV/c. These distributions are saved in three files, configurable thorugh the above configuration file:

  • string PixelMultiplicityFile = "FastSimulation/TrackingRecHitProducer/data/PixelData.root" contains the probability density functions of the local track angles alpha and beta (determined locally with respect to the pixel modules) for cluster sizes going from 1 to n pixels in the two directions, for the barrel and the forward modules independently. For a given track hitting a given pixel module, the local angles alpha and beta are known, and the cluster sizes (size_x and size_y) may be randomly obtained from these pdf's. The largest cluster sizes (n) in the two directions are given by
        int32  AlphaBarrelMultiplicity    = 4
        int32  BetaBarrelMultiplicity     = 6
        int32  AlphaForwardMultiplicity   = 3
        int32  BetaForwardMultiplicity    = 3

  • string PixelBarrelResolutionFile = "FastSimulation/TrackingRecHitProducer/data/PixelBarrelResolution.root" contains the RecHit resolution functions in the pixel barrel. For each of the cluster sizes along x (or y), and for a given bin in alpha (or beta), the RecHit-!SimHit) position distribution obtained from the GEANT-based simulation is read from a root histogram, the id of which is 100 * alphabin + size_x (or 100*betabin + size_y), and the RecHit position is obtained from the SimHit position smeared according to this distribution. The number of alpha/beta bins, and their values/widths, are configured in the configuration file as
        double AlphaBarrel_BinMin    = -0.2
        double AlphaBarrel_BinWidth  =  0.1
        int32  AlphaBarrel_BinN      =  4
        double BetaBarrel_BinMin     =  0.0
        double BetaBarrel_BinWidth   =  0.2
        int32  BetaBarrel_BinN       =  7

  • string PixelForwardResolutionFile = "FastSimulation/TrackingRecHitProducer/data/PixelForwardResolution.root" is the same as above, but for the forward pixel, and its use is identical. The alpha and beta values span a much smaller range than in the barrel. There is therefore only one resolution function saved for each cluster size in the two directions.

The probability to form a RecHit from a SimHit is currently set to 100% (needs to be tuned to the GEANT-based simulation), but can be modified with the following two configurable parameters:

 
    double HitFindingProbability_PXB  = 1.00
    double HitFindingProbability_PXF  = 1.00
Finally, the RecHit position is checked to stay on the module's physical module hit by the track, after the SimHit smearing. In case it does not, a new random smearing is tried until it does.

Note: The resolution functions are, at the time of writing, still coming from OSCAR/ORCA-simulated muons. A campaign is currently going on to produce these distributions with the improved geometry and algorithms of the CMSSW GEANT-based simulation.

Silicon Strip RecHits smearing

The smearing of the SimHits in the SiStrip Tracker is very similar to that in the Pixel detector, with only difference that the resolution functions are assumed to be Gaussian, with an average layer-by-layer sigma. The latter is determined for all mono and stereo layers, in the direction perpendicular to the strips (i.e., the x direction). The RecHit stays at the centre of the strip in the longitudinal direction. The averaged standard deviations, obtained from COBRA/ORCA for the time being, are configurable with the following parameters:

    double TIB1x = 0.00195
    double TIB2x = 0.00191
    double TIB3x = 0.00325
    double TIB4x = 0.00323
 
    double TID1x = 0.00262
    double TID2x = 0.00354
    double TID3x = 0.00391

    double TOB1x = 0.00461
    double TOB2x = 0.00458
    double TOB3x = 0.00488
    double TOB4x = 0.00491
    double TOB5x = 0.00293
    double TOB6x = 0.00299

    double TEC1x = 0.00262
    double TEC2x = 0.00354
    double TEC3x = 0.00391
    double TEC4x = 0.00346
    double TEC5x = 0.00378
    double TEC6x = 0.00508
    double TEC7x = 0.00422
 

As for the pixel hits, the probability to form a RecHit from a SimHit is currently set to 100% (needs to be tuned to the GEANT-based simulation), but can be modified with configurable parameters, as shown above. Finally, the RecHit position is checked to stay on the module's physical module hit by the track, after the SimHit smearing. In case it does not, a new random smearing is tried until it does.

Note: A campaign is currently going on to check whether this Gaussian approximation is accurate enough, or if an approach similar to that of the pixel detector (with resolution functions depending on the cluster size and on the track direction) would substantially improve the overall picture - already very good.

Projected and matched RecHits

Miscellaneous

RecHit specific format

RecHit translator and full pattern recognition

Review status

Reviewer/Editor and Date (copy from screen) Comments
PatrickJanot - 18 June 2007 Add Pixel and SiStrip hit smearing documentation
PatrickJanot - 29 May 2007 Describe the general strategy and the general steering
JennyWilliams - 01 May 2007 created template page

Responsible: AndreaGiammanco
Last reviewed by: Reviewer

Edit | Attach | Watch | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r7 - 2011-12-15 - AndreaGiammanco



 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

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