Skip to content
Snippets Groups Projects
Commit 2e78324e authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

Merge branch 'master' of github.com:cepc/CEPCSW

parents 5cba78fa 34109aeb
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,7 @@ gaudi_add_module(DetCRD ...@@ -21,6 +21,7 @@ gaudi_add_module(DetCRD
src/Calorimeter/RotatedCrystalCalorimeter_v01_geo.cpp src/Calorimeter/RotatedCrystalCalorimeter_v01_geo.cpp
src/Other/CRDBeamPipe_v01_geo.cpp src/Other/CRDBeamPipe_v01_geo.cpp
src/Tracker/SiTrackerSkewRing_v01_geo.cpp src/Tracker/SiTrackerSkewRing_v01_geo.cpp
src/Tracker/SiTrackerStaggeredLadder_v01_geo.cpp
LINK ${DD4hep_COMPONENT_LIBRARIES} LINK ${DD4hep_COMPONENT_LIBRARIES}
) )
......
<lccdd>
<info name="VXD_StaggeredLadder_v01_01"
title="CepC VXD with staggered ladders"
author="H.Zeng, "
url="http://cepc.ihep.ac.cn"
status="developing"
version="v01">
<comment>CepC vertex detector based on MOST2 project </comment>
</info>
<define>
<constant name="VXD_inner_radius" value="Vertex_inner_radius"/>
<constant name="VXD_outer_radius" value="Vertex_outer_radius"/>
<constant name="VXD_half_length" value="Vertex_half_length"/>
<constant name="VXDLayer1_half_length" value="90*mm" />
<constant name="VXDLayer2_half_length" value="90*mm" />
<constant name="VXDLayer3_half_length" value="90*mm" />
<constant name="VXD_sensor_length" value="30*mm" />
</define>
<detectors>
<detector id="DetID_VXD" name="VXD" type="SiTrackerStaggeredLadder_v01" vis="VXDVis" readout="VXDCollection" insideTrackingVolume="true">
<envelope>
<shape type="Tube" rmin="VXD_inner_radius" rmax="VXD_outer_radius" dz="VXD_half_length" material="Air"/>
</envelope>
<type_flags type="DetType_TRACKER + DetType_BARREL + DetType_PIXEL "/>
<global sensitive_thickness="VXD_sensitive_thickness" support_thickness="VXD_support_thickness" sensor_length="VXD_sensor_length"
sensitive_mat="G4_Si" support_mat="G4_C" sensitive_threshold_KeV="64*keV" />
<display ladder="SeeThrough" support="VXDSupportVis" flex="VXDFlexVis" sens_env="SeeThrough" sens="GrayVis" deadsensor="GreenVis" deadwire="RedVis"/>
<layer layer_id="0" ladder_radius="17.4*mm" ladder_offset="(8.4-1.5)*mm" n_sensors_per_side="VXDLayer1_half_length*2/VXD_sensor_length"
n_ladders="10" >
<ladder isDoubleSided="true">
<ladderSupport height="2*mm" length="200*mm" thickness="350*um" width="16.8*mm" mat="CarbonFiber"/>
<flex n_slices="3">
<slice length="200*mm" thickness="60*um" width="16.8*mm" mat="Epoxy"/>
<slice length="200*mm" thickness="74*um" width="16.8*mm" mat="Kapton"/>
<slice length="200*mm" thickness="26.8*um" width="16.8*mm" mat="G4_Al"/>
</flex>
<sensor n_sensors="7" gap="0.1*mm" thickness="50*um" active_length="25.6*mm" active_width="12.8*mm" dead_width="2*mm" sensor_mat="G4_Si"
deadwire_length="(7*(25.6+0.1)-0.1)*mm" deadwire_width="2*mm" deadwire_thickness="(50/10)*um" deadwire_mat="G4_Al"/>
</ladder>
</layer>
<layer layer_id="1" ladder_radius="36.9*mm" ladder_offset="(8.4+5.0)*mm" n_sensors_per_side="VXDLayer2_half_length*2/VXD_sensor_length"
n_ladders="22" >
<ladder isDoubleSided="true">
<ladderSupport height="2*mm" length="200*mm" thickness="350*um" width="16.8*mm" mat="CarbonFiber"/>
<flex n_slices="3">
<slice length="200*mm" thickness="60*um" width="16.8*mm" mat="Epoxy"/>
<slice length="200*mm" thickness="74*um" width="16.8*mm" mat="Kapton"/>
<slice length="200*mm" thickness="26.8*um" width="16.8*mm" mat="G4_Al"/>
<!-- <slice length="200*mm" thickness="15*um" width="16.8*mm" mat="Epoxy"/> -->
<!-- <slice length="200*mm" thickness="12*um" width="16.8*mm" mat="Kapton"/> -->
<!-- <slice length="200*mm" thickness="15*um" width="16.8*mm" mat="Epoxy"/> -->
<!-- <slice length="200*mm" thickness="13.4*um" width="16.8*mm" mat="G4_Al"/> -->
<!-- <slice length="200*mm" thickness="50*um" width="16.8*mm" mat="Kapton"/> -->
<!-- <slice length="200*mm" thickness="13.4*um" width="16.8*mm" mat="G4_Al"/> -->
<!-- <slice length="200*mm" thickness="15*um" width="16.8*mm" mat="Epoxy"/> -->
<!-- <slice length="200*mm" thickness="12*um" width="16.8*mm" mat="Kapton"/> -->
<!-- <slice length="200*mm" thickness="15*um" width="14.8*mm" mat="Epoxy"/> -->
</flex>
<sensor n_sensors="7" gap="0.1*mm" thickness="50*um" active_length="25.6*mm" active_width="12.8*mm" dead_width="2*mm" sensor_mat="G4_Si"
deadwire_length="(7*(25.6+0.1)-0.1)*mm" deadwire_width="2*mm" deadwire_thickness="(50/10)*um" deadwire_mat="G4_Al"/>
</ladder>
</layer>
<layer layer_id="2" ladder_radius="57.7*mm" ladder_offset="(8.4+9.6)*mm" n_sensors_per_side="VXDLayer3_half_length*2/VXD_sensor_length"
n_ladders="32" >
<ladder isDoubleSided="true">
<ladderSupport height="2*mm" length="200*mm" thickness="350*um" width="16.8*mm" mat="CarbonFiber"/>
<flex n_slices="3">
<slice length="200*mm" thickness="60*um" width="16.8*mm" mat="Epoxy"/>
<slice length="200*mm" thickness="74*um" width="16.8*mm" mat="Kapton"/>
<slice length="200*mm" thickness="26.8*um" width="16.8*mm" mat="G4_Al"/>
<!-- <slice length="200*mm" thickness="15*um" width="16.8*mm" mat="Epoxy"/>
<slice length="200*mm" thickness="12*um" width="16.8*mm" mat="Kapton"/>
<slice length="200*mm" thickness="15*um" width="16.8*mm" mat="Epoxy"/>
<slice length="200*mm" thickness="13.4*um" width="16.8*mm" mat="G4_Al"/>
<slice length="200*mm" thickness="50*um" width="16.8*mm" mat="Kapton"/>
<slice length="200*mm" thickness="13.4*um" width="16.8*mm" mat="G4_Al"/>
<slice length="200*mm" thickness="15*um" width="16.8*mm" mat="Epoxy"/>
<slice length="200*mm" thickness="12*um" width="16.8*mm" mat="Kapton"/>
<slice length="200*mm" thickness="15*um" width="14.8*mm" mat="Epoxy"/> -->
</flex>
<sensor n_sensors="7" gap="0.1*mm" thickness="50*um" active_length="25.6*mm" active_width="12.8*mm" dead_width="2*mm" sensor_mat="G4_Si"
deadwire_length="(7*(25.6+0.1)-0.1)*mm" deadwire_width="2*mm" deadwire_thickness="(50/10)*um" deadwire_mat="G4_Al"/>
</ladder>
</layer>
</detector>
</detectors>
<readouts>
<readout name="VXDCollection">
<id>system:5,side:-2,layer:9,module:8,sensor:8,barrelside:-2</id>
</readout>
</readouts>
</lccdd>
<?xml version="1.0" encoding="UTF-8"?>
<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
<info name="CRD_o1_v02"
title="CepC reference detctor with coil inside Hcal, pixel SIT and strip SET"
author="Hao Zeng"
url="http://cepc.ihep.ac.cn"
status="developing"
version="v01">
<comment>CepC reference detector simulation models used for detector study </comment>
</info>
<includes>
<gdmlFile ref="${DD4hepINSTALL}/DDDetectors/compact/elements.xml"/>
<gdmlFile ref="../CRD_common_v01/materials.xml"/>
<gdmlFile ref="../materials.xml"/>
</includes>
<define>
<constant name="world_size" value="25*m"/>
<constant name="world_x" value="world_size"/>
<constant name="world_y" value="world_size"/>
<constant name="world_z" value="world_size"/>
<include ref="${DD4hepINSTALL}/DDDetectors/compact/detector_types.xml"/>
</define>
<include ref="../CRD_o1_v02/CRD_Dimensions_v01_02.xml"/>
<include ref="../CRD_common_v01/VXD_StaggeredLadder_v01_01.xml"/>
<fields>
<field name="InnerSolenoid" type="solenoid"
inner_field="Field_nominal_value"
outer_field="0"
zmax="SolenoidCoil_half_length"
inner_radius="SolenoidCoil_center_radius"
outer_radius="Solenoid_outer_radius">
</field>
<field name="OuterSolenoid" type="solenoid"
inner_field="0"
outer_field="Field_outer_nominal_value"
zmax="SolenoidCoil_half_length"
inner_radius="Solenoid_outer_radius"
outer_radius="Yoke_barrel_inner_radius">
</field>
</fields>
</lccdd>
#!/usr/bin/env python
from Gaudi.Configuration import *
from Configurables import k4DataSvc
dsvc = k4DataSvc("EventDataSvc")
from Configurables import RndmGenSvc, HepRndm__Engine_CLHEP__RanluxEngine_
seed = [10]
# rndmengine = HepRndm__Engine_CLHEP__RanluxEngine_() # The default engine in Gaudi
rndmengine = HepRndm__Engine_CLHEP__HepJamesRandom_("RndmGenSvc.Engine") # The default engine in Geant4
rndmengine.SetSingleton = True
rndmengine.Seeds = seed
rndmgensvc = RndmGenSvc("RndmGenSvc")
rndmgensvc.Engine = rndmengine.name()
#geometry_option = "CRD_o1_v01/CRD_o1_v01.xml"
geometry_option = "CRD_o1_v03/CRD_o1_v03-onlyVXD.xml"
#...
if not os.getenv("DETCRDROOT"):
print("Can't find the geometry. Please setup envvar DETCRDROOT." )
sys.exit(-1)
geometry_path = os.path.join(os.getenv("DETCRDROOT"), "compact", geometry_option)
if not os.path.exists(geometry_path):
print("Can't find the compact geometry file: %s"%geometry_path)
sys.exit(-1)
from Configurables import GeomSvc
geosvc = GeomSvc("GeomSvc")
geosvc.compact = geometry_path
##############################################################################
# Physics Generator
##############################################################################
from Configurables import GenAlgo
from Configurables import GtGunTool
from Configurables import StdHepRdr
from Configurables import SLCIORdr
from Configurables import HepMCRdr
from Configurables import GenPrinter
gun = GtGunTool("GtGunTool")
gun.Particles = ["mu-"]
#gun.Particles = ["nu_e"]
#gun.PositionXs = [0]
#gun.PositionYs = [0]
#gun.PositionZs = [0]
gun.EnergyMins = [100.] # GeV
gun.EnergyMaxs = [100.] # GeV
gun.ThetaMins = [0] # deg
gun.ThetaMaxs = [180] # deg
gun.PhiMins = [0] # deg
gun.PhiMaxs = [360] # deg
# stdheprdr = StdHepRdr("StdHepRdr")
# stdheprdr.Input = "/cefs/data/stdhep/CEPC250/2fermions/E250.Pbhabha.e0.p0.whizard195/bhabha.e0.p0.00001.stdhep"
# lciordr = SLCIORdr("SLCIORdr")
# lciordr.Input = "/cefs/data/stdhep/lcio250/signal/Higgs/E250.Pbbh.whizard195/E250.Pbbh_X.e0.p0.whizard195/Pbbh_X.e0.p0.00001.slcio"
# hepmcrdr = HepMCRdr("HepMCRdr")
# hepmcrdr.Input = "example_UsingIterators.txt"
genprinter = GenPrinter("GenPrinter")
genalg = GenAlgo("GenAlgo")
genalg.GenTools = ["GtGunTool"]
#genalg.GenTools = ["StdHepRdr"]
# genalg.GenTools = ["StdHepRdr", "GenPrinter"]
# genalg.GenTools = ["SLCIORdr", "GenPrinter"]
# genalg.GenTools = ["HepMCRdr", "GenPrinter"]
##############################################################################
# Detector Simulation
##############################################################################
from Configurables import DetSimSvc
detsimsvc = DetSimSvc("DetSimSvc")
from Configurables import DetSimAlg
detsimalg = DetSimAlg("DetSimAlg")
detsimalg.RandomSeeds = seed
# detsimalg.VisMacs = ["vis.mac"]
detsimalg.RunCmds = [
# "/tracking/verbose 1",
]
detsimalg.AnaElems = [
# example_anatool.name()
# "ExampleAnaElemTool",
"Edm4hepWriterAnaElemTool"
]
detsimalg.RootDetElem = "WorldDetElemTool"
# output
from Configurables import PodioOutput
out = PodioOutput("outputalg")
out.filename = "CRD-skewVXD-Sim-100.root"
out.outputCommands = ["keep *"]
# ApplicationMgr
from Configurables import ApplicationMgr
ApplicationMgr(
TopAlg = [genalg, detsimalg, out],
EvtSel = 'NONE',
EvtMax = 500,
ExtSvc = [rndmengine, rndmgensvc, dsvc, geosvc],
OutputLevel=INFO
)
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment