Skip to content

Commit

Permalink
CLD geometry updated (Emilia, Sasha)
Browse files Browse the repository at this point in the history
  • Loading branch information
cbernet committed May 16, 2018
1 parent 7400b8a commit 25331a8
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 17 deletions.
53 changes: 37 additions & 16 deletions papas/detectors/CLIC.py
Expand Up @@ -11,26 +11,42 @@
import math
import heppy.statistics.rrandom as random

class ECAL(DetectorElement):
def max_eta(inner_radius, inner_z, outer_z):
'''computes maximum eta of a calorimeter,
given the inner radius, the inner z, and the outer z.'''
mean_z = (inner_z + outer_z) / 2.
tantheta = inner_radius / mean_z
theta = math.atan(tantheta)
eta = -math.log(math.tan(theta/2.))
return eta

max_radius = 4.8
class ECAL(DetectorElement):
'''CLD ECAL.
https://indico.cern.ch/event/638354/contributions/2626453/attachments/1478996/2292486/FCCeeDetDesMeeting.pdf
'''

max_radius = 2.352
min_radius = 2.15
max_z = 3.4
min_z = 1.8
max_z = 2.509
min_z = 2.307

def __init__(self):
depth = 0.25
min_radius = self.__class__.min_radius
min_z = self.__class__.min_z
inner_endcap_radius = 0.25
self.maxeta = -math.log(math.tan(math.atan(inner_endcap_radius/1.7) / 2.))
inner_endcap_radius = 0.34
self.maxeta = max_eta(inner_endcap_radius,
self.__class__.min_z,
self.__class__.max_z)
nX0 = 23 #CLIC CDR, page 70, value for CLIC_ILD
nLambdaI = 1 # ibid
outer_radius = min_radius + depth
outer_z = min_z + depth
depth = self.__class__.max_z - self.__class__.min_z
X0 = depth / nX0
lambdaI = depth / nLambdaI
volume = VolumeCylinder('ecal', outer_radius, outer_z, min_radius, min_z)
volume = VolumeCylinder('ecal',
self.__class__.max_radius,
self.__class__.max_z,
self.__class__.min_radius,
self.__class__.min_z)
mat = material.Material('ECAL', X0, lambdaI)
# todo: recompute
self.eta_junction = volume.inner.eta_junction()
Expand Down Expand Up @@ -74,15 +90,19 @@ def space_resolution(self, ptc):

class HCAL(DetectorElement):

max_radius = 4.8
max_radius = 3.566
min_radius = 2.4
max_z = 3.4
min_z = 1.8
max_z = 3.705
min_z = 2.539

def __init__(self):
volume = VolumeCylinder('hcal',
self.__class__.max_radius, self.__class__.max_z,
self.__class__.min_radius, self.__class__.min_z)
inner_endcap_radius = 0.34
self.maxeta = max_eta(inner_endcap_radius,
self.__class__.min_z,
self.__class__.max_z)
# not sure about X0 and lambda_i, but these don't matter anyway
mat = material.Material('HCAL', 0.018, 0.17)
# resolution from CLIC CDR Fig. 6.11, 2nd hypothesis (simple software compensation)
Expand All @@ -108,7 +128,7 @@ def cluster_size(self, ptc):
def acceptance(self, cluster):
energy = cluster.energy
eta = abs(cluster.position.Eta())
if eta < 2.76: #TODO: check this value
if eta < self.maxeta: #TODO: check this value
return energy>1.
else:
return False
Expand All @@ -120,8 +140,9 @@ def space_resolution(self, ptc):

class Tracker(DetectorElement):

# acceptance in radians
theta_max = math.pi / 2.
# acceptance in radians. removing 10 degrees on both sides
# Emilia Leogrande, private communication
theta_max = 80. * math.pi / 180.

def __init__(self):
super(Tracker, self).__init__('tracker',
Expand Down
2 changes: 1 addition & 1 deletion test/analysis_ee_Z_cfg.py
Expand Up @@ -29,7 +29,7 @@
from heppy.configuration import Collider
Collider.BEAMS = 'ee'
Collider.SQRTS = 91.
do_clic = False
do_clic = True
nfiles = 4
files = glob.glob('data/ee_Z_ddbar_pythia*.root')[:nfiles]
# input definition
Expand Down

0 comments on commit 25331a8

Please sign in to comment.