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
|
import FWCore.ParameterSet.Config as cms
from FastSimulation.SimplifiedGeometryPropagator.TrackerMaterial_cfi import TrackerMaterialBlock
#############
### Hack to interface "old" calorimetry with "new" propagation in tracker
#############
CaloMaterialBlock = cms.PSet(
CaloMaterial = cms.PSet(
maxRadius = cms.untracked.double(500.),
maxZ = cms.untracked.double(1200.),
######
# The calorimetry
# Positions used from old ParticlePropagator. Do not really agree with the CMS ECAL/HCAL TDR values...
######
# Coverage usually provided as eta, e.g. barrel ECAL abs(eta) < 1.479
# Use definition of pseurorapidity: theta = 2*arctan(e^-eta)
# And theta = cos(z/sqrt(R^2+z^2))
# Better: eta = -0.5*ln((1-cos(theta))/(1+cos(theta)))
BarrelLayers = cms.VPSet(
########### ECAL ###########
cms.PSet(
radius = cms.untracked.double(129.0),
limits = cms.untracked.vdouble(0.0, 268.4),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("ECAL")
),
########### ECAL (barrel cut corner) ###########
cms.PSet(
radius = cms.untracked.double(152.6),
limits = cms.untracked.vdouble(268.4, 320.9),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("ECAL")
),
########### HCAL ###########
cms.PSet(
radius = cms.untracked.double(177.5),
limits = cms.untracked.vdouble(0.0, 335.0),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("HCAL")
),
########### HCAL (barrel cut corner) ###########
cms.PSet(
radius = cms.untracked.double(300.0),
limits = cms.untracked.vdouble(335.0, 400.458),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("HCAL")
),
########### Acts as end of detector to speed up simulation ###########
cms.PSet(
radius = cms.untracked.double(400.0),
limits = cms.untracked.vdouble(0., 1110.0),
thickness = cms.untracked.vdouble(0.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("VFCAL")
),
),
EndcapLayers = cms.VPSet(
########### PreShowerLayer1 ###########
cms.PSet(
z = cms.untracked.double(303.353),
limits = cms.untracked.vdouble(45., 125.),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("PRESHOWER1")
),
########### PreShowerLayer2 ###########
cms.PSet(
z = cms.untracked.double(307.838),
limits = cms.untracked.vdouble(45., 125.),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("PRESHOWER2")
),
########### ECAL ###########
cms.PSet(
z = cms.untracked.double(320.9),
limits = cms.untracked.vdouble(32.0, 152.6),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("ECAL")
),
########### HCAL ###########
cms.PSet(
z = cms.untracked.double(400.458),
limits = cms.untracked.vdouble(39.9, 300.),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("HCAL")
),
########### VFCAL ###########
cms.PSet(
z = cms.untracked.double(1110.0),
limits = cms.untracked.vdouble(12.2, 110.9),
thickness = cms.untracked.vdouble(1.),
interactionModels = cms.untracked.vstring(),
caloType = cms.untracked.string("VFCAL")
),
)
)
)
if hasattr(TrackerMaterialBlock.TrackerMaterial, 'magneticFieldZ'):
CaloMaterialBlock.CaloMaterial.magneticFieldZ = TrackerMaterialBlock.TrackerMaterial.magneticFieldZ
|