3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
9 kwargs.setdefault(
"LogicalVolumeNames", [
'MuonWall::MuScintillatorLayer',
'S1::S1',
'S2::S2',
'S3::S3'])
10 kwargs.setdefault(
"OutputCollectionNames", [
"TileTBHits"])
11 result.setPrivateTools(CompFactory.MuonWallSDTool(name, **kwargs))
17 kwargs.setdefault(
"DetectorName",
"MuonWall")
18 kwargs.setdefault(
"ZLength", 200.)
19 kwargs.setdefault(
"YLength", 400.)
20 kwargs.setdefault(
"XLength", 20.)
28 if (math.fabs(theta)<1.57):
29 z=r*math.tan(-theta)-delta
31 z=r/math.tan(2*math.atan(math.exp(-eta)))
36 kwargs.setdefault(
"OffsetX", r)
37 kwargs.setdefault(
"OffsetY", 0.0)
38 kwargs.setdefault(
"OffsetZ", z)
39 result.setPrivateTools(CompFactory.MuonWallTool(name, **kwargs))
45 if flags.TestBeam.Eta !=
'NONE' and (flags.TestBeam.Theta !=
'NONE' or flags.TestBeam.Z !=
'NONE'):
46 raise ValueError(
'THE ETA PARAMETER CAN NOT BE SET TOGETHER WITH THETA AND Z')
47 elif (flags.TestBeam.Theta ==
'NONE' or flags.TestBeam.Z ==
'NONE')
and flags.TestBeam.Eta ==
'NONE':
48 raise ValueError(
'THETA AND Z ARE NOT SET')
50 from AthenaCommon
import PhysicalConstants
51 if flags.TestBeam.Eta !=
'NONE':
53 eta=flags.TestBeam.Eta
54 ThetaY=-(PhysicalConstants.pi*0.5)+2*math.atan(math.exp(-eta))
56 elif not (flags.TestBeam.Theta ==
'NONE' or flags.TestBeam.Z ==
'NONE'):
57 theta=flags.TestBeam.Theta
60 if abs(theta) < 70.01:
65 ThetaY=math.radians(theta)
66 DeltaF=(2290.0*math.tan(-ThetaY)-z)
67 elif abs(abs(theta)-90.0) < 0.01:
73 ThetaY=sign*math.radians(90.0)
76 print (
'Tile table rotation: ERROR unknown rotation mode')
77 raise ValueError(
'UNKNOWN MODE - NEITHER ETA NOR THETA AND Z ARE SET')
81 if (math.fabs(ThetaY)<1.57):
82 z=r*math.tan(-ThetaY)-DeltaF
84 z=r/math.tan(2*math.atan(math.exp(-eta)))
89 kwargs.setdefault(
"OffsetX", r)
90 kwargs.setdefault(
"OffsetY", 0.0)
91 kwargs.setdefault(
"OffsetZ", z)