Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
import FWCore.ParameterSet.Config as cms

#from RecoVertex.BeamSpotProducer.BeamSpot_cff import *
import RecoVertex.BeamSpotProducer.BeamSpot_cfi
MyBeamSpot= RecoVertex.BeamSpotProducer.BeamSpot_cfi.offlineBeamSpot.clone()



# Reject outliers <---- WARNING !!!! Applied only inside a TrackRefitter/TrackProducer, not by AlignmentTrackSelector
## import TrackingTools.TrackFitters.KFFittingSmootherWithOutliersRejectionAndRK_cfi 
##FittingSmootherCustomised = TrackingTools.TrackFitters.KFFittingSmootherWithOutliersRejectionAndRK_cfi.KFFittingSmootherWithOutliersRejectionAndRK.clone(


#####################################################################################################
### CTF tracks specialities 
#####################################################################################################

#0: filter on L1 trigger bit - if you really want to, remember to add to the path the entry "l1Filter"

import L1Trigger.Configuration.L1Config_cff
#import L1TriggerConfig.L1GtConfigProducers.Luminosity.lumi1x1032.L1Menu_CRUZET200805_gr7_muon_cff ###WHAT IS THE RIGTH ONE ????
import L1Trigger.Skimmer.l1Filter_cfi
ALCAl1Filter =  L1Trigger.Skimmer.l1Filter_cfi.l1Filter.clone(
    #algorithms=('L1_DoubleMuTopBottom')
    )





#1: first refit to the tracks, needed for getting the Traj

from RecoTracker.TrackProducer.TrackRefitters_cff import *
#import TrackingTools.TrackFitters.KFFittingSmootherWithOutliersRejectionAndRK_cfi
import TrackingTools.TrackFitters.RungeKuttaFitters_cff
#FittingSmootherCustomised = RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff.FittingSmootherRK.clone(
FittingSmootherCustomised =TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
    ComponentName = 'FittingSmootherCustomised',
    EstimateCut=18.0,
    MinNumberOfHits=6
    )


TrackRefitterCTF1 =RecoTracker.TrackProducer.TrackRefitter_cfi.TrackRefitter.clone(
    constraint = "",
    src='ALCARECOTkAlMinBias',
    TTRHBuilder = 'WithAngleAndTemplate',
    TrajectoryInEvent = True,
    beamSpot='MyBeamSpot'
    )

# 2b: apply NEW hit filter. Does not work with CosmicTF tracks !

from RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff import *
AlignmentHitFilterCTF=RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff.TrackerTrackHitFilter.clone(
  ## src = 'ALCARECOTkAlCosmicsCTF0T',
    src = 'TrackRefitterCTF1',
    commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC"),
    minimumHits = 6,
    replaceWithInactiveHits = True,
    stripAllInvalidHits = False,
    rejectBadStoNHits = True,
    StoNcommands = cms.vstring("ALL 18.0"),
    useTrajectories= True,
    rejectLowAngleHits= True,
    TrackAngleCut= 0.17,
    usePixelQualityFlag= True,
    PxlCorrClusterChargeCut=10000.0
    )

# 3: produce track after NEW track hit filter

import RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff
ctfProducerCustomisedCTF = RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff.ctfWithMaterialTracks.clone(
    src = 'AlignmentHitFilterCTF',
    beamSpot='MyBeamSpot',
  #  Fitter = 'FittingSmootherCustomised',
    TTRHBuilder = 'WithAngleAndTemplate',
    TrajectoryInEvent = True
    )


# 4: apply track selections on the refitted tracks
import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi
ALCARECOTkAlMinBiasSkimmed= Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone(
  ## src= 'TrackRefitterCTF1',
    src= 'ctfProducerCustomisedCTF',
    ptMin=1.5, # already in ALCARECO cfg
    ptMax=9999.0,
    pMin=3.0,
    pMax=9999.0,
    etaMin=-2.4,  # already in ALCARECO cfg
    etaMax=2.4,   # already in ALCARECO cfg
    nHitMin=8,
    nHitMin2D=2,
    chi2nMax=6.0
    ### others which aren't used
    #minHitsPerSubDet.inTIB = 0
    #minHitsPerSubDet.inBPIX = 1
    )


TrackRefitterCTF2 =RecoTracker.TrackProducer.TrackRefitter_cfi.TrackRefitter.clone(
    constraint = "",
    src='ALCARECOTkAlMinBiasSkimmed',
    TTRHBuilder = 'WithAngleAndTemplate',
    TrajectoryInEvent = True,
    beamSpot='MyBeamSpot',
#    EstimateCut=15.0,
#    MinNumberOfHits=6
#    Fitter='FittingSmootherCustomised'
    ) 


# 5: Overlap tagger
import Alignment.TrackerAlignment.TkAlCaOverlapTagger_cff
OverlapAssoMapCTF=Alignment.TrackerAlignment.TkAlCaOverlapTagger_cff.OverlapTagger.clone(
  #  src='ALCARECOTkAlCosmicsCTFSkimmed'
    src='TrackRefitterCTF2',
    #Clustersrc='ALCARECOTkAlCosmicsCTF0T'
    Clustersrc='ALCARECOTkAlMinBiasSkimmed'#the track selector produces a new collection of Clusters!
    )


import Alignment.CommonAlignmentMonitor.AlignmentStats_cff
NewStatsCTF=Alignment.CommonAlignmentMonitor.AlignmentStats_cff.AlignmentStats.clone(
  #  src='OverlapAssoMap',
    src='TrackRefitterCTF2',
    OverlapAssoMap='OverlapAssoMapCTF',
    keepTrackStats = False,
    keepHitStats = True,
    TrkStatsFileName='TracksStatisticsCTF.root',
    HitStatsFileName='HitMapsCTF.root',
    TrkStatsPrescale= 1                            
    )



##________________________________Sequences____________________________________
seqALCARECOTkAlMinBiasSkimmed = cms.Sequence(MyBeamSpot+TrackRefitterCTF1+AlignmentHitFilterCTF+ctfProducerCustomisedCTF+ALCARECOTkAlMinBiasSkimmed+TrackRefitterCTF2+OverlapAssoMapCTF)