diff --git a/ILD/compact/ILD_common_v02/writeAllILDCompactDescriptions.py b/ILD/compact/ILD_common_v02/writeAllILDCompactDescriptions.py
index 10e6b5dd0..3df122626 100644
--- a/ILD/compact/ILD_common_v02/writeAllILDCompactDescriptions.py
+++ b/ILD/compact/ILD_common_v02/writeAllILDCompactDescriptions.py
@@ -1,44 +1,55 @@
-def writeTopCompactXml( outfile, version, name, Large, Option, SolenoidMap, AntiDID, FwdFields ):
-
+def writeTopCompactXml(
+ outfile, version, name, Large, Option, SolenoidMap, AntiDID, FwdFields
+):
# defaults for option 0, 1
# si ecal
- ecal_sl1=4
- ecal_sl2=10
+ ecal_sl1 = 4
+ ecal_sl2 = 10
# ahcal
- hcal_sl=3
- if Option==2 or Option==4: # SDHCAL
- hcal_sl=1
- elif Option==3 or Option==4: # ScECAL
- ecal_sl1=3
- ecal_sl2=11
- elif Option>1:
- print 'ERROR: do not know about Option', Option
+ hcal_sl = 3
+ if Option == 2 or Option == 4: # SDHCAL
+ hcal_sl = 1
+ elif Option == 3 or Option == 4: # ScECAL
+ ecal_sl1 = 3
+ ecal_sl2 = 11
+ elif Option > 1:
+ print("ERROR: do not know about Option", Option)
return
- if FwdFields!=250 and FwdFields!=500 and FwdFields!=1000 and FwdFields!=0:
- print 'ERROR: do not know about FwdFields at energy', FwdFields
+ if FwdFields != 250 and FwdFields != 500 and FwdFields != 1000 and FwdFields != 0:
+ print("ERROR: do not know about FwdFields at energy", FwdFields)
return
outfile.write('\n')
- outfile.write(' \n'
+ )
+ outfile.write(' \n')
- outfile.write(' ILD simulation models used for detector optimisation \n')
- outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(' version="v' + version + '">\n')
+ outfile.write(
+ " ILD simulation models used for detector optimisation \n"
+ )
+ outfile.write(" \n")
+ outfile.write(" \n")
outfile.write(' \n')
outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(" \n")
+ outfile.write(" \n")
if Large:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
else:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
@@ -50,41 +61,69 @@ def writeTopCompactXml( outfile, version, name, Large, Option, SolenoidMap, Anti
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(" \n")
+ outfile.write(
+ ' \n'
+ )
+ outfile.write(
+ ' \n'
+ )
+ outfile.write(" \n")
+ outfile.write(
+ ' \n'
+ )
+ outfile.write(" \n")
+ outfile.write(" \n")
outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
+ outfile.write(" \n")
outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
+ outfile.write(" \n")
outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
+ outfile.write(" \n")
+ outfile.write(" \n")
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
-
+
if Large:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
else:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
outfile.write(' \n')
outfile.write(' \n')
@@ -94,108 +133,130 @@ def writeTopCompactXml( outfile, version, name, Large, Option, SolenoidMap, Anti
outfile.write(' \n')
outfile.write(' \n')
outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(" \n")
outfile.write(' \n')
outfile.write(' \n')
- outfile.write(' \n')
+ outfile.write(" \n")
if SolenoidMap:
if Large:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
else:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
else:
outfile.write(' \n')
if AntiDID:
if Large:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
else:
- outfile.write(' \n')
+ outfile.write(
+ ' \n'
+ )
+
+ if FwdFields > 0:
+ outfile.write(
+ ' \n'
+ )
+
+ outfile.write("\n")
- if FwdFields>0:
- outfile.write(' \n')
- outfile.write('\n')
+# -----------------------------------------------------
-#-----------------------------------------------------
def getVersionParameters(version):
- vparams={}
- if version==2:
- vparams['SolenoidMap']=False
- vparams['AntiDID']=False
- vparams['FwdFields']=0
- elif version==3:
- vparams['SolenoidMap']=True
- vparams['AntiDID']=False
- vparams['FwdFields']=250
- elif version==4:
- vparams['SolenoidMap']=True
- vparams['AntiDID']=False
- vparams['FwdFields']=500
- elif version==5:
- vparams['SolenoidMap']=True
- vparams['AntiDID']=True
- vparams['FwdFields']=250
- elif version==6:
- vparams['SolenoidMap']=True
- vparams['AntiDID']=True
- vparams['FwdFields']=500
- elif version==7:
- vparams['SolenoidMap']=True
- vparams['AntiDID']=False
- vparams['FwdFields']=1000
- elif version==8:
- vparams['SolenoidMap']=True
- vparams['AntiDID']=True
- vparams['FwdFields']=1000
+ vparams = {}
+ if version == 2:
+ vparams["SolenoidMap"] = False
+ vparams["AntiDID"] = False
+ vparams["FwdFields"] = 0
+ elif version == 3:
+ vparams["SolenoidMap"] = True
+ vparams["AntiDID"] = False
+ vparams["FwdFields"] = 250
+ elif version == 4:
+ vparams["SolenoidMap"] = True
+ vparams["AntiDID"] = False
+ vparams["FwdFields"] = 500
+ elif version == 5:
+ vparams["SolenoidMap"] = True
+ vparams["AntiDID"] = True
+ vparams["FwdFields"] = 250
+ elif version == 6:
+ vparams["SolenoidMap"] = True
+ vparams["AntiDID"] = True
+ vparams["FwdFields"] = 500
+ elif version == 7:
+ vparams["SolenoidMap"] = True
+ vparams["AntiDID"] = False
+ vparams["FwdFields"] = 1000
+ elif version == 8:
+ vparams["SolenoidMap"] = True
+ vparams["AntiDID"] = True
+ vparams["FwdFields"] = 1000
else:
- print 'ERROR: unknown version requested:',version,'!!'
+ print("ERROR: unknown version requested:", version, "!!")
return vparams
- if version<10:
- vparams['vString']='0'+str(version)
+ if version < 10:
+ vparams["vString"] = "0" + str(version)
else:
- vparams['vString']=str(version)
+ vparams["vString"] = str(version)
return vparams
-#-----------------------------------------------------
+# -----------------------------------------------------
import os
-prename='ILD' # for the real thing
+prename = "ILD" # for the real thing
# prename='test' # for testing
-topdir='../'
-mainoutdirname=prename+'_sl5_v02'
-mainoutdir=topdir+mainoutdirname
+topdir = "../"
+mainoutdirname = prename + "_sl5_v02"
+mainoutdir = topdir + mainoutdirname
if not os.path.exists(mainoutdir):
os.makedirs(mainoutdir)
for version in range(2, 9):
- vparams=getVersionParameters(version)
+ vparams = getVersionParameters(version)
for Large in (True, False):
- for Option in range(0,5):
-
- modelname=prename+'_'
+ for Option in range(0, 5):
+ modelname = prename + "_"
if Large:
- modelname=modelname+'l'
+ modelname = modelname + "l"
else:
- modelname=modelname+'s'
- modelname=modelname+'5_'
+ modelname = modelname + "s"
+ modelname = modelname + "5_"
+
+ if Option > 0:
+ modelname = modelname + "o" + str(Option) + "_"
- if Option>0:
- modelname=modelname+'o'+str(Option)+'_'
+ modelname = modelname + "v" + vparams["vString"]
- modelname=modelname+'v'+vparams['vString']
-
- outfile=open(mainoutdir+'/'+modelname+'.xml','w')
- writeTopCompactXml( outfile, version=vparams['vString'], name=modelname, Large=Large, Option=Option, SolenoidMap=vparams['SolenoidMap'], AntiDID=vparams['AntiDID'], FwdFields=vparams['FwdFields'] )
+ outfile = open(mainoutdir + "/" + modelname + ".xml", "w")
+ writeTopCompactXml(
+ outfile,
+ version=vparams["vString"],
+ name=modelname,
+ Large=Large,
+ Option=Option,
+ SolenoidMap=vparams["SolenoidMap"],
+ AntiDID=vparams["AntiDID"],
+ FwdFields=vparams["FwdFields"],
+ )
outfile.close()
-
- if not os.path.exists( topdir+modelname ):
- os.symlink( mainoutdirname, topdir+modelname )
+
+ if not os.path.exists(topdir + modelname):
+ os.symlink(mainoutdirname, topdir + modelname)
diff --git a/ILD/doc/latex/documentEnvelopes.py b/ILD/doc/latex/documentEnvelopes.py
index ad3db7493..afd53eb07 100644
--- a/ILD/doc/latex/documentEnvelopes.py
+++ b/ILD/doc/latex/documentEnvelopes.py
@@ -1,517 +1,692 @@
"""
- Create Latex documents with drawings and tables
- documenting envelope parameters
+Create Latex documents with drawings and tables
+documenting envelope parameters
- @author F.Gaede, CERN/DESY
- @version 1.0
+@author F.Gaede, CERN/DESY
+@version 1.0
"""
+
import sys
import copy
import cStringIO
-
# --- define the envelope parameters for every subdetector -----
-envDict={}
-envDict['VXD'] = [ 'VXD_inner_radius', 'VXD_outer_radius',
- 'VXD_half_length', 'VXD_cone_min_z', 'VXD_cone_max_z', 'VXD_inner_radius_1' ]
-
-envDict['SIT'] = [ 'SIT_inner_radius', 'SIT_outer_radius',
- 'SIT_half_length', 'SIT_outer_radius_1', 'SIT_half_length_1' ]
-
-envDict['TPC'] = [ 'TPC_inner_radius', 'TPC_outer_radius', 'TPC_half_length' ]
-
-envDict['FTD'] = [ 'FTD_inner_radius', 'FTD_outer_radius', 'FTD_half_length',
- 'FTD_outer_radius_1', 'FTD_outer_radius_2',
- 'FTD_min_z_0', 'FTD_min_z_1', 'FTD_min_z_2', 'FTD_cone_min_z', 'FTD_cone_radius' ]
-
-envDict['SET'] = [ 'SET_inner_radius', 'SET_outer_radius', 'SET_half_length' ]
-
-
-envDict['Ecal'] = [ 'Ecal_Hcal_symmetry', 'Ecal_inner_radius', 'Ecal_outer_radius', 'Ecal_half_length', 'Ecal_symmetry' ]
-
-envDict['EcalEndcap'] = [ 'EcalEndcap_inner_radius', 'EcalEndcap_outer_radius', 'EcalEndcap_min_z', 'EcalEndcap_max_z' ]
-
-envDict['EcalEndcapRing'] = [ 'EcalEndcapRing_inner_radius', 'EcalEndcapRing_outer_radius', 'EcalEndcapRing_min_z', 'EcalEndcapRing_max_z' ]
-
-envDict['Hcal'] = [ 'Hcal_inner_radius', 'Hcal_outer_radius', 'Hcal_half_length', 'Hcal_inner_symmetry' ]
-
-envDict['HcalEndcap'] = [ 'EcalEndcap_symmetry', 'HcalEndcap_inner_radius', 'HcalEndcap_outer_radius', 'HcalEndcap_min_z', 'HcalEndcap_max_z' ]
-
-envDict['HcalEndcapRing'] = [ 'HcalEndcapRing_inner_radius', 'HcalEndcapRing_outer_radius', 'HcalEndcapRing_min_z', 'HcalEndcapRing_max_z', 'HcalEndcapRing_symmetry' ]
-
-envDict['Coil'] = [ 'Coil_inner_radius', 'Coil_outer_radius', 'Coil_half_length']
-
-envDict['Yoke'] = [ 'Yoke_inner_radius', 'Yoke_outer_radius', 'Yoke_half_length', 'Yoke_symmetry' ]
-
-envDict['YokeEndcap'] = [ 'YokeEndcap_inner_radius', 'YokeEndcap_outer_radius', 'YokeEndcap_min_z', 'YokeEndcap_max_z', 'YokeEndcap_symmetry' ]
-
-envDict['YokeEndcapPlug'] = [ 'YokeEndcapPlug_inner_radius', 'YokeEndcapPlug_outer_radius', 'YokeEndcapPlug_min_z', 'YokeEndcapPlug_max_z', 'YokeEndcapPlug_symmetry' ]
-
-envDict['BeamCal'] = [ 'BeamCal_inner_radius', 'BeamCal_outer_radius', 'BeamCal_min_z', 'BeamCal_max_z', 'BeamCal_thickness', 'BeamCal_tubeIncoming_radius' ]
-
-envDict['LumiCal'] = [ 'LumiCal_inner_radius', 'LumiCal_outer_radius', 'LumiCal_min_z', 'LumiCal_max_z', 'LumiCal_thickness' ]
-
-envDict['LHCal'] = [ 'LHCal_inner_radius', 'LHCal_outer_radius', 'LHCal_min_z', 'LHCal_max_z', 'LHCal_thickness' ]
-
-
-#----- define the envelope shape points in rz ------------
+envDict = {}
+envDict["VXD"] = [
+ "VXD_inner_radius",
+ "VXD_outer_radius",
+ "VXD_half_length",
+ "VXD_cone_min_z",
+ "VXD_cone_max_z",
+ "VXD_inner_radius_1",
+]
+
+envDict["SIT"] = [
+ "SIT_inner_radius",
+ "SIT_outer_radius",
+ "SIT_half_length",
+ "SIT_outer_radius_1",
+ "SIT_half_length_1",
+]
+
+envDict["TPC"] = ["TPC_inner_radius", "TPC_outer_radius", "TPC_half_length"]
+
+envDict["FTD"] = [
+ "FTD_inner_radius",
+ "FTD_outer_radius",
+ "FTD_half_length",
+ "FTD_outer_radius_1",
+ "FTD_outer_radius_2",
+ "FTD_min_z_0",
+ "FTD_min_z_1",
+ "FTD_min_z_2",
+ "FTD_cone_min_z",
+ "FTD_cone_radius",
+]
+
+envDict["SET"] = ["SET_inner_radius", "SET_outer_radius", "SET_half_length"]
+
+
+envDict["Ecal"] = [
+ "Ecal_Hcal_symmetry",
+ "Ecal_inner_radius",
+ "Ecal_outer_radius",
+ "Ecal_half_length",
+ "Ecal_symmetry",
+]
+
+envDict["EcalEndcap"] = [
+ "EcalEndcap_inner_radius",
+ "EcalEndcap_outer_radius",
+ "EcalEndcap_min_z",
+ "EcalEndcap_max_z",
+]
+
+envDict["EcalEndcapRing"] = [
+ "EcalEndcapRing_inner_radius",
+ "EcalEndcapRing_outer_radius",
+ "EcalEndcapRing_min_z",
+ "EcalEndcapRing_max_z",
+]
+
+envDict["Hcal"] = [
+ "Hcal_inner_radius",
+ "Hcal_outer_radius",
+ "Hcal_half_length",
+ "Hcal_inner_symmetry",
+]
+
+envDict["HcalEndcap"] = [
+ "EcalEndcap_symmetry",
+ "HcalEndcap_inner_radius",
+ "HcalEndcap_outer_radius",
+ "HcalEndcap_min_z",
+ "HcalEndcap_max_z",
+]
+
+envDict["HcalEndcapRing"] = [
+ "HcalEndcapRing_inner_radius",
+ "HcalEndcapRing_outer_radius",
+ "HcalEndcapRing_min_z",
+ "HcalEndcapRing_max_z",
+ "HcalEndcapRing_symmetry",
+]
+
+envDict["Coil"] = ["Coil_inner_radius", "Coil_outer_radius", "Coil_half_length"]
+
+envDict["Yoke"] = [
+ "Yoke_inner_radius",
+ "Yoke_outer_radius",
+ "Yoke_half_length",
+ "Yoke_symmetry",
+]
+
+envDict["YokeEndcap"] = [
+ "YokeEndcap_inner_radius",
+ "YokeEndcap_outer_radius",
+ "YokeEndcap_min_z",
+ "YokeEndcap_max_z",
+ "YokeEndcap_symmetry",
+]
+
+envDict["YokeEndcapPlug"] = [
+ "YokeEndcapPlug_inner_radius",
+ "YokeEndcapPlug_outer_radius",
+ "YokeEndcapPlug_min_z",
+ "YokeEndcapPlug_max_z",
+ "YokeEndcapPlug_symmetry",
+]
+
+envDict["BeamCal"] = [
+ "BeamCal_inner_radius",
+ "BeamCal_outer_radius",
+ "BeamCal_min_z",
+ "BeamCal_max_z",
+ "BeamCal_thickness",
+ "BeamCal_tubeIncoming_radius",
+]
+
+envDict["LumiCal"] = [
+ "LumiCal_inner_radius",
+ "LumiCal_outer_radius",
+ "LumiCal_min_z",
+ "LumiCal_max_z",
+ "LumiCal_thickness",
+]
+
+envDict["LHCal"] = [
+ "LHCal_inner_radius",
+ "LHCal_outer_radius",
+ "LHCal_min_z",
+ "LHCal_max_z",
+ "LHCal_thickness",
+]
+
+
+# ----- define the envelope shape points in rz ------------
envRZDict = {}
-envRZDict['VXD'] = [ ( '0' , 'VXD_inner_radius' ) ,
- ( '0' , 'VXD_outer_radius' ) ,
- ( 'VXD_half_length', 'VXD_outer_radius' ) ,
- ( 'VXD_half_length', 'VXD_inner_radius_1') ,
- ( 'VXD_cone_max_z' , 'VXD_inner_radius_1') ,
- ( 'VXD_cone_min_z' , 'VXD_inner_radius' ) ,
- ( '0' , 'VXD_inner_radius' ) ]
-
-envRZDict['SIT'] = [ ( '0' , 'SIT_inner_radius' ) ,
- ( '0' , 'SIT_outer_radius' ) ,
- ( 'SIT_half_length' , 'SIT_outer_radius' ) ,
- ( 'SIT_half_length' , 'SIT_outer_radius_1' ) ,
- ( 'SIT_half_length_1', 'SIT_outer_radius_1' ) ,
- ( 'SIT_half_length_1', 'SIT_inner_radius' ) ,
- ( '0' , 'SIT_inner_radius' ) ]
-
-envRZDict['FTD'] = [ ( 'FTD_min_z_0' , 'FTD_inner_radius' ) ,
- ( 'FTD_min_z_0' , 'FTD_outer_radius_1' ) ,
- ( 'FTD_min_z_1' , 'FTD_outer_radius_1' ) ,
- ( 'FTD_min_z_1' , 'FTD_outer_radius_2' ) ,
- ( 'FTD_min_z_2' , 'FTD_outer_radius_2' ) ,
- ( 'FTD_min_z_2' , 'FTD_outer_radius' ) ,
- ( 'FTD_half_length', 'FTD_outer_radius' ) ,
- ( 'FTD_half_length', 'FTD_cone_radius' ) ,
- ( 'FTD_cone_min_z', 'FTD_inner_radius' ) ,
- ( 'FTD_min_z_0' , 'FTD_inner_radius' ) ]
-
-envRZDict['SET'] = [ ( '0' , 'SET_inner_radius' ) ,
- ( '0' , 'SET_outer_radius' ) ,
- ( 'SET_half_length', 'SET_outer_radius' ) ,
- ( 'SET_half_length', 'SET_inner_radius' ) ,
- ( '0' , 'SET_inner_radius' ) ]
-
-envRZDict['TPC'] = [ ( '0' , 'TPC_inner_radius' ) ,
- ( '0' , 'TPC_outer_radius' ) ,
- ( 'TPC_half_length', 'TPC_outer_radius' ) ,
- ( 'TPC_half_length', 'TPC_inner_radius' ) ,
- ( '0' , 'TPC_inner_radius' ) ]
-
-envRZDict['Ecal'] = [ ( '0' , 'Ecal_inner_radius' ) ,
- ( '0' , 'Ecal_outer_radius' ) ,
- ( 'Ecal_half_length', 'Ecal_outer_radius' ) ,
- ( 'Ecal_half_length', 'Ecal_inner_radius' ) ,
- ( '0' , 'Ecal_inner_radius' ) ]
-
-envRZDict['EcalEndcap'] = [ ( 'EcalEndcap_min_z' , 'EcalEndcap_inner_radius' ) ,
- ( 'EcalEndcap_min_z' , 'EcalEndcap_outer_radius' ) ,
- ( 'EcalEndcap_max_z' , 'EcalEndcap_outer_radius' ) ,
- ( 'EcalEndcap_max_z' , 'EcalEndcap_inner_radius' ) ,
- ( 'EcalEndcap_min_z' , 'EcalEndcap_inner_radius' ) ]
-
-envRZDict['EcalEndcapRing'] = [ ( 'EcalEndcapRing_min_z' , 'EcalEndcapRing_inner_radius' ) ,
- ( 'EcalEndcapRing_min_z' , 'EcalEndcapRing_outer_radius' ) ,
- ( 'EcalEndcapRing_max_z' , 'EcalEndcapRing_outer_radius' ) ,
- ( 'EcalEndcapRing_max_z' , 'EcalEndcapRing_inner_radius' ) ,
- ( 'EcalEndcapRing_min_z' , 'EcalEndcapRing_inner_radius' ) ]
-
-envRZDict['Hcal'] = [ ( '0' , 'Hcal_inner_radius' ) ,
- ( '0' , 'Hcal_outer_radius' ) ,
- ( 'Hcal_half_length', 'Hcal_outer_radius' ) ,
- ( 'Hcal_half_length', 'Hcal_inner_radius' ) ,
- ( '0' , 'Hcal_inner_radius' ) ]
-
-
-envRZDict['HcalEndcap'] = [ ( 'HcalEndcap_min_z' , 'HcalEndcap_inner_radius' ) ,
- ( 'HcalEndcap_min_z' , 'HcalEndcap_outer_radius' ) ,
- ( 'HcalEndcap_max_z' , 'HcalEndcap_outer_radius' ) ,
- ( 'HcalEndcap_max_z' , 'HcalEndcap_inner_radius' ) ,
- ( 'HcalEndcap_min_z' , 'HcalEndcap_inner_radius' ) ]
-
-envRZDict['HcalEndcapRing'] = [ ( 'HcalEndcapRing_min_z' , 'HcalEndcapRing_inner_radius' ) ,
- ( 'HcalEndcapRing_min_z' , 'HcalEndcapRing_outer_radius' ) ,
- ( 'HcalEndcapRing_max_z' , 'HcalEndcapRing_outer_radius' ) ,
- ( 'HcalEndcapRing_max_z' , 'HcalEndcapRing_inner_radius' ) ,
- ( 'HcalEndcapRing_min_z' , 'HcalEndcapRing_inner_radius' ) ]
-
-
-envRZDict['Yoke'] = [ ( '0' , 'Yoke_inner_radius' ) ,
- ( '0' , 'Yoke_outer_radius' ) ,
- ( 'Yoke_half_length', 'Yoke_outer_radius' ) ,
- ( 'Yoke_half_length', 'Yoke_inner_radius' ) ,
- ( '0' , 'Yoke_inner_radius' ) ]
-
-
-envRZDict['YokeEndcap'] = [ ( 'YokeEndcap_min_z' , 'YokeEndcap_inner_radius' ) ,
- ( 'YokeEndcap_min_z' , 'YokeEndcap_outer_radius' ) ,
- ( 'YokeEndcap_max_z' , 'YokeEndcap_outer_radius' ) ,
- ( 'YokeEndcap_max_z' , 'YokeEndcap_inner_radius' ) ,
- ( 'YokeEndcap_min_z' , 'YokeEndcap_inner_radius' ) ]
-
-envRZDict['YokeEndcapPlug'] = [ ( 'YokeEndcapPlug_min_z' , 'YokeEndcapPlug_inner_radius' ) ,
- ( 'YokeEndcapPlug_min_z' , 'YokeEndcapPlug_outer_radius' ) ,
- ( 'YokeEndcapPlug_max_z' , 'YokeEndcapPlug_outer_radius' ) ,
- ( 'YokeEndcapPlug_max_z' , 'YokeEndcapPlug_inner_radius' ) ,
- ( 'YokeEndcapPlug_min_z' , 'YokeEndcapPlug_inner_radius' ) ]
-
-envRZDict['Coil'] = [ ( '0' , 'Coil_inner_radius' ) ,
- ( '0' , 'Coil_outer_radius' ) ,
- ( 'Coil_half_length', 'Coil_outer_radius' ) ,
- ( 'Coil_half_length', 'Coil_inner_radius' ) ,
- ( '0' , 'Coil_inner_radius' ) ]
-
-
-envRZDict['BeamCal'] = [ ( 'BeamCal_min_z' , 'BeamCal_inner_radius' ) ,
- ( 'BeamCal_min_z' , 'BeamCal_outer_radius' ) ,
- ( 'BeamCal_max_z' , 'BeamCal_outer_radius' ) ,
- ( 'BeamCal_max_z' , 'BeamCal_inner_radius' ) ,
- ( 'BeamCal_min_z' , 'BeamCal_inner_radius' ) ]
-
-envRZDict['LumiCal'] = [ ( 'LumiCal_min_z' , 'LumiCal_inner_radius' ) ,
- ( 'LumiCal_min_z' , 'LumiCal_outer_radius' ) ,
- ( 'LumiCal_max_z' , 'LumiCal_outer_radius' ) ,
- ( 'LumiCal_max_z' , 'LumiCal_inner_radius' ) ,
- ( 'LumiCal_min_z' , 'LumiCal_inner_radius' ) ]
-
-envRZDict['LHCal'] = [ ( 'LHCal_min_z' , 'LHCal_inner_radius' ) ,
- ( 'LHCal_min_z' , 'LHCal_outer_radius' ) ,
- ( 'LHCal_max_z' , 'LHCal_outer_radius' ) ,
- ( 'LHCal_max_z' , 'LHCal_inner_radius' ) ,
- ( 'LHCal_min_z' , 'LHCal_inner_radius' ) ]
-
-
-
-#-----------------------------------------------
+envRZDict["VXD"] = [
+ ("0", "VXD_inner_radius"),
+ ("0", "VXD_outer_radius"),
+ ("VXD_half_length", "VXD_outer_radius"),
+ ("VXD_half_length", "VXD_inner_radius_1"),
+ ("VXD_cone_max_z", "VXD_inner_radius_1"),
+ ("VXD_cone_min_z", "VXD_inner_radius"),
+ ("0", "VXD_inner_radius"),
+]
+
+envRZDict["SIT"] = [
+ ("0", "SIT_inner_radius"),
+ ("0", "SIT_outer_radius"),
+ ("SIT_half_length", "SIT_outer_radius"),
+ ("SIT_half_length", "SIT_outer_radius_1"),
+ ("SIT_half_length_1", "SIT_outer_radius_1"),
+ ("SIT_half_length_1", "SIT_inner_radius"),
+ ("0", "SIT_inner_radius"),
+]
+
+envRZDict["FTD"] = [
+ ("FTD_min_z_0", "FTD_inner_radius"),
+ ("FTD_min_z_0", "FTD_outer_radius_1"),
+ ("FTD_min_z_1", "FTD_outer_radius_1"),
+ ("FTD_min_z_1", "FTD_outer_radius_2"),
+ ("FTD_min_z_2", "FTD_outer_radius_2"),
+ ("FTD_min_z_2", "FTD_outer_radius"),
+ ("FTD_half_length", "FTD_outer_radius"),
+ ("FTD_half_length", "FTD_cone_radius"),
+ ("FTD_cone_min_z", "FTD_inner_radius"),
+ ("FTD_min_z_0", "FTD_inner_radius"),
+]
+
+envRZDict["SET"] = [
+ ("0", "SET_inner_radius"),
+ ("0", "SET_outer_radius"),
+ ("SET_half_length", "SET_outer_radius"),
+ ("SET_half_length", "SET_inner_radius"),
+ ("0", "SET_inner_radius"),
+]
+
+envRZDict["TPC"] = [
+ ("0", "TPC_inner_radius"),
+ ("0", "TPC_outer_radius"),
+ ("TPC_half_length", "TPC_outer_radius"),
+ ("TPC_half_length", "TPC_inner_radius"),
+ ("0", "TPC_inner_radius"),
+]
+
+envRZDict["Ecal"] = [
+ ("0", "Ecal_inner_radius"),
+ ("0", "Ecal_outer_radius"),
+ ("Ecal_half_length", "Ecal_outer_radius"),
+ ("Ecal_half_length", "Ecal_inner_radius"),
+ ("0", "Ecal_inner_radius"),
+]
+
+envRZDict["EcalEndcap"] = [
+ ("EcalEndcap_min_z", "EcalEndcap_inner_radius"),
+ ("EcalEndcap_min_z", "EcalEndcap_outer_radius"),
+ ("EcalEndcap_max_z", "EcalEndcap_outer_radius"),
+ ("EcalEndcap_max_z", "EcalEndcap_inner_radius"),
+ ("EcalEndcap_min_z", "EcalEndcap_inner_radius"),
+]
+
+envRZDict["EcalEndcapRing"] = [
+ ("EcalEndcapRing_min_z", "EcalEndcapRing_inner_radius"),
+ ("EcalEndcapRing_min_z", "EcalEndcapRing_outer_radius"),
+ ("EcalEndcapRing_max_z", "EcalEndcapRing_outer_radius"),
+ ("EcalEndcapRing_max_z", "EcalEndcapRing_inner_radius"),
+ ("EcalEndcapRing_min_z", "EcalEndcapRing_inner_radius"),
+]
+
+envRZDict["Hcal"] = [
+ ("0", "Hcal_inner_radius"),
+ ("0", "Hcal_outer_radius"),
+ ("Hcal_half_length", "Hcal_outer_radius"),
+ ("Hcal_half_length", "Hcal_inner_radius"),
+ ("0", "Hcal_inner_radius"),
+]
+
+
+envRZDict["HcalEndcap"] = [
+ ("HcalEndcap_min_z", "HcalEndcap_inner_radius"),
+ ("HcalEndcap_min_z", "HcalEndcap_outer_radius"),
+ ("HcalEndcap_max_z", "HcalEndcap_outer_radius"),
+ ("HcalEndcap_max_z", "HcalEndcap_inner_radius"),
+ ("HcalEndcap_min_z", "HcalEndcap_inner_radius"),
+]
+
+envRZDict["HcalEndcapRing"] = [
+ ("HcalEndcapRing_min_z", "HcalEndcapRing_inner_radius"),
+ ("HcalEndcapRing_min_z", "HcalEndcapRing_outer_radius"),
+ ("HcalEndcapRing_max_z", "HcalEndcapRing_outer_radius"),
+ ("HcalEndcapRing_max_z", "HcalEndcapRing_inner_radius"),
+ ("HcalEndcapRing_min_z", "HcalEndcapRing_inner_radius"),
+]
+
+
+envRZDict["Yoke"] = [
+ ("0", "Yoke_inner_radius"),
+ ("0", "Yoke_outer_radius"),
+ ("Yoke_half_length", "Yoke_outer_radius"),
+ ("Yoke_half_length", "Yoke_inner_radius"),
+ ("0", "Yoke_inner_radius"),
+]
+
+
+envRZDict["YokeEndcap"] = [
+ ("YokeEndcap_min_z", "YokeEndcap_inner_radius"),
+ ("YokeEndcap_min_z", "YokeEndcap_outer_radius"),
+ ("YokeEndcap_max_z", "YokeEndcap_outer_radius"),
+ ("YokeEndcap_max_z", "YokeEndcap_inner_radius"),
+ ("YokeEndcap_min_z", "YokeEndcap_inner_radius"),
+]
+
+envRZDict["YokeEndcapPlug"] = [
+ ("YokeEndcapPlug_min_z", "YokeEndcapPlug_inner_radius"),
+ ("YokeEndcapPlug_min_z", "YokeEndcapPlug_outer_radius"),
+ ("YokeEndcapPlug_max_z", "YokeEndcapPlug_outer_radius"),
+ ("YokeEndcapPlug_max_z", "YokeEndcapPlug_inner_radius"),
+ ("YokeEndcapPlug_min_z", "YokeEndcapPlug_inner_radius"),
+]
+
+envRZDict["Coil"] = [
+ ("0", "Coil_inner_radius"),
+ ("0", "Coil_outer_radius"),
+ ("Coil_half_length", "Coil_outer_radius"),
+ ("Coil_half_length", "Coil_inner_radius"),
+ ("0", "Coil_inner_radius"),
+]
+
+
+envRZDict["BeamCal"] = [
+ ("BeamCal_min_z", "BeamCal_inner_radius"),
+ ("BeamCal_min_z", "BeamCal_outer_radius"),
+ ("BeamCal_max_z", "BeamCal_outer_radius"),
+ ("BeamCal_max_z", "BeamCal_inner_radius"),
+ ("BeamCal_min_z", "BeamCal_inner_radius"),
+]
+
+envRZDict["LumiCal"] = [
+ ("LumiCal_min_z", "LumiCal_inner_radius"),
+ ("LumiCal_min_z", "LumiCal_outer_radius"),
+ ("LumiCal_max_z", "LumiCal_outer_radius"),
+ ("LumiCal_max_z", "LumiCal_inner_radius"),
+ ("LumiCal_min_z", "LumiCal_inner_radius"),
+]
+
+envRZDict["LHCal"] = [
+ ("LHCal_min_z", "LHCal_inner_radius"),
+ ("LHCal_min_z", "LHCal_outer_radius"),
+ ("LHCal_max_z", "LHCal_outer_radius"),
+ ("LHCal_max_z", "LHCal_inner_radius"),
+ ("LHCal_min_z", "LHCal_inner_radius"),
+]
+
+
+# -----------------------------------------------
try:
- dictFile = sys.argv[1]
+ dictFile = sys.argv[1]
except IndexError:
- print " usage: python documentEnvelopes.py pyDict.py "
- print " pyDict.py : python file with a data dictionary (created with extractParameters)"
- print
- sys.exit(1)
+ print(" usage: python documentEnvelopes.py pyDict.py ")
+ print(
+ " pyDict.py : python file with a data dictionary (created with extractParameters)"
+ )
+ print()
+ sys.exit(1)
+
+# ------ read dictionary 'values' from file
+execfile(dictFile)
+values["0"] = 0
-#------ read dictionary 'values' from file
-execfile( dictFile )
-values['0'] = 0
-#-----------------------------------------------
+# -----------------------------------------------
def run():
+ writeTexFile("VXD", "_rz_envelope", getRZEnvCmds, 20)
+ writeTexFile("SIT", "_rz_envelope", getRZEnvCmds, 20)
+ writeTexFile("FTD", "_rz_envelope", getRZEnvCmds, 20)
+ writeTexFile("TPC", "_rz_envelope", getRZEnvCmds, 20)
+ writeTexFile("SET", "_rz_envelope", getRZEnvCmds, 20)
- writeTexFile( 'VXD', '_rz_envelope' , getRZEnvCmds, 20 )
- writeTexFile( 'SIT', '_rz_envelope' , getRZEnvCmds, 20 )
- writeTexFile( 'FTD', '_rz_envelope' , getRZEnvCmds, 20 )
- writeTexFile( 'TPC', '_rz_envelope' , getRZEnvCmds, 20 )
- writeTexFile( 'SET', '_rz_envelope' , getRZEnvCmds, 20 )
+ writeTexFile("ILD", "_rz_quadrant", getILDRZQuadrantCmds, 20)
- writeTexFile( 'ILD', '_rz_quadrant' , getILDRZQuadrantCmds, 20 )
+ writeILDEnvTable("ILD_enevelope_table.tex")
- writeILDEnvTable('ILD_enevelope_table.tex' )
-#-----------------------------------------------
-def writeILDEnvTable( file ):
- fn = './ILD_envelopeTable.tex'
- of = open( fn , 'w' )
+# -----------------------------------------------
+def writeILDEnvTable(file):
+ fn = "./ILD_envelopeTable.tex"
+ of = open(fn, "w")
cmds = []
- cmds.extend( getDocHeaderCmds( 'article', ['multirow'] ))
-
- dets = ['VXD','FTD','SIT','TPC','SET', 'Ecal', 'EcalEndcap', 'EcalEndcapRing',
- 'Hcal', 'HcalEndcap', 'HcalEndcapRing', 'Coil', 'Yoke', 'YokeEndcap', 'YokeEndcapPlug', 'BeamCal', 'LHCal', 'LumiCal' ]
-
-
- cmds.extend( getEnvelopeTableCmds( dets , '\\large{Envelope parameters for ILD\_o1\_v05}' ) )
-
- cmds.extend( getDocFooterCmds() )
+ cmds.extend(getDocHeaderCmds("article", ["multirow"]))
+
+ dets = [
+ "VXD",
+ "FTD",
+ "SIT",
+ "TPC",
+ "SET",
+ "Ecal",
+ "EcalEndcap",
+ "EcalEndcapRing",
+ "Hcal",
+ "HcalEndcap",
+ "HcalEndcapRing",
+ "Coil",
+ "Yoke",
+ "YokeEndcap",
+ "YokeEndcapPlug",
+ "BeamCal",
+ "LHCal",
+ "LumiCal",
+ ]
+
+ cmds.extend(
+ getEnvelopeTableCmds(dets, "\\large{Envelope parameters for ILD\_o1\_v05}")
+ )
+
+ cmds.extend(getDocFooterCmds())
for cmd in cmds:
- print >>of, cmd
+ print(cmd, file=of)
of.close()
-#-----------------------------------------------
-def getEnvelopeTableCmds( dets , title ):
- cmds = []
- cmds.append( '\\begin{tabular}{|l | c | c | c | l r |}' )
- cmds.append( '\\hline' )
- if( len( title )):
- cmds.append( '\\multicolumn{6}{|c|}{} \\\\' )
- cmds.append( '\\multicolumn{6}{|c|}{' + title + '} \\\\' )
- cmds.append( '\\multicolumn{6}{|c|}{} \\\\' )
- cmds.append( '\\hline' )
- cmds.append( ' detector & inner radius & outer radius & half length & \multicolumn{2}{c|}{additional parameters} \\\\' )
- cmds.append( ' & & & min z, max z & & \\\\' )
- cmds.append( '\\hline' )
+# -----------------------------------------------
+def getEnvelopeTableCmds(dets, title):
+ cmds = []
+ cmds.append("\\begin{tabular}{|l | c | c | c | l r |}")
+ cmds.append("\\hline")
+
+ if len(title):
+ cmds.append("\\multicolumn{6}{|c|}{} \\\\")
+ cmds.append("\\multicolumn{6}{|c|}{" + title + "} \\\\")
+ cmds.append("\\multicolumn{6}{|c|}{} \\\\")
+ cmds.append("\\hline")
+
+ cmds.append(
+ " detector & inner radius & outer radius & half length & \multicolumn{2}{c|}{additional parameters} \\\\"
+ )
+ cmds.append(
+ " & & & min z, max z & & \\\\"
+ )
+ cmds.append("\\hline")
for d in dets:
- cmds.extend( getTableLinesCmds( d ) )
+ cmds.extend(getTableLinesCmds(d))
- cmds.append( '\\end{tabular}' )
+ cmds.append("\\end{tabular}")
return cmds
-#-----------------------------------------------
+
+# -----------------------------------------------
def getTableLinesCmds(det):
- cmds=[]
- params = copy.deepcopy( envDict[ det ] )
+ cmds = []
+ params = copy.deepcopy(envDict[det])
- ri = det+'_inner_radius'
- ro = det+'_outer_radius'
- hl = det+'_half_length'
- zs = det+'_min_z'
- ze = det+'_max_z'
+ ri = det + "_inner_radius"
+ ro = det + "_outer_radius"
+ hl = det + "_half_length"
+ zs = det + "_min_z"
+ ze = det + "_max_z"
- line = det + ' & '
+ line = det + " & "
- if( ri in params):
- line += ( ("%.1f"%values[ ri ] ) + ' & ' )
- params.remove( ri )
+ if ri in params:
+ line += ("%.1f" % values[ri]) + " & "
+ params.remove(ri)
else:
- line += ' - & '
+ line += " - & "
- if( ro in params):
- line += ( ("%.1f"% values[ ro ] ) + ' & ' )
- params.remove( ro )
+ if ro in params:
+ line += ("%.1f" % values[ro]) + " & "
+ params.remove(ro)
else:
- line += ' - & '
+ line += " - & "
- if( hl in params):
- line += ( ("%.1f"% values[ hl ] ) + ' & ' )
- params.remove( hl )
+ if hl in params:
+ line += ("%.1f" % values[hl]) + " & "
+ params.remove(hl)
else:
- line += ( ("%.1f"% values[ zs ] ) + ', ' + ("%.1f"% values[ ze ] ) + ' & ' )
- params.remove( zs )
- params.remove( ze )
-
- #--- first extra parameter - if any
- if len( params)>0:
+ line += ("%.1f" % values[zs]) + ", " + ("%.1f" % values[ze]) + " & "
+ params.remove(zs)
+ params.remove(ze)
+
+ # --- first extra parameter - if any
+ if len(params) > 0:
p = params[0]
- line += '\\small{\\verb#'+ p + '#} & ' + ("%.1f"% values[ p ] )
- params.remove( p )
+ line += "\\small{\\verb#" + p + "#} & " + ("%.1f" % values[p])
+ params.remove(p)
else:
- line += ' & '
+ line += " & "
- line += ' \\\\ '
- cmds.append( line )
+ line += " \\\\ "
+ cmds.append(line)
- #--- other extra parameters - if any - need extra line
+ # --- other extra parameters - if any - need extra line
- while( len( params)>0 ):
- line = ' & & & & '
+ while len(params) > 0:
+ line = " & & & & "
p = params[0]
- line += '\\small{\\verb#'+ p + '#} & ' + ("%.1f"% values[ p ] )
- params.remove( p )
- line += ' \\\\ '
- cmds.append( line )
-
- cmds.append( '\\hline' )
+ line += "\\small{\\verb#" + p + "#} & " + ("%.1f" % values[p])
+ params.remove(p)
+ line += " \\\\ "
+ cmds.append(line)
+
+ cmds.append("\\hline")
return cmds
-#-----------------------------------------------
+
+
+# -----------------------------------------------
def getILDRZQuadrantCmds(det, width):
-
cmds = []
- cmds.extend( getColorCmds() )
+ cmds.extend(getColorCmds())
+
+ cmds.append("\\begin{tikzpicture}")
- cmds.append( '\\begin{tikzpicture}' )
-
scale = 0.01
- #---------------------------------------------------
-
-
- cmds.append( lineOStr('[fill=VXDcol]', getEnvPoints('VXD',scale) ) )
- cmds.append( lineOStr('[fill=SITcol]', getEnvPoints('SIT',scale) ) )
- cmds.append( lineOStr('[fill=FTDcol]', getEnvPoints('FTD',scale) ) )
- cmds.append( lineOStr('[fill=TPCcol]', getEnvPoints('TPC',scale) ) )
- cmds.append( lineOStr('[fill=ECALcol]', getEnvPoints('Ecal',scale) ) )
- cmds.append( lineOStr('[fill=ECALcol]', getEnvPoints('EcalEndcap',scale) ) )
- cmds.append( lineOStr('[fill=ECALcol]', getEnvPoints('EcalEndcapRing',scale) ) )
- cmds.append( lineOStr('[fill=HCALcol]', getEnvPoints('Hcal',scale) ) )
- cmds.append( lineOStr('[fill=HCALcol]', getEnvPoints('HcalEndcap',scale) ) )
- cmds.append( lineOStr('[fill=HCALcol]', getEnvPoints('HcalEndcapRing',scale) ) )
- cmds.append( lineOStr('[fill=YOKEcol]', getEnvPoints('Yoke',scale) ) )
- cmds.append( lineOStr('[fill=YOKEcol]', getEnvPoints('YokeEndcap',scale) ) )
- cmds.append( lineOStr('[fill=YOKEcol]', getEnvPoints('YokeEndcapPlug',scale) ) )
- cmds.append( lineOStr('[fill=COILcol]', getEnvPoints('Coil',scale) ) )
- cmds.append( lineOStr('[fill=SITcol]', getEnvPoints('BeamCal',scale) ) )
- cmds.append( lineOStr('[fill=SITcol]', getEnvPoints('LumiCal',scale) ) )
- cmds.append( lineOStr('[fill=SITcol]', getEnvPoints('LHCal',scale) ) )
-
-
- cmds.append( '\\end{tikzpicture}' )
+ # ---------------------------------------------------
+
+ cmds.append(lineOStr("[fill=VXDcol]", getEnvPoints("VXD", scale)))
+ cmds.append(lineOStr("[fill=SITcol]", getEnvPoints("SIT", scale)))
+ cmds.append(lineOStr("[fill=FTDcol]", getEnvPoints("FTD", scale)))
+ cmds.append(lineOStr("[fill=TPCcol]", getEnvPoints("TPC", scale)))
+ cmds.append(lineOStr("[fill=ECALcol]", getEnvPoints("Ecal", scale)))
+ cmds.append(lineOStr("[fill=ECALcol]", getEnvPoints("EcalEndcap", scale)))
+ cmds.append(lineOStr("[fill=ECALcol]", getEnvPoints("EcalEndcapRing", scale)))
+ cmds.append(lineOStr("[fill=HCALcol]", getEnvPoints("Hcal", scale)))
+ cmds.append(lineOStr("[fill=HCALcol]", getEnvPoints("HcalEndcap", scale)))
+ cmds.append(lineOStr("[fill=HCALcol]", getEnvPoints("HcalEndcapRing", scale)))
+ cmds.append(lineOStr("[fill=YOKEcol]", getEnvPoints("Yoke", scale)))
+ cmds.append(lineOStr("[fill=YOKEcol]", getEnvPoints("YokeEndcap", scale)))
+ cmds.append(lineOStr("[fill=YOKEcol]", getEnvPoints("YokeEndcapPlug", scale)))
+ cmds.append(lineOStr("[fill=COILcol]", getEnvPoints("Coil", scale)))
+ cmds.append(lineOStr("[fill=SITcol]", getEnvPoints("BeamCal", scale)))
+ cmds.append(lineOStr("[fill=SITcol]", getEnvPoints("LumiCal", scale)))
+ cmds.append(lineOStr("[fill=SITcol]", getEnvPoints("LHCal", scale)))
+
+ cmds.append("\\end{tikzpicture}")
return cmds
-#-----------------------------------------------
-def getEnvPoints(det,scale):
+
+# -----------------------------------------------
+def getEnvPoints(det, scale):
points = []
env = envRZDict[det]
for ep in env:
- p = (scale * values[ ep[0] ], scale * values[ ep[1] ] )
- print det, ' point: ' , p
- points.append( p )
+ p = (scale * values[ep[0]], scale * values[ep[1]])
+ print(det, " point: ", p)
+ points.append(p)
return points
-#-----------------------------------------------
-def writeTexFile( det, fileExt, method, width ):
- fn = './figs/' + det + fileExt + '.tex'
+# -----------------------------------------------
+def writeTexFile(det, fileExt, method, width):
+ fn = "./figs/" + det + fileExt + ".tex"
- of = open( fn , 'w' )
+ of = open(fn, "w")
cmds = []
- cmds.extend( getDocHeaderCmds( 'standalone', ['tikz','graphicx'] ) )
+ cmds.extend(getDocHeaderCmds("standalone", ["tikz", "graphicx"]))
- cmds.extend( method( det , width ) )
+ cmds.extend(method(det, width))
- cmds.extend( getDocFooterCmds() )
+ cmds.extend(getDocFooterCmds())
for cmd in cmds:
- print >>of, cmd
+ print(cmd, file=of)
of.close()
-#-----------------------------------------------
-def lineStr( tl, opt="" ):
-
+# -----------------------------------------------
+def lineStr(tl, opt=""):
o = cStringIO.StringIO()
-
- print >>o, '\draw ', opt,
-
- i=0
+
+ print("\draw ", opt, file=o)
+
+ i = 0
for t in tl:
- if( i>0 ):
- print >>o, ' -- ',
- print >>o, '(', t[0] ,',', t[1],') ',
+ if i > 0:
+ print(" -- ", file=of)
+ print("(", t[0], ",", t[1], ") ", file=o)
i += 1
- print >>o,';'
+ print(";", file=o)
str = o.getvalue()
o.close()
return str
-#-----------------------------------------------
-def lineOStr( opt, tl ):
- return lineStr( tl, opt )
-#-----------------------------------------------
+# -----------------------------------------------
+
-def getDocHeaderCmds( docClass , packages):
+def lineOStr(opt, tl):
+ return lineStr(tl, opt)
+
+
+# -----------------------------------------------
+
+
+def getDocHeaderCmds(docClass, packages):
cmds = []
-
- cmds.append( '\\documentclass[a4]{'+ docClass+'}' )
- if( docClass == 'standalone'):
- cmds.append( '\\standaloneconfig{border=20pt}' )
+
+ cmds.append("\\documentclass[a4]{" + docClass + "}")
+ if docClass == "standalone":
+ cmds.append("\\standaloneconfig{border=20pt}")
for p in packages:
- cmds.append( '\\usepackage{'+p+'}' )
+ cmds.append("\\usepackage{" + p + "}")
- cmds.append( '\\usepackage[a4paper,top=3cm, bottom=2.5cm, left=1cm, right=2cm ]{geometry}' )
+ cmds.append(
+ "\\usepackage[a4paper,top=3cm, bottom=2.5cm, left=1cm, right=2cm ]{geometry}"
+ )
- cmds.append( '\\begin{document}' )
+ cmds.append("\\begin{document}")
return cmds
-#-----------------------------------------------
+
+
+# -----------------------------------------------
def getColorCmds():
cmds = []
- cmds.append( '\\definecolor{VXDcol}{RGB}{255,255,255}')
- cmds.append( '\\definecolor{SITcol}{RGB}{221,221,221}')
- cmds.append( '\\definecolor{SETcol}{RGB}{221,221,221}')
- cmds.append( '\\definecolor{TPCcol}{RGB}{245,243,0}')
- cmds.append( '\\definecolor{ECALcol}{RGB}{123,243,0}')
- cmds.append( '\\definecolor{HCALcol}{RGB}{196,194,49}')
- cmds.append( '\\definecolor{YOKEcol}{RGB}{24,194,196}')
- cmds.append( '\\definecolor{COILcol}{RGB}{73,73,221}')
- cmds.append( '\\definecolor{FTDcol}{RGB}{101,28,147}')
- cmds.append( '\\definecolor{FCALcol}{RGB}{171,170,171}')
+ cmds.append("\\definecolor{VXDcol}{RGB}{255,255,255}")
+ cmds.append("\\definecolor{SITcol}{RGB}{221,221,221}")
+ cmds.append("\\definecolor{SETcol}{RGB}{221,221,221}")
+ cmds.append("\\definecolor{TPCcol}{RGB}{245,243,0}")
+ cmds.append("\\definecolor{ECALcol}{RGB}{123,243,0}")
+ cmds.append("\\definecolor{HCALcol}{RGB}{196,194,49}")
+ cmds.append("\\definecolor{YOKEcol}{RGB}{24,194,196}")
+ cmds.append("\\definecolor{COILcol}{RGB}{73,73,221}")
+ cmds.append("\\definecolor{FTDcol}{RGB}{101,28,147}")
+ cmds.append("\\definecolor{FCALcol}{RGB}{171,170,171}")
return cmds
+
def getDocFooterCmds():
cmds = []
- cmds.append( '\\end{document}' )
+ cmds.append("\\end{document}")
return cmds
-#-----------------------------------------------
-def fixstr( aStr ):
+
+
+# -----------------------------------------------
+def fixstr(aStr):
l = len(aStr)
- s = ''
- for i in range(0,l+2):
- s = s + ' '
+ s = ""
+ for i in range(0, l + 2):
+ s = s + " "
s = s + aStr
return s
-#-----------------------------------------------
-def getRZEnvCmds( det, width ):
+# -----------------------------------------------
+
+def getRZEnvCmds(det, width):
cmds = []
- envPoints = envRZDict[ det ]
+ envPoints = envRZDict[det]
vals = values
-
- cmds.append( '\\begin{tikzpicture}' )
+ cmds.append("\\begin{tikzpicture}")
xmaxOrg = -1e99
# ---- compute the scale such that ymax == width
for ep in envPoints:
- if( vals[ ep[0] ] > xmaxOrg):
- xmaxOrg = vals[ ep[0] ]
+ if vals[ep[0]] > xmaxOrg:
+ xmaxOrg = vals[ep[0]]
scale = width / xmaxOrg
- #---------------------------------------------------
+ # ---------------------------------------------------
points = []
- xvals = []
- yvals = []
- xmax,ymax= -1.e99, -1e99
+ xvals = []
+ yvals = []
+ xmax, ymax = -1.0e99, -1e99
for ep in envPoints:
+ p = (scale * vals[ep[0]], scale * vals[ep[1]])
+ points.append(p)
- p = (scale * vals[ ep[0] ], scale * vals[ ep[1] ] )
- points.append( p )
-
- x,y = p
- if( x> xmax ):
+ x, y = p
+ if x > xmax:
xmax = x
- if( y> ymax ):
+ if y > ymax:
ymax = y
if ep[0] not in xvals:
- xvals.append( ep[0] )
- p0 = ( scale * vals[ ep[0] ], 0 )
- cmds.append( lineOStr('[dashed]', [ p , p0 ] ) )
- cmds.append( '\\node [rotate=-90] at (' + str( p0[0] ) +','+ str( p0[1] )
- + ') {{\\verb#' + fixstr( ep[0] ) + '#}};' )
+ xvals.append(ep[0])
+ p0 = (scale * vals[ep[0]], 0)
+ cmds.append(lineOStr("[dashed]", [p, p0]))
+ cmds.append(
+ "\\node [rotate=-90] at ("
+ + str(p0[0])
+ + ","
+ + str(p0[1])
+ + ") {{\\verb#"
+ + fixstr(ep[0])
+ + "#}};"
+ )
if ep[1] not in yvals:
- yvals.append( ep[1] )
- p1 = ( 0, scale * vals[ ep[1] ] )
- cmds.append( lineOStr('[dashed]', [ p , p1 ] ) )
- cmds.append( '\\node [left] at (' + str(p1[0]) +','+str( p1[1] ) + ') {{\\verb#'
- + str( ep[1] ) + '#}};' )
-
- cmds.append( lineOStr('[ultra thick]', points ) )
-
- cmds.append( lineOStr('[<->,thick]' , ( (0 , 1.25 * ymax ), (0,0), (1.25 * xmax ,0) ) ) )
+ yvals.append(ep[1])
+ p1 = (0, scale * vals[ep[1]])
+ cmds.append(lineOStr("[dashed]", [p, p1]))
+ cmds.append(
+ "\\node [left] at ("
+ + str(p1[0])
+ + ","
+ + str(p1[1])
+ + ") {{\\verb#"
+ + str(ep[1])
+ + "#}};"
+ )
+ cmds.append(lineOStr("[ultra thick]", points))
- cmds.append( '\\end{tikzpicture}' )
+ cmds.append(lineOStr("[<->,thick]", ((0, 1.25 * ymax), (0, 0), (1.25 * xmax, 0))))
+ cmds.append("\\end{tikzpicture}")
return cmds
-#-----------------------------------------------
+# -----------------------------------------------
-#-----------------------------------------------
+# -----------------------------------------------
if __name__ == "__main__":
- run()
-#-----------------------------------------------
+ run()
+# -----------------------------------------------
diff --git a/ILD/doc/latex/extractParameters.py b/ILD/doc/latex/extractParameters.py
index 2011dca8c..bb9d29d70 100644
--- a/ILD/doc/latex/extractParameters.py
+++ b/ILD/doc/latex/extractParameters.py
@@ -10,102 +10,97 @@
@version 1.0
"""
-#-----------------------------------------------
+# -----------------------------------------------
-#------------------------------------------------
+# ------------------------------------------------
# read the compact xml file from the command line
#
try:
- compactFile = sys.argv[1]
- paramFile = sys.argv[2]
- dictFile = sys.argv[3]
+ compactFile = sys.argv[1]
+ paramFile = sys.argv[2]
+ dictFile = sys.argv[3]
except IndexError:
- print " usage: python extractParameters.py compact.xml param_names.txt pyDict.py"
- print
- sys.exit(1)
+ print(" usage: python extractParameters.py compact.xml param_names.txt pyDict.py")
+ print()
+ sys.exit(1)
-#-----------------------------------------------
+# -----------------------------------------------
import os, time, DDG4
from DDG4 import OutputLevel as Output
from SystemOfUnits import *
-#-----------------------------------------------
+# -----------------------------------------------
+
def run():
+ kernel = DDG4.Kernel()
- kernel = DDG4.Kernel()
+ try:
+ install_dir = os.environ["DD4hepINSTALL"]
- try:
- install_dir = os.environ['DD4hepINSTALL']
+ except KeyError:
+ print(" please set the environment variable DD4hepINSTALL ")
+ print(" to your DD4hep installation path ! ")
+ exit(1)
- except (KeyError):
- print " please set the environment variable DD4hepINSTALL "
- print " to your DD4hep installation path ! "
- exit(1)
+ kernel.loadGeometry("file:" + compactFile)
+ lcdd = kernel.detectorDescription()
+ DDG4.importConstants(lcdd)
- kernel.loadGeometry("file:"+ compactFile )
- lcdd = kernel.detectorDescription()
- DDG4.importConstants( lcdd )
+ # --------
- #--------
+ inf = open(paramFile, "r")
+ outf = open(dictFile, "w")
- inf = open( paramFile , 'r' )
- outf = open( dictFile , 'w' )
+ names = readNames(inf)
- names = readNames( inf )
-
- writeDictionary( names, outf )
-
- inf.close()
- outf.close()
+ writeDictionary(names, outf)
+ inf.close()
+ outf.close()
-#-----------------------------------------------
-def readNames( inf ):
-
- """
- read ascii file with parameter names
- """
- names = []
-
- for line in inf:
- cols = line.split()
- for n in cols:
- names.append( n )
-
- return names
-#-----------------------------------------------
+# -----------------------------------------------
-def writeDictionary( names, of ):
-
- of.write( '""" \n' )
- of.write( ' python dictionary with parameters extracted from: ' + compactFile + '\n' )
- of.write( '""" '+ '\n')
- of.write( 'values={}'+ '\n')
-
- for n in names:
- of.write( 'values["'+n+'"] = ' + str( getattr( DDG4, n ) ) + '\n')
-
-#-----------------------------------------------
+def readNames(inf):
+ """
+ read ascii file with parameter names
+ """
+ names = []
+ for line in inf:
+ cols = line.split()
+ for n in cols:
+ names.append(n)
-def printEnvelopeParameters( det ):
-
- print " ========== ", det , " ================== "
- for p in dict[ det ]:
- print " ", p , getattr( DDG4, p )
+ return names
-#-----------------------------------------------
+# -----------------------------------------------
-if __name__ == "__main__":
- run()
+def writeDictionary(names, of):
+ of.write('""" \n')
+ of.write(" python dictionary with parameters extracted from: " + compactFile + "\n")
+ of.write('""" ' + "\n")
+ of.write("values={}" + "\n")
+
+ for n in names:
+ of.write('values["' + n + '"] = ' + str(getattr(DDG4, n)) + "\n")
+
+# -----------------------------------------------
-
+def printEnvelopeParameters(det):
+ print(" ========== ", det, " ================== ")
+ for p in dict[det]:
+ print(" ", p, getattr(DDG4, p))
+
+# -----------------------------------------------
+
+if __name__ == "__main__":
+ run()
diff --git a/ILD/scripts/dumpModelParameters.py b/ILD/scripts/dumpModelParameters.py
index a3ed3f64c..e7bc6d8c3 100644
--- a/ILD/scripts/dumpModelParameters.py
+++ b/ILD/scripts/dumpModelParameters.py
@@ -3,86 +3,90 @@
import sys
import time
-#--- Mokka DB parameters ---------------
-host="pollin1.in2p3.fr" # your host, usually localhost
-user="consult" # your username
-passwd="consult" # your password
-dbName="models03" # name of the data base
-#---------------------------------------
-
-if len( sys.argv ) != 2:
- print " usage: python dumpModelParameters.py MODEL_NAME "
+# --- Mokka DB parameters ---------------
+host = "pollin1.in2p3.fr" # your host, usually localhost
+user = "consult" # your username
+passwd = "consult" # your password
+dbName = "models03" # name of the data base
+# ---------------------------------------
+
+if len(sys.argv) != 2:
+ print(" usage: python dumpModelParameters.py MODEL_NAME ")
sys.exit(0)
-model = sys.argv[1]
+model = sys.argv[1]
-#model="ILD_o1_v05"
+# model="ILD_o1_v05"
-#-----------------------------------------------------------------------
-db = MySQLdb.connect(host, user, passwd, dbName )
-#-----------------------------------------------------------------------
+# -----------------------------------------------------------------------
+db = MySQLdb.connect(host, user, passwd, dbName)
+# -----------------------------------------------------------------------
-outfile = "model_parameters_"+model+".xml"
+outfile = "model_parameters_" + model + ".xml"
-file = open( outfile , 'w' )
+file = open(outfile, "w")
-#-----------------------------------------------------------------------
+# -----------------------------------------------------------------------
# create a Cursor object
cur = db.cursor()
-#--- param dict:
-params = {}
+# --- param dict:
+params = {}
-#----- select all global parameters
+# ----- select all global parameters
cur.execute("select * from parameters ;")
-#--- overwrite values in the dict:
-for row in cur.fetchall() :
- params[ row[0] ] = row[2]
+# --- overwrite values in the dict:
+for row in cur.fetchall():
+ params[row[0]] = row[2]
-# --- now select all sharing parameters for the model
-cur.execute("select sub_detector.driver, sharing.parameter, sharing.driver_default_value from ingredients,sub_detector,sharing where (ingredients.model=\""+model+"\" and ingredients.sub_detector=sub_detector.name and sharing.driver=sub_detector.driver) ;")
-#cur.execute("select sub_detector.driver, sharing.parameter, sharing.driver_default_value from ingredients,sub_detector,sharing where (ingredients.model=\""+model+"\" and ingredients.sub_detector=sub_detector.name and sharing.driver=sub_detector.driver and sharing.driver_default_value IS NOT NULL) ;")
-
+# --- now select all sharing parameters for the model
+cur.execute(
+ 'select sub_detector.driver, sharing.parameter, sharing.driver_default_value from ingredients,sub_detector,sharing where (ingredients.model="'
+ + model
+ + '" and ingredients.sub_detector=sub_detector.name and sharing.driver=sub_detector.driver) ;'
+)
+# cur.execute("select sub_detector.driver, sharing.parameter, sharing.driver_default_value from ingredients,sub_detector,sharing where (ingredients.model=\""+model+"\" and ingredients.sub_detector=sub_detector.name and sharing.driver=sub_detector.driver and sharing.driver_default_value IS NOT NULL) ;")
# --- safe params in dict
-for row in cur.fetchall() :
- #print row[1], " " , row[2]
- params[ row[1] ] = row[2]
-
+for row in cur.fetchall():
+ # print row[1], " " , row[2]
+ params[row[1]] = row[2]
-#----- now select all model specific parameters
-cur.execute("select * from model_parameters where model=\""+model+"\" ;")
+# ----- now select all model specific parameters
+cur.execute('select * from model_parameters where model="' + model + '" ;')
-#--- overwrite values in the dict:
-for row in cur.fetchall() :
- #print row[1], " " , row[2]
- params[ row[1] ] = row[2]
+# --- overwrite values in the dict:
+for row in cur.fetchall():
+ # print row[1], " " , row[2]
+ params[row[1]] = row[2]
-#dump params to xml file
-print >>file, ""
+print("", file=file)
-for k in sorted( params ):
- v = params[ k ]
- if v:
- print >>file, ""
- else:
- cur.execute("select name, default_value from parameters where name=\"" + k + "\";")
- for row in cur.fetchall() :
- v = row[1]
- print >>file, ""
+for k in sorted(params):
+ v = params[k]
+ if v:
+ print('', file=file)
+ else:
+ cur.execute(
+ 'select name, default_value from parameters where name="' + k + '";'
+ )
+ for row in cur.fetchall():
+ v = row[1]
+ print('', file=file)