Page tree

 

We simulate the world.

 

 updating to ILD_l4/s4_v02 .....................................................


Table of Contents

 


 

ILD models validation check list


  • Validation of ILD_l4_v02 and ILD_s4_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_l4_v02 model.

List of envelope parameters for ILD_l4_v02

detector

inner radius

outer radius

hald 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_s4_v02 model.

List of envelope parameters for ILD_s4_v02

detector

inner radius

outer radius

hald 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.0

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.22

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_l4_v02 and ILD_s4_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_l4/s4_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/ILD/compact/ILD_l4_v02/ILD_l4_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_l4_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_l4_v02 in ilcsoft v01-19-04

 

    geoDisplay -compact lcgeo/ILD/compact/ILD_l4_v02/ILD_l4_v02.xml
    root [0] gGeoManager->CheckOverlaps(0.00001)
    Info in <TGeoNodeMatrix::CheckOverlaps>: Checking overlaps for world_volume and daughters within 1e-05
    Check overlaps:      [==========]  439083 [100.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: 
   No overlaps has been found by GEANT4 for ILD_l4_v02 in ilcsoft v01-19-04
   No overlaps has been found by GEANT4 for ILD_s4_v02 in ilcsoft v01-19-04
  



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-03.p01/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_l4_v02/ILD_l4_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_l4_v02/ILD_l4_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_l4_v02/ILD_l4_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 senditive 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 (ToDo: update to ILD_l4/s4_v02)

  • 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 
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>
SETCollection5SimTrackerHit<id>system:5,side:2,layer:9,module:8,sensor:8</id>
EcalBarrelCollection20SimCalorimeterHit<id>system:5,module:3,stave:4,tower:5,layer:6,wafer:6,cellX:32:-16,cellY:-16</id>
    
EcalEndcapsCollection29SimCalorimeterHit<id>system:5,module:3,stave:4,tower:5,layer:6,wafer:6,cellX:32:-16,cellY:-16</id>
    
EcalEndcapRingCollection21SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,y:-16</id>
    
HcalBarrelRegCollection22SimCalorimeterHit<id>system:5,module:3,stave:4,tower:5,layer:6,x:32:-16,y:-16</id>
HcalEndcapsCollection30SimCalorimeterHit<id>system:5,module:3,stave:3,tower:5,layer:6,x:32:-16,z:-16</id>
HcalEndcapRingCollection23SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,y:-16</id>
YokeBarrelCollection27SimCalorimeterHit<id>system:5,module:3,stave:4,tower:3,layer:6,x:32:-16,z:-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-04/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

 

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

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

Run simulation job on GRID with ILCDirac (ilc_user) (ToDo: update to ilcsoft_v01-19-04)

 

% 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 
     * testVersion 
     * ILCSoft-01-17-09 
     * ILCSoft-01-17-09_HEAD160315 
     * ILCSoft-01-17-09_HEAD160315_2 
     * ILCSoft-01-17-09_HEAD160607
     * ILCSoft-2016-06-22_gcc48
     * ILCSoft-2016-07-04_gcc48
     * ILCSoft-01-17-10
     * ILCSoft-2016-08-22_gcc48
     * ILCSoft-2016-09-12_gcc48
     * ILCSoft-2016-09-27_gcc48
     * ILCSoft-01-17-10_gcc48 

ddsim = DDSim()
ddsim.setVersion("ILCSoft-01-17-10")


% python run_user_ddsim.py

% dirac-wms-job-status <the_job_id>

 

 

Scaling validation (ToDo: update to ILD_l4/s4_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/.

 

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/lcgeo_current/".

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_l4_v02 and ILD_s4_v02 are the current ongoing optimization models which supported and maintained by ilcsoft.
 
 

 

 

 

 

 

 

 

 

 

  • No labels