Page tree


We simulate the world.




Table of Contents




ILD models validation check list


  • Validation of ILD_l5_v02 and ILD_s5_v02:
    • high level place holder agreement, envelope in DD4hep ILD models.
    • detector dimensions, sensitive segmentation, materials, service and gaps, step_length, cellID,
    • ... ...




Envelope

List of envelope parameters


This is the list of Envelope parameters and values (unit:mm) which are used in DD4hep/lcgeo ILD_l5_v02 model.

List of envelope parameters for ILD_l5_v02

detector

inner radius

outer radius

half length
min z, max z

additional parameters

VXD

15.0

101.0

177.6

VXD_cone_min_z
VXD_cone_max_z
VXD_inner_radius_1

80.0
150.0
25.1

FTD

37.0

309.0

2350.0

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

152.8
299.7
177.7
368.2
644.2
230.0
192.0

SIT

152.9

324.6

644.1

SIT_outer_radius_1
SIT_half_length_1

299.8
368.1

TPC

329.0

1769.8

2350.0



SET

1769.9

1804.3

2350.0



Ecal

1804.8

2028.0

2350.0

Ecal_Hcal_symmetry
Ecal_symmetry

8
8

EcalEndcap

400.0

2095.84

2411.8, 2635.0

EcalEndcap_symmetry

8

EcalEndcapRing

250.0

390.0

2411.8,  2635.0



Hcal

2058.0

3395.5

2350.0

Hcal_inner_symmetry

8

HcalEndcap

350.0

3225.5

2650.0, 3937.0



HcalEndcapRing

2145.84

2980.0

2411.8, 2635.0

HcalEndcapRing_symmetry

8

Coil

3425.0

4175.0

3872.0



Yoke

4475.0

7776.0

4047.0

Yoke_symmetry

12

YokeEndcap

300.0

7776.0

4072.0, 7373.0

YokeEndcap_symmetry

12

YokeEndcapPlug

300.0

3395.54

3937.2, 4072.0

YokeEndcapPlug_symmetry

12

BeamCal

17.8

140.0

3115.0, 3315.0

BeamCal_thickness

200.0

LHCal

130.0

315.0

2680.0, 3160.0

LHCal_thickness

480.0

LumiCal

80.0

202.1

2411.8, 2540.5

LumiCal_thickness

128.7




This is the list of Envelope parameters and values (unit:mm) which are used in DD4hep/lcgeo ILD_s5_v02 model.

List of envelope parameters for ILD_s5_v02

detector

inner radius

outer radius

half length
min z, max z

additional parameters

VXD

15.0

101.0

177.6

VXD_cone_min_z
VXD_cone_max_z
VXD_inner_radius_1

80.0
150.0
25.1

FTD

37.0

309.0

2350.0

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

152.8
299.7
177.7
368.2
644.2
230.0
192.0

SIT

152.9

324.61

644.1

SIT_outer_radius_1
SIT_half_length_1

299.8
368.1

TPC

329.0

1426.8

2350.0



SET

1426.9

1461.3

2350.0



Ecal

1461.8

1685.0

2350.0

Ecal_Hcal_symmetry
Ecal_symmetry

8
8

EcalEndcap

400.0

1717.92

2411.8, 2635.0

EcalEndcap_symmetry

8

EcalEndcapRing

250.0

390.0

2411.8, 2635.0



Hcal

1715.0

3045.83

2350.0

Hcal_inner_symmetry

8

HcalEndcap

350.0

2875.83

2650.0, 3937.0



HcalEndcapRing

1767.92

2656.92

2411.8, 2635.0

HcalEndcapRing_symmetry

8

Coil

3075.33

3825.33

3872.0



Yoke

4125.33

7426.33

4047.0

Yoke_symmetry

12

YokeEndcap

300.0

7426.33

4072.0, 7373.0

YokeEndcap_symmetry

12

YokeEndcapPlug

300.0

3045.83

3937.2, 4072.0

YokeEndcapPlug_symmetry

12

BeamCal

17.8

140.0

3115.0, 3315.024

BeamCal_thickness

220.03

LHCal

130.0

315.0

2680.0, 3160.0

LHCal_thickness

480.0

LumiCal

80.0

202.09

2411.8, 2540.5

LumiCal_thickness

128.7


Image of envelope ILD_l5_v02 and ILD_s5_v02




Image of services in ILD_l5_v02


Tools to extract the envelope value

To extract the envelope parameters at run time,  please check out this tools.

source /one/available/ilcsoft/installation/version/init_ilcsoft.sh
${lcgeo_DIR}/ILD/doc/extractParameters.py



List of sub-detectors


List of sub-detectors used in ILD_l5/s5_v02

sub-detector

detector layout

dimensions

materials

SD segmentation

service and gaps

step-length

cellID

BeamPipe




unnecessary




VXD








FTD








SIT








TPC








SET








ECAL








HCAL








YOKE








Coil








Field




unnecessary

unnecessary



BeamCal








LHCal








LumiCal







Geometry validation tools :  CheckOverlaps


  • We load the geometry in memory and display it using geoDisplay
  • HowTo: If you want to check the envelope, here is an example with option -build_type BUILD_ENVELOPE.

  •  where the precision is given in cm.

  • Another method to check the overlaps within GEANT4 with "/geometry/test/"


Example: How to check overlaps with geoDisplay within ROOT.

   geoDisplay -compact $lcgeo_DIR/ILD/compact/ILD_l5_v02/ILD_l5_v02.xml -build_type BUILD_ENVELOPE
   root [0] gGeoManager->CheckOverlaps(0.00001)
   Info in <TGeoNodeMatrix::CheckOverlaps>: Checking overlaps for world_volume and daughters within 1e-05
   Check overlaps:      [==========] 2644 [100.00 %]           00:00           
   Info in <TGeoNodeMatrix::CheckOverlaps>: Number of illegal overlaps/extrusions : 0


  • HowTo: To check the sub-detectors in its own envelope, we need only to include this sub-dtector.
  • For example, use an editor to edit ILD_l5_v02.xml, to include one only.
  • Do not use "-build_type BUILD_ENVELOPE" for checking the detail geometry of the sub-detector.
  • Here is the output for complete ILD_l5_v02 in ilcsoft v01-19-05


    geoDisplay -compact $lcgeo/ILD/compact/ILD_l5_v02/ILD_l5_v02.xml
    root [0] gGeoManager->CheckOverlaps(0.00001)
    Info in <TGeoNodeMatrix::CheckOverlaps>: Checking overlaps for world_volume and daughters within 1e-05
    Check overlaps:      [==========]  709163 [100.00 %]           00:06           
    Info in <TGeoNodeMatrix::CheckOverlaps>: Number of illegal overlaps/extrusions : 0


  • To visualise the overlaps/extrusions, navigate in the ROOT TBrowser to world -> Illegal overlaps


root [0] TBrowser visoverlap


  • And you will be able to see a list of items.
  • The offending sub-volumes are highlighted in red.
  • One could also check it with command line, .e.g


root [1] gGeoManager->PrintOverlaps();
=== Overlaps for world ===
= Overlap ov00000: ... ... [if there is one, it will be shown here.] 



Example: How to check overlaps within GEANT4 with "/geometry/test/"

Geant4UIManager  INFO  +++ Starting G4UIExecutive 'DDG4' of type csh....
Available UI session types: [ Qt, GAG, tcsh, csh ]
Idle> help         

Command directory path : /geometry/test/


Guidance :
Geometry verification control setup.
Helps in detecting possible overlapping regions.

 Sub-directories : 
 Commands : 
 1) tolerance * Define tolerance (in mm) by which overlaps reports
 2) verbosity * Specify if running in verbosity mode or not.
 3) resolution * Set the number of points on surface to be generated for
 4) recursion_start * Set the initial level in the geometry tree for recursion.
 5) recursion_depth * Set the depth in the geometry tree for recursion.
 6) maximum_errors * Set the maximum number of overlap errors to report
 7) run * Start running the recursive overlap check.


Idle> /geometry/test/run 
Running geometry overlaps check...

 

Current status: '(This may take a long time for whole detector)'
   No overlaps has been found by GEANT4 for ILD_l5_v02 in ilcsoft v01-19-05
   No overlaps has been found by GEANT4 for ILD_s5_v02 in ilcsoft v01-19-05
  



GEANT4 unit list

unit listGEANT4LCIO
Lengthmmmm
Timensns
EnergyMeVGeV
Angleradianradian




 Sensitive segmentation validation with hits map.









Materials validation tools: materialScan

  • DD4hep tools "materialScan" could be used to check the sub-detector detail information.

    • validation for materials, layer placement, thickness, lambda, X0, ...


% source /cvmfs/ilc.desy.de/sw/x86_64_gcc49_sl6/v01-19-05/init_ilcsoft.sh
% materialScan --help
 usage: materialScan compact.xml x0 y0 z0 x1 y1 z1 
        -> prints the materials on a straight line between the two given points ( unit is cm) 






  • Example: AHCAL Barrel  materials, layer placement, thickness, lambda, X0, ...


To check the normal structure of AHCAL Barrel stave
% materialScan ${lcgeo_DIR}/ILD/compact/ILD_l5_v02/ILD_l5_v02.xml      10.00 205.80 10.00      10.00 339.50 10.00

To check support of the middle between modules
% materialScan ${lcgeo_DIR}/ILD/compact/ILD_l5_v02/ILD_l5_v02.xml       0.00 205.00  1.00       0.00 340.00  1.00

To check one active layer within stave
% materialScan ${lcgeo_DIR}/ILD/compact/ILD_l5_v02/ILD_l5_v02.xml     -87.19 210.50 10.00      87.19 210.50 10.00



 +--------------------------------------------------------------------------------------------------------------------------------------------------
 + Material scan between: x_0 = (  10.00, 205.80,  10.00) [cm] and x_1 = (  10.00, 339.50,  10.00) [cm] : 
 +--------------------------------------------------------------------------------------------------------------------------------------------------
 |     \   Material           Atomic                 Radiation   Interaction               Path   Integrated  Integrated    Material
 | Num. \  Name          Number/Z   Mass/A  Density    Length       Length    Thickness   Length      X0        Lambda      Endpoint  
 | Layer \                        [g/mole]  [g/cm3]     [cm]        [cm]          [cm]      [cm]     [cm]        [cm]     (     cm,     cm,     cm)
 +--------------------------------------------------------------------------------------------------------------------------------------------------
 |   
 |     
 |                                    DETAIL INFORMATION WILL BE SHOWN HERE
 |     
 |     
 +--------------------------------------------------------------------------------------------------------------------------------------------------
 |     0 Average Material            SUMMARY INFORMATION WILL BE SHOWN HERE
 +--------------------------------------------------------------------------------------------------------------------------------------------------





Materials validation: BirksLaw

Print out Birks coefficient used by sensitive layer.

================================================================

GenerationInit   INFO  +++ Initializing event 1. Within run:0 event 1.

LCIOStdHepReader::moveToEvent INFO  Event number after skipping: 0

STDHEP4          INFO  +++ Particle interaction with 326 generator particles and 1 vertices ++++++++++++++++++++++++

PrimaryHandler   INFO  +++++ G4PrimaryVertex at (+0.00e+00,+0.00e+00,+0.00e+00) [mm] +0.00e+00 [ns]

ParticleHandler  INFO  +++ Event 0 Begin event action. Access event related information.

### G4EmSaturation::FindBirksCoefficient Birks coefficient for G4_POLYSTYRENE  0.07943 mm/MeV

GenerationInit   INFO  +++ Initializing event 2. Within run:0 event 2.

LCIOStdHepReader::moveToEvent INFO  Event number after skipping: 1

STDHEP4          INFO  +++ Particle interaction with 334 generator particles and 1 vertices ++++++++++++++++++++++++

PrimaryHandler   INFO  +++++ G4PrimaryVertex at (+0.00e+00,+0.00e+00,+0.00e+00) [mm] +0.00e+00 [ns]

ParticleHandler  INFO  +++ Event 1 Begin event action. Access event related information.

GenerationInit   INFO  +++ Initializing event 3. Within run:0 event 3.

LCIOStdHepReader::moveToEvent INFO  Event number after skipping: 2

STDHEP4          INFO  +++ Particle interaction with 334 generator particles and 1 vertices ++++++++++++++++++++++++

PrimaryHandler   INFO  +++++ G4PrimaryVertex at (+0.00e+00,+0.00e+00,+0.00e+00) [mm] +0.00e+00 [ns]

ParticleHandler  INFO  +++ Event 2 Begin event action. Access event related information.

GenerationInit   WARN  +++ Finished run 0 after 3 events (3 events in total)

Geant4Kernel     INFO  ++ Terminate Geant4 and delete associated actions.



Validation of collection name, type and cellIDEncoding

  • list of the detail simulation output information
  • Input of Marlin steering file for further realistic digitization
    • TIPS: Case sensitive in Marlin steering file (C++)
      • "LHcalCollection" is not "LHCalCollection"
    • TIPS: "s", "k", or "k-1" is not "stave", "layer"
      • "stave" is "stave" and  "layer" is "layer" in DD4hep
    • Ecal have updated geometry drivers and segmentation drivers.


COLLECTION NAMEsystem IDCOLLECTION TYPEcellIDEncoding
MCParticle
MCParticle

simulator status bits: [sbvtcls]

VXDCollection1SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
SITCollection2SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
FTDCollection3SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
TPCCollection4SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
TPCLowPtCollection
SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
TPCSpacePointCollection
SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
SETCollection5SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>

ECalBarrelScHitsEven

ECalBarrelScHitsOdd

ECalBarrelSiHitsEven

ECalBarrelSiHitsOdd

20SimCalorimeterHit

<id>system:5,module:3,stave:4,tower:4,layer:6,wafer:6,slice:4,cellX:32:-16,cellY:-16</id>

ECalEndcapScHitsEven

ECalEndcapScHitsOdd

ECalEndcapSiHitsEven

ECalEndcapSiHitsOdd

29SimCalorimeterHit

<id>system:5,module:3,stave:4,tower:4,layer:6,wafer:6,slice:4,cellX:32:-16,cellY:-16</id>

EcalEndcapRingCollection21SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,y:-16</id>

HcalBarrelRegCollection

HCalBarrelRPCHits

22SimCalorimeterHit<id>system:5,module:3,stave:4,tower:5,layer:6,slice:4,x:32:-16,y:-16</id>

HcalEndcapsCollection

HCalEndcapRPCHits

30SimCalorimeterHit

<id>system:5,module:3,stave:3,tower:5,layer:6,slice:4,x:32:-16,y:-16</id>


HcalEndcapRingCollection

HCalECRingRPCHits

23SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,slice:4,x:32:-16,y:-16</id>
YokeBarrelCollection27SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,y:-16</id>
YokeEndcapsCollection31SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,y:-16</id>
LumiCalCollection24SimCalorimeterHit<id>system:8,barrel:3,layer:8,slice:8,r:32:-16,phi:-16</id>
BeamCalCollection25SimCalorimeterHit<id>system:8,barrel:3,layer:8,slice:5,r:32:16,phi:16</id>
LHCalCollection26SimCalorimeterHit<id>system:8,barrel:3,layer:6,slice:5,x:-16,y:-16 </id>


  • Tools to list the collections name: anajob


% source /cvmfs/ilc.desy.de/sw/x86_64_gcc49_sl6/v01-19-05/init_ilcsoft.sh
% anajob SIM_output.slcio







Materials definition in ILD model

  • Please check  the details in the release version.







Run simulation ddsim (DD4hep)

  • Run simulation
    • Available ilcsoft installation
    • and ILDConfig package
  • "lcgeo_current" is obsolete, there is no maintenance.
    • Please use "production", which including the latest configuration and calibrations.


You need one available ilcsoft installation.
And the "$ILDConfig/HEAD/StandardConfig/production/".

After initialize the ilcsoft with init_ilcsoft.sh.
You may try out the instruction in  "$ILDConfig/HEAD/StandardConfig/production/README.md".

Run simulation job on GRID with ILCDirac (ilc_user)


% source /path/to/available/installation/version/ilcdirac/bashrc

% ilcdirac-version
ILCDirac Version: v25r0p7
With DIRAC version: v6r14p33

% dirac-proxy-init -g ilc_user

% dirac-ilc-show-software
   - ddsim 
     * ILCSoft-01-19-05_gcc49 



ddsim = DDSim()
ddsim.setVersion("ILCSoft-01-19-05_gcc49")
ddsim.setSteeringFile("ddsim_steer.py")
ddsim.setDetectorModel("ILD_l5_v02")


## For detail setup, please try this:
% python
>>> from ILCDIRAC.Interfaces.API.NewInterface.Applications import DDSim
>>> help(DDSim)


% python run_user_ddsim.py

% dirac-wms-job-status <the_job_id>



Scaling validation (ToDo: update to ILD_l5/s5_v02)


  • The TPC/ECAL/HCAL/COIL/Yoke in blue have large radius and small one in red .
  • ECAL/HCAL/COIL/Yoke, the derivative radius dependence have been implemented in compact XML file.
  • In this example, silicon wafer used in Ecal and HBU used in HcalEndcaps are identical, not automatic scaled.
  • service is not included in the red one small TPC/ECAL/HCAL/COIL/Yoke.
  • The TPC_outer_radius is 146cm, and BField is 4T in the small ILD here.
  • These hits map plots are created directly from the raw simulation collections.



  • The module radius could be automatically scaling when the derivative dependence have been implemented in compact XML file.
  • Explicit radius value could be used for individual sub-detector too.



Validation of simulation

A processor which automatically makes various histograms of the properties of simulated hits can be found in the ILDPerformance/validateSim package: https://svnsrv.desy.de/viewvc/marlinreco/ILDPerformance/trunk/validateSim/

This produced a standard set of reference plots which can be checked by (semi-)experts to ensure that a simulation model, hit energies, times, positions, cellIDs are reasonable. There is brief documentation in the /doc/ directory, and example scripts in /test/.

Latest simHit maps produced by muons of random momentum in the 3rd test production (v01-19-06-p01), for ILD_l5_v02 and ILD_s5_v02:

sv01-19-06-p01.mILD_l5_v02.E1-calib.I110082.Psingle_PDGpm13_RandomP.e0.p0.n001_006.d_sim_00009632_53.slcio_valSIM.root.pssv01-19-06-p01.mILD_s5_v02.E1-calib.I110082.Psingle_PDGpm13_RandomP.e0.p0.n001_007.d_sim_00009633_19.slcio_valSIM.root.ps


Example hit maps for 50 GeV muons in the ILD_l1_v01 and ILD_s1_v01 models (ilcsoft v1-19) are shown in these two ps files:

ILD_s1_v01_mu-50_allTheta_allPhi_validateSIM.root.psILD_l1_v01_mu-50_allTheta_allPhi_validateSIM.root.ps







FAQ

Most frequently asked


How to run the simulation?
You need one available ilcsoft installation.
And the "$ILDConfig/HEAD/StandardConfig/production/".

After initialize the ilcsoft with init_ilcsoft.sh within the ilcsoft installation directory.
You may try out the instruction in  "$ILDConfig/HEAD/StandardConfig/lcgeo_current/README".



All questions


Which ILD model should I work on?
ILD_l5_v02 and ILD_s5_v02 are the current ongoing optimization models which supported and maintained by ilcsoft.
 
 










  • No labels