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
|
import os
import FWCore.ParameterSet.Config as cms
ApeEstimatorTemplate = cms.EDAnalyzer('ApeEstimator',
#Input source of Tracks
tjTkAssociationMapTag = cms.InputTag("TrackRefitterForApeEstimator"),
#Max no. of tracks per event:
# default = 0, no event selection
maxTracksPerEvent = cms.uint32(0),
#Perform Track Cuts
applyTrackCuts = cms.bool(True),
# Selection of useful hits for analysis
HitSelector = cms.PSet(
# FIXME: create own PSets for Pixel and Strip?
#Parameters for Cuts on Strip Clusters (independent of track reconstruction, but associated to a track's hit)
width = cms.vuint32(), #interval, needs even number of arguments. for int specify one number n as interval (n,n)
widthProj = cms.vdouble(),
widthDiff = cms.vdouble(),
charge = cms.vdouble(),
edgeStrips = cms.vuint32(), #how many strips on edge to exclude wrt. maxStrip (on both edges)
maxCharge = cms.vdouble(),
chargeOnEdges = cms.vdouble(), # fraction of charge on edge strips of cluster
chargeAsymmetry = cms.vdouble(), # asymmetry of charge on edge strips of cluster
chargeLRplus = cms.vdouble(), # fraction of charge left and right from strip with maxCharge
chargeLRminus = cms.vdouble(), # asymmetry of charge left and right from strip with maxCharge
maxIndex = cms.vuint32(),
sOverN = cms.vdouble(),
#Parameters for Cuts on Pixel Clusters (independent of track reconstruction, but associated to a track's hit)
chargePixel = cms.vdouble(),
widthX = cms.vuint32(),
widthY = cms.vuint32(),
baryStripX = cms.vdouble(),
baryStripY = cms.vdouble(),
clusterProbabilityXY = cms.vdouble(),
clusterProbabilityQ = cms.vdouble(),
clusterProbabilityXYQ = cms.vdouble(),
logClusterProbability = cms.vdouble(),
isOnEdge = cms.vuint32(),
hasBadPixels = cms.vuint32(),
spansTwoRoc = cms.vuint32(),
qBin = cms.vuint32(),
#Parameters for Cuts on Pixel+Strip Hits (depending on track reconstruction)
phiSens = cms.vdouble(), #trajectory angle on module
phiSensX = cms.vdouble(),
phiSensY = cms.vdouble(),
resX = cms.vdouble(),
norResX = cms.vdouble(),
probX = cms.vdouble(),
errXHit = cms.vdouble(),
errXTrk = cms.vdouble(),
errX = cms.vdouble(),
errX2 = cms.vdouble(), #squared error of residuals(X)
#Additional parameters for Cuts on Pixel Hits (depending on track reconstruction)
resY = cms.vdouble(),
norResY = cms.vdouble(),
probY = cms.vdouble(),
errYHit = cms.vdouble(),
errYTrk = cms.vdouble(),
errY = cms.vdouble(),
errY2 = cms.vdouble(), #squared error of residuals(Y)
),
#Define minimum number of selected hits for track selection (choose only tracks with enough good hits)
minGoodHitsPerTrack = cms.uint32(0),
#File containing TrackerTree with ideal Geometry
TrackerTreeFile = cms.string(os.environ['CMSSW_BASE'] + '/src/Alignment/APEEstimation/hists/TrackerTree.root'),
#Sectors defining set of modules for common overview plots resp. APE values
Sectors = cms.VPSet(),
## Tool 1: Switch on Analyzer mode with full set of overview plots
analyzerMode = cms.bool(True),
#Vary Histo's ranges for Overview Plots (for analyzer mode)
zoomHists = cms.bool(True),
#Special Filter for Residual Error Histograms, additional hists binned in 100um (1: 0-100um, 2: 100-200um), (for analyzer mode)
vErrHists = cms.vuint32(),
## Tool 2: Switch on calculation of APE values
calculateApe = cms.bool(False),
#Define intervals in residual error for calculation of APE (one estimation per interval), (for APE calculation)
residualErrorBinning = cms.vdouble(),
)
|