detector simulation geometry · 18 0.012827 2 g4_csi 4.51 553.1 53 0.47692 55 0.52308 • nist...

68
Detector Simulation Geometry Witek Pokorski Alberto Ribon CERN 13-14.02.2017 1

Upload: others

Post on 12-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Detector Simulation Geometry

Witek Pokorski Alberto Ribon

CERN

13-14.02.2017

1

Page 2: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Chalenge

■ howtoimplement(efficiently)thisinyourcomputerprogram?❑ youneed‘bricks’■ ‘solids’,‘shapes’■ youneedtopositionthem■ youwantto‘reuse’asmuch

aspossiblethesame‘templates’

2

Page 3: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Building blocks

■ setofsolids(shapes)classes❑ box,sphere,tube,etc,etc…❑ booleanoperationsonsolids

■ logicalvolumes❑ unpositionedvolumeswithassociatedmaterialsandpossiblywith‘daughter’volumes■ unpositionedhierarchiesofvolumes

■ physicalvolumes❑ concrete‘placements’oflogicalvolumes❑ canreusethesamelogicalvolumeseveraltimes

3

Page 4: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Volumes

4

solid

materialdaughter volumesdaughter

volumesdaughter volumesdaughter

volumesdaughter physical volumes

logical volume

sensitive detector

physical volume

translation

rotation

logical volume

mother volume

Page 5: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Hierarchy

5

experiment cavern (LV)

world (PV)

tracker 1 (PV) calorimeter (PV)tracker 2 (PV)

tracker LV calorimeter (LV)

cell1 (PV)

cell2 (PV)

module 1(PV)

module 1(PV)

module 1(PV)

module 1(PV)

module LV cell LV

Page 6: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Units• InGeant4quantitiesshouldbeexplicitlymultipliedbyunits

– forexample:G4double width = 12.5*m; G4double density = 2.7*g/cm3; – Ifnounitisspecified,theinternalG4unitwillbeused,butthisis

discouraged!– Almostallcommonlyusedunitsareavailable.– Theusercandefinenewunits.– RefertoCLHEP:SystemOfUnits.h

• Divideavariablebyaunityouwanttoget.G4cout << dE / MeV << “ (MeV)” << G4endl;

6

Page 7: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Describeyourdetector• Deriveyourownconcreteclassfrom

G4VUserDetectorConstructionabstractbaseclass.• ImplementingthemethodConstruct():

– Modularizeitaccordingtoeachdetectorcomponentorsub-detector:1. Constructallnecessarymaterials2. Defineshapes/solidsrequiredtodescribethegeometry3. Constructandplacevolumesofyourdetectorgeometry

➢Definesensitivedetectorsandidentifydetectorvolumeswhichtoassociatethem

➢Associatemagneticfieldtodetectorregions➢Definevisualizationattributesforthedetectorelements

7

Page 8: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

DefinitionofMaterials

• Differentkindsofmaterialscanbedefined:– isotopes <> G4Isotope – elements<> G4Element – molecules <> G4Material – compoundsandmixtures<>G4Material

• Attributesassociated:– temperature,pressure,state,density

8

Page 9: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Isotopes,ElementsandMaterials

• G4IsotopeandG4Elementdescribethepropertiesoftheatoms:– Atomicnumber,numberofnucleons,massofamole,shellenergies

– Cross-sectionsperatoms,etc…• G4Materialdescribesthemacroscopicpropertiesofthematter:– temperature,pressure,state,density– Radiationlength,absorptionlength,etc…

• G4Materialistheclassusedforgeometrydefinition

9

Page 10: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Elements&Isotopes

• IsotopescanbeassembledintoelementsG4Isotope (const G4String& name, G4int z, // atomic number G4int n, // number of nucleons G4double a ); // mass of mole

• …buildingelementsasfollows:G4Element (const G4String& name, const G4String& symbol, // element symbol G4int nIso ); // # of isotopes G4Element::AddIsotope(G4Isotope* iso, // isotope G4double relAbund); // fraction of atoms // per volume

10

Page 11: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Materialofoneelement

• SingleelementmaterialG4double density = 1.390*g/cm3; G4double a = 39.95*g/mole; G4Material* lAr = new G4Material("liquidArgon",z=18.,a,density);

11

Page 12: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Material:molecule

• AMoleculeismadeofseveralelements(compositionbynumberofatoms):a = 1.01*g/mole; G4Element* elH = new G4Element("Hydrogen",symbol="H",z=1.,a); a = 16.00*g/mole; G4Element* elO = new G4Element("Oxygen",symbol="O",z=8.,a); density = 1.000*g/cm3; G4Material* H2O = new G4Material("Water",density,ncomp=2); H2O->AddElement(elH, natoms=2); H2O->AddElement(elO, natoms=1);

12

Page 13: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Material:compound• Compound:compositionbyfractionofmass

a = 14.01*g/mole; G4Element* elN = new G4Element(name="Nitrogen",symbol="N",z= 7.,a); a = 16.00*g/mole; G4Element* elO = new G4Element(name="Oxygen",symbol="O",z= 8.,a); density = 1.290*mg/cm3; G4Material* Air = new G4Material(name="Air",density,ncomponents=2); Air->AddElement(elN, 70.0*perCent); Air->AddElement(elO, 30.0*perCent);

13

Page 14: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Material:mixture

• Compositionofcompoundmaterials

G4Element* elC = …; // define “carbon” element G4Material* SiO2 = …; // define “quartz” material G4Material* H2O = …; // define “water” material

density = 0.200*g/cm3; G4Material* Aerog = new G4Material("Aerogel",density,ncomponents=3); Aerog->AddMaterial(SiO2,fractionmass=62.5*perCent); Aerog->AddMaterial(H2O ,fractionmass=37.4*perCent); Aerog->AddElement (elC ,fractionmass= 0.1*perCent);

14

Page 15: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Example:gas

• Itmaybenecessarytospecifytemperatureandpressure– (dE/dxcomputationaffected)

G4double density = 27.*mg/cm3; G4double temperature = 325.*kelvin; G4double pressure = 50.*atmosphere;

G4Material* CO2 = new G4Material(“CarbonicGas", density, ncomponents=2 kStateGas, temperature, pressure); CO2->AddElement(C,natoms = 1); CO2->AddElement(O,natoms = 2);

15

Page 16: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Example:vacuum

• Absolutevacuumdoesnotexist.Itisagasatverylowdensity!– CannotdefinematerialscomposedofmultipleelementsthroughZorA,or

withρ=0

G4double atomicNumber = 1.; G4double massOfMole = 1.008*g/mole; G4double density = 1.e-25*g/cm3; G4double temperature = 2.73*kelvin; G4double pressure = 3.e-18*pascal; G4Material* Vacuum = new G4Material(“interGalactic", atomicNumber, massOfMole, density, kStateGas, temperature, pressure);

16

Page 17: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

NISTManager&Messenger

• NISTdatabaseformaterialsisimportedinsideGeant4http://physics.nist.gov/PhysRefData

• Additionalinterfacesdefined• UIcommandsspecificforhandlingmaterials

• Thebestaccuracyforthemostrelevantparametersguaranteed:

• Density• Meanexcitationpotential• Chemicalbounds• Elementcomposition• Isotopecomposition• Variouscorrections

17

Page 18: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

NISTElements&IsotopesZAmerror(%)Aeff=========================14Si2222.03453(22)28.0855(3)2323.02552(21)2424.011546(21)2525.004107(11)2625.992330(3)2726.98670476(17)2827.9769265327(20)92.2297(7)2928.97649472(3)4.6832(5)3029.97377022(5)3.0872(5)3130.97536327(7)3231.9741481(23)3332.978001(17)3433.978576(15)3534.984580(40)3635.98669(11)3736.99300(13)3837.99598(29)3939.00230(43)4040.00580(54)4141.01270(64)4242.01610(75)

• Natural isotope compositions

• More than 3000 isotope masses

• Used for elements definition

18

Page 19: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

NISTMaterials====================================###ElementaryMaterialsfromtheNISTDataBase

==================================ZNameChFormuladensity(g/cm^3)I(eV)====================================1G4_HH_28.3748e-0519.22G4_He0.00016632241.83G4_Li0.534404G4_Be1.84863.75G4_B2.37766G4_C2817G4_NN_20.0011652828G4_OO_20.00133151959G4_F0.0015802911510G4_Ne0.00083850513711G4_Na0.97114912G4_Mg1.7415613G4_Al2.698916614G4_Si2.33173

===================================###CompoundMaterialsfromtheNISTDataBase===================================NNameChFormuladensity(g/cm^3)I(eV)===================================13G4_Adipose_Tissue0.9263.210.11947760.6372470.0079780.232333110.0005122e-05150.00016160.00073170.00119190.00032202e-05262e-05302e-054G4_Air0.0012047985.760.00012470.75526880.231781180.0128272G4_CsI4.51553.1530.47692550.52308

• NIST Elementary materials:

• H -> Cf ( Z = 1 -> 98 )

• NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• HEP and Nuclear materials:

• e.g. Liquid Ar, PbWO

• It is possible to build mixtures of

NIST and user-defined materials19

Page 20: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

HowtousetheNISTDB

• Noneedtopredefineelementsandmaterials• RetrievematerialsfromNISTmanager: G4NistManager* manager = G4NistManager::Instance();

G4Material* H2O = manager->FindOrBuildMaterial(“G4_WATER”);

G4Material* mat = manager->ConstructNewMaterial(“name”, const std::vector<G4String>& elements, const std::vector<G4double>& weights, G4double density, G4bool isotopes); G4double isotopeMass = manager->GetMass(G4int Z, G4int N);

• SomeUIcommands…/material/nist/printElementß printdefinedelements/material/nist/listMaterialsßprintdefinedmaterials

20

Page 21: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

CreatingaDetectorVolume

• StartwithitsShape&Size– Box3x5x7cm,sphereR=8m

• Addproperties:– material,B/Efield,– makeitsensitive

• Placeitinanothervolume– inoneplace– repeatedlyusingafunction

➢Solid

➢Logical-Volume

➢Physical-Volume

21

Page 22: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Solids■ SolidsdefinedinGeant4:

■ CSG(ConstructedSolidGeometry)solids• G4Box,G4Tubs,G4Cons,G4Trd,…• AnalogoustosimpleGEANT3CSGsolids

■ Specificsolids(CSGlike)• G4Polycone,G4Polyhedra,G4Hype,…• G4TwistedTubs,G4TwistedTrap,…

■ Booleansolids• G4UnionSolid,G4SubtractionSolid,…

22

Page 23: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

CSG:G4Tubs,G4Cons

G4Tubs(const G4String& pname, // name G4double pRmin, // inner radius G4double pRmax, // outer radius G4double pDz, // Z half length G4double pSphi, // starting Phi G4double pDphi); // segment angle

G4Cons(const G4String& pname, // name G4double pRmin1, // inner radius -pDz G4double pRmax1, // outer radius -pDz G4double pRmin2, // inner radius +pDz G4double pRmax2, // outer radius +pDz G4double pDz, // Z half length G4double pSphi, // starting Phi G4double pDphi); // segment angle

23

Page 24: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

SpecificCSGSolids:G4Polycone

G4Polycone(const G4String& pName, G4double phiStart, G4double phiTotal, G4int numRZ, const G4double r[], const G4double z[]);

• numRZ-numbersofcornersinther,zspace• r, z-coordinatesofcorners

• Alsoavailableadditionalconstructorusingplanes

24

Page 25: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

BooleanSolids

■ Solidscanbecombinedusingbooleanoperations:■ G4UnionSolid, G4SubtractionSolid, G4IntersectionSolid

■ Requires:2solids,1booleanoperation,andan(optional)transformationforthe2ndsolid• 2ndsolidispositionedrelativetothecoordinatesystemofthe1stsolid• Componentsolidsmustnotbedisjointandmustwellintersect

G4Box box(“Box", 20, 30, 40); G4Tubs cylinder(“Cylinder”, 0, 50, 50, 0, 2*M_PI); // r: 0 -> 50 // z: -50 -> 50 // phi: 0 -> 2 pi G4UnionSolid union("Box+Cylinder", &box, &cylinder); G4IntersectionSolid intersect("Box Intersect Cylinder", &box, &cylinder); G4SubtractionSolid subtract("Box-Cylinder", &box, &cylinder);

■ SolidscanbeeitherCSGorotherBooleansolids■ Note:trackingcostforthenavigationinacomplexBooleansolidisproportional

tothenumberofconstituentsolids

G4UnionSolid G4IntersectionSolidG4SubtractionSolid

25

Page 26: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

G4LogicalVolume

G4LogicalVolume(G4VSolid* pSolid, G4Material* pMaterial, const G4String& name, G4FieldManager* pFieldMgr=0, G4VSensitiveDetector* pSDetector=0, G4UserLimits* pULimits=0, G4bool optimise=true);

– Containsallinformationofvolumeexceptposition:• Shapeanddimension(G4VSolid)• Material,sensitivity,visualizationattributes• Positionofdaughtervolumes• Magneticfield,Userlimits• Showerparameterisation

– Physicalvolumesofsametypecansharealogicalvolume.– ThepointerstosolidandmaterialmustbeNOTnull– OncecreateditisautomaticallyenteredintheLVstore– Itisnotmeanttoactasabaseclass

26

Page 27: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Geometricalhierarchy■ Motheranddaughtervolumes■ Avolumeisplacedinitsmothervolume• Positionandrotationofthedaughtervolumeisdescribedwithrespecttothelocalcoordinatesystemofthemothervolume• Theoriginofthemother'slocalcoordinatesystemisatthecenterofthemothervolume• Daughtervolumescannotprotrudefromthemothervolume• Daughtervolumescannotoverlap

■ Oneormorevolumescanbeplacedinamothervolume

27

Page 28: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• Notethatthemother-daughterrelationshipisaninformationofG4LogicalVolume

– Ifthemothervolumeisplacedmorethanonce,alldaughtersbydefinitionappearineachplacedphysicalvolume

• Theworldvolumemustbeauniquephysicalvolumewhichfullycontainswithsomemarginalltheothervolumes

– Theworldvolumedefinestheglobalcoordinatesystem.Theoriginoftheglobalcoordinatesystemisatthecenteroftheworldvolume

– Positionofatrackisgivenwithrespecttotheglobalcoordinatesystem

Geometricalhierarchy

28

Page 29: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

G4PVPlacementG4PVPlacement(G4RotationMatrix* pRot, // rotation of mother frame const G4ThreeVector& tlate, // position in rotated frame G4LogicalVolume* pCurrentLogical, const G4String& pName, G4LogicalVolume* pMotherLogical, G4bool pMany, // not used. Set it to false… G4int pCopyNo, // unique arbitrary index G4bool pSurfChk=false); // optional overlap check

• Singlevolumepositionedrelativelytothemothervolume– Inaframerotatedandtranslatedrelativetothecoordinatesystemofthemothervolume

• Threeadditionalconstructors:– Asimplevariation:specifyingthemothervolumeasapointertoitsphysicalvolumeinsteadofitslogicalvolume.

– UsingG4Transform3Dtorepresentthedirectrotationandtranslationofthesolidinsteadoftheframe(alternativeconstructor)

– Thecombinationofthetwovariantsabove

29

Page 30: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Mothervolume

G4PVPlacementRotationofmotherframe…

G4PVPlacement(G4RotationMatrix* pRot, // rotation of mother frame const G4ThreeVector& tlate, // position in mother frame G4LogicalVolume* pCurrentLogical, const G4String& pName, G4LogicalVolume* pMotherLogical, G4bool pMany, // not used. Set it to false… G4int pCopyNo, // unique arbitrary index G4bool pSurfChk=false ); // optional overlap check • Singlevolumepositionedrelativelytothemothervolume

rotation

translati

oninm

other

frame

Mothervolume

translationinmother

frame

30

Page 31: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

G4PVPlacementRotationinmotherframe…

G4PVPlacement( G4Transform3D( G4RotationMatrix &pRot, // rotation of daughter frame const G4ThreeVector &tlate), // position in mother frame G4LogicalVolume *pDaughterLogical, const G4String &pName, G4LogicalVolume *pMotherLogical, G4bool pMany, // not used, set it to false… G4int pCopyNo, // unique arbitrary integer G4bool pSurfChk=false ); // optional overlap check

rotation

Mothervolume

translationinmother

frame

31

Page 32: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Detectorgeometrycomponents

• BasicstrategyG4Material* pBoxMaterial = new G4Material(…);

G4VSolid* pBoxSolid =

new G4Box(“aBoxSolid”, 1.*m, 2.*m, 3.*m);

G4LogicalVolume* pBoxLog = new G4LogicalVolume( pBoxSolid, pBoxMaterial, “aBoxLog”, 0, 0, 0);

G4VPhysicalVolume* aBoxPhys = new G4PVPlacement( pRotation, G4ThreeVector(posX, posY, posZ), pBoxLog, “aBoxPhys”, pMotherLog, 0, copyNo);

• Auniquephysicalvolumewhichrepresentstheexperimentalareamustexistandfullycontainsallothercomponents➢Theworldvolume

Step1Createthegeom.object:box

Step2Assignpropertiestoobject:material

Step3Placeitinthecoordinatesystemofmothervolume

32

Page 33: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Conclusion

• we know know how to describe our detector geometry

• we create materials

• instantiate solids

• build the volumes hierarchy

33

Page 34: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Backup

Page 35: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

SystemofUnits• SystemofunitsaredefinedinCLHEP,basedon:

– millimetre(mm),nanosecond(ns),MegaeV(MeV),positroncharge(eplus)degreeKelvin(kelvin),theamountofsubstance(mole),luminousintensity(candela),radian(radian),steradian(steradian)

• Allotherunitsarecomputedfromthebasicones• Inoutput,Geant4canchoosethemostappropriateunittouse.

Justspecifythecategoryforthedata(Length,Time,Energy,etc…):

G4cout << G4BestUnit(StepSize, “Length”);

StepSize willbeprintedin km, m, mm or … fermi, dependingonitsvalue

35

Page 36: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Definingnewunits

• Newunitscanbedefineddirectlyasconstants,or(suggestedway)viaG4UnitDefinition– G4UnitDefinition ( name, symbol, category, value )

• Example(massthickness):– G4UnitDefinition (“grammpercm2”, “g/cm2”, “MassThickness”, g/cm2);

– Thenewcategory“MassThickness”willberegisteredinthekernelinG4UnitsTable

• Toprintthelistofunits:– FromthecodeG4UnitDefinition::PrintUnitsTable();– Atrun-time,asUIcommand:

Idle> /units/list

36

Page 37: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

KindsofG4VPhysicalVolume

– G4PVPlacement1Placement=OneVolume• Avolumeinstancepositionedonceinamothervolume

– G4PVParameterised1Parameterised=ManyVolumes• Parameterisedbythecopynumber

– Shape,size,material,positionandrotationcanbeparameterised,byimplementingaconcreteclassofG4VPVParameterisation.

• Reductionofmemoryconsumption– Parameterisationcanbeusedonlyforvolumesthateithera)havenofurtherdaughtersorb)areidenticalinsize&shape.

– G4PVReplica1Replica=ManyVolumes• Slicingavolumeintosmallerpieces(ifithasasymmetry)

37

Page 38: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

PhysicalVolumes

• Placement:itisonepositionedvolume

• Repeated:avolumeplacedmanytimes– canrepresentanynumberofvolumes– reducesuseofmemory.– Replica

• simplerepetition,similartoG3divisions– Parameterised

• Amothervolumecancontaineither – manyplacementvolumesOR– onerepeatedvolume

repeated

placement

38

Page 39: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

ParameterisedPhysicalVolumes

• Userwrittenfunctionsdefine:– thesizeofthesolid(dimensions)

• FunctionComputeDimensions(…) – whereitispositioned(transformation)

• FunctionComputeTransformations(…)

• Optional:– thetypeofthesolid

• FunctionComputeSolid(…) – thematerial

• FunctionComputeMaterial(…)

• Limitations:– Appliestoalimitedsetofsolids– Daughtervolumesallowedonlyforspecialcases

• Verypowerful– Considerparameterisedvolumesas“leaf”volumes

39

Page 40: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

UsesofParameterisedVolumes

• Complexdetectors– withlargerepetitionofvolumes

• regularorirregular

• Medicalapplications– thematerialinanimaltissueismeasured

• cubeswithvaryingmaterial

40

Page 41: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

G4PVParameterisedG4PVParameterised(const G4String& pName, G4LogicalVolume* pCurrentLogical, G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4int nReplicas, G4VPVParameterisation* pParam, G4bool pSurfChk=false);

• ReplicatesthevolumenReplicastimesusingtheparameterisationpParam,withinthemothervolume

• ThepositioningofthereplicasisdominantalongthespecifiedCartesianaxis– IfkUndefinedisspecifiedasaxis,3Dvoxelisationforoptimisationofthegeometryis

adopted• Representsmanytouchabledetectorelementsdifferingintheirpositioningand

dimensions.BotharecalculatedbymeansofaG4VPVParameterisationobject• Alternativeconstructorusingpointertophysicalvolumeforthemother

41

Page 42: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Parameterisation example-1

G4VSolid* solidChamber = new G4Box("chamber", 100*cm, 100*cm, 10*cm);

G4LogicalVolume* logicChamber =

new G4LogicalVolume(solidChamber, ChamberMater, "Chamber", 0, 0, 0);

G4double firstPosition = -trackerSize + 0.5*ChamberWidth;

G4double firstLength = fTrackerLength/10;

G4double lastLength = fTrackerLength;

G4VPVParameterisation* chamberParam =

new ChamberParameterisation( NbOfChambers, firstPosition,

ChamberSpacing, ChamberWidth,

firstLength, lastLength);

G4VPhysicalVolume* physChamber =

new G4PVParameterised( "Chamber", logicChamber, logicTracker,

kZAxis, NbOfChambers, chamberParam);

Use kUndefined for activating 3D voxelisation for optimisation

42

Page 43: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Parameterisation example-2

class ChamberParameterisation : public G4VPVParameterisation

{

public:

ChamberParameterisation( G4int NoChambers, G4double startZ,

G4double spacing, G4double widthChamber,

G4double lenInitial, G4double lenFinal );

~ChamberParameterisation();

void ComputeTransformation (const G4int copyNo,

G4VPhysicalVolume* physVol) const;

void ComputeDimensions (G4Box& trackerLayer, const G4int copyNo,

const G4VPhysicalVolume* physVol) const;

}

43

Page 44: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Parameterisation example-3

void ChamberParameterisation::ComputeTransformation

(const G4int copyNo, G4VPhysicalVolume* physVol) const

{

G4double Zposition= fStartZ + (copyNo+1) * fSpacing;

G4ThreeVector origin(0, 0, Zposition);

physVol->SetTranslation(origin);

physVol->SetRotation(0);

}

void ChamberParameterisation::ComputeDimensions

(G4Box& trackerChamber, const G4int copyNo,

const G4VPhysicalVolume* physVol) const

{

G4double halfLength= fHalfLengthFirst + copyNo * fHalfLengthIncr;

trackerChamber.SetXHalfLength(halfLength);

trackerChamber.SetYHalfLength(halfLength);

trackerChamber.SetZHalfLength(fHalfWidth);

}

44

Page 45: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

ReplicatedPhysicalVolumes

• Themothervolumeisslicedintoreplicas,allofthesamesizeanddimensions.

• Representsmanytouchabledetectorelementsdifferingonlyintheirpositioning.

• Replicationmayoccuralong:– Cartesianaxes(X,Y,Z)–slicesareconsideredperpendiculartotheaxisofreplication

• Coordinatesystematthecenterofeachreplica– Radialaxis(Rho)–cons/tubssectionscenteredontheoriginandun-rotated

• Coordinatesystemsameasthemother– Phiaxis(Phi)–phisectionsorwedges,ofcons/tubsform

• CoordinatesystemrotatedsuchasthattheXaxisbisectstheanglemadebyeachwedge

repeated45

Page 46: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

G4PVReplicaG4PVReplica(const G4String& pName, G4LogicalVolume* pCurrentLogical, G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4int nReplicas, const G4double width, const G4double offset=0);

• Alternativeconstructor:– Usingpointertophysicalvolumeforthemother

• Anoffsetcanbeassociated– Onlytoamotheroffsetalongtheaxisofreplication

• Featuresandrestrictions:– Replicascanbeplacedinsideotherreplicas– Normalplacementvolumescanbeplacedinsidereplicas,assumingnointersectionoroverlapswiththemothervolumeorwithotherreplicas

– Novolumecanbeplacedinsidearadialreplication– Parameterisedvolumescannotbeplacedinsideareplica

mother volume

a daughter logical volume to be replicated

46

Page 47: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Replica–axis,width,offset

• Cartesianaxes-kXaxis, kYaxis, kZaxis

– offsetshallnotbeused

– Centerofn-thdaughterisgivenas-width*(nReplicas-1)*0.5+n*width

• Radialaxis-kRaxis

– Centerofn-thdaughterisgivenaswidth*(n+0.5)+offset

• Phiaxis-kPhi

– Centerofn-thdaughterisgivenaswidth*(n+0.5)+offset

offset

width

offset

width

width

47

Page 48: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Replication example

G4double tube_dPhi = 2.* M_PI * rad;

G4VSolid* tube =

new G4Tubs("tube",20*cm,50*cm,30*cm,0.,tube_dPhi);

G4LogicalVolume * tube_log =

new G4LogicalVolume(tube, Air, "tubeL", 0, 0, 0);

G4VPhysicalVolume* tube_phys =

new G4PVPlacement(0,G4ThreeVector(-200.*cm,0.,0.),

"tubeP", tube_log, world_phys, false, 0);

G4double divided_tube_dPhi = tube_dPhi/6.;

G4VSolid* div_tube =

new G4Tubs("div_tube", 20*cm, 50*cm, 30*cm,

-divided_tube_dPhi/2., divided_tube_dPhi);

G4LogicalVolume* div_tube_log =

new G4LogicalVolume(div_tube,Pb,"div_tubeL",0,0,0);

G4VPhysicalVolume* div_tube_phys =

new G4PVReplica("div_tube_phys", div_tube_log,

tube_log, kPhi, 6, divided_tube_dPhi);

48

Page 49: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

DividedPhysicalVolumes

• Implementedas“special”kindofparameterisedvolumes– AppliestoCSG-likesolidsonly(box,tubs,cons,para,trd,polycone,polyhedra)– Dividesavolumeinidenticalcopiesalongoneofitsaxis(copiesarenotstrictlyidentical)

• e.g.-atubedividedalongitsradialaxis• Offsetscanbespecified

• Thepossibleaxesofdivisionvaryaccordingtothesupportedsolidtype• Representsmanytouchabledetectorelementsdifferingonlyintheirpositioning

• G4PVDivisionistheclassdefiningthedivision– Theparameterisationiscalculatedautomaticallyusingthevaluesprovidedininput

49

Page 50: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

DividedVolumes-2

• G4PVDivisionisaspecialkindofparameterisedvolume

– Theparameterisationisautomaticallygeneratedaccordingtotheparametersgivenin

G4PVDivision.

• Dividedvolumesaresimilartoreplicasbut…

– Allowingforgapsinbetweenmotheranddaughtervolumes• Planningtoallowalsogapsbetweendaughtersandgapsonsidewalls

• Shapeofalldaughtervolumesmustbesameshapeasthemothervolume

– Solid(tobeassignedtothedaughterlogicalvolume)mustbethesametype,butdifferent

object.

• Replicationmustbealignedalongoneaxis

• Ifnogapsinthegeometry,G4PVReplicaisrecommended

– Foridenticalgeometry,navigationinpurereplicasisfaster

mother volume

50

Page 51: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

nDivisions

DividedVolumes-3

G4PVDivision(const G4String& pName, G4LogicalVolume* pDaughterLogical, G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4int nDivisions, // number of division is given const G4double offset);

• Thesize(width)ofthedaughtervolumeiscalculatedas( (size of mother) - offset ) / nDivisions

offset

51

Page 52: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

DividedVolumes-4G4PVDivision(const G4String& pName, G4LogicalVolume* pDaughterLogical, G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4double width, // width of daughter volume is given const G4double offset); • Thenumberofdaughtervolumesiscalculatedas

int( ( (size of mother) - offset ) / width )

• Asmanydaughtersaswidthandoffsetallow

offsetwidth

52

Page 53: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

nDivisions

width

DividedVolumes-5G4PVDivision(const G4String& pName, G4LogicalVolume* pDaughterLogical, G4LogicalVolume* pMotherLogical, const EAxis pAxis, const G4int nDivisions, // both number of divisions const G4double width, // and width are given const G4double offset);

• nDivisionsdaughtersofwidththickness

offset

53

Page 54: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

DividedVolumes-6

• Divisionsareallowedforthefollowingshapes/axes:– G4Box : kXAxis, kYAxis, kZAxis – G4Tubs : kRho, kPhi, kZAxis – G4Cons : kRho, kPhi, kZAxis – G4Trd : kXAxis, kYAxis, kZAxis – G4Para : kXAxis, kYAxis, kZAxis – G4Polycone : kRho, kPhi, kZAxis – G4Polyhedra : kRho, kPhi, kZAxis

• kPhi-thenumberofdivisionshastobethesameassolidsides,(i.e.numSides),thewidthwillnotbetakenintoaccount

• InthecaseofdivisionalongkRhoofG4Cons, G4Polycone, G4Polyhedra,ifwidthisprovided,itistakenasthewidthatthe-Zradius;thewidthatotherradiiwillbescaledtothisone

54

Page 55: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

GDML

• Importingandexportingdetectordescriptions

55

Page 56: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

GDMLcomponents

• GDML(GeometryDescriptionMarkupLanguage)isdefinedthroughXMLSchema(XSD)

– XSD=XMLbasedalternativetoDocumentTypeDefinition(DTD)– definesdocumentstructureandthelistoflegalelements– XSDareinXML->theyareextensible

• GDMLcanbewrittenbyhandorgeneratedautomaticallyinGeant4

– 'GDMLwriter'allowsexportingaGDMLfile• GDMLneedsa“reader”,integratedinGeant4

– 'GDMLreader'importsandcreates'in-memory'therepresentationofthegeometrydescription

GDMLSchema GDMLfile

userapplication(1)

GDMLwriter

GDMLreader

userapplication(2)

Geant4

56

Page 57: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

GDML Schema• defines document structure and the list of legal

elements • materials

- material, isotope, element, mixture

• solids - box, sphere, tube, cone, polycone, parallepiped, trapezoid, torus,

polyhedra, hyperbolic tube, elliptical tube, ellipsoid - boolean solids

• volumes - assembly volumes and reflections - replicas and divisions - parameterised volumes (position, rotation and size)

- first implementation

57

Page 58: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

<?xml version="1.0" encoding="UTF-8"?> <gdml xsi:noNamespaceSchemaLocation="GDMLSchema/gdml.xsd"> <define> … <position name="TrackerinWorldpos" unit="mm" x="0" y="0" z="100"/> </define> <materials> … <element name="Nitrogen" formula="N" Z="7."> <atom value="14.01"/> </element> <material formula=" " name="Air" > <D value="1.290" unit="mg/cm3"/> <fraction n="0.7" ref="Nitrogen" /> <fraction n="0.3" ref="Oxygen" /> </material> </materials> <solids> … <box lunit="mm" name="Tracker" x="50" y="50" z="50"/> </solids> <structure> … <volume name="World" > <materialref ref="Air" /> <solidref ref="world" /> <physvol> <volumeref ref="Tracker" /> <positionref ref="TrackerinWorldpos"/> <rotationref ref="TrackerinWorldrot"/> </physvol> </volume> </structure> <setup name="Default" version="1.0" > <world ref="World" /> </setup> </gdml>

GDML document

positions, rotations

materials

solids

geometry tree

'world' volume

58

Page 59: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

GDML–Geant4binding• XMLschemaavailablefromhttp://cern.ch/gdml

– AlsoavailablewithinGeant4distribution• Seeingeant4/source/persistency/gdml/schema/

– LatestschemareleaseGDML_3_0_0(asfrom9.2release)

• RequiresXercesC++XMLparser– Availablefrom:http://xerces.apache.org/xerces-c– Testedwithversions2.8.0and3.0.1

• Optionalpackagetobelinkedagainstduringbuild– G4LIB_BUILD_GDMLandXERCESCROOTvariables– Examplesavailable:geant4/examples/extended/persistency/gdml

59

Page 60: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Geant4CMSgeometryimportedinRootthroughGDML

~19000physicalvolumes

CMSdetectorthroughGDML

60

Page 61: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

Geant4 LHCb geometry imported in Root through

GDML

~5000physicalvolumes

LHCbdetectorthroughGDML

61

Page 62: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

towrite:

#include "G4GDMLParser.hh"

G4GDMLParser parser; parser.Write(“g4test.gdml”, pWorld, true, “path_to_schema/gdml.xsd”);

toread: parser.Read( “g4test.gdml”, true );

pWorld = GDMLProcessor::GetInstance()->GetWorldVolume();

instantiateGDMLparser

passthe'top'volumetothewriterActivateorde-activativateschemavalidation

getpointerto'top'worldvolume

UsingGDMLinGeant4

Concatenateornotpointerstoentitynames

62

Page 63: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• Anygeometrytreecanbedumpedtofile– …justprovideitsphysicalvolumepointer(pVol): parser.Write(“g4test.gdml”, pVol);

• Ageometrysetupcanbesplitinmodules– …startingfromageometrytreespecifiedbyaphysicalvolume: parser.AddModule(pVol); – …indicatingthedepthfromwhichstartingtomodularize: parser.AddModule(depth);

• ProvidesfacilityforimportingCADgeometriesgeneratedthroughSTEP-Tools• AllowsforeasyextensionsoftheGDMLschemaandtreatmentofauxiliaryinformationassociatedtovolumes

• Fullcoverageofmaterials,solids,volumesandsimplelanguageconstructs(variables,loops,etc…)

UsingGDMLinGeant4-2

63

Page 64: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• CADgeometriesgeneratedthroughSTEP-Tools(stFile.geom,stFile.tree files)canbeimportedthroughtheGDMLreader:– parser.ParseST(“stFile”, WorldMaterial, GeomMaterial);– Exampleprovidedinexamples/extended/persistency/gdml/G02

• ToolslikeFastRadallowforimportingCADSTEPfilesanddirectlyconverttoGDML

ImportingCADgeometrieswithGDML

64

Page 65: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• GDMLreader/writertestedon– completeLHCbandCMSgeometries– partsofATLASgeometry

• fullATLASgeometryincludescustomsolids• forLHCbgeometry(~5000physicalvolumes)

– writingout~10seconds(onP42.4GHz)– readingin~5seconds– filesize~2.7Mb(~40klines)

• forCMSgeometry(~19000physicalvolumes)

– writingout~30seconds– readingin~15seconds– filesize~7.9Mb(~120klines)

GDMLprocessingperformance

65

Page 66: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• LinearCollider– LinearColliderDetectorDescription(LCDD)extendsGDMLwithGeant4-specificinformation(sensitivedetectors,physicscuts,etc)

– GDML/LCDDisgenericandflexible• severaldifferentfulldetectordesignconcepts,includingSiD,GLD,andLDC,wheresimulatedusingthesameapplication

SiD

GLD

LDC

GDMLasprimarygeometrysource

66

Page 67: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• SpaceResearch@ESA– Geant4geometrymodels

• componentdegradationstudies(JWST,ConeXpress,...)

• GRAS(Geant4RadiationAnalysisforSpace)

– enablesflexiblegeometryconfigurationandchanges

– maincandidateforCADtoGeant4exchangeformat

ConeXpress

GDMLasprimarygeometrysource-2

67

Page 68: Detector Simulation Geometry · 18 0.012827 2 G4_CsI 4.51 553.1 53 0.47692 55 0.52308 • NIST Elementary materials: • H -> Cf ( Z = 1 -> 98 ) • NIST compounds: • e.g. “G4_ADIPOSE_TISSUE_IRCP”

• AnthropomorphicPhantom– Modelingofthehumanbodyandanatomyforradioprotectionstudies

– nohard-codedgeometry,flexibleconfiguration

GDMLasprimarygeometrysource-3

68