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
144
|
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 RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
FittingSmootherCustomised = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.FittingSmootherRKP5.clone(
ComponentName = 'FittingSmootherCustomised',
EstimateCut=15.0,
MinNumberOfHits=6
)
TrackRefitterCTF1 =RecoTracker.TrackProducer.TrackRefitterP5_cfi.TrackRefitterP5.clone(
constraint = "",
src='ALCARECOTkAlCosmicsCTF0T',
TTRHBuilder = 'WithAngleAndTemplate',
TrajectoryInEvent = True,
beamSpot='MyBeamSpot',
NavigationSchool=''
)
# 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.35,
usePixelQualityFlag= True,
PxlCorrClusterChargeCut=10000.0
)
# 3: produce track after NEW track hit filter
import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
ctfProducerCustomisedCTF = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
src = 'AlignmentHitFilterCTF',
beamSpot='MyBeamSpot',
# Fitter = 'FittingSmootherCustomised',
TTRHBuilder = 'WithAngleAndTemplate',
TrajectoryInEvent = True
)
# 4: apply track selections on the refitted tracks
import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi
ALCARECOTkAlCosmicsCTF4TSkimmed= Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone(
## src= 'TrackRefitterCTF1',
src= 'ctfProducerCustomisedCTF',
ptMin=0.0,
ptMax=9999.0,
pMin=4.0,
pMax=9999.0,
etaMin=-99.0,
etaMax=99.0,
nHitMin=8,
nHitMin2D=2,
chi2nMax=6.0
### others which aren't used
#minHitsPerSubDet.inTIB = 0
#minHitsPerSubDet.inBPIX = 1
)
TrackRefitterCTF2 =RecoTracker.TrackProducer.TrackRefitterP5_cfi.TrackRefitterP5.clone(
constraint = "",
src='ALCARECOTkAlCosmicsCTF4TSkimmed',
TTRHBuilder = 'WithAngleAndTemplate',
TrajectoryInEvent = True,
beamSpot='MyBeamSpot',
NavigationSchool=''
# 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='ALCARECOTkAlCosmicsCTF4TSkimmed'#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____________________________________
##seqALCARECOTkAlCosmicsCTFSkimmed = cms.Sequence(MyBeamSpot+TrackHitFilterCTF+TrackRefitterCTF1+ALCARECOTkAlCosmicsCTF0TSkimmed+TrackRefitterCTF2+OverlapAssoMapCTF+NewStatsCTF)
#seqALCARECOTkAlCosmicsCTFSkimmed = cms.Sequence(MyBeamSpot+TrackRefitterCTF1+AlignmentHitFilterCTF+ctfProducerCustomisedCTF+ALCARECOTkAlCosmicsCTF4TSkimmed+TrackRefitterCTF2+OverlapAssoMapCTF+NewStatsCTF)
seqALCARECOTkAlCosmicsCTFSkimmed = cms.Sequence(MyBeamSpot+TrackRefitterCTF1+AlignmentHitFilterCTF+ctfProducerCustomisedCTF+ALCARECOTkAlCosmicsCTF4TSkimmed+TrackRefitterCTF2+OverlapAssoMapCTF)
|