Example #1
0
 def __init__(self):
     volume = VolumeCylinder('ecal', 1.55, 2.1, 1.30, 2.)
     mat = material.Material('ECAL', 8.9e-3, 0.275)
     self.eta_crack = 1.5
     self.emin = 0.4
     self.eres = [0.073, 0.1, 0.005]
     super(ECAL, self).__init__('ecal', volume, mat)
Example #2
0
 def __init__(self):
     volume = VolumeCylinder('ecal', 2.02, 2.348, 1.808, 2.348)
     mat = material.Material('ECAL', 3.5e-3, 0.111)
     self.eta_crack = 3
     self.emin = 0.1
     self.eres = [0.17, 0., 0.01]
     super(ECAL, self).__init__('ecal', volume, mat)
Example #3
0
 def __init__(self):
     volume = VolumeCylinder('hcal', 2.9, 3.6, 1.9, 2.6 )
     mat = material.Material('HCAL', None, 0.17)
     self.eta_crack = 1.3
     self.eres = {'barrel':[0.8062, 2.753, 0.1501], 'endcap':[6.803e-06, 6.676, 0.1716]}
     self.eresp = {'barrel':[1.036, 4.452, -2.458], 'endcap':[1.071, 9.471, -2.823]}
     super(HCAL, self).__init__('ecal', volume, mat)
Example #4
0
 def __init__(self):
     #Material Seamless AISI 316 LN, External diameter 53 mm, Wall thickness 1.5 mm (hors CLIC) X0 1.72 cm
     #in CLIC, radius 25 mm (?), tchikness 8mm, X0 35.28 cm : berylluim
     factor = 1.0
     volume = VolumeCylinder('beampipe', 2.5e-2*factor+0.8e-3, 1.98, 2.5e-2*factor, 1.9785 )
     mat = material.Material('BeamPipe', 35.28e-2, 0)
     super(BeamPipe, self).__init__('beampipe', volume, mat)
Example #5
0
 def __init__(self):
     super(Tracker, self).__init__(
         'tracker', VolumeCylinder('tracker', ECAL.min_radius, ECAL.min_z),
         material.void)
     self.theta_max = 75. * math.pi / 180.
     # Emilia Leogrande
     # using our definition of theta (equal to zero at eta=0)
     self.resmap = [
         (80.0,
          [0.00064001464571871076, 0.13554521466257508,
           1.1091870672607593]),
         (60.0, [
             7.9414367183119937e-05, 0.014845686639308672,
             1.0821694803464048
         ]),
         (40.0, [
             4.8900068724976152e-05, 0.0056580423053257511,
             1.0924861152630758
         ]),
         # setting max angle of last line to 20 so that it's used.
         (20.0, [
             3.959021523612684e-05, 0.0028148305792289668,
             1.0362271035102992
         ])
     ]
Example #6
0
 def __init__(self):
     volume = VolumeCylinder('hcal', 4.8, 5.3, 2.4, 2.85)
     # 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, 1st hypothesis
     self.eres = [0.60, 0., 0.025]
     super(HCAL, self).__init__('ecal', volume, mat)
Example #7
0
 def __init__(self):
     volume = VolumeCylinder('ecal', 1.55, 2.1, 1.30, 2. )
     mat = material.Material('ECAL', 8.9e-3, 0.275)
     self.eta_crack = 1.479
     self.emin = {'barrel':0.3, 'endcap':1.}
     self.eres = {'barrel':[4.22163e-02, 1.55903e-01, 7.14166e-03], 'endcap':[-2.08048e-01, 3.25097e-01, 7.34244e-03]}
     self.eresp = {'barrel':[1.00071, -9.04973, -2.48554], 'endcap':[9.95665e-01, -3.31774, -2.11123]}
     super(ECAL, self).__init__('ecal', volume,  mat)
Example #8
0
 def __init__(self):
     volume = VolumeCylinder('hcal', self.__class__.max_radius,
                             self.__class__.max_z,
                             self.__class__.min_radius,
                             self.__class__.min_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)
     self.eres = [0.5, 0.5, 0.0234]
     super(HCAL, self).__init__('ecal', volume, mat)
Example #9
0
 def __init__(self):
     super(Tracker, self).__init__('tracker',
                                   VolumeCylinder('tracker', 2.14, 2.6),
                                   material.void)
     self.theta_max = 80. * math.pi / 180.
     # CLIC CDR Table 5.3.
     # using our definition of theta (equal to zero at eta=0)
     # first line added by hand for small angles,
     # with a bad resolution.
     # these tracks will not be accepted anyway,
     # but please pay attention to the acceptance method.
     self.resmap = [(90, 8.2e-2, 9.1e-2), (80, 8.2e-4, 9.1e-3),
                    (30, 9.9e-5, 3.8e-3), (20, 3.9e-5, 1.6e-3),
                    (10, 2e-5, 7.2e-4)]
Example #10
0
 def __init__(self):
     depth = 0.25
     inner_radius = 2.15
     inner_z = 2.6
     nX0 = 23  #CLIC CDR, page 70, value for CLIC_ILD
     nLambdaI = 1  # ibid
     outer_radius = inner_radius + depth
     outer_z = inner_z + depth
     X0 = depth / nX0
     lambdaI = depth / nLambdaI
     volume = VolumeCylinder('ecal', outer_radius, outer_z, inner_radius, inner_z)
     mat = material.Material('ECAL', X0, lambdaI)
     # todo: recompute
     self.eta_junction = volume.inner.eta_junction()
     # as for ILD (thresholds chosen by Mogens)
     self.emin = {'barrel':0.5, 'endcap':0.5}
     # CLIC CDR p.123. adding a noise term of 1%
     self.eres = {'barrel':[0.167, 0.010, 0.011]}
     super(ECAL, self).__init__('ecal', volume,  mat)
Example #11
0
 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.))
     nX0 = 23  #CLIC CDR, page 70, value for CLIC_ILD
     nLambdaI = 1  # ibid
     outer_radius = min_radius + depth
     outer_z = min_z + depth
     X0 = depth / nX0
     lambdaI = depth / nLambdaI
     volume = VolumeCylinder('ecal', outer_radius, outer_z, min_radius,
                             min_z)
     mat = material.Material('ECAL', X0, lambdaI)
     # todo: recompute
     self.eta_junction = volume.inner.eta_junction()
     # cooking up thresholds. a HG calo must be quite sensitive
     self.emin = {'barrel': 0.2, 'endcap': 0.2}
     # CLIC CDR p.123
     self.eres = {'barrel': [0.167, 0.0, 0.011]}
     super(ECAL, self).__init__('ecal', volume, mat)
Example #12
0
 def __init__(self):
     depth = 0.25
     min_radius = self.__class__.min_radius
     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
     depth = self.__class__.max_z - self.__class__.min_z
     X0 = depth / nX0
     lambdaI = depth / nLambdaI
     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()
     # cooking up thresholds. a HG calo must be quite sensitive
     self.emin = {'barrel': 0.2, 'endcap': 0.2}
     # CLIC CDR p.123
     self.eres = {'barrel': [0.167, 0.0, 0.011]}
     super(ECAL, self).__init__('ecal', volume, mat)
Example #13
0
 def __init__(self):
     volume = VolumeCylinder('tracker', 1.29, 1.99)
     mat = material.void
     super(Tracker, self).__init__('tracker', volume, mat)
Example #14
0
 def __init__(self):
     volume = VolumeCylinder('hcal', 2.9, 3.6, 1.9, 2.6)
     mat = material.Material('HCAL', None, 0.17)
     super(HCAL, self).__init__('ecal', volume, mat)
Example #15
0
 def __init__(self, magnitude):
     self.magnitude = magnitude
     volume = VolumeCylinder('field', HCAL.max_radius, HCAL.max_z)
     mat = material.void
     super(Field, self).__init__('tracker', volume, mat)
Example #16
0
 def __init__(self):
     volume = VolumeCylinder('tracker', 1.29, 1.99)
     # care : there is the beam pipe ! Shouldn't be an inner radius specified ?
     mat = material.void
     super(Tracker, self).__init__('tracker', volume, mat)
Example #17
0
 def __init__(self):
     volume = VolumeCylinder('ecal', 1.55, 2.25, 1.30, 2.)
     mat = material.Material('ECAL', 8.9e-3, 0.)  # lambda_I = 0
     self.eta_crack = 1.5
     self.emin = 2.
     super(ECAL, self).__init__('ecal', volume, mat)
Example #18
0
 def __init__(self, magnitude):
     self.magnitude = magnitude
     volume = VolumeCylinder('field', 2.9, 3.6)
     mat = material.void
     super(Field, self).__init__('tracker', volume, mat)
Example #19
0
 def __init__(self):
     volume = VolumeCylinder('hcal', 3.33, 2.348, 2.02, 2.348)
     mat = material.Material('HCAL', 1.74e-3, 0.17)
     self.eta_crack = 3.
     self.eres = [0.5, 0., 0.]
     super(HCAL, self).__init__('hcal', volume, mat)