diff --git a/examples/ILDExDet/compact/ILDEx.xml b/examples/ILDExDet/compact/ILDEx.xml index b11ade565d570fccbbdf7754c229476ea980557c..c05e327020e288925cd265edccda4444053bffe5 100644 --- a/examples/ILDExDet/compact/ILDEx.xml +++ b/examples/ILDExDet/compact/ILDEx.xml @@ -155,7 +155,7 @@ </detector> - <detector name="TPC" type="ILDExTPC" vis="TPCVis" id="3" limits="TPC_limits" readout="TPCCollection" insideTrackingVolume="true"> + <detector name="TPC" type="XXXILDExTPC" vis="TPCVis" id="3" limits="TPC_limits" readout="TPCCollection" insideTrackingVolume="true"> <tubs rmin="TPC_inner_radius" rmax="TPC_outer_radius" zhalf="TPC_zhalf"/> <!-- GEAR Data--> diff --git a/examples/noviceN04/CMakeLists.txt b/examples/noviceN04/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..4d3bbf81ba2012806a078a6fdde3e357b88b9325 --- /dev/null +++ b/examples/noviceN04/CMakeLists.txt @@ -0,0 +1,146 @@ +cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR) + +#--------------------------- +set( PackageName noviceN04 ) +#--------------------------- + +project(${PackageName}) + +# project version +SET( ${PackageName}_VERSION_MAJOR 0 ) +SET( ${PackageName}_VERSION_MINOR 0 ) +SET( ${PackageName}_VERSION_PATCH 1 ) + +SET( ${PackageName}_VERSION "${${PackageName}_VERSION_MAJOR}.${${PackageName}_VERSION_MINOR}" ) +SET( ${PackageName}_SOVERSION "${${PackageName}_VERSION_MAJOR}.${${PackageName}_VERSION_MINOR}" ) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) +set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) + +#------------- set the default installation directory to be the source directory + +IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + SET( CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR} CACHE PATH + "install prefix path - overwrite with -D CMAKE_INSTALL_PREFIX = ..." + FORCE ) + MESSAGE(STATUS "CMAKE_INSTALL_PREFIX is ${CMAKE_INSTALL_PREFIX} - overwrite with -D CMAKE_INSTALL_PREFIX" ) +ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + + + +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +find_package( DD4hep ) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DD4hep_ROOT}/cmake ) +include( DD4hep ) + +find_package( ROOT REQUIRED ) +#find_package( ROOT REQUIRED COMPONENTS Geom Reflex) +set( ROOT_COMPONENT_LIBRARIES Geom Reflex) + +#------------------------------------------------------------- +# add additional packages here + +find_package(Geant4 REQUIRED ui_all vis_all) +##---Handle the case CLHEP is not included in Geant4------------------------------ +#if(NOT Geant4_clhep_FOUND) +# find_package(CLHEP REQUIRED) +# set(Geant4_INCLUDE_DIRS ${Geant4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}) +# set(Geant4_LIBRARIES ${Geant4_LIBRARIES} ${CLHEP_LIBRARIES}) +#endif() +INCLUDE(${Geant4_USE_FILE}) # this also takes care of geant 4 definitions and include dirs + + +#find_package(LCIO REQUIRED) + + +#------------------------------------------------------------- + +include_directories( ${CMAKE_SOURCE_DIR}/include + ${DD4hep_INCLUDE_DIRS} + ${ROOT_INCLUDE_DIR} + ${Geant4_INCLUDE_DIRS} +# ${LCIO_INCLUDE_DIRS} + ) + +file(GLOB sources src/*.cc src/*.cpp) +file(GLOB headers include/*.hh) + +include(DD4hep_XML_setup) + +if(DD4HEP_USE_PYROOT) + ROOT_GENERATE_DICTIONARY(G__ILDEx ${headers} LINKDEF include/ROOT/LinkDef.h) + list(APPEND sources G__ILDEx.cxx) +endif() + +add_library(${PackageName} SHARED ${sources}) + +target_link_libraries(${PackageName} ${DD4hep_LIBRARIES} + ${ROOT_LIBRARIES} + ${ROOT_COMPONENT_LIBRARIES} + ${Geant4_LIBRARIES} +# ${LCIO_LIBRARIES} + ) + +add_executable( exampleN04 exampleN04.cc ) + +target_link_libraries(exampleN04 ${PackageName} +# ${DD4hep_LIBRARIES} +# ${ROOT_LIBRARIES} +# ${ROOT_COMPONENT_LIBRARIES} +# ${Geant4_LIBRARIES} +# ${LCIO_LIBRARIES} + ) + + +#---Rootmap generation-------------------------------------------------------------- +if(APPLE) + dd4hep_generate_rootmap_apple(${PackageName} ) +else() + dd4hep_generate_rootmap(${PackageName} ) +endif() + + +#---- configure run environment --------------- +configure_file( ${DD4hep_ROOT}/cmake/thisdd4hep_package.sh.in this${PackageName}.sh @ONLY) + +install(FILES ${CMAKE_BINARY_DIR}/this${PackageName}.sh + DESTINATION bin + ) + + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory, i.e. the directory in which we +# build N04. This is so that we can run the executable directly because it +# relies on these scripts being in the current working directory. +# +set(EXAMPLEN04_SCRIPTS + exampleN04.EMtest.in + exampleN04.EMtest.large_N.in + exampleN04.EMtest.out + exampleN04.in + exampleN04.out + vis.mac + pythia_event.data + ) + +foreach(_script ${EXAMPLEN04_SCRIPTS}) + configure_file( + ${PROJECT_SOURCE_DIR}/${_script} + ${PROJECT_BINARY_DIR}/${_script} + COPYONLY + ) +endforeach() + +#--- install target------------------------------------- + +install(TARGETS ${PackageName} exampleN04 + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ) + + +# to do: add corresponding uninstall... +#------------------------------------------------------- diff --git a/examples/noviceN04/Issues.txt b/examples/noviceN04/Issues.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ef5ce4c3ff35745905193adf7e61d35c2a480bd --- /dev/null +++ b/examples/noviceN04/Issues.txt @@ -0,0 +1,29 @@ +########################################## +# +# Issues observed in porting geant4 example +# novice/N04 to DD4hep +# +######################################### + + + - incosistent parameters in Tubs/TGeoTubeSegment: + phistart,deltaPhi vs phi0, phi1 + + - question: which xml tags are used/allowed + (e.g. tubs. phi0, phi1 ...) + + - specifying materials in xml: + would like to write: + <material name="ArgonGas" z="18." a="39.95*g/mole" density="1.782*mg/cm3"/> + which is close to geant4: + Ar=new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + -> does not work (right now) + + - vis attribute wireframe="true" does not seem to work + + + + - original G4VSensitiveDetector classes are not yet used in DD4hep port + => need to change DDG4/Geant4SensitiveDetector .... + + -> exampleN04 does not yet work (crashes due to missing SDs) diff --git a/examples/noviceN04/README b/examples/noviceN04/README new file mode 100644 index 0000000000000000000000000000000000000000..85a4256eeb29945b78a9e004de1922eff0bf6fe3 --- /dev/null +++ b/examples/noviceN04/README @@ -0,0 +1,135 @@ +$Id:$ + +----------------------------------------------- + DD4hep port of the geant4 example novice/N04 + F.Gaede, DESY, 2013 +----------------------------------------------- + +Build: +====== + mkdir build ; cd build + cmake -D DD4hep_DIR=_path_to_DD4hep .. + make -j install + +Run: +===== + . ../bin/thisnoviceN04.sh + +# display geometry: + + geoDisplay ../compact/N04.xml + +#simulate w/ ILD example (needs DD4HEP_WITH_GEANT4 ) + + ILDExSimu file:../compact/N04.xml file:../compact/geant4.xml ../run1.mac + + +# convert to gdml/lcdd + + geoConverter -compact2lcdd -input ../compact/N04.xml -output N04.lcdd + + +Changes: +======== + +The detector geometry is now defined in + ./compact/N04.xml +and + ./src/Tracker_geo.cc + ./src/Calorimeter_geo.cc + ./src/Muon_geo.cc + +=> compare to ExN04DetectorConstruction.cc + +exampleN04.cc has been modified to use DD4hep for the geometry and read command line parameters + + +Issues: +======= + see Issues.txt + + + + +################################################## +# Original README from ExampleN04: +################################################## + + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + ExampleN04 + ---------- + + ExampleN04 has a simplified collider detector geometry. This example +demonstrates the following features. + +1. PYTHIA primary events. + + ExN04PrimaryGeneratorAction has G4HEPEvtInterface as the generator. +G4HEPEvtInterface accesses to "pythia_event.data", which contains three +events of Higgs generation produced by PYTHIA. "pythia_main.f" is an +example FORTRAN code of PYTHIA for generating this event sample. + +2. Readout geometry + + ExN04DetectorConstruction defines a simplified collider detecor +geometry, tracker made of cylindrical tubes, calorimeter made of +cylindrical tubes, and muon trackers made of planes. + Cylindrical calorimeter is made of tubes of lead and scintirator +without cut in phi nor z direction. Energy deposition in scintirator +is accumurated by ExN04CalorimeterSD sensitive detector, which has +a readout geometry to find the phi-z cell. + +3. Physics processes + + The example uses the QGSP 'Educated guess physics list', which +includes electro-magnetic and hadronic interactions. + +3.1 Compilation of the Hadronic Physics lists + + The compilation of the example N04 requires the previous compilation of +the hadronic physics lists, they ARE automatically compiled together with +the standard Geant4 libraries; you may disable building the physics lists +by setting G4LIB_BUILD_LISTS to NO. +If you try to compile the example without the lists, you might probably +get an error message during the linking phase, similar to the following: +"Linking exampleN04 ... +/usr/bin/ld: cannot find -lQGSP" + +If they are not compiled, then you (or your Geant4 administrator) +can do it with the following steps: +a. Make sure the Geant4 environment variables G4LIB_BUILD_lists is NOT defined +b. cd $G4INSTALL/source/physics_lists +c. gmake + +4. Event filtering by the stacking mechanism. + + Higgs events in "pythia_event.data" have two lepton pairs produced +by the Higgs decay via Z0. At the first stage of each event, only the +primary muons are tracked without tracking secondaries. then the number +of hits on the muon trackers are examined. At the next stage, only +the primary charged particles are tracked only inside the barrel +tracking area and the isolation of the primary muons are examined. +At the third stage, all particles in the RoI (Region of Interest) along +the isolated muons are tracked. All these examinations are applied in +ExN04StackingAction. + +5. How to start + +- compile and link to generate an executable + % cd N04 + % gmake + +- execute N04 in 'batch' mode from macro files + % exampleN04 exampleN04.in + +- execute N04 in 'interactive mode' with visualization + % exampleN04 + .... + Idle> type your commands. For instance: + Idle> /run/beamOn 3 + .... + Idle> exit diff --git a/examples/noviceN04/compact/N04.xml b/examples/noviceN04/compact/N04.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc0fbd55151ab7c0bb8a2ef069347362af7f452e --- /dev/null +++ b/examples/noviceN04/compact/N04.xml @@ -0,0 +1,190 @@ +<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="noviceN04" + title="ExN04 to DD4hep" + author="F. Gaede" + url="http://aidasoft.cern.ch/dd4hep" + status="development" + version="$Id:$"> + <comment>geant4 example novice N04 ported to DD4hep </comment> + </info> + + <includes> + <gdmlFile ref="elements.xml"/> + <gdmlFile ref="materials.xml"/> + <pyBuilder ref="../drivers"/> + </includes> + + <define> + <!-- constants as defined in ExN04DetectorParameter.icc --> + <constant name="world_side" value="600*cm"/> + <!-- DD4hep expects world_xyz parameters : --> + <constant name="world_x" value="world_side"/> + <constant name="world_y" value="world_side"/> + <constant name="world_z" value="world_side"/> + <constant name="expHall_x" value="world_side"/> + <constant name="expHall_y" value="world_side"/> + <constant name="expHall_z" value="world_side"/> + + <constant name="trkTubs_rmax" value="50.*cm"/> + <constant name="trkTubs_rmin" value="20.*cm"/> + <constant name="trkTubs_dz " value="100.*cm"/> + <constant name="trkTubs_sphi" value="0.*deg"/> + <constant name="trkTubs_dphi" value="360.*deg"/> + + <constant name="notrkLayers" value="5"/> + <constant name="tracker_radius0" value="25.*cm"/> + <constant name="tracker_radius1" value="30.*cm"/> + <constant name="tracker_radius2" value="35.*cm"/> + <constant name="tracker_radius3" value="40.*cm"/> + <constant name="tracker_radius4" value="45.*cm"/> + <constant name="tracker_thick " value="0.5*cm"/> + + <constant name=" tracker_length0" value="tracker_radius0"/> + <constant name=" tracker_length1" value="tracker_radius1"/> + <constant name=" tracker_length2" value="tracker_radius2"/> + <constant name=" tracker_length3" value="tracker_radius3"/> + <constant name=" tracker_length4" value="tracker_radius4"/> + + <constant name="caloTubs_rmax" value="300.*cm"/> + <constant name="caloTubs_rmin" value=" 50.*cm"/> + <constant name="caloTubs_dz " value="200.*cm"/> + <constant name="caloTubs_sphi" value="0.*deg"/> + <constant name="caloTubs_dphi" value="360.*deg"/> + <constant name="absorber_thick" value="3.*cm"/> + <constant name="scinti_thick" value="2.*cm"/> + + <constant name="nocaloLayers" value="int((caloTubs_rmax-caloTubs_rmin)/(absorber_thick+scinti_thick))"/> + + <constant name="segmentsinPhi" value="48"/> + <constant name="caloCell_rmax" value="caloTubs_rmax"/> + <constant name="caloCell_rmin" value="caloTubs_rmin"/> + <constant name="caloCell_dz " value="caloTubs_dz"/> + <constant name="caloCell_sphi" value="caloTubs_sphi"/> + <constant name="caloCell_dphi" value="caloTubs_dphi/segmentsinPhi"/> + + <constant name="segmentsinZ" value="20"/> + <constant name="caloRing_rmax" value="caloCell_rmax"/> + <constant name="caloRing_rmin" value="caloCell_rmin"/> + <constant name="caloRing_dz " value="caloCell_dz/segmentsinZ "/> + <constant name="caloRing_sphi" value="caloCell_sphi"/> + <constant name="caloRing_dphi" value="caloCell_dphi"/> + + <constant name="nomucounter" value="4"/> + <constant name="muBox_radius" value="350.*cm"/> + <constant name="muBox_width " value="muBox_radius-5.*cm"/> + <constant name="muBox_thick " value="1.*cm"/> + <constant name="muBox_length" value="expHall_z-10*cm"/> + </define> + + <materials> + <!-- Ar = new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); --> + <!-- material name="ArgonGas" z="18." a="39.95*g/mole" density="1.782*mg/cm3"/--> + <!-- Silicon = new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); --> + <!--material name="Silicon" z="14." a="28.09*g/mole" density="2.33*g/cm3" /--> + + <material name="ArgonGas"> + <D type="density" unit="mg/cm3" value="1.782" /> + <fraction n="1" ref="Ar" /> + </material> + <material name="Silicon"> + <D type="density" unit="g/cm3" value="2.33" /> + <fraction n="1" ref="Si" /> + </material> + + <material name="Scintillator"> + <D value="1.032" unit="g/cm3"/> + <composite n="9" ref="C"/> + <composite n="10" ref="H"/> + </material> + + </materials> + + <!-- doe we need limits ? + <limits> + <limitset name="cal_limits"> + <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> + </limitset> + <limitset name="TPC_limits"> + <limit name="step_length_max" particles="*" value="10.0" unit="mm" /> + </limitset> + <limitset name="Tracker_limits"> + <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> + </limitset> + </limits> + --> + + <display> + <vis name="TrackerVis" r="1.0" g="0.0" b="1.0" alpha="1" showDaughters="true" visible="true"/> + <vis name="TrackerLayerVis" r="0.5" g="0.0" b="1.0" alpha="1" showDaughters="false" visible="true" wireframe="true"/> + <vis name="CaloVis" r="1.0" g="1.0" b="0.0" alpha="1" showDaughters="true" visible="true"/> + <vis name="CaloLayerVis" r="0.7" g="1.0" b="0.0" alpha="1" showDaughters="true" visible="true"/> + <vis name="MuonVis" r="0.0" g="1.0" b="1.0" alpha="1" showDaughters="true" visible="true" wireframe="true"/> + </display> + + <detectors> + <comment>Trackers</comment> + <detector name="TrackerN04" type="Tracker" vis="TrackerVis" id="1" readout="TrackerCollection" insideTrackingVolume="true"> + + <tubs rmin="trkTubs_rmin" rmax="trkTubs_rmax" dz="trkTubs_dz" phi0="trkTubs_sphi" deltaphi="trkTubs_dphi"/> + + <layer id="0" vis="TrackerLayerVis" rmin="tracker_radius0" rmax="tracker_radius0+tracker_thick" + dz="tracker_length0" phi0="trkTubs_sphi" deltaphi="trkTubs_dphi" material="silicon" /> + <layer id="1" vis="TrackerLayerVis" rmin="tracker_radius1" rmax="tracker_radius1+tracker_thick" + dz="tracker_length1" phi0="trkTubs_sphi" deltaphi="trkTubs_dphi" material="silicon" /> + <layer id="2" vis="TrackerLayerVis" rmin="tracker_radius2" rmax="tracker_radius2+tracker_thick" + dz="tracker_length2" phi0="trkTubs_sphi" deltaphi="trkTubs_dphi" material="silicon" /> + <layer id="3" vis="TrackerLayerVis" rmin="tracker_radius3" rmax="tracker_radius3+tracker_thick" + dz="tracker_length3" phi0="trkTubs_sphi" deltaphi="trkTubs_dphi" material="silicon" /> + <layer id="4" vis="TrackerLayerVis" rmin="tracker_radius4" rmax="tracker_radius4+tracker_thick" + dz="tracker_length4" phi0="trkTubs_sphi" deltaphi="trkTubs_dphi" material="silicon" /> + </detector> + + <comment>Calorimeters</comment> + + <detector name="CalorimeterN04" type="Calorimeter" vis="CaloVis" id="2" readout="CalorimeterCollection" + insideTrackingVolume="false"> + + <tubs rmin="caloTubs_rmin" rmax="caloTubs_rmax" dz="caloTubs_dz" phi0="caloTubs_sphi" deltaphi="caloTubs_dphi"/> + + <layer repeat="nocaloLayers" vis="CaloVis"> + <slice material = "Scintillator" thickness = "scinti_thick" sensitive = "yes"/> + <slice material = "Lead" thickness = "absorber_thick" /> + </layer> + + </detector> + + <detector name="MuonN04" type="Muon" vis="MuonVis" id="3" readout="MuonCollection" radius="muBox_radius" + insideTrackingVolume="false"> + <box width="muBox_width" thickness="muBox_thick" length="muBox_length" + repeat="nomucounter" deltaphi="360.*deg/nomucounter"/> + </detector> + + </detectors> + + <readouts> + <readout name="TrackerCollection"> + <id>system:5,side:-2,layer:9,module:8,sensor:8</id> + </readout> + + <readout name="CalorimeterCollection"> + <segmentation type="NonProjectiveCylinder" gridSizePhi="caloCell_dphi" gridSizeZ="caloRing_dz" /> + <id>system:6,stave:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id> + </readout> + + <readout name="MuonCollection"> + <segmentation type="ProjectiveCylinder" gridSizeY="30.0*mm" gridSizeZ="30.0*mm" /> + <id>system:6,stave:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id> + </readout> + + </readouts> + <fields> + <!-- see: ExN04Field.cc --> + <field type="solenoid" name="GlobalSolenoid" inner_field="3.0*tesla" + outer_field="0*tesla" zmax="100*cm" + inner_radius="50*cm" + outer_radius="world_side" /> + </fields> +</lccdd> diff --git a/examples/noviceN04/compact/elements.xml b/examples/noviceN04/compact/elements.xml new file mode 100644 index 0000000000000000000000000000000000000000..e714c3a5cd544e748dd2941967cff515c0b77efc --- /dev/null +++ b/examples/noviceN04/compact/elements.xml @@ -0,0 +1,884 @@ +<materials> + <element Z="89" formula="Ac" name="Ac" > + <atom type="A" unit="g/mol" value="227.028" /> + </element> + <material formula="Ac" name="Actinium" state="solid" > + <RL type="X0" unit="cm" value="0.601558" /> + <NIL type="lambda" unit="cm" value="21.2048" /> + <D type="density" unit="g/cm3" value="10.07" /> + <composite n="1" ref="Ac" /> + </material> + <element Z="47" formula="Ag" name="Ag" > + <atom type="A" unit="g/mol" value="107.868" /> + </element> + <material formula="Ag" name="Silver" state="solid" > + <RL type="X0" unit="cm" value="0.854292" /> + <NIL type="lambda" unit="cm" value="15.8546" /> + <D type="density" unit="g/cm3" value="10.5" /> + <composite n="1" ref="Ag" /> + </material> + <element Z="13" formula="Al" name="Al" > + <atom type="A" unit="g/mol" value="26.9815" /> + </element> + <material formula="Al" name="Aluminum" state="solid" > + <RL type="X0" unit="cm" value="8.89632" /> + <NIL type="lambda" unit="cm" value="38.8766" /> + <D type="density" unit="g/cm3" value="2.699" /> + <composite n="1" ref="Al" /> + </material> + <element Z="95" formula="Am" name="Am" > + <atom type="A" unit="g/mol" value="243.061" /> + </element> + <material formula="Am" name="Americium" state="solid" > + <RL type="X0" unit="cm" value="0.42431" /> + <NIL type="lambda" unit="cm" value="15.9812" /> + <D type="density" unit="g/cm3" value="13.67" /> + <composite n="1" ref="Am" /> + </material> + <element Z="18" formula="Ar" name="Ar" > + <atom type="A" unit="g/mol" value="39.9477" /> + </element> + <material formula="Ar" name="Argon" state="gas" > + <RL type="X0" unit="cm" value="11762.1" /> + <NIL type="lambda" unit="cm" value="71926" /> + <D type="density" unit="g/cm3" value="0.00166201" /> + <composite n="1" ref="Ar" /> + </material> + <element Z="33" formula="As" name="As" > + <atom type="A" unit="g/mol" value="74.9216" /> + </element> + <material formula="As" name="Arsenic" state="solid" > + <RL type="X0" unit="cm" value="2.0838" /> + <NIL type="lambda" unit="cm" value="25.7324" /> + <D type="density" unit="g/cm3" value="5.73" /> + <composite n="1" ref="As" /> + </material> + <element Z="85" formula="At" name="At" > + <atom type="A" unit="g/mol" value="209.987" /> + </element> + <material formula="At" name="Astatine" state="solid" > + <RL type="X0" unit="cm" value="0.650799" /> + <NIL type="lambda" unit="cm" value="22.3202" /> + <D type="density" unit="g/cm3" value="9.32" /> + <composite n="1" ref="At" /> + </material> + <element Z="79" formula="Au" name="Au" > + <atom type="A" unit="g/mol" value="196.967" /> + </element> + <material formula="Au" name="Gold" state="solid" > + <RL type="X0" unit="cm" value="0.334436" /> + <NIL type="lambda" unit="cm" value="10.5393" /> + <D type="density" unit="g/cm3" value="19.32" /> + <composite n="1" ref="Au" /> + </material> + <element Z="5" formula="B" name="B" > + <atom type="A" unit="g/mol" value="10.811" /> + </element> + <material formula="B" name="Boron" state="solid" > + <RL type="X0" unit="cm" value="22.2307" /> + <NIL type="lambda" unit="cm" value="32.2793" /> + <D type="density" unit="g/cm3" value="2.37" /> + <composite n="1" ref="B" /> + </material> + <element Z="56" formula="Ba" name="Ba" > + <atom type="A" unit="g/mol" value="137.327" /> + </element> + <material formula="Ba" name="Barium" state="solid" > + <RL type="X0" unit="cm" value="2.37332" /> + <NIL type="lambda" unit="cm" value="51.6743" /> + <D type="density" unit="g/cm3" value="3.5" /> + <composite n="1" ref="Ba" /> + </material> + <element Z="4" formula="Be" name="Be" > + <atom type="A" unit="g/mol" value="9.01218" /> + </element> + <material formula="Be" name="Beryllium" state="solid" > + <RL type="X0" unit="cm" value="35.276" /> + <NIL type="lambda" unit="cm" value="39.4488" /> + <D type="density" unit="g/cm3" value="1.848" /> + <composite n="1" ref="Be" /> + </material> + <element Z="83" formula="Bi" name="Bi" > + <atom type="A" unit="g/mol" value="208.98" /> + </element> + <material formula="Bi" name="Bismuth" state="solid" > + <RL type="X0" unit="cm" value="0.645388" /> + <NIL type="lambda" unit="cm" value="21.3078" /> + <D type="density" unit="g/cm3" value="9.747" /> + <composite n="1" ref="Bi" /> + </material> + <element Z="97" formula="Bk" name="Bk" > + <atom type="A" unit="g/mol" value="247.07" /> + </element> + <material formula="Bk" name="Berkelium" state="solid" > + <RL type="X0" unit="cm" value="0.406479" /> + <NIL type="lambda" unit="cm" value="15.6902" /> + <D type="density" unit="g/cm3" value="14" /> + <composite n="1" ref="Bk" /> + </material> + <element Z="35" formula="Br" name="Br" > + <atom type="A" unit="g/mol" value="79.9035" /> + </element> + <material formula="Br" name="Bromine" state="gas" > + <RL type="X0" unit="cm" value="1615.12" /> + <NIL type="lambda" unit="cm" value="21299" /> + <D type="density" unit="g/cm3" value="0.0070721" /> + <composite n="1" ref="Br" /> + </material> + <element Z="6" formula="C" name="C" > + <atom type="A" unit="g/mol" value="12.0107" /> + </element> + <material formula="C" name="Carbon" state="solid" > + <RL type="X0" unit="cm" value="21.3485" /> + <NIL type="lambda" unit="cm" value="40.1008" /> + <D type="density" unit="g/cm3" value="2" /> + <composite n="1" ref="C" /> + </material> + <element Z="20" formula="Ca" name="Ca" > + <atom type="A" unit="g/mol" value="40.078" /> + </element> + <material formula="Ca" name="Calcium" state="solid" > + <RL type="X0" unit="cm" value="10.4151" /> + <NIL type="lambda" unit="cm" value="77.3754" /> + <D type="density" unit="g/cm3" value="1.55" /> + <composite n="1" ref="Ca" /> + </material> + <element Z="48" formula="Cd" name="Cd" > + <atom type="A" unit="g/mol" value="112.411" /> + </element> + <material formula="Cd" name="Cadmium" state="solid" > + <RL type="X0" unit="cm" value="1.03994" /> + <NIL type="lambda" unit="cm" value="19.46" /> + <D type="density" unit="g/cm3" value="8.65" /> + <composite n="1" ref="Cd" /> + </material> + <element Z="58" formula="Ce" name="Ce" > + <atom type="A" unit="g/mol" value="140.115" /> + </element> + <material formula="Ce" name="Cerium" state="solid" > + <RL type="X0" unit="cm" value="1.19506" /> + <NIL type="lambda" unit="cm" value="27.3227" /> + <D type="density" unit="g/cm3" value="6.657" /> + <composite n="1" ref="Ce" /> + </material> + <element Z="98" formula="Cf" name="Cf" > + <atom type="A" unit="g/mol" value="251.08" /> + </element> + <material formula="Cf" name="Californium" state="solid" > + <RL type="X0" unit="cm" value="0.568328" /> + <NIL type="lambda" unit="cm" value="22.085" /> + <D type="density" unit="g/cm3" value="10" /> + <composite n="1" ref="Cf" /> + </material> + <element Z="17" formula="Cl" name="Cl" > + <atom type="A" unit="g/mol" value="35.4526" /> + </element> + <material formula="Cl" name="Chlorine" state="gas" > + <RL type="X0" unit="cm" value="6437.34" /> + <NIL type="lambda" unit="cm" value="38723.9" /> + <D type="density" unit="g/cm3" value="0.00299473" /> + <composite n="1" ref="Cl" /> + </material> + <element Z="96" formula="Cm" name="Cm" > + <atom type="A" unit="g/mol" value="247.07" /> + </element> + <material formula="Cm" name="Curium" state="solid" > + <RL type="X0" unit="cm" value="0.428706" /> + <NIL type="lambda" unit="cm" value="16.2593" /> + <D type="density" unit="g/cm3" value="13.51" /> + <composite n="1" ref="Cm" /> + </material> + <element Z="27" formula="Co" name="Co" > + <atom type="A" unit="g/mol" value="58.9332" /> + </element> + <material formula="Co" name="Cobalt" state="solid" > + <RL type="X0" unit="cm" value="1.53005" /> + <NIL type="lambda" unit="cm" value="15.2922" /> + <D type="density" unit="g/cm3" value="8.9" /> + <composite n="1" ref="Co" /> + </material> + <element Z="24" formula="Cr" name="Cr" > + <atom type="A" unit="g/mol" value="51.9961" /> + </element> + <material formula="Cr" name="Chromium" state="solid" > + <RL type="X0" unit="cm" value="2.0814" /> + <NIL type="lambda" unit="cm" value="18.1933" /> + <D type="density" unit="g/cm3" value="7.18" /> + <composite n="1" ref="Cr" /> + </material> + <element Z="55" formula="Cs" name="Cs" > + <atom type="A" unit="g/mol" value="132.905" /> + </element> + <material formula="Cs" name="Cesium" state="solid" > + <RL type="X0" unit="cm" value="4.4342" /> + <NIL type="lambda" unit="cm" value="95.317" /> + <D type="density" unit="g/cm3" value="1.873" /> + <composite n="1" ref="Cs" /> + </material> + <element Z="29" formula="Cu" name="Cu" > + <atom type="A" unit="g/mol" value="63.5456" /> + </element> + <material formula="Cu" name="Copper" state="solid" > + <RL type="X0" unit="cm" value="1.43558" /> + <NIL type="lambda" unit="cm" value="15.5141" /> + <D type="density" unit="g/cm3" value="8.96" /> + <composite n="1" ref="Cu" /> + </material> + <element Z="66" formula="Dy" name="Dy" > + <atom type="A" unit="g/mol" value="162.497" /> + </element> + <material formula="Dy" name="Dysprosium" state="solid" > + <RL type="X0" unit="cm" value="0.85614" /> + <NIL type="lambda" unit="cm" value="22.2923" /> + <D type="density" unit="g/cm3" value="8.55" /> + <composite n="1" ref="Dy" /> + </material> + <element Z="68" formula="Er" name="Er" > + <atom type="A" unit="g/mol" value="167.256" /> + </element> + <material formula="Er" name="Erbium" state="solid" > + <RL type="X0" unit="cm" value="0.788094" /> + <NIL type="lambda" unit="cm" value="21.2923" /> + <D type="density" unit="g/cm3" value="9.066" /> + <composite n="1" ref="Er" /> + </material> + <element Z="63" formula="Eu" name="Eu" > + <atom type="A" unit="g/mol" value="151.964" /> + </element> + <material formula="Eu" name="Europium" state="solid" > + <RL type="X0" unit="cm" value="1.41868" /> + <NIL type="lambda" unit="cm" value="35.6178" /> + <D type="density" unit="g/cm3" value="5.243" /> + <composite n="1" ref="Eu" /> + </material> + <element Z="9" formula="F" name="F" > + <atom type="A" unit="g/mol" value="18.9984" /> + </element> + <material formula="F" name="Fluorine" state="gas" > + <RL type="X0" unit="cm" value="20838.2" /> + <NIL type="lambda" unit="cm" value="59094.3" /> + <D type="density" unit="g/cm3" value="0.00158029" /> + <composite n="1" ref="F" /> + </material> + <element Z="26" formula="Fe" name="Fe" > + <atom type="A" unit="g/mol" value="55.8451" /> + </element> + <material formula="Fe" name="Iron" state="solid" > + <RL type="X0" unit="cm" value="1.75749" /> + <NIL type="lambda" unit="cm" value="16.959" /> + <D type="density" unit="g/cm3" value="7.874" /> + <composite n="1" ref="Fe" /> + </material> + <element Z="87" formula="Fr" name="Fr" > + <atom type="A" unit="g/mol" value="223.02" /> + </element> + <material formula="Fr" name="Francium" state="solid" > + <RL type="X0" unit="cm" value="6.18826" /> + <NIL type="lambda" unit="cm" value="212.263" /> + <D type="density" unit="g/cm3" value="1" /> + <composite n="1" ref="Fr" /> + </material> + <element Z="31" formula="Ga" name="Ga" > + <atom type="A" unit="g/mol" value="69.7231" /> + </element> + <material formula="Ga" name="Gallium" state="solid" > + <RL type="X0" unit="cm" value="2.1128" /> + <NIL type="lambda" unit="cm" value="24.3351" /> + <D type="density" unit="g/cm3" value="5.904" /> + <composite n="1" ref="Ga" /> + </material> + <element Z="64" formula="Gd" name="Gd" > + <atom type="A" unit="g/mol" value="157.252" /> + </element> + <material formula="Gd" name="Gadolinium" state="solid" > + <RL type="X0" unit="cm" value="0.947208" /> + <NIL type="lambda" unit="cm" value="23.9377" /> + <D type="density" unit="g/cm3" value="7.9004" /> + <composite n="1" ref="Gd" /> + </material> + <element Z="32" formula="Ge" name="Ge" > + <atom type="A" unit="g/mol" value="72.6128" /> + </element> + <material formula="Ge" name="Germanium" state="solid" > + <RL type="X0" unit="cm" value="2.3013" /> + <NIL type="lambda" unit="cm" value="27.3344" /> + <D type="density" unit="g/cm3" value="5.323" /> + <composite n="1" ref="Ge" /> + </material> + <element Z="1" formula="H" name="H" > + <atom type="A" unit="g/mol" value="1.00794" /> + </element> + <material formula="H" name="Hydrogen" state="gas" > + <RL type="X0" unit="cm" value="752776" /> + <NIL type="lambda" unit="cm" value="421239" /> + <D type="density" unit="g/cm3" value="8.3748e-05" /> + <composite n="1" ref="H" /> + </material> + <element Z="2" formula="He" name="He" > + <atom type="A" unit="g/mol" value="4.00264" /> + </element> + <material formula="He" name="Helium" state="gas" > + <RL type="X0" unit="cm" value="567113" /> + <NIL type="lambda" unit="cm" value="334266" /> + <D type="density" unit="g/cm3" value="0.000166322" /> + <composite n="1" ref="He" /> + </material> + <element Z="72" formula="Hf" name="Hf" > + <atom type="A" unit="g/mol" value="178.485" /> + </element> + <material formula="Hf" name="Hafnium" state="solid" > + <RL type="X0" unit="cm" value="0.517717" /> + <NIL type="lambda" unit="cm" value="14.7771" /> + <D type="density" unit="g/cm3" value="13.31" /> + <composite n="1" ref="Hf" /> + </material> + <element Z="80" formula="Hg" name="Hg" > + <atom type="A" unit="g/mol" value="200.599" /> + </element> + <material formula="Hg" name="Mercury" state="solid" > + <RL type="X0" unit="cm" value="0.475241" /> + <NIL type="lambda" unit="cm" value="15.105" /> + <D type="density" unit="g/cm3" value="13.546" /> + <composite n="1" ref="Hg" /> + </material> + <element Z="67" formula="Ho" name="Ho" > + <atom type="A" unit="g/mol" value="164.93" /> + </element> + <material formula="Ho" name="Holmium" state="solid" > + <RL type="X0" unit="cm" value="0.822447" /> + <NIL type="lambda" unit="cm" value="21.8177" /> + <D type="density" unit="g/cm3" value="8.795" /> + <composite n="1" ref="Ho" /> + </material> + <element Z="53" formula="I" name="I" > + <atom type="A" unit="g/mol" value="126.904" /> + </element> + <material formula="I" name="Iodine" state="solid" > + <RL type="X0" unit="cm" value="1.72016" /> + <NIL type="lambda" unit="cm" value="35.6583" /> + <D type="density" unit="g/cm3" value="4.93" /> + <composite n="1" ref="I" /> + </material> + <element Z="49" formula="In" name="In" > + <atom type="A" unit="g/mol" value="114.818" /> + </element> + <material formula="In" name="Indium" state="solid" > + <RL type="X0" unit="cm" value="1.21055" /> + <NIL type="lambda" unit="cm" value="23.2468" /> + <D type="density" unit="g/cm3" value="7.31" /> + <composite n="1" ref="In" /> + </material> + <element Z="77" formula="Ir" name="Ir" > + <atom type="A" unit="g/mol" value="192.216" /> + </element> + <material formula="Ir" name="Iridium" state="solid" > + <RL type="X0" unit="cm" value="0.294142" /> + <NIL type="lambda" unit="cm" value="9.01616" /> + <D type="density" unit="g/cm3" value="22.42" /> + <composite n="1" ref="Ir" /> + </material> + <element Z="19" formula="K" name="K" > + <atom type="A" unit="g/mol" value="39.0983" /> + </element> + <material formula="K" name="Potassium" state="solid" > + <RL type="X0" unit="cm" value="20.0871" /> + <NIL type="lambda" unit="cm" value="138.041" /> + <D type="density" unit="g/cm3" value="0.862" /> + <composite n="1" ref="K" /> + </material> + <element Z="36" formula="Kr" name="Kr" > + <atom type="A" unit="g/mol" value="83.7993" /> + </element> + <material formula="Kr" name="Krypton" state="gas" > + <RL type="X0" unit="cm" value="3269.44" /> + <NIL type="lambda" unit="cm" value="43962.9" /> + <D type="density" unit="g/cm3" value="0.00347832" /> + <composite n="1" ref="Kr" /> + </material> + <element Z="57" formula="La" name="La" > + <atom type="A" unit="g/mol" value="138.905" /> + </element> + <material formula="La" name="Lanthanum" state="solid" > + <RL type="X0" unit="cm" value="1.32238" /> + <NIL type="lambda" unit="cm" value="29.441" /> + <D type="density" unit="g/cm3" value="6.154" /> + <composite n="1" ref="La" /> + </material> + <element Z="3" formula="Li" name="Li" > + <atom type="A" unit="g/mol" value="6.94003" /> + </element> + <material formula="Li" name="Lithium" state="solid" > + <RL type="X0" unit="cm" value="154.997" /> + <NIL type="lambda" unit="cm" value="124.305" /> + <D type="density" unit="g/cm3" value="0.534" /> + <composite n="1" ref="Li" /> + </material> + <element Z="71" formula="Lu" name="Lu" > + <atom type="A" unit="g/mol" value="174.967" /> + </element> + <material formula="Lu" name="Lutetium" state="solid" > + <RL type="X0" unit="cm" value="0.703651" /> + <NIL type="lambda" unit="cm" value="19.8916" /> + <D type="density" unit="g/cm3" value="9.84" /> + <composite n="1" ref="Lu" /> + </material> + <element Z="12" formula="Mg" name="Mg" > + <atom type="A" unit="g/mol" value="24.305" /> + </element> + <material formula="Mg" name="Magnesium" state="solid" > + <RL type="X0" unit="cm" value="14.3859" /> + <NIL type="lambda" unit="cm" value="58.7589" /> + <D type="density" unit="g/cm3" value="1.74" /> + <composite n="1" ref="Mg" /> + </material> + <element Z="25" formula="Mn" name="Mn" > + <atom type="A" unit="g/mol" value="54.938" /> + </element> + <material formula="Mn" name="Manganese" state="solid" > + <RL type="X0" unit="cm" value="1.96772" /> + <NIL type="lambda" unit="cm" value="17.8701" /> + <D type="density" unit="g/cm3" value="7.44" /> + <composite n="1" ref="Mn" /> + </material> + <element Z="42" formula="Mo" name="Mo" > + <atom type="A" unit="g/mol" value="95.9313" /> + </element> + <material formula="Mo" name="Molybdenum" state="solid" > + <RL type="X0" unit="cm" value="0.959107" /> + <NIL type="lambda" unit="cm" value="15.6698" /> + <D type="density" unit="g/cm3" value="10.22" /> + <composite n="1" ref="Mo" /> + </material> + <element Z="7" formula="N" name="N" > + <atom type="A" unit="g/mol" value="14.0068" /> + </element> + <material formula="N" name="Nitrogen" state="gas" > + <RL type="X0" unit="cm" value="32602.2" /> + <NIL type="lambda" unit="cm" value="72430.3" /> + <D type="density" unit="g/cm3" value="0.0011652" /> + <composite n="1" ref="N" /> + </material> + <element Z="11" formula="Na" name="Na" > + <atom type="A" unit="g/mol" value="22.9898" /> + </element> + <material formula="Na" name="Sodium" state="solid" > + <RL type="X0" unit="cm" value="28.5646" /> + <NIL type="lambda" unit="cm" value="102.463" /> + <D type="density" unit="g/cm3" value="0.971" /> + <composite n="1" ref="Na" /> + </material> + <element Z="41" formula="Nb" name="Nb" > + <atom type="A" unit="g/mol" value="92.9064" /> + </element> + <material formula="Nb" name="Niobium" state="solid" > + <RL type="X0" unit="cm" value="1.15783" /> + <NIL type="lambda" unit="cm" value="18.4846" /> + <D type="density" unit="g/cm3" value="8.57" /> + <composite n="1" ref="Nb" /> + </material> + <element Z="60" formula="Nd" name="Nd" > + <atom type="A" unit="g/mol" value="144.236" /> + </element> + <material formula="Nd" name="Neodymium" state="solid" > + <RL type="X0" unit="cm" value="1.11667" /> + <NIL type="lambda" unit="cm" value="26.6308" /> + <D type="density" unit="g/cm3" value="6.9" /> + <composite n="1" ref="Nd" /> + </material> + <element Z="10" formula="Ne" name="Ne" > + <atom type="A" unit="g/mol" value="20.18" /> + </element> + <material formula="Ne" name="Neon" state="gas" > + <RL type="X0" unit="cm" value="34504.8" /> + <NIL type="lambda" unit="cm" value="114322" /> + <D type="density" unit="g/cm3" value="0.000838505" /> + <composite n="1" ref="Ne" /> + </material> + <element Z="28" formula="Ni" name="Ni" > + <atom type="A" unit="g/mol" value="58.6933" /> + </element> + <material formula="Ni" name="Nickel" state="solid" > + <RL type="X0" unit="cm" value="1.42422" /> + <NIL type="lambda" unit="cm" value="15.2265" /> + <D type="density" unit="g/cm3" value="8.902" /> + <composite n="1" ref="Ni" /> + </material> + <element Z="93" formula="Np" name="Np" > + <atom type="A" unit="g/mol" value="237.048" /> + </element> + <material formula="Np" name="Neptunium" state="solid" > + <RL type="X0" unit="cm" value="0.289676" /> + <NIL type="lambda" unit="cm" value="10.6983" /> + <D type="density" unit="g/cm3" value="20.25" /> + <composite n="1" ref="Np" /> + </material> + <element Z="8" formula="O" name="O" > + <atom type="A" unit="g/mol" value="15.9994" /> + </element> + <material formula="O" name="Oxygen" state="gas" > + <RL type="X0" unit="cm" value="25713.8" /> + <NIL type="lambda" unit="cm" value="66233.9" /> + <D type="density" unit="g/cm3" value="0.00133151" /> + <composite n="1" ref="O" /> + </material> + <element Z="76" formula="Os" name="Os" > + <atom type="A" unit="g/mol" value="190.225" /> + </element> + <material formula="Os" name="Osmium" state="solid" > + <RL type="X0" unit="cm" value="0.295861" /> + <NIL type="lambda" unit="cm" value="8.92553" /> + <D type="density" unit="g/cm3" value="22.57" /> + <composite n="1" ref="Os" /> + </material> + <element Z="15" formula="P" name="P" > + <atom type="A" unit="g/mol" value="30.9738" /> + </element> + <material formula="P" name="Phosphorus" state="solid" > + <RL type="X0" unit="cm" value="9.63879" /> + <NIL type="lambda" unit="cm" value="49.9343" /> + <D type="density" unit="g/cm3" value="2.2" /> + <composite n="1" ref="P" /> + </material> + <element Z="91" formula="Pa" name="Pa" > + <atom type="A" unit="g/mol" value="231.036" /> + </element> + <material formula="Pa" name="Protactinium" state="solid" > + <RL type="X0" unit="cm" value="0.38607" /> + <NIL type="lambda" unit="cm" value="13.9744" /> + <D type="density" unit="g/cm3" value="15.37" /> + <composite n="1" ref="Pa" /> + </material> + <element Z="82" formula="Pb" name="Pb" > + <atom type="A" unit="g/mol" value="207.217" /> + </element> + <material formula="Pb" name="Lead" state="solid" > + <RL type="X0" unit="cm" value="0.561253" /> + <NIL type="lambda" unit="cm" value="18.2607" /> + <D type="density" unit="g/cm3" value="11.35" /> + <composite n="1" ref="Pb" /> + </material> + <element Z="46" formula="Pd" name="Pd" > + <atom type="A" unit="g/mol" value="106.415" /> + </element> + <material formula="Pd" name="Palladium" state="solid" > + <RL type="X0" unit="cm" value="0.765717" /> + <NIL type="lambda" unit="cm" value="13.7482" /> + <D type="density" unit="g/cm3" value="12.02" /> + <composite n="1" ref="Pd" /> + </material> + <element Z="61" formula="Pm" name="Pm" > + <atom type="A" unit="g/mol" value="144.913" /> + </element> + <material formula="Pm" name="Promethium" state="solid" > + <RL type="X0" unit="cm" value="1.04085" /> + <NIL type="lambda" unit="cm" value="25.4523" /> + <D type="density" unit="g/cm3" value="7.22" /> + <composite n="1" ref="Pm" /> + </material> + <element Z="84" formula="Po" name="Po" > + <atom type="A" unit="g/mol" value="208.982" /> + </element> + <material formula="Po" name="Polonium" state="solid" > + <RL type="X0" unit="cm" value="0.661092" /> + <NIL type="lambda" unit="cm" value="22.2842" /> + <D type="density" unit="g/cm3" value="9.32" /> + <composite n="1" ref="Po" /> + </material> + <element Z="59" formula="Pr" name="Pr" > + <atom type="A" unit="g/mol" value="140.908" /> + </element> + <material formula="Pr" name="Praseodymium" state="solid" > + <RL type="X0" unit="cm" value="1.1562" /> + <NIL type="lambda" unit="cm" value="27.1312" /> + <D type="density" unit="g/cm3" value="6.71" /> + <composite n="1" ref="Pr" /> + </material> + <element Z="78" formula="Pt" name="Pt" > + <atom type="A" unit="g/mol" value="195.078" /> + </element> + <material formula="Pt" name="Platinum" state="solid" > + <RL type="X0" unit="cm" value="0.305053" /> + <NIL type="lambda" unit="cm" value="9.46584" /> + <D type="density" unit="g/cm3" value="21.45" /> + <composite n="1" ref="Pt" /> + </material> + <element Z="94" formula="Pu" name="Pu" > + <atom type="A" unit="g/mol" value="244.064" /> + </element> + <material formula="Pu" name="Plutonium" state="solid" > + <RL type="X0" unit="cm" value="0.298905" /> + <NIL type="lambda" unit="cm" value="11.0265" /> + <D type="density" unit="g/cm3" value="19.84" /> + <composite n="1" ref="Pu" /> + </material> + <element Z="88" formula="Ra" name="Ra" > + <atom type="A" unit="g/mol" value="226.025" /> + </element> + <material formula="Ra" name="Radium" state="solid" > + <RL type="X0" unit="cm" value="1.22987" /> + <NIL type="lambda" unit="cm" value="42.6431" /> + <D type="density" unit="g/cm3" value="5" /> + <composite n="1" ref="Ra" /> + </material> + <element Z="37" formula="Rb" name="Rb" > + <atom type="A" unit="g/mol" value="85.4677" /> + </element> + <material formula="Rb" name="Rubidium" state="solid" > + <RL type="X0" unit="cm" value="7.19774" /> + <NIL type="lambda" unit="cm" value="100.218" /> + <D type="density" unit="g/cm3" value="1.532" /> + <composite n="1" ref="Rb" /> + </material> + <element Z="75" formula="Re" name="Re" > + <atom type="A" unit="g/mol" value="186.207" /> + </element> + <material formula="Re" name="Rhenium" state="solid" > + <RL type="X0" unit="cm" value="0.318283" /> + <NIL type="lambda" unit="cm" value="9.5153" /> + <D type="density" unit="g/cm3" value="21.02" /> + <composite n="1" ref="Re" /> + </material> + <element Z="45" formula="Rh" name="Rh" > + <atom type="A" unit="g/mol" value="102.906" /> + </element> + <material formula="Rh" name="Rhodium" state="solid" > + <RL type="X0" unit="cm" value="0.746619" /> + <NIL type="lambda" unit="cm" value="13.2083" /> + <D type="density" unit="g/cm3" value="12.41" /> + <composite n="1" ref="Rh" /> + </material> + <element Z="86" formula="Rn" name="Rn" > + <atom type="A" unit="g/mol" value="222.018" /> + </element> + <material formula="Rn" name="Radon" state="gas" > + <RL type="X0" unit="cm" value="697.777" /> + <NIL type="lambda" unit="cm" value="23532" /> + <D type="density" unit="g/cm3" value="0.00900662" /> + <composite n="1" ref="Rn" /> + </material> + <element Z="44" formula="Ru" name="Ru" > + <atom type="A" unit="g/mol" value="101.065" /> + </element> + <material formula="Ru" name="Ruthenium" state="solid" > + <RL type="X0" unit="cm" value="0.764067" /> + <NIL type="lambda" unit="cm" value="13.1426" /> + <D type="density" unit="g/cm3" value="12.41" /> + <composite n="1" ref="Ru" /> + </material> + <element Z="16" formula="S" name="S" > + <atom type="A" unit="g/mol" value="32.0661" /> + </element> + <material formula="S" name="Sulfur" state="solid" > + <RL type="X0" unit="cm" value="9.74829" /> + <NIL type="lambda" unit="cm" value="55.6738" /> + <D type="density" unit="g/cm3" value="2" /> + <composite n="1" ref="S" /> + </material> + <element Z="51" formula="Sb" name="Sb" > + <atom type="A" unit="g/mol" value="121.76" /> + </element> + <material formula="Sb" name="Antimony" state="solid" > + <RL type="X0" unit="cm" value="1.30401" /> + <NIL type="lambda" unit="cm" value="25.8925" /> + <D type="density" unit="g/cm3" value="6.691" /> + <composite n="1" ref="Sb" /> + </material> + <element Z="21" formula="Sc" name="Sc" > + <atom type="A" unit="g/mol" value="44.9559" /> + </element> + <material formula="Sc" name="Scandium" state="solid" > + <RL type="X0" unit="cm" value="5.53545" /> + <NIL type="lambda" unit="cm" value="41.609" /> + <D type="density" unit="g/cm3" value="2.989" /> + <composite n="1" ref="Sc" /> + </material> + <element Z="34" formula="Se" name="Se" > + <atom type="A" unit="g/mol" value="78.9594" /> + </element> + <material formula="Se" name="Selenium" state="solid" > + <RL type="X0" unit="cm" value="2.64625" /> + <NIL type="lambda" unit="cm" value="33.356" /> + <D type="density" unit="g/cm3" value="4.5" /> + <composite n="1" ref="Se" /> + </material> + <element Z="14" formula="Si" name="Si" > + <atom type="A" unit="g/mol" value="28.0854" /> + </element> + <material formula="Si" name="Silicon" state="solid" > + <RL type="X0" unit="cm" value="9.36607" /> + <NIL type="lambda" unit="cm" value="45.7531" /> + <D type="density" unit="g/cm3" value="2.33" /> + <composite n="1" ref="Si" /> + </material> + <element Z="62" formula="Sm" name="Sm" > + <atom type="A" unit="g/mol" value="150.366" /> + </element> + <material formula="Sm" name="Samarium" state="solid" > + <RL type="X0" unit="cm" value="1.01524" /> + <NIL type="lambda" unit="cm" value="24.9892" /> + <D type="density" unit="g/cm3" value="7.46" /> + <composite n="1" ref="Sm" /> + </material> + <element Z="50" formula="Sn" name="Sn" > + <atom type="A" unit="g/mol" value="118.71" /> + </element> + <material formula="Sn" name="Tin" state="solid" > + <RL type="X0" unit="cm" value="1.20637" /> + <NIL type="lambda" unit="cm" value="23.4931" /> + <D type="density" unit="g/cm3" value="7.31" /> + <composite n="1" ref="Sn" /> + </material> + <element Z="38" formula="Sr" name="Sr" > + <atom type="A" unit="g/mol" value="87.6166" /> + </element> + <material formula="Sr" name="Strontium" state="solid" > + <RL type="X0" unit="cm" value="4.237" /> + <NIL type="lambda" unit="cm" value="61.0238" /> + <D type="density" unit="g/cm3" value="2.54" /> + <composite n="1" ref="Sr" /> + </material> + <element Z="73" formula="Ta" name="Ta" > + <atom type="A" unit="g/mol" value="180.948" /> + </element> + <material formula="Ta" name="Tantalum" state="solid" > + <RL type="X0" unit="cm" value="0.409392" /> + <NIL type="lambda" unit="cm" value="11.8846" /> + <D type="density" unit="g/cm3" value="16.654" /> + <composite n="1" ref="Ta" /> + </material> + <element Z="65" formula="Tb" name="Tb" > + <atom type="A" unit="g/mol" value="158.925" /> + </element> + <material formula="Tb" name="Terbium" state="solid" > + <RL type="X0" unit="cm" value="0.893977" /> + <NIL type="lambda" unit="cm" value="23.0311" /> + <D type="density" unit="g/cm3" value="8.229" /> + <composite n="1" ref="Tb" /> + </material> + <element Z="43" formula="Tc" name="Tc" > + <atom type="A" unit="g/mol" value="97.9072" /> + </element> + <material formula="Tc" name="Technetium" state="solid" > + <RL type="X0" unit="cm" value="0.833149" /> + <NIL type="lambda" unit="cm" value="14.0185" /> + <D type="density" unit="g/cm3" value="11.5" /> + <composite n="1" ref="Tc" /> + </material> + <element Z="52" formula="Te" name="Te" > + <atom type="A" unit="g/mol" value="127.603" /> + </element> + <material formula="Te" name="Tellurium" state="solid" > + <RL type="X0" unit="cm" value="1.41457" /> + <NIL type="lambda" unit="cm" value="28.1797" /> + <D type="density" unit="g/cm3" value="6.24" /> + <composite n="1" ref="Te" /> + </material> + <element Z="90" formula="Th" name="Th" > + <atom type="A" unit="g/mol" value="232.038" /> + </element> + <material formula="Th" name="Thorium" state="solid" > + <RL type="X0" unit="cm" value="0.51823" /> + <NIL type="lambda" unit="cm" value="18.353" /> + <D type="density" unit="g/cm3" value="11.72" /> + <composite n="1" ref="Th" /> + </material> + <element Z="22" formula="Ti" name="Ti" > + <atom type="A" unit="g/mol" value="47.8667" /> + </element> + <material formula="Ti" name="Titanium" state="solid" > + <RL type="X0" unit="cm" value="3.5602" /> + <NIL type="lambda" unit="cm" value="27.9395" /> + <D type="density" unit="g/cm3" value="4.54" /> + <composite n="1" ref="Ti" /> + </material> + <element Z="81" formula="Tl" name="Tl" > + <atom type="A" unit="g/mol" value="204.383" /> + </element> + <material formula="Tl" name="Thallium" state="solid" > + <RL type="X0" unit="cm" value="0.547665" /> + <NIL type="lambda" unit="cm" value="17.6129" /> + <D type="density" unit="g/cm3" value="11.72" /> + <composite n="1" ref="Tl" /> + </material> + <element Z="69" formula="Tm" name="Tm" > + <atom type="A" unit="g/mol" value="168.934" /> + </element> + <material formula="Tm" name="Thulium" state="solid" > + <RL type="X0" unit="cm" value="0.754428" /> + <NIL type="lambda" unit="cm" value="20.7522" /> + <D type="density" unit="g/cm3" value="9.321" /> + <composite n="1" ref="Tm" /> + </material> + <element Z="92" formula="U" name="U" > + <atom type="A" unit="g/mol" value="238.029" /> + </element> + <material formula="U" name="Uranium" state="solid" > + <RL type="X0" unit="cm" value="0.31663" /> + <NIL type="lambda" unit="cm" value="11.4473" /> + <D type="density" unit="g/cm3" value="18.95" /> + <composite n="1" ref="U" /> + </material> + <element Z="23" formula="V" name="V" > + <atom type="A" unit="g/mol" value="50.9415" /> + </element> + <material formula="V" name="Vanadium" state="solid" > + <RL type="X0" unit="cm" value="2.59285" /> + <NIL type="lambda" unit="cm" value="21.2187" /> + <D type="density" unit="g/cm3" value="6.11" /> + <composite n="1" ref="V" /> + </material> + <element Z="74" formula="W" name="W" > + <atom type="A" unit="g/mol" value="183.842" /> + </element> + <material formula="W" name="Tungsten" state="solid" > + <RL type="X0" unit="cm" value="0.350418" /> + <NIL type="lambda" unit="cm" value="10.3057" /> + <D type="density" unit="g/cm3" value="19.3" /> + <composite n="1" ref="W" /> + </material> + <element Z="54" formula="Xe" name="Xe" > + <atom type="A" unit="g/mol" value="131.292" /> + </element> + <material formula="Xe" name="Xenon" state="gas" > + <RL type="X0" unit="cm" value="1546.2" /> + <NIL type="lambda" unit="cm" value="32477.9" /> + <D type="density" unit="g/cm3" value="0.00548536" /> + <composite n="1" ref="Xe" /> + </material> + <element Z="39" formula="Y" name="Y" > + <atom type="A" unit="g/mol" value="88.9058" /> + </element> + <material formula="Y" name="Yttrium" state="solid" > + <RL type="X0" unit="cm" value="2.32943" /> + <NIL type="lambda" unit="cm" value="34.9297" /> + <D type="density" unit="g/cm3" value="4.469" /> + <composite n="1" ref="Y" /> + </material> + <element Z="70" formula="Yb" name="Yb" > + <atom type="A" unit="g/mol" value="173.038" /> + </element> + <material formula="Yb" name="Ytterbium" state="solid" > + <RL type="X0" unit="cm" value="1.04332" /> + <NIL type="lambda" unit="cm" value="28.9843" /> + <D type="density" unit="g/cm3" value="6.73" /> + <composite n="1" ref="Yb" /> + </material> + <element Z="30" formula="Zn" name="Zn" > + <atom type="A" unit="g/mol" value="65.3955" /> + </element> + <material formula="Zn" name="Zinc" state="solid" > + <RL type="X0" unit="cm" value="1.74286" /> + <NIL type="lambda" unit="cm" value="19.8488" /> + <D type="density" unit="g/cm3" value="7.133" /> + <composite n="1" ref="Zn" /> + </material> + <element Z="40" formula="Zr" name="Zr" > + <atom type="A" unit="g/mol" value="91.2236" /> + </element> + <material formula="Zr" name="Zirconium" state="solid" > + <RL type="X0" unit="cm" value="1.56707" /> + <NIL type="lambda" unit="cm" value="24.2568" /> + <D type="density" unit="g/cm3" value="6.506" /> + <composite n="1" ref="Zr" /> + </material> +</materials> \ No newline at end of file diff --git a/examples/noviceN04/compact/geant4.xml b/examples/noviceN04/compact/geant4.xml new file mode 100644 index 0000000000000000000000000000000000000000..edffb935ccf96125a714d5e85e657f3b63328076 --- /dev/null +++ b/examples/noviceN04/compact/geant4.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> +<geant4> + <sensitive_detectors> + + <sd name="TrackerN04" + type="Geant4Tracker" + ecut="1.0*keV" + verbose="true" + hit_aggregation="position"> + </sd> + <sd name="CalorimeterN04" + type="Geant4Calorimeter" + ecut="0.5*keV" + verbose="true" + hit_aggregation="position"> + </sd> + <sd name="MuonN04" + type="Geant4Calorimeter" + ecut="0.5*keV" + verbose="true" + hit_aggregation="position"> + </sd> + + </sensitive_detectors> + + <properties> + <attributes name="geant4_field" + id="0" + type="Geant4FieldSetup" + object="GlobalSolenoid" + global="true" + min_chord_step="0.01*mm" + delta_chord="0.25*mm" + delta_intersection="1e-05*mm" + delta_one_step="0.001*mm" + eps_min="5e-05*mm" + eps_max="0.001*mm" + stepper="HelixSimpleRunge" + equation="Mag_UsualEqRhs"> + </attributes> + </properties> + +</geant4> diff --git a/examples/noviceN04/compact/materials.xml b/examples/noviceN04/compact/materials.xml new file mode 100644 index 0000000000000000000000000000000000000000..6717ea6d8cc4eecf88598066b02590079df69add --- /dev/null +++ b/examples/noviceN04/compact/materials.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> +<materials> + + <!-- + Air by weight from + + http://www.engineeringtoolbox.com/air-composition-24_212.html + --> + <material name="FR4"> + <D type="density" unit="g/cm3" value="1.7"/> + <fraction n="0.1808" ref="Si"/> + <fraction n="0.4056" ref="O"/> + <fraction n="0.2780" ref="C"/> + <fraction n="0.0684" ref="H"/> + <fraction n="0.0671" ref="Br"/> + </material> + + <material name="Air"> + <D type="density" unit="g/cm3" value="0.0012"/> + <fraction n="0.754" ref="N"/> + <fraction n="0.234" ref="O"/> + <fraction n="0.012" ref="Ar"/> + </material> + + <material name="Vacuum"> + <D type="density" unit="g/cm3" value="0.00000001" /> + <fraction n="1" ref="H" /> + </material> + + + <material name="Epoxy"> + <D type="density" value="1.3" unit="g/cm3"/> + <composite n="44" ref="H"/> + <composite n="15" ref="C"/> + <composite n="7" ref="O"/> + </material> + + <material name="Quartz"> + <D type="density" value="2.2" unit="g/cm3"/> + <composite n="1" ref="Si"/> + <composite n="2" ref="O"/> + </material> + + <material name="G10"> + <D type="density" value="1.7" unit="g/cm3"/> + <fraction n="0.08" ref="Cl"/> + <fraction n="0.773" ref="Quartz"/> + <fraction n="0.147" ref="Epoxy"/> + </material> + + <material name="Polystyrene"> + <D value="1.032" unit="g/cm3"/> + <composite n="19" ref="C"/> + <composite n="21" ref="H"/> + </material> + + <material name="Steel235"> + <D value="7.85" unit="g/cm3"/> + <fraction n="0.998" ref="Fe"/> + <fraction n=".002" ref="C"/> + </material> + + <material name="SiliconOxide"> + <D type="density" value="2.65" unit="g/cm3"/> + <composite n="1" ref="Si"/> + <composite n="2" ref="O"/> + </material> + + <material name="BoronOxide"> + <D type="density" value="2.46" unit="g/cm3"/> + <composite n="2" ref="B"/> + <composite n="3" ref="O"/> + </material> + + <material name="SodiumOxide"> + <D type="density" value="2.65" unit="g/cm3"/> + <composite n="2" ref="Na"/> + <composite n="1" ref="O"/> + </material> + + <material name="AluminumOxide"> + <D type="density" value="3.89" unit="g/cm3"/> + <composite n="2" ref="Al"/> + <composite n="3" ref="O"/> + </material> + + <material name="PyrexGlass"> + <D type="density" value="2.23" unit="g/cm3"/> + <fraction n="0.806" ref="SiliconOxide"/> + <fraction n="0.130" ref="BoronOxide"/> + <fraction n="0.040" ref="SodiumOxide"/> + <fraction n="0.023" ref="AluminumOxide"/> + </material> + + <material name="CarbonFiber"> + <D type="density" value="1.5" unit="g/cm3"/> + <fraction n="0.65" ref="C"/> + <fraction n="0.35" ref="Epoxy"/> + </material> + + <material name="CarbonFiber_50D"> + <D type="density" value="0.75" unit="g/cm3"/> + <fraction n="0.65" ref="C"/> + <fraction n="0.35" ref="Epoxy"/> + </material> + + <material name="Rohacell31"> + <D type="density" value="0.032" unit="g/cm3"/> + <composite n="9" ref="C"/> + <composite n="13" ref="H"/> + <composite n="2" ref="O"/> + <composite n="1" ref="N"/> + </material> + + <material name="Rohacell31_50D"> + <D type="density" value="0.016" unit="g/cm3"/> + <composite n="9" ref="C"/> + <composite n="13" ref="H"/> + <composite n="2" ref="O"/> + <composite n="1" ref="N"/> + </material> + + <material name="RPCGasDefault" state="gas"> + <D type="density" value="0.0037" unit="g/cm3"/> + <composite n="209" ref="C"/> + <composite n="239" ref="H"/> + <composite n="381" ref="F"/> + </material> + + <material name="PolystyreneFoam"> + <D type="density" value="0.0056" unit="g/cm3"/> + <fraction n="1.0" ref="Polystyrene"/> + </material> + + <material name="Kapton"> + <D value="1.43" unit="g/cm3" /> + <composite n="22" ref="C"/> + <composite n="10" ref="H" /> + <composite n="2" ref="N" /> + <composite n="5" ref="O" /> + </material> + + <material name="PEEK"> + <D value="1.37" unit="g/cm3" /> + <composite n="19" ref="C"/> + <composite n="12" ref="H" /> + <composite n="3" ref="O" /> + </material> + +</materials> diff --git a/examples/noviceN04/exampleN04.EMtest.in b/examples/noviceN04/exampleN04.EMtest.in new file mode 100644 index 0000000000000000000000000000000000000000..77fd29298cddbabfcfa26735f7ff145e730073be --- /dev/null +++ b/examples/noviceN04/exampleN04.EMtest.in @@ -0,0 +1,8 @@ +/mydet/generator particleGun +/mydet/reqmuon 1 +/mydet/isomuon 1 +/run/beamOn 1 +/gun/particle mu- +/gun/energy 10 TeV +/run/beamOn 2 +exit diff --git a/examples/noviceN04/exampleN04.EMtest.large_N.in b/examples/noviceN04/exampleN04.EMtest.large_N.in new file mode 100644 index 0000000000000000000000000000000000000000..808eb1404082c2880318c6cdd253c63976c1220a --- /dev/null +++ b/examples/noviceN04/exampleN04.EMtest.large_N.in @@ -0,0 +1,8 @@ +/mydet/generator particleGun +/mydet/reqmuon 1 +/mydet/isomuon 1 +/run/beamOn 1 +/gun/particle mu- +/gun/energy 10 TeV +/run/beamOn 20 +exit diff --git a/examples/noviceN04/exampleN04.EMtest.out b/examples/noviceN04/exampleN04.EMtest.out new file mode 100644 index 0000000000000000000000000000000000000000..b26bbd27662665a84e5c448d0244dbe2c8f92d8b --- /dev/null +++ b/examples/noviceN04/exampleN04.EMtest.out @@ -0,0 +1,498 @@ + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + +************************************************************* + Geant4 version Name: geant4-09-05-ref-00 (2-December-2011) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +<<< Geant4 Physics List simulation engine: QGSP_BERT 3.4 + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + OpenGLStoredX (OGL) + OpenGLImmediateX (OGLI) + OpenGLStoredX (OGLS) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByCharge + drawByParticleID + drawByOriginVolume + drawByAttribute + +Registered filter factories: + chargeFilter + particleFilter + originVolumeFilter + attributeFilter + +Some /vis commands (optionally) take a string to specify colour. +Available colours: + black, blue, cyan, gray, green, grey, magenta, red, white, yellow + + +phot: for gamma SubType= 12 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PhotoElectric : Emin= 0 eV Emax= 10 TeV FluoActive + +compt: for gamma SubType= 13 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 10 TeV + +conv: for gamma SubType= 14 + Lambda tables from 1.022 MeV to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitler : Emin= 0 eV Emax= 10 TeV + +msc: for e- SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc95 : Emin= 0 eV Emax= 10 TeV + +eIoni: for e- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 10 TeV + +eBrem: for e- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + LPM flag: 1 for E > 1 GeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGenUrban + eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGenUrban + +eIoni: for e+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 10 TeV + +eBrem: for e+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + LPM flag: 1 for E > 1 GeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGenUrban + eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGenUrban + +annihil: for e+ SubType= 5 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 10 TeV + +msc: for proton SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +hIoni: for proton SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +hBrems: for proton SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for proton SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +msc: for GenericIon SubType= 10 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +ionIoni: for GenericIon SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +hIoni: for anti_proton SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +msc: for kaon+ SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +hIoni: for kaon+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 1.05231 MeV + BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV + +hBrems: for kaon+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for kaon+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +hIoni: for kaon- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV + BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV + +hBrems: for kaon- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for kaon- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +muMsc: for mu+ SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 10 TeV + +muIoni: for mu+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + BetheBloch : Emin= 200 keV Emax= 1 GeV + MuBetheBloch : Emin= 1 GeV Emax= 10 TeV + +muBrems: for mu+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 10 TeV + +muPairProd: for mu+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for mu+ SubType= 1 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + 180 < Theta(degree) < 180; pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +muIoni: for mu- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + BetheBloch : Emin= 200 keV Emax= 1 GeV + MuBetheBloch : Emin= 1 GeV Emax= 10 TeV + +muBrems: for mu- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 10 TeV + +muPairProd: for mu- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for mu- SubType= 1 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + 180 < Theta(degree) < 180; pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +hIoni: for pi+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 297.505 keV + BetheBloch : Emin= 297.505 keV Emax= 10 TeV + +hBrems: for pi+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for pi+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +msc: for pi- SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +hIoni: for pi- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 297.505 keV + BetheBloch : Emin= 297.505 keV Emax= 10 TeV + +hBrems: for pi- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for pi- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV +============================================================================================ + HADRONIC PROCESSES SUMMARY (verbose level 1) + + Hadronic Processes for <anti_neutron> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + +AntiNeutronInelastic Models: G4LEAntiNeutronInelastic: Emin(GeV)= 0 Emax(GeV)= 25 + G4HEAntiNeutronInelastic: Emin(GeV)= 20 Emax(GeV)= 100000 + +AntiNeutronInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <anti_proton> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 0.1 + AntiAElastic: Emin(GeV)= 0.1 Emax(GeV)= 100000 + + hadElastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + AntiProtonInelastic Models: G4LEAntiProtonInelastic: Emin(GeV)= 0 Emax(GeV)= 25 + G4HEAntiProtonInelastic: Emin(GeV)= 20 Emax(GeV)= 100000 + + AntiProtonInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <e-> + ----------------------------------- + ElectroNuclear Models: CHIPSElectroNuclear: Emin(GeV)= 0 Emax(GeV)= 30000 + + ElectroNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <gamma> + ----------------------------------- + PhotonInelastic Models: CHIPSGammaNuclear: Emin(GeV)= 0 Emax(GeV)= 3.5 + TheoFSGenerator: Emin(GeV)= 3 Emax(GeV)= 100000 + + PhotonInelastic Crs sctns: PhotoNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <kaon+> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + KaonPlusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEKaonPlusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + KaonPlusInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <kaon-> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + KaonMinusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEKaonMinusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + KaonMinusInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <lambda> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + LambdaInelastic Models: G4LELambdaInelastic: Emin(GeV)= 0 Emax(GeV)= 25 + G4HELambdaInelastic: Emin(GeV)= 20 Emax(GeV)= 100000 + + LambdaInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <mu-> + muMinusCaptureAtRest + + Hadronic Processes for <neutron> + ----------------------------------- + hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: CHIPSElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + NeutronInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LENeutronInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + NeutronInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: Wellisch-Laidlaw cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + nCapture Models: G4LCapture: Emin(GeV)= 0 Emax(GeV)= 20000 + + nCapture Crs sctns: GheishaCaptureXS: Emin(GeV)= 0 Emax(GeV)= 100000 + + nFission Models: G4LFission: Emin(GeV)= 0 Emax(GeV)= 20000 + + nFission Crs sctns: GheishaFissionXS: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <pi+> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1 + hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000 + + hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + PionPlusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEPionPlusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + PionPlusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <pi-> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1 + hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000 + + hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + PionMinusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEPionMinusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + PionMinusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <proton> + ----------------------------------- + hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: CHIPSElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + ProtonInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEProtonInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + ProtonInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: Axen-Wellisch cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + +============================================================================================ +### Run 0 start. +Stage 0->1 : 1 hits found in the muon chamber. +Stage 1->2 : 1 isolated muon found. +>>> Event 0 + 31 hits are stored in ExN04TrackerHitsCollection. + 6 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.2842460248921 (GeV) + 1 hits are stored in ExN04MuonHitsCollection. +### Run 1 start. +Stage 0->1 : 1 hits found in the muon chamber. +Stage 1->2 : 1 isolated muon found. +>>> Event 0 + 5 hits are stored in ExN04TrackerHitsCollection. + 22 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 4.9525639764327 (GeV) + 1 hits are stored in ExN04MuonHitsCollection. +Stage 0->1 : 1 hits found in the muon chamber. +Stage 1->2 : 1 isolated muon found. +>>> Event 1 + 37 hits are stored in ExN04TrackerHitsCollection. + 29 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 14.067288207079 (GeV) + 1 hits are stored in ExN04MuonHitsCollection. + diff --git a/examples/noviceN04/exampleN04.cc b/examples/noviceN04/exampleN04.cc new file mode 100644 index 0000000000000000000000000000000000000000..db0e2178b7e78a032cd70579e14ff3b229dcb9f8 --- /dev/null +++ b/examples/noviceN04/exampleN04.cc @@ -0,0 +1,172 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: exampleN04.cc,v 1.19 2010-06-04 17:50:22 vnivanch Exp $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4RunManager.hh" +#include "G4UImanager.hh" + +#include "ExN04DetectorConstruction.hh" +#include "QGSP_BERT.hh" +#include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04RunAction.hh" +#include "ExN04EventAction.hh" +#include "ExN04StackingAction.hh" +#include "ExN04TrackingAction.hh" +#include "ExN04SteppingAction.hh" +#include "ExN04SteppingVerbose.hh" + +#include "DDG4/Geant4DetectorConstruction.h" +#include "DD4hep/LCDD.h" + +#ifdef G4VIS_USE +#include "G4VisExecutive.hh" +#endif + +#ifdef G4UI_USE +#include "G4UIExecutive.hh" +#endif + +int main(int argc,char** argv) +{ + // User Verbose output class + // + G4VSteppingVerbose* verbosity = new ExN04SteppingVerbose; + G4VSteppingVerbose::SetInstance(verbosity); + + // Run manager + // + G4RunManager* runManager = new G4RunManager; + DD4hep::Geometry::LCDD& lcdd = DD4hep::Geometry::LCDD::getInstance(); + + if( argc < 3 ){ + std::cout << " --- Usage: \n " + << " [1] exampleN04 file:../DDExamples/ILDExDet/compact/ILDEx.xml file:../DDExamples/ILDExDet/compact/geant4.xml run1_g4.mac \n" + << " [2] exampleN04 -i file:../DDExamples/ILDExDet/compact/ILDEx.xml file:../DDExamples/ILDExDet/compact/geant4.xml \n" + << " [1]: batch mode - [2]: interactive " << std::endl ; + exit( 0 ) ; + } + + + +//************************************************************** + + bool isBatchMode = ( std::string( argv[1] ) != "-i" ) ; + + int argStart = ( isBatchMode ? 1 : 2 ) ; + int argEnd = ( isBatchMode ? argc-1 : argc ) ; + + for(int i=argStart; i < argEnd ; ++i ) { + + // We need to construct the geometry at this level already + lcdd.fromCompact(argv[i]); + } + + //************************************************************** + + // Get the detector constructed + + // User Initialization classes (mandatory) + // +#if 0 // use original EXN04 detector construction + G4VUserDetectorConstruction* detector = new ExN04DetectorConstruction; +#else // use DD4Hep + G4VUserDetectorConstruction* detector = new DD4hep::Simulation::Geant4DetectorConstruction( lcdd ) ; +#endif + + runManager->SetUserInitialization(detector); + // + G4VUserPhysicsList* physics = new QGSP_BERT(); + runManager->SetUserInitialization(physics); + + runManager->Initialize(); + + // User Action classes + // + G4VUserPrimaryGeneratorAction* gen_action = new ExN04PrimaryGeneratorAction; + runManager->SetUserAction(gen_action); + // + G4UserRunAction* run_action = new ExN04RunAction; + runManager->SetUserAction(run_action); + // + G4UserEventAction* event_action = new ExN04EventAction; + runManager->SetUserAction(event_action); + // + G4UserStackingAction* stacking_action = new ExN04StackingAction; + runManager->SetUserAction(stacking_action); + // + G4UserTrackingAction* tracking_action = new ExN04TrackingAction; + runManager->SetUserAction(tracking_action); + // + G4UserSteppingAction* stepping_action = new ExN04SteppingAction; + runManager->SetUserAction(stepping_action); + +#ifdef G4VIS_USE + G4VisManager* visManager = new G4VisExecutive; + visManager->Initialize(); +#endif + + //get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); + + if (isBatchMode) // batch mode + { + G4String command = "/control/execute "; + G4String fileName = argv[argc-1]; + UImanager->ApplyCommand(command+fileName); + } + else // interactive mode : define UI session + { +#ifdef G4UI_USE + G4UIExecutive * ui = new G4UIExecutive(argc,argv); +#ifdef G4VIS_USE + UImanager->ApplyCommand("/control/execute vis.mac"); +#endif + ui->SessionStart(); + delete ui; +#endif + +#ifdef G4VIS_USE + delete visManager; +#endif + } + + // Job termination + // Free the store: user actions, physics_list and detector_description are + // owned and deleted by the run manager, so they should not + // be deleted in the main() program ! + delete runManager; + delete verbosity; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/noviceN04/exampleN04.in b/examples/noviceN04/exampleN04.in new file mode 100644 index 0000000000000000000000000000000000000000..192b8c4eaddb15f6fc4c9dd2beaaf8532fc55d72 --- /dev/null +++ b/examples/noviceN04/exampleN04.in @@ -0,0 +1,12 @@ +# +/mydet/RoIangle 10 deg +/mydet/reqmuon 1 +/mydet/isomuon 1 +# +/control/verbose 1 +/run/verbose 1 +/tracking/verbose 0 +/run/beamOn 3 +# +exit + diff --git a/examples/noviceN04/exampleN04.out b/examples/noviceN04/exampleN04.out new file mode 100644 index 0000000000000000000000000000000000000000..46d65cba740c8520d5654c9cdc6068f30fa1005d --- /dev/null +++ b/examples/noviceN04/exampleN04.out @@ -0,0 +1,546 @@ + + ############################################ + !!! WARNING - FPE detection is activated !!! + ############################################ + +************************************************************* + Geant4 version Name: geant4-09-05-ref-00 (2-December-2011) + Copyright : Geant4 Collaboration + Reference : NIM A 506 (2003), 250-303 + WWW : http://cern.ch/geant4 +************************************************************* + +<<< Geant4 Physics List simulation engine: QGSP_BERT 3.4 + +### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0 +Visualization Manager instantiating with verbosity "warnings (3)"... +Visualization Manager initialising... +Registering graphics systems... + +You have successfully registered the following graphics systems. +Current available graphics systems are: + ASCIITree (ATree) + DAWNFILE (DAWNFILE) + G4HepRep (HepRepXML) + G4HepRepFile (HepRepFile) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + gMocrenFile (gMocrenFile) + OpenGLStoredX (OGL) + OpenGLImmediateX (OGLI) + OpenGLStoredX (OGLS) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + +Registering model factories... + +You have successfully registered the following model factories. +Registered model factories: + generic + drawByCharge + drawByParticleID + drawByOriginVolume + drawByAttribute + +Registered filter factories: + chargeFilter + particleFilter + originVolumeFilter + attributeFilter + +Some /vis commands (optionally) take a string to specify colour. +Available colours: + black, blue, cyan, gray, green, grey, magenta, red, white, yellow + +/run/verbose 1 +/tracking/verbose 0 +/run/beamOn 3 + +phot: for gamma SubType= 12 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + PhotoElectric : Emin= 0 eV Emax= 10 TeV FluoActive + +compt: for gamma SubType= 13 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Klein-Nishina : Emin= 0 eV Emax= 10 TeV + +conv: for gamma SubType= 14 + Lambda tables from 1.022 MeV to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BetheHeitler : Emin= 0 eV Emax= 10 TeV + +msc: for e- SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc95 : Emin= 0 eV Emax= 10 TeV + +eIoni: for e- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 10 TeV + +eBrem: for e- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + LPM flag: 1 for E > 1 GeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGenUrban + eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGenUrban + +eIoni: for e+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MollerBhabha : Emin= 0 eV Emax= 10 TeV + +eBrem: for e+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + LPM flag: 1 for E > 1 GeV + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eBremSB : Emin= 0 eV Emax= 1 GeV AngularGenUrban + eBremLPM : Emin= 1 GeV Emax= 10 TeV AngularGenUrban + +annihil: for e+ SubType= 5 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eplus2gg : Emin= 0 eV Emax= 10 TeV + +msc: for proton SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +hIoni: for proton SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +hBrems: for proton SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for proton SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +msc: for GenericIon SubType= 10 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +ionIoni: for GenericIon SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.01, dRoverRange= 0.1, integral: 1, fluct: 1, linLossLimit= 0.02 + Stopping Power data for 17 ion/material pairs + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + BraggIon : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +hIoni: for anti_proton SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 2 MeV + BetheBloch : Emin= 2 MeV Emax= 10 TeV + +msc: for kaon+ SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +hIoni: for kaon+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 1.05231 MeV + BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV + +hBrems: for kaon+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for kaon+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +hIoni: for kaon- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 1.05231 MeV + BetheBloch : Emin= 1.05231 MeV Emax= 10 TeV + +hBrems: for kaon- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for kaon- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +muMsc: for mu+ SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + WentzelVIUni : Emin= 0 eV Emax= 10 TeV + +muIoni: for mu+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 200 keV + BetheBloch : Emin= 200 keV Emax= 1 GeV + MuBetheBloch : Emin= 1 GeV Emax= 10 TeV + +muBrems: for mu+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 10 TeV + +muPairProd: for mu+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for mu+ SubType= 1 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + 180 < Theta(degree) < 180; pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +muIoni: for mu- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 200 keV + BetheBloch : Emin= 200 keV Emax= 1 GeV + MuBetheBloch : Emin= 1 GeV Emax= 10 TeV + +muBrems: for mu- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + MuBrem : Emin= 0 eV Emax= 10 TeV + +muPairProd: for mu- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + muPairProd : Emin= 0 eV Emax= 10 TeV + +CoulombScat: for mu- SubType= 1 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + 180 < Theta(degree) < 180; pLimit(GeV^1)= 0.139531 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + eCoulombScattering : Emin= 0 eV Emax= 10 TeV + +hIoni: for pi+ SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + Bragg : Emin= 0 eV Emax= 297.505 keV + BetheBloch : Emin= 297.505 keV Emax= 10 TeV + +hBrems: for pi+ SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for pi+ SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV + +msc: for pi- SubType= 10 + Lambda tables from 100 eV to 10 TeV in 77 bins, spline: 1 + RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + UrbanMsc90 : Emin= 0 eV Emax= 10 TeV + +hIoni: for pi- SubType= 2 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + finalRange(mm)= 0.1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + ICRU73QO : Emin= 0 eV Emax= 297.505 keV + BetheBloch : Emin= 297.505 keV Emax= 10 TeV + +hBrems: for pi- SubType= 3 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hBrem : Emin= 0 eV Emax= 10 TeV + +hPairProd: for pi- SubType= 4 + dE/dx and range tables from 100 eV to 10 TeV in 77 bins + Lambda tables from threshold to 10 TeV in 77 bins, spline: 1 + ===== EM models for the G4Region DefaultRegionForTheWorld ====== + hPairProd : Emin= 0 eV Emax= 10 TeV +============================================================================================ + HADRONIC PROCESSES SUMMARY (verbose level 1) + + Hadronic Processes for <anti_neutron> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + +AntiNeutronInelastic Models: G4LEAntiNeutronInelastic: Emin(GeV)= 0 Emax(GeV)= 25 + G4HEAntiNeutronInelastic: Emin(GeV)= 20 Emax(GeV)= 100000 + +AntiNeutronInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <anti_proton> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 0.1 + AntiAElastic: Emin(GeV)= 0.1 Emax(GeV)= 100000 + + hadElastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + AntiProtonInelastic Models: G4LEAntiProtonInelastic: Emin(GeV)= 0 Emax(GeV)= 25 + G4HEAntiProtonInelastic: Emin(GeV)= 20 Emax(GeV)= 100000 + + AntiProtonInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <e-> + ----------------------------------- + ElectroNuclear Models: CHIPSElectroNuclear: Emin(GeV)= 0 Emax(GeV)= 30000 + + ElectroNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <gamma> + ----------------------------------- + PhotonInelastic Models: CHIPSGammaNuclear: Emin(GeV)= 0 Emax(GeV)= 3.5 + TheoFSGenerator: Emin(GeV)= 3 Emax(GeV)= 100000 + + PhotonInelastic Crs sctns: PhotoNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <kaon+> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + KaonPlusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEKaonPlusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + KaonPlusInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <kaon-> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + KaonMinusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEKaonMinusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + KaonMinusInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <lambda> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + LambdaInelastic Models: G4LELambdaInelastic: Emin(GeV)= 0 Emax(GeV)= 25 + G4HELambdaInelastic: Emin(GeV)= 20 Emax(GeV)= 100000 + + LambdaInelastic Crs sctns: GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <mu-> + muMinusCaptureAtRest + + Hadronic Processes for <neutron> + ----------------------------------- + hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: CHIPSElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + NeutronInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LENeutronInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + NeutronInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: Wellisch-Laidlaw cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + nCapture Models: G4LCapture: Emin(GeV)= 0 Emax(GeV)= 20000 + + nCapture Crs sctns: GheishaCaptureXS: Emin(GeV)= 0 Emax(GeV)= 100000 + + nFission Models: G4LFission: Emin(GeV)= 0 Emax(GeV)= 20000 + + nFission Crs sctns: GheishaFissionXS: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <pi+> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1 + hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000 + + hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + PionPlusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEPionPlusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + PionPlusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <pi-> + ----------------------------------- + hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1 + hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000 + + hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + PionMinusInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEPionMinusInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + PionMinusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + + Hadronic Processes for <proton> + ----------------------------------- + hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000 + + hadElastic Crs sctns: CHIPSElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000 + GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000 + + ProtonInelastic Models: QGSP: Emin(GeV)= 12 Emax(GeV)= 100000 + G4LEProtonInelastic: Emin(GeV)= 9.5 Emax(GeV)= 25 + BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 9.9 + + ProtonInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000 + G4CrossSectionPairGG: Axen-Wellisch cross sections + below 91 GeV, Glauber-Gribov above + GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000 + +============================================================================================ + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : Air + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : ArgonGas + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Silicon + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 5.87535 keV e- 424.726 keV e+ 410.692 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 2.09434 keV e- 281.891 keV e+ 276.265 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 700 um e- 700 um e+ 700 um proton 700 um + Energy thresholds : gamma 94.5861 keV e- 1.00386 MeV e+ 951.321 keV proton 70 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +### Run 0 start. +Start Run processing. +Stage 0->1 : 1 hits found in the muon chamber. +Stage 1->2 : 1 isolated muon found. +>>> Event 0 + 97 hits are stored in ExN04TrackerHitsCollection. + 40 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 1.3950259355714 (GeV) + 1 hits are stored in ExN04MuonHitsCollection. +Stage 0->1 : 0 hits found in the muon chamber. +++++++++ event aborted +>>> Event 1 + 0 hits are stored in ExN04TrackerHitsCollection. + 0 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0 (GeV) + 0 hits are stored in ExN04MuonHitsCollection. +Stage 0->1 : 1 hits found in the muon chamber. +Stage 1->2 : 1 isolated muon found. +>>> Event 2 + 89 hits are stored in ExN04TrackerHitsCollection. + 27 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.5233308565586 (GeV) + 1 hits are stored in ExN04MuonHitsCollection. +Run terminated. +Run Summary + Number of events processed : 3 + User=1.65s Real=1.66s Sys=0.01s +G4 kernel has come to Quit state. + diff --git a/examples/noviceN04/include/ExN04CalorimeterHit.hh b/examples/noviceN04/include/ExN04CalorimeterHit.hh new file mode 100644 index 0000000000000000000000000000000000000000..bfd194fc59d883b19516d7dcfd229814bae84cbf --- /dev/null +++ b/examples/noviceN04/include/ExN04CalorimeterHit.hh @@ -0,0 +1,113 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04CalorimeterHit_h +#define ExN04CalorimeterHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" +#include "G4LogicalVolume.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" + +class G4AttDef; + +class ExN04CalorimeterHit : public G4VHit +{ + public: + + ExN04CalorimeterHit(); + ExN04CalorimeterHit(G4LogicalVolume* logVol,G4int z,G4int phi); + ~ExN04CalorimeterHit(); + ExN04CalorimeterHit(const ExN04CalorimeterHit &right); + const ExN04CalorimeterHit& operator=(const ExN04CalorimeterHit &right); + G4int operator==(const ExN04CalorimeterHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + void Draw(); + const std::map<G4String,G4AttDef>* GetAttDefs() const; + std::vector<G4AttValue>* CreateAttValues() const; + void Print(); + + private: + G4int ZCellID; + G4int PhiCellID; + G4double edep; + G4ThreeVector pos; + G4RotationMatrix rot; + const G4LogicalVolume* pLogV; + static std::map<G4String,G4AttDef> fAttDefs; + + public: + inline void SetCellID(G4int z,G4int phi) + { + ZCellID = z; + PhiCellID = phi; + } + inline G4int GetZ() { return ZCellID; } + inline G4int GetPhi() { return PhiCellID; } + inline void SetEdep(G4double de) + { edep = de; } + inline void AddEdep(G4double de) + { edep += de; } + inline G4double GetEdep() + { return edep; } + inline void SetPos(G4ThreeVector xyz) + { pos = xyz; } + inline G4ThreeVector GetPos() + { return pos; } + inline void SetRot(G4RotationMatrix rmat) + { rot = rmat; } + inline G4RotationMatrix GetRot() + { return rot; } + inline const G4LogicalVolume * GetLogV() + { return pLogV; } + +}; + +typedef G4THitsCollection<ExN04CalorimeterHit> ExN04CalorimeterHitsCollection; + +extern G4Allocator<ExN04CalorimeterHit> ExN04CalorimeterHitAllocator; + +inline void* ExN04CalorimeterHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04CalorimeterHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04CalorimeterHit::operator delete(void *aHit) +{ + ExN04CalorimeterHitAllocator.FreeSingle((ExN04CalorimeterHit*) aHit); +} + +#endif + + diff --git a/examples/noviceN04/include/ExN04CalorimeterParametrisation.hh b/examples/noviceN04/include/ExN04CalorimeterParametrisation.hh new file mode 100644 index 0000000000000000000000000000000000000000..dc9ac559bdd3c5898f9301c2593f8135751f5251 --- /dev/null +++ b/examples/noviceN04/include/ExN04CalorimeterParametrisation.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04CalorimeterParametrisation_H +#define ExN04CalorimeterParametrisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Tubs; + +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + +class ExN04CalorimeterParametrisation : public G4VPVParameterisation +{ + public: + + ExN04CalorimeterParametrisation(); + virtual ~ExN04CalorimeterParametrisation(); + void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume *physVol) const; + void ComputeDimensions( G4Tubs & calorimeterLayer, + const G4int copyNo, + const G4VPhysicalVolume * physVol) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + + private: + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif diff --git a/examples/noviceN04/include/ExN04CalorimeterROGeometry.hh b/examples/noviceN04/include/ExN04CalorimeterROGeometry.hh new file mode 100644 index 0000000000000000000000000000000000000000..c77d3906d8d6dfc448bf8e294c1a1a8d019ce2da --- /dev/null +++ b/examples/noviceN04/include/ExN04CalorimeterROGeometry.hh @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +#ifndef ExN04CalorimeterROGeometry_h +#define ExN04CalorimeterROGeometry_h 1 + +#include "G4VReadOutGeometry.hh" + +class G4Material; + +class ExN04CalorimeterROGeometry : public G4VReadOutGeometry +{ +public: + ExN04CalorimeterROGeometry(); + ExN04CalorimeterROGeometry(G4String); + ~ExN04CalorimeterROGeometry(); + +private: + G4VPhysicalVolume* Build(); + G4Material* dummyMat; + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif diff --git a/examples/noviceN04/include/ExN04CalorimeterSD.hh b/examples/noviceN04/include/ExN04CalorimeterSD.hh new file mode 100644 index 0000000000000000000000000000000000000000..c1fe38c6229e271959ed774383d42a44b002fc83 --- /dev/null +++ b/examples/noviceN04/include/ExN04CalorimeterSD.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04CalorimeterSD_h +#define ExN04CalorimeterSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04CalorimeterHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04CalorimeterSD : public G4VSensitiveDetector +{ + + public: + ExN04CalorimeterSD(G4String name); + ~ExN04CalorimeterSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + ExN04CalorimeterHitsCollection *CalCollection; + int CellID[20][48]; + const int numberOfCellsInZ; + const int numberOfCellsInPhi; +}; + + + + +#endif + diff --git a/examples/noviceN04/include/ExN04DetectorConstruction.hh b/examples/noviceN04/include/ExN04DetectorConstruction.hh new file mode 100644 index 0000000000000000000000000000000000000000..693a4bd76d03e7228be0b301f0d91d4b2c9e854c --- /dev/null +++ b/examples/noviceN04/include/ExN04DetectorConstruction.hh @@ -0,0 +1,64 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04DetectorConstruction_h +#define ExN04DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" + +class G4VPhysicalVolume; +class G4Material; +class G4Element; + +class ExN04DetectorConstruction : public G4VUserDetectorConstruction +{ + public: + ExN04DetectorConstruction(); + ~ExN04DetectorConstruction(); + + public: + G4VPhysicalVolume* Construct(); + + private: + void DefineMaterials(); + +#include "ExN04DetectorParameterDef.hh" + + G4Material* Air; + G4Material* Ar; + G4Material* Silicon; + G4Material* Scinti; + G4Material* Lead; + + G4Element* H; + G4Element* C; + G4Element* N; + G4Element* O; +}; + +#endif + diff --git a/examples/noviceN04/include/ExN04DetectorParameterDef.hh b/examples/noviceN04/include/ExN04DetectorParameterDef.hh new file mode 100644 index 0000000000000000000000000000000000000000..2f34985d07b9478860c54ce0eb6c10728895da60 --- /dev/null +++ b/examples/noviceN04/include/ExN04DetectorParameterDef.hh @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + + G4double expHall_x; + G4double expHall_y; + G4double expHall_z; + + G4double trkTubs_rmax; + G4double trkTubs_rmin; + G4double trkTubs_dz; + G4double trkTubs_sphi; + G4double trkTubs_dphi; + + G4int notrkLayers; + G4double tracker_radius[5]; + G4double tracker_thick; + G4double tracker_length[5]; + + G4double caloTubs_rmax; + G4double caloTubs_rmin; + G4double caloTubs_dz; + G4double caloTubs_sphi; + G4double caloTubs_dphi; + + G4int nocaloLayers; + G4double absorber_thick; + G4double scinti_thick; + + G4int segmentsinZ; + G4double caloRing_rmax; + G4double caloRing_rmin; + G4double caloRing_dz; + G4double caloRing_sphi; + G4double caloRing_dphi; + + G4int segmentsinPhi; + G4double caloCell_rmax; + G4double caloCell_rmin; + G4double caloCell_dz; + G4double caloCell_sphi; + G4double caloCell_dphi; + + G4int nomucounter; + G4double muBox_radius; + G4double muBox_width; + G4double muBox_thick; + G4double muBox_length; + + diff --git a/examples/noviceN04/include/ExN04DummySD.hh b/examples/noviceN04/include/ExN04DummySD.hh new file mode 100644 index 0000000000000000000000000000000000000000..b23da2c4c0db40a6e0e542eac58ab2b728faf429 --- /dev/null +++ b/examples/noviceN04/include/ExN04DummySD.hh @@ -0,0 +1,53 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// Dummy sensitive used only to flag sensitivity +// in cells of RO geometry. +// + +#ifndef ExN04DummySD_h +#define ExN04DummySD_h 1 + +#include "G4VSensitiveDetector.hh" +class G4Step; + +class ExN04DummySD : public G4VSensitiveDetector +{ +public: + ExN04DummySD(); + ~ExN04DummySD() {} + + void Initialize(G4HCofThisEvent*) {} + G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;} + void EndOfEvent(G4HCofThisEvent*) {} + void clear() {} + void DrawAll() {} + void PrintAll() {} +}; +ExN04DummySD::ExN04DummySD() + : G4VSensitiveDetector("dummySD") +{} +#endif diff --git a/examples/noviceN04/include/ExN04EventAction.hh b/examples/noviceN04/include/ExN04EventAction.hh new file mode 100644 index 0000000000000000000000000000000000000000..3294eae275bb9583c84ab7e9630978c025301e92 --- /dev/null +++ b/examples/noviceN04/include/ExN04EventAction.hh @@ -0,0 +1,51 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04EventAction_h +#define ExN04EventAction_h 1 + +#include "G4UserEventAction.hh" +#include "globals.hh" + +class ExN04EventAction : public G4UserEventAction +{ + public: + ExN04EventAction(); + ~ExN04EventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + private: + G4int trackerCollID; + G4int calorimeterCollID; + G4int muonCollID; +}; + +#endif + + diff --git a/examples/noviceN04/include/ExN04Field.hh b/examples/noviceN04/include/ExN04Field.hh new file mode 100644 index 0000000000000000000000000000000000000000..e4e5d13a88a254ace51ab59c5c30f67edbb06792 --- /dev/null +++ b/examples/noviceN04/include/ExN04Field.hh @@ -0,0 +1,49 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04Field_H +#define ExN04Field_H 1 + +#include "globals.hh" +#include "G4MagneticField.hh" + +class ExN04Field : public G4MagneticField +{ + public: + ExN04Field(); + ~ExN04Field(); + + void GetFieldValue( const double Point[3], + double *Bfield ) const; + + private: + G4double Bz; + G4double rmax_sq; + G4double zmax; +}; + +#endif + diff --git a/examples/noviceN04/include/ExN04MuonHit.hh b/examples/noviceN04/include/ExN04MuonHit.hh new file mode 100644 index 0000000000000000000000000000000000000000..6ba8624024f75da86524d6670205e7ecfac958db --- /dev/null +++ b/examples/noviceN04/include/ExN04MuonHit.hh @@ -0,0 +1,93 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04MuonHit_h +#define ExN04MuonHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class G4AttDef; + +class ExN04MuonHit : public G4VHit +{ + public: + + ExN04MuonHit(); + ~ExN04MuonHit(); + ExN04MuonHit(const ExN04MuonHit &right); + const ExN04MuonHit& operator=(const ExN04MuonHit &right); + G4int operator==(const ExN04MuonHit &right) const; + + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + void Draw(); + const std::map<G4String,G4AttDef>* GetAttDefs() const; + std::vector<G4AttValue>* CreateAttValues() const; + void Print(); + + private: + G4double edep; + G4ThreeVector pos; + static std::map<G4String,G4AttDef> fAttDefs; + + public: + inline void SetEdep(G4double de) + { edep = de; } + inline void AddEdep(G4double de) + { edep += de; } + inline G4double GetEdep() + { return edep; } + inline void SetPos(G4ThreeVector xyz) + { pos = xyz; } + inline G4ThreeVector GetPos() + { return pos; } + +}; + +typedef G4THitsCollection<ExN04MuonHit> ExN04MuonHitsCollection; + +extern G4Allocator<ExN04MuonHit> ExN04MuonHitAllocator; + +inline void* ExN04MuonHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04MuonHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04MuonHit::operator delete(void *aHit) +{ + ExN04MuonHitAllocator.FreeSingle((ExN04MuonHit*) aHit); +} + +#endif + + diff --git a/examples/noviceN04/include/ExN04MuonSD.hh b/examples/noviceN04/include/ExN04MuonSD.hh new file mode 100644 index 0000000000000000000000000000000000000000..ef0ae97ccafb814538dc10704f754829925602fe --- /dev/null +++ b/examples/noviceN04/include/ExN04MuonSD.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04MuonSD_h +#define ExN04MuonSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04MuonHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04MuonSD : public G4VSensitiveDetector +{ + + public: + ExN04MuonSD(G4String name); + ~ExN04MuonSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + ExN04MuonHitsCollection * muonCollection; + G4double positionResolution; + +}; + + + + +#endif + diff --git a/examples/noviceN04/include/ExN04PrimaryGeneratorAction.hh b/examples/noviceN04/include/ExN04PrimaryGeneratorAction.hh new file mode 100644 index 0000000000000000000000000000000000000000..6bef155d7c6fe75138406a0dfab897e72451d3ff --- /dev/null +++ b/examples/noviceN04/include/ExN04PrimaryGeneratorAction.hh @@ -0,0 +1,61 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04PrimaryGeneratorAction_h +#define ExN04PrimaryGeneratorAction_h 1 + +#include "G4VUserPrimaryGeneratorAction.hh" +#include "globals.hh" + +class G4VPrimaryGenerator; +class G4Event; +class ExN04PrimaryGeneratorMessenger; + +class ExN04PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ + public: + ExN04PrimaryGeneratorAction(); + ~ExN04PrimaryGeneratorAction(); + + public: + void GeneratePrimaries(G4Event* anEvent); + + private: + G4VPrimaryGenerator* HEPEvt; + G4VPrimaryGenerator* particleGun; + ExN04PrimaryGeneratorMessenger* messenger; + G4bool useHEPEvt; + + public: + inline void SetHEPEvtGenerator(G4bool f) + { useHEPEvt = f; } + inline G4bool GetHEPEvtGenerator() + { return useHEPEvt; } +}; + +#endif + + diff --git a/examples/noviceN04/include/ExN04PrimaryGeneratorMessenger.hh b/examples/noviceN04/include/ExN04PrimaryGeneratorMessenger.hh new file mode 100644 index 0000000000000000000000000000000000000000..d02998ac7e0fa6e1ac5df320305095ea679c454f --- /dev/null +++ b/examples/noviceN04/include/ExN04PrimaryGeneratorMessenger.hh @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04PrimaryGeneratorMessenger_h +#define ExN04PrimaryGeneratorMessenger_h 1 + +class ExN04PrimaryGeneratorAction; +class G4UIdirectory; +class G4UIcmdWithAString; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class ExN04PrimaryGeneratorMessenger: public G4UImessenger +{ + public: + ExN04PrimaryGeneratorMessenger(ExN04PrimaryGeneratorAction* mpga); + ~ExN04PrimaryGeneratorMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + ExN04PrimaryGeneratorAction * myAction; + + private: //commands + G4UIdirectory * mydetDirectory; + G4UIcmdWithAString * genCmd; + +}; + +#endif + + diff --git a/examples/noviceN04/include/ExN04RunAction.hh b/examples/noviceN04/include/ExN04RunAction.hh new file mode 100644 index 0000000000000000000000000000000000000000..dbad3d21216443a78b64eb2a32418280c7379905 --- /dev/null +++ b/examples/noviceN04/include/ExN04RunAction.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: ExN04RunAction.hh,v 1.5 2006-06-29 17:49:56 gunter Exp $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef ExN04RunAction_h +#define ExN04RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; + +class ExN04RunAction : public G4UserRunAction +{ + public: + ExN04RunAction(); + ~ExN04RunAction(); + + public: + void BeginOfRunAction(const G4Run*); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + diff --git a/examples/noviceN04/include/ExN04StackingAction.hh b/examples/noviceN04/include/ExN04StackingAction.hh new file mode 100644 index 0000000000000000000000000000000000000000..7d544059872fd6fc3f0915553e46bd46dd3d1053 --- /dev/null +++ b/examples/noviceN04/include/ExN04StackingAction.hh @@ -0,0 +1,77 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04StackingAction_H +#define ExN04StackingAction_H 1 + +#include "globals.hh" +#include "G4UserStackingAction.hh" +#include "G4ThreeVector.hh" + +class G4Track; + +#include "ExN04TrackerHit.hh" +#include "ExN04MuonHit.hh" +class ExN04StackingActionMessenger; + +class ExN04StackingAction : public G4UserStackingAction +{ + public: + ExN04StackingAction(); + virtual ~ExN04StackingAction(); + + public: + virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); + virtual void NewStage(); + virtual void PrepareNewEvent(); + + private: + G4bool InsideRoI(const G4Track * aTrack,G4double ang); + G4VHitsCollection* GetCollection(G4String colName); + + ExN04TrackerHitsCollection* trkHits; + ExN04MuonHitsCollection* muonHits; + ExN04StackingActionMessenger* theMessenger; + + G4int stage; + G4int reqMuon; + G4int reqIsoMuon; + G4int reqIso; + G4double angRoI; + + public: + inline void SetNRequestMuon(G4int val) { reqMuon = val; } + inline G4int GetNRequestMuon() const { return reqMuon; } + inline void SetNRequestIsoMuon(G4int val) { reqIsoMuon = val; } + inline G4int GetNRequestIsoMuon() const { return reqIsoMuon; } + inline void SetNIsolation(G4int val) { reqIso = val; } + inline G4int GetNIsolation() const { return reqIso; } + inline void SetRoIAngle(G4double val) { angRoI = val; } + inline G4double GetRoIAngle() const { return angRoI; } +}; + +#endif + diff --git a/examples/noviceN04/include/ExN04StackingActionMessenger.hh b/examples/noviceN04/include/ExN04StackingActionMessenger.hh new file mode 100644 index 0000000000000000000000000000000000000000..06e82ce584c6c51c3c8f55060c3f74b988a84715 --- /dev/null +++ b/examples/noviceN04/include/ExN04StackingActionMessenger.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04StackingActionMessenger_h +#define ExN04StackingActionMessenger_h 1 + +class ExN04StackingAction; +class G4UIcmdWithAnInteger; +class G4UIcmdWithADoubleAndUnit; + +#include "G4UImessenger.hh" +#include "globals.hh" + +class ExN04StackingActionMessenger: public G4UImessenger +{ + public: + ExN04StackingActionMessenger(ExN04StackingAction* msa); + ~ExN04StackingActionMessenger(); + + public: + void SetNewValue(G4UIcommand * command,G4String newValues); + G4String GetCurrentValue(G4UIcommand * command); + + private: + ExN04StackingAction * myAction; + + private: //commands + G4UIcmdWithAnInteger * muonCmd; + G4UIcmdWithAnInteger * isomuonCmd; + G4UIcmdWithAnInteger * isoCmd; + G4UIcmdWithADoubleAndUnit * roiCmd; + +}; + +#endif + + diff --git a/examples/noviceN04/include/ExN04SteppingAction.hh b/examples/noviceN04/include/ExN04SteppingAction.hh new file mode 100644 index 0000000000000000000000000000000000000000..477fe55e0d99355c24f27ebe536eb84988abf9d4 --- /dev/null +++ b/examples/noviceN04/include/ExN04SteppingAction.hh @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04SteppingAction_H +#define ExN04SteppingAction_H 1 + +#include "globals.hh" +#include "G4UserSteppingAction.hh" + +class ExN04SteppingAction : public G4UserSteppingAction +{ + public: + ExN04SteppingAction(); + virtual ~ExN04SteppingAction(); + + virtual void UserSteppingAction(const G4Step*); +}; + +#endif + diff --git a/examples/noviceN04/include/ExN04SteppingVerbose.hh b/examples/noviceN04/include/ExN04SteppingVerbose.hh new file mode 100644 index 0000000000000000000000000000000000000000..8e4de1100c2ffa4744b34e0d6bdbf3b66916cfed --- /dev/null +++ b/examples/noviceN04/include/ExN04SteppingVerbose.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: ExN04SteppingVerbose.hh,v 1.2 2006-06-29 17:50:08 gunter Exp $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +// This class manages the verbose outputs in G4SteppingManager. +// It inherits from G4SteppingVerbose. +// It shows how to extract informations during the tracking of a particle. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN04SteppingVerbose; + +#ifndef ExN04SteppingVerbose_h +#define ExN04SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN04SteppingVerbose : public G4SteppingVerbose +{ + public: + + ExN04SteppingVerbose(); + ~ExN04SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/noviceN04/include/ExN04TrackerHit.hh b/examples/noviceN04/include/ExN04TrackerHit.hh new file mode 100644 index 0000000000000000000000000000000000000000..fbeea821adad9adefc75ee921ff952bdb30ac997 --- /dev/null +++ b/examples/noviceN04/include/ExN04TrackerHit.hh @@ -0,0 +1,88 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04TrackerHit_h +#define ExN04TrackerHit_h 1 + +#include "G4VHit.hh" +#include "G4THitsCollection.hh" +#include "G4Allocator.hh" +#include "G4ThreeVector.hh" + +class G4AttDef; + +class ExN04TrackerHit : public G4VHit +{ + public: + + ExN04TrackerHit(); + ~ExN04TrackerHit(); + ExN04TrackerHit(const ExN04TrackerHit &right); + const ExN04TrackerHit& operator=(const ExN04TrackerHit &right); + G4int operator==(const ExN04TrackerHit &right) const; + + inline void *operator new(size_t); + inline void operator delete(void *aHit); + + void Draw(); + const std::map<G4String,G4AttDef>* GetAttDefs() const; + std::vector<G4AttValue>* CreateAttValues() const; + void Print(); + + private: + G4double edep; + G4ThreeVector pos; + static std::map<G4String,G4AttDef> fAttDefs; + + public: + inline void SetEdep(G4double de) + { edep = de; } + inline G4double GetEdep() + { return edep; } + inline void SetPos(G4ThreeVector xyz) + { pos = xyz; } + inline G4ThreeVector GetPos() + { return pos; } + +}; + +typedef G4THitsCollection<ExN04TrackerHit> ExN04TrackerHitsCollection; + +extern G4Allocator<ExN04TrackerHit> ExN04TrackerHitAllocator; + +inline void* ExN04TrackerHit::operator new(size_t) +{ + void *aHit; + aHit = (void *) ExN04TrackerHitAllocator.MallocSingle(); + return aHit; +} + +inline void ExN04TrackerHit::operator delete(void *aHit) +{ + ExN04TrackerHitAllocator.FreeSingle((ExN04TrackerHit*) aHit); +} + +#endif diff --git a/examples/noviceN04/include/ExN04TrackerParametrisation.hh b/examples/noviceN04/include/ExN04TrackerParametrisation.hh new file mode 100644 index 0000000000000000000000000000000000000000..ae9c7ff4dc6260ca9a694304180acf08692fbc9a --- /dev/null +++ b/examples/noviceN04/include/ExN04TrackerParametrisation.hh @@ -0,0 +1,81 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04TrackerParametrisation_H +#define ExN04TrackerParametrisation_H 1 + +#include "globals.hh" +#include "G4VPVParameterisation.hh" + +class G4VPhysicalVolume; +class G4Tubs; + +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + +class ExN04TrackerParametrisation : public G4VPVParameterisation +{ + public: + + ExN04TrackerParametrisation(); + virtual ~ExN04TrackerParametrisation(); + void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume *physVol) const; + void ComputeDimensions( G4Tubs & trackerLayer, + const G4int copyNo, + const G4VPhysicalVolume * physVol) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Trd&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trap&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Cons&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Torus&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Para&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Hype&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + + private: + +#include "ExN04DetectorParameterDef.hh" + +}; + +#endif diff --git a/examples/noviceN04/include/ExN04TrackerSD.hh b/examples/noviceN04/include/ExN04TrackerSD.hh new file mode 100644 index 0000000000000000000000000000000000000000..ecad52025bba684e892edf01e4202a4bac0778f0 --- /dev/null +++ b/examples/noviceN04/include/ExN04TrackerSD.hh @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04TrackerSD_h +#define ExN04TrackerSD_h 1 + +#include "G4VSensitiveDetector.hh" +#include "ExN04TrackerHit.hh" +class G4Step; +class G4HCofThisEvent; +class G4TouchableHistory; + +class ExN04TrackerSD : public G4VSensitiveDetector +{ + + public: + ExN04TrackerSD(G4String name); + ~ExN04TrackerSD(); + + void Initialize(G4HCofThisEvent*HCE); + G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist); + void EndOfEvent(G4HCofThisEvent*HCE); + void clear(); + void DrawAll(); + void PrintAll(); + + private: + ExN04TrackerHitsCollection *trackerCollection; + + public: +}; + + + + +#endif + diff --git a/examples/noviceN04/include/ExN04TrackingAction.hh b/examples/noviceN04/include/ExN04TrackingAction.hh new file mode 100644 index 0000000000000000000000000000000000000000..d0bd462caccf6730319dd6fd00577647659f336c --- /dev/null +++ b/examples/noviceN04/include/ExN04TrackingAction.hh @@ -0,0 +1,43 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#ifndef ExN04TrackingAction_h +#define ExN04TrackingAction_h 1 + +#include "G4UserTrackingAction.hh" + + +class ExN04TrackingAction : public G4UserTrackingAction { + + public: + ExN04TrackingAction(){}; + virtual ~ExN04TrackingAction(){}; + + virtual void PreUserTrackingAction(const G4Track*); + +}; + +#endif diff --git a/examples/noviceN04/pythia_event.data b/examples/noviceN04/pythia_event.data new file mode 100644 index 0000000000000000000000000000000000000000..d99b2c8a36877f5943fbfe28e4ab4224c87f642a --- /dev/null +++ b/examples/noviceN04/pythia_event.data @@ -0,0 +1,1021 @@ + 411 + 2 25 2 3 0.19538240e+02 0.24846369e+02 -0.60465937e+01 0.30378159e+03 + 2 23 4 5 0.11302123e+01 -0.23156443e+02 0.11416953e+03 0.89038048e+02 + 2 23 6 7 0.18408028e+02 0.48002811e+02 -0.12021612e+03 0.90217377e+02 + 1 13 0 0 -0.22464989e+02 -0.38451706e+02 0.20864853e+02 0.10570000e+00 + 1 -13 0 0 0.23595201e+02 0.15295260e+02 0.93304688e+02 0.10570000e+00 + 1 11 0 0 0.56072354e+00 -0.13617630e+02 -0.84170624e+02 0.50999998e-03 + 1 -11 0 0 0.17847303e+02 0.61620441e+02 -0.36045494e+02 0.50999998e-03 + 2 -2 51 51 -0.24825256e+01 -0.14315886e+01 0.28472370e+00 0.55999998e-02 + 2 21 51 51 0.66146022e+00 -0.66755712e+00 0.81425560e+00 0.00000000e+00 + 2 21 51 51 0.11284412e+00 -0.12166600e+00 0.19426866e+01 0.00000000e+00 + 2 21 51 51 -0.72664952e+00 0.35631818e+00 0.11287285e+00 0.00000000e+00 + 2 21 51 51 -0.12132846e+01 -0.13862884e+00 0.64822245e+01 0.00000000e+00 + 2 2 51 51 -0.87098330e-01 -0.17324427e+00 0.70668072e-01 0.55999998e-02 + 2 2 58 58 0.36495557e+01 -0.73652897e+01 0.82880411e+01 0.55999998e-02 + 2 21 58 58 0.23490760e+00 -0.55826795e+00 0.16173358e+01 0.00000000e+00 + 2 21 58 58 0.59331387e+00 0.26031549e+01 0.17713112e+01 0.00000000e+00 + 2 21 58 58 0.78495450e-01 -0.12233107e+00 0.68161473e-01 0.00000000e+00 + 2 21 58 58 0.12431704e+00 0.19548857e+00 -0.11572183e+02 0.00000000e+00 + 2 21 58 58 0.43687469e+00 -0.20160186e+00 -0.11824560e+02 0.00000000e+00 + 2 21 58 58 0.26381168e+01 -0.34718337e+01 -0.46374741e+02 0.00000000e+00 + 2 21 58 58 -0.86590804e-01 -0.30970857e+00 -0.16267967e+01 0.00000000e+00 + 2 21 58 58 0.16517977e+00 0.52066833e+00 -0.19957296e+01 0.00000000e+00 + 2 21 58 58 -0.42709002e+01 0.28111598e+01 -0.10303283e+02 0.00000000e+00 + 2 21 58 58 -0.22370346e+00 -0.12734073e+00 -0.15402281e+01 0.00000000e+00 + 2 -3 58 58 -0.33012703e+00 -0.17668970e+00 -0.12896216e+02 0.19900000e+00 + 2 3 82 82 0.74550366e+00 0.22669594e+01 -0.11368204e+03 0.19900000e+00 + 2 21 82 82 -0.21134222e+00 -0.81889890e-01 -0.24464021e+01 0.00000000e+00 + 2 21 82 82 -0.36056280e+00 -0.17687646e+00 -0.21671016e+01 0.00000000e+00 + 2 21 82 82 0.50335813e+00 -0.12304134e+01 -0.40660557e+02 0.00000000e+00 + 2 2101 82 82 -0.34702000e+00 -0.54470760e+00 -0.43786853e+03 0.57933331e+00 + 2 3 90 90 -0.18407012e+01 0.18637952e+01 0.73181429e+01 0.00000000e+00 + 2 -3 90 90 0.18407012e+01 -0.18637952e+01 -0.25560465e+01 0.00000000e+00 + 2 1 97 97 -0.17644401e+01 -0.56901944e+00 -0.24435639e+00 0.00000000e+00 + 2 -1 97 97 0.17644401e+01 0.56901944e+00 -0.53484602e+01 0.00000000e+00 + 2 1 102 102 -0.20567404e+00 -0.15753872e+01 -0.21010509e+00 0.00000000e+00 + 2 -1 102 102 0.20567404e+00 0.15753872e+01 0.59660425e+01 0.00000000e+00 + 2 2103 108 108 -0.14887555e+00 0.14248030e+00 0.69132288e+03 0.77133328e+00 + 2 21 108 108 -0.11365955e+01 -0.49284640e+00 0.43605831e+02 0.00000000e+00 + 2 21 108 108 -0.59331387e+00 -0.26031549e+01 0.72112262e+00 0.00000000e+00 + 2 21 108 108 0.67539737e-01 -0.14405334e+00 0.80054253e-01 0.00000000e+00 + 2 21 108 108 0.16206586e+00 -0.34149442e-01 -0.13090137e+00 0.00000000e+00 + 2 21 108 108 -0.25859413e+01 -0.33627687e+01 -0.18993883e+02 0.00000000e+00 + 2 21 108 108 -0.11061648e+02 -0.10030169e+02 -0.55285320e+02 0.00000000e+00 + 2 21 108 108 -0.40657463e+01 -0.59533137e+00 -0.16637203e+02 0.00000000e+00 + 2 21 108 108 0.81168249e-01 -0.23527068e+00 -0.89707837e-01 0.00000000e+00 + 2 2 108 108 0.13900024e+00 0.65477300e+00 0.10666741e+00 0.55999998e-02 + 2 21 131 131 0.21285610e+01 -0.96450549e+00 -0.12914455e+01 0.00000000e+00 + 2 21 131 131 -0.21285610e+01 0.96450549e+00 0.15101042e+02 0.00000000e+00 + 2 21 141 141 -0.14508307e+01 -0.12847765e+00 0.52964214e+02 0.00000000e+00 + 2 21 141 141 0.14508307e+01 0.12847765e+00 -0.36845894e+02 0.00000000e+00 + 2 92 52 57 -0.37352538e+01 -0.21763668e+01 0.97074308e+01 0.86355495e+01 + 2 221 159 161 -0.80582070e+00 -0.12772357e+01 0.85968161e+00 0.54750001e+00 + 1-2212 0 0 -0.39845359e+00 -0.18744478e+00 -0.28154469e+00 0.93830001e+00 + 1 2212 0 0 -0.12567594e+01 -0.21684027e+00 0.64517856e+00 0.93830001e+00 + 2 111 162 163 -0.52594995e+00 -0.46889600e+00 0.57446718e+00 0.13500001e+00 + 2 -213 164 165 -0.11209842e+00 0.69486573e-01 0.47767506e+01 0.80699837e+00 + 2 213 166 167 -0.63617158e+00 -0.95436491e-01 0.31328979e+01 0.89775747e+00 + 2 92 59 81 0.30094395e+01 -0.62025914e+01 -0.86388885e+02 0.77777664e+02 + 1 211 0 0 0.13427008e+01 -0.26062658e+01 0.30216877e+01 0.13959999e+00 + 2 311 168 168 0.40764526e+00 -0.21195003e+00 0.51881242e+00 0.49770001e+00 + 2 -313 169 170 0.11182569e+01 -0.16883652e+01 0.26147256e+01 0.82680744e+00 + 2 -213 171 172 -0.10183442e+00 -0.47228408e+00 0.77066433e+00 0.76131308e+00 + 2 213 173 174 0.88673675e+00 -0.84632939e+00 0.11933347e+01 0.11022177e+01 + 1 -211 0 0 -0.18196012e+00 -0.49367240e+00 0.10575020e+01 0.13959999e+00 + 2 323 175 176 0.18539359e+00 0.28427398e+00 0.68860364e+00 0.88390887e+00 + 1 -321 0 0 0.90151668e+00 -0.61134267e+00 0.95534205e+00 0.49360001e+00 + 1 211 0 0 -0.13798623e+00 0.43877777e+00 0.25701129e+00 0.13959999e+00 + 1 2112 0 0 0.66577101e+00 0.28948170e+00 -0.88070399e+00 0.93959999e+00 + 1-2212 0 0 -0.47853556e+00 0.29844052e+00 -0.12891874e+01 0.93830001e+00 + 2 323 177 178 -0.38174641e+00 0.15966283e+00 -0.24305027e+01 0.90328294e+00 + 2 -323 179 180 0.68835557e+00 -0.14367788e+00 -0.61069512e+01 0.81600565e+00 + 2 221 181 183 0.27491635e+00 0.20284052e+00 -0.87451458e+01 0.54750001e+00 + 1 211 0 0 0.11579485e+01 -0.22874067e+01 -0.31742264e+02 0.13959999e+00 + 2 311 184 184 0.75824469e+00 -0.85745949e+00 -0.87357492e+01 0.49770001e+00 + 1 -321 0 0 -0.36013183e+00 0.37428829e+00 -0.48698983e+01 0.49360001e+00 + 1 321 0 0 0.23628737e+00 -0.47319981e+00 -0.47992659e+01 0.49360001e+00 + 2 3322 185 186 -0.35570526e+00 0.61233449e+00 -0.25788193e+01 0.13149000e+01 + 2-3212 187 188 -0.17342371e+01 0.64074337e+00 -0.66727114e+01 0.11926000e+01 + 2 -213 189 190 -0.14601166e+01 0.14058664e+01 -0.60593095e+01 0.68749446e+00 + 2 213 191 192 -0.37675244e+00 0.15691012e+00 -0.94519520e+01 0.91518497e+00 + 2 311 193 193 -0.45328639e-01 -0.37425721e+00 -0.31041012e+01 0.49770001e+00 + 2 92 83 89 0.32993677e+00 0.23307204e+00 -0.59682465e+03 0.10651698e+02 + 1 -321 0 0 0.34642014e+00 0.13582803e+01 -0.57536453e+02 0.49360001e+00 + 2 111 194 195 -0.22437094e-01 0.35515699e+00 -0.29233303e+02 0.13500001e+00 + 1 211 0 0 0.29584134e+00 0.22412711e+00 -0.42484713e+01 0.13959999e+00 + 2 113 196 197 -0.63742548e-02 -0.19909430e+00 -0.20716032e+02 0.76558536e+00 + 1 -211 0 0 0.12700388e+00 -0.35441807e-02 -0.40301620e+02 0.13959999e+00 + 2 223 198 200 -0.50310060e-01 -0.10083643e+01 -0.20915148e+02 0.75687313e+00 + 1 2212 0 0 -0.36020714e+00 -0.49348956e+00 -0.42387360e+03 0.93830001e+00 + 2 92 91 96 0.00000000e+00 0.00000000e+00 0.47620964e+01 0.10393816e+02 + 2 -313 201 202 -0.58042550e+00 0.63733709e+00 0.31947005e+01 0.89394814e+00 + 1 -211 0 0 -0.35475734e+00 0.21957833e+00 -0.16065042e+00 0.13959999e+00 + 2 323 203 204 -0.72124936e-02 0.54061729e+00 0.17406511e+01 0.81076276e+00 + 2 -313 205 206 0.15946677e+00 -0.66047955e+00 -0.38343780e-01 0.87225807e+00 + 2 -213 207 208 -0.44858670e+00 0.62688202e+00 0.16363863e+01 0.70860994e+00 + 1 321 0 0 0.12315153e+01 -0.13639352e+01 -0.16106471e+01 0.49360001e+00 + 2 92 98 101 0.00000000e+00 0.00000000e+00 -0.55928164e+01 0.50428748e+01 + 1 -211 0 0 -0.78326690e+00 -0.37968913e+00 -0.38600278e+00 0.13959999e+00 + 2 213 209 210 -0.80133951e+00 0.40485406e+00 -0.19952333e+00 0.79269451e+00 + 2 111 211 212 0.29410553e+00 -0.14981756e+00 -0.61370862e+00 0.13500001e+00 + 2 223 213 215 0.12905009e+01 0.12465262e+00 -0.43935819e+01 0.76472420e+00 + 2 92 103 107 0.00000000e+00 0.00000000e+00 0.57559376e+01 0.52291427e+01 + 2 -213 216 217 0.30341426e-01 -0.80026239e-02 0.13941473e+00 0.74790990e+00 + 2 213 218 219 0.20280991e+00 -0.31684929e+00 0.90099144e+00 0.79093164e+00 + 2 -213 220 221 -0.98886512e-01 -0.54532015e+00 0.56220156e+00 0.82238573e+00 + 1 211 0 0 -0.48269165e+00 0.48339233e-01 0.34247407e+00 0.13959999e+00 + 2 113 222 223 0.34842682e+00 0.82183284e+00 0.38108559e+01 0.86568820e+00 + 2 92 109 130 -0.19142347e+02 -0.16700491e+02 0.64469952e+03 0.52673993e+03 + 2 331 224 225 -0.31828788e+00 -0.28879259e-01 0.30639532e+03 0.95759463e+00 + 2 2214 226 227 -0.17091548e+00 0.41215912e+00 0.18134865e+03 0.12281277e+01 + 1 -211 0 0 -0.21337096e+00 -0.78557378e+00 0.66059822e+02 0.13959999e+00 + 2 331 228 229 -0.59956498e-01 0.38622740e+00 0.13099792e+03 0.95781225e+00 + 2 223 230 232 0.33040482e+00 0.16450146e+00 0.18928904e+02 0.78479451e+00 + 2 221 233 235 -0.24549142e+00 -0.13222420e+00 0.19283197e+02 0.54750001e+00 + 2 113 236 237 -0.32288766e+00 -0.14266454e+00 0.10670929e+02 0.72956729e+00 + 2 111 238 239 -0.62115288e+00 -0.17956005e+01 0.10359015e+01 0.13500001e+00 + 2 213 240 241 0.15887353e+00 -0.12029245e+00 0.69275177e+00 0.76900363e+00 + 1 -211 0 0 0.12893344e+00 0.46391614e-01 -0.11724535e+00 0.13959999e+00 + 2 213 242 243 -0.66157222e+00 -0.12031867e+00 -0.27802687e+01 0.92537868e+00 + 2 111 244 245 -0.49866670e+00 -0.26722581e+01 -0.25359402e+01 0.13500001e+00 + 2 113 246 247 -0.49806209e+01 -0.47304673e+01 -0.26734175e+02 0.81701642e+00 + 1 -211 0 0 -0.12273804e+01 -0.30985761e+00 -0.48824930e+01 0.13959999e+00 + 2 -313 248 249 -0.28246355e+01 -0.28250186e+01 -0.16902178e+02 0.89466429e+00 + 2 311 250 250 -0.17557780e+01 -0.17156659e+01 -0.10652614e+02 0.49770001e+00 + 2-2114 251 252 -0.16921530e+01 -0.92987555e+00 -0.78336420e+01 0.12249888e+01 + 2 2214 253 254 -0.24333186e+01 -0.18534211e+01 -0.10909353e+02 0.12117262e+01 + 2 -213 255 256 -0.93599880e+00 -0.12221253e+00 -0.38374243e+01 0.97767270e+00 + 2 113 257 258 -0.76206547e+00 0.73393363e+00 -0.18387768e+01 0.10223405e+01 + 1 211 0 0 -0.16266888e+00 -0.15386631e+00 -0.33147329e+00 0.13959999e+00 + 2 223 259 261 0.12636223e+00 -0.55055213e-02 -0.13583282e+01 0.78175670e+00 + 2 92 132 140 0.00000000e+00 0.00000000e+00 0.13809596e+02 0.11468465e+02 + 1 -211 0 0 -0.79316360e+00 0.24428114e+00 0.46131530e+01 0.13959999e+00 + 2 113 262 263 -0.30535904e+00 -0.15252879e+00 0.24335117e+01 0.57161868e+00 + 1 211 0 0 -0.22026351e+00 0.44651905e+00 0.72053212e+00 0.13959999e+00 + 2 313 264 265 -0.12834707e+00 -0.90234041e-01 0.38922803e+01 0.10082972e+01 + 1 -321 0 0 -0.38574028e+00 0.73624663e-01 0.16868111e+01 0.49360001e+00 + 2 323 266 267 0.66993225e+00 0.29340930e-01 0.70507574e+00 0.95219034e+00 + 2 -323 268 269 0.14431622e+01 -0.82960689e+00 -0.57296562e+00 0.92617905e+00 + 1 211 0 0 -0.13503614e+00 0.21710680e+00 0.70387549e-02 0.13959999e+00 + 2 111 270 271 -0.14518487e+00 0.61497144e-01 0.32415950e+00 0.13500001e+00 + 2 92 142 158 0.00000000e+00 0.00000000e+00 0.16118320e+02 0.88401489e+02 + 2 331 272 274 -0.70734853e+00 0.86514942e-01 -0.30510149e+01 0.95836711e+00 + 2 113 275 276 0.74551374e+00 -0.93517542e-01 0.66860813e+00 0.87463605e+00 + 2 223 277 278 -0.37139601e+00 0.12721571e+00 0.48620519e+00 0.78128511e+00 + 2 221 279 281 -0.90886220e-01 0.59690247e-02 0.11176066e+01 0.54750001e+00 + 1 211 0 0 -0.49295121e+00 -0.27733743e+00 0.28253324e+01 0.13959999e+00 + 2 -213 282 283 0.41200882e+00 0.29818064e+00 0.78310447e+01 0.85314947e+00 + 2 213 284 285 -0.66296601e+00 0.36033589e-01 0.92667618e+01 0.96779156e+00 + 2 111 286 287 0.21580642e+00 -0.42132854e-01 0.88119942e+00 0.13500001e+00 + 2 -213 288 289 -0.57515484e+00 0.10795248e+00 0.28336853e+02 0.88690424e+00 + 2 221 290 292 -0.52397922e-01 -0.28998443e+00 -0.15921714e+01 0.54750001e+00 + 2 213 293 294 0.86032256e-01 -0.63731536e-01 -0.91060656e+00 0.48154864e+00 + 2 -213 295 296 0.15886268e+00 -0.38100131e-01 -0.55007129e+01 0.69966000e+00 + 1 2212 0 0 0.24402221e+00 0.14529544e+00 -0.44689755e+01 0.93830001e+00 + 1 211 0 0 0.48864394e+00 0.44582254e+00 -0.10788389e+02 0.13959999e+00 + 2-2224 297 298 -0.33853960e+00 -0.10347863e+00 -0.36369028e+01 0.12198563e+01 + 2 113 299 300 0.79094344e+00 -0.39250079e+00 -0.54019437e+01 0.58878148e+00 + 2 221 301 302 0.14980686e+00 0.47798950e-01 0.55425081e-01 0.54750001e+00 + 1 -211 0 0 -0.42502713e+00 -0.55629349e+00 0.56052005e+00 0.13959999e+00 + 1 211 0 0 -0.18458691e+00 -0.29628819e+00 0.15380770e+00 0.13959999e+00 + 2 111 303 304 -0.19620663e+00 -0.42465404e+00 0.14535378e+00 0.13500001e+00 + 1 22 0 0 -0.10359311e+00 -0.16687860e+00 0.12937161e+00 0.00000000e+00 + 1 22 0 0 -0.42235690e+00 -0.30201745e+00 0.44509563e+00 0.00000000e+00 + 1 -211 0 0 -0.30538782e+00 -0.25055185e+00 0.23175387e+01 0.13959999e+00 + 2 111 305 307 0.19328941e+00 0.32003841e+00 0.24592113e+01 0.13500001e+00 + 1 211 0 0 -0.14793885e+00 0.14137977e+00 0.23317988e+01 0.13959999e+00 + 2 111 308 309 -0.48823270e+00 -0.23681626e+00 0.80109900e+00 0.13500001e+00 + 1 130 0 0 0.40764526e+00 -0.21195003e+00 0.51881242e+00 0.49770001e+00 + 1 -321 0 0 0.94717366e+00 -0.13382001e+01 0.17392095e+01 0.49360001e+00 + 1 211 0 0 0.17108326e+00 -0.35016492e+00 0.87551600e+00 0.13959999e+00 + 1 -211 0 0 -0.67190684e-01 -0.45966712e+00 0.92653006e-01 0.13959999e+00 + 2 111 310 311 -0.34643732e-01 -0.12616888e-01 0.67801124e+00 0.13500001e+00 + 1 211 0 0 -0.21198481e+00 -0.17111376e-01 0.27619553e+00 0.13959999e+00 + 2 111 312 313 0.10987215e+01 -0.82921797e+00 0.91713911e+00 0.13500001e+00 + 1 321 0 0 0.11597306e-01 0.39374286e+00 0.27319980e+00 0.49360001e+00 + 2 111 314 315 0.17379627e+00 -0.10946894e+00 0.41540378e+00 0.13500001e+00 + 2 311 316 316 -0.11527415e+00 0.35495925e+00 -0.17358985e+01 0.49770001e+00 + 1 211 0 0 -0.26647228e+00 -0.19529644e+00 -0.69460404e+00 0.13959999e+00 + 2 -311 317 317 0.66590405e+00 0.18047683e-01 -0.41477675e+01 0.49770001e+00 + 1 -211 0 0 0.22451550e-01 -0.16172555e+00 -0.19591836e+01 0.13959999e+00 + 1 211 0 0 -0.60867816e-02 0.43116592e-01 -0.20548604e+01 0.13959999e+00 + 1 -211 0 0 0.20043600e+00 0.13562152e+00 -0.24994955e+01 0.13959999e+00 + 2 111 318 319 0.80567174e-01 0.24102420e-01 -0.41907902e+01 0.13500001e+00 + 1 130 0 0 0.75824469e+00 -0.85745949e+00 -0.87357492e+01 0.49770001e+00 + 2 3122 320 321 -0.22232258e+00 0.52443242e+00 -0.19526496e+01 0.11156000e+01 + 2 111 322 323 -0.13338268e+00 0.87902039e-01 -0.62616962e+00 0.13500001e+00 + 2-3122 324 325 -0.16895678e+01 0.57185096e+00 -0.62257700e+01 0.11156000e+01 + 1 22 0 0 -0.44669293e-01 0.68892375e-01 -0.44694138e+00 0.00000000e+00 + 1 -211 0 0 -0.80928057e+00 0.78997672e+00 -0.42847233e+01 0.13959999e+00 + 2 111 326 327 -0.65083611e+00 0.61588979e+00 -0.17745867e+01 0.13500001e+00 + 1 211 0 0 -0.17909412e+00 -0.12813601e+00 -0.73236573e+00 0.13959999e+00 + 2 111 328 329 -0.19765827e+00 0.28504610e+00 -0.87195845e+01 0.13500001e+00 + 1 130 0 0 -0.45328639e-01 -0.37425721e+00 -0.31041012e+01 0.49770001e+00 + 1 22 0 0 0.47937334e-01 0.12543571e+00 -0.13108867e+02 0.00000000e+00 + 1 22 0 0 -0.70374429e-01 0.22972126e+00 -0.16124435e+02 0.00000000e+00 + 1 -211 0 0 0.24171615e+00 -0.28916091e-01 -0.16390606e+02 0.13959999e+00 + 1 211 0 0 -0.24809040e+00 -0.17017820e+00 -0.43254256e+01 0.13959999e+00 + 1 211 0 0 -0.11893980e+00 -0.57423019e+00 -0.10873691e+02 0.13959999e+00 + 1 -211 0 0 -0.61774179e-01 -0.29227108e-01 -0.47508254e+01 0.13959999e+00 + 2 111 330 331 0.13040392e+00 -0.40490705e+00 -0.52906322e+01 0.13500001e+00 + 2 -311 332 332 -0.60385597e+00 0.24032481e+00 0.19908502e+01 0.49770001e+00 + 2 111 333 334 0.23430467e-01 0.39701226e+00 0.12038500e+01 0.13500001e+00 + 1 321 0 0 -0.10851977e+00 0.40657371e+00 0.16263103e+01 0.49360001e+00 + 2 111 335 336 0.10130728e+00 0.13404354e+00 0.11434095e+00 0.13500001e+00 + 1 -321 0 0 0.17853266e+00 -0.33790973e+00 0.22834848e+00 0.49360001e+00 + 1 211 0 0 -0.19065883e-01 -0.32256982e+00 -0.26669225e+00 0.13959999e+00 + 1 -211 0 0 0.89574188e-01 0.42564642e+00 0.72221565e+00 0.13959999e+00 + 2 111 337 338 -0.53816092e+00 0.20123564e+00 0.91417080e+00 0.13500001e+00 + 1 211 0 0 0.55750787e-01 -0.52768737e-01 0.10051788e+00 0.13959999e+00 + 2 111 339 341 -0.85709023e+00 0.45762280e+00 -0.30004120e+00 0.13500001e+00 + 1 22 0 0 0.22169419e-01 -0.62080190e-01 -0.16671452e+00 0.00000000e+00 + 1 22 0 0 0.27193609e+00 -0.87737367e-01 -0.44699410e+00 0.00000000e+00 + 1 211 0 0 0.91846436e+00 0.18229064e+00 -0.31224864e+01 0.13959999e+00 + 1 -211 0 0 0.29799598e+00 -0.10534655e-01 -0.53717220e+00 0.13959999e+00 + 2 111 342 343 0.74040487e-01 -0.47103368e-01 -0.73392338e+00 0.13500001e+00 + 1 -211 0 0 0.36651649e-01 -0.32271400e+00 0.21077132e+00 0.13959999e+00 + 2 111 344 345 -0.63102227e-02 0.31471136e+00 -0.71356587e-01 0.13500001e+00 + 1 211 0 0 -0.13447335e+00 -0.63811243e-03 0.71405095e+00 0.13959999e+00 + 2 111 346 347 0.33728325e+00 -0.31621116e+00 0.18694040e+00 0.13500001e+00 + 1 -211 0 0 0.10850030e+00 -0.47500437e+00 0.68725526e+00 0.13959999e+00 + 2 111 348 349 -0.20738682e+00 -0.70315801e-01 -0.12505367e+00 0.13500001e+00 + 1 211 0 0 0.22508651e+00 0.89700723e+00 0.35909469e+01 0.13959999e+00 + 1 -211 0 0 0.12334032e+00 -0.75174406e-01 0.21990907e+00 0.13959999e+00 + 1 22 0 0 0.52933775e-01 0.80345944e-01 0.17340380e+02 0.00000000e+00 + 2 113 350 351 -0.37122163e+00 -0.10922520e+00 0.28905493e+03 0.81080163e+00 + 1 2212 0 0 0.90145588e-01 0.28407833e+00 0.13285492e+03 0.93830001e+00 + 2 111 352 353 -0.26106107e+00 0.12808080e+00 0.48493732e+02 0.13500001e+00 + 1 22 0 0 -0.23241075e-01 -0.53236566e-01 0.64876080e+00 0.00000000e+00 + 2 113 354 355 -0.36715418e-01 0.43946394e+00 0.13034915e+03 0.44019306e+00 + 1 211 0 0 0.29208881e+00 0.28145757e+00 0.63344240e+01 0.13959999e+00 + 1 -211 0 0 0.43253690e-01 -0.66416584e-01 0.10037141e+02 0.13959999e+00 + 2 111 356 357 -0.49376749e-02 -0.50539538e-01 0.25573392e+01 0.13500001e+00 + 1 -211 0 0 -0.20224541e+00 -0.51119506e-01 0.56910295e+01 0.13959999e+00 + 1 211 0 0 -0.20152666e-01 0.40970050e-01 0.44818664e+01 0.13959999e+00 + 2 111 358 359 -0.23093365e-01 -0.12207475e+00 0.91103029e+01 0.13500001e+00 + 1 211 0 0 0.16824702e-01 0.58452882e-01 0.51339090e+00 0.13959999e+00 + 1 -211 0 0 -0.33971235e+00 -0.20111741e+00 0.10157537e+02 0.13959999e+00 + 1 22 0 0 -0.39330694e+00 -0.96078479e+00 0.52545404e+00 0.00000000e+00 + 1 22 0 0 -0.22784591e+00 -0.83481568e+00 0.51044738e+00 0.00000000e+00 + 1 211 0 0 -0.22510204e+00 -0.21141884e+00 0.47503024e+00 0.13959999e+00 + 2 111 360 361 0.38397554e+00 0.91126412e-01 0.21772142e+00 0.13500001e+00 + 1 211 0 0 -0.55778003e+00 -0.27983859e+00 -0.26750662e+01 0.13959999e+00 + 2 111 362 363 -0.10379215e+00 0.15951993e+00 -0.10520211e+00 0.13500001e+00 + 1 22 0 0 -0.32996857e+00 -0.15332353e+01 -0.15316178e+01 0.00000000e+00 + 1 22 0 0 -0.16869813e+00 -0.11390227e+01 -0.10043224e+01 0.00000000e+00 + 1 211 0 0 -0.29001868e+00 -0.16182452e+00 -0.11268277e+01 0.13959999e+00 + 1 -211 0 0 -0.46906023e+01 -0.45686426e+01 -0.25607346e+02 0.13959999e+00 + 1 -321 0 0 -0.13015716e+01 -0.16785280e+01 -0.92617903e+01 0.49360001e+00 + 1 211 0 0 -0.15230639e+01 -0.11464908e+01 -0.76403885e+01 0.13959999e+00 + 2 310 364 365 -0.17557780e+01 -0.17156659e+01 -0.10652614e+02 0.49770001e+00 + 1-2112 0 0 -0.11383542e+01 -0.76443744e+00 -0.51323209e+01 0.93959999e+00 + 2 111 366 367 -0.55379879e+00 -0.16543815e+00 -0.27013209e+01 0.13500001e+00 + 1 2112 0 0 -0.16373657e+01 -0.11167045e+01 -0.70404215e+01 0.93959999e+00 + 1 211 0 0 -0.79595286e+00 -0.73671657e+00 -0.38689318e+01 0.13959999e+00 + 1 -211 0 0 0.15850604e+00 0.87946914e-02 -0.32990688e+00 0.13959999e+00 + 2 111 368 369 -0.10945048e+01 -0.13100722e+00 -0.35075173e+01 0.13500001e+00 + 1 211 0 0 -0.66040617e+00 0.96752298e+00 -0.14393373e+01 0.13959999e+00 + 1 -211 0 0 -0.10165933e+00 -0.23358937e+00 -0.39943951e+00 0.13959999e+00 + 1 -211 0 0 0.25961566e+00 0.18196659e+00 -0.50807846e+00 0.13959999e+00 + 1 211 0 0 -0.11607266e+00 -0.13716529e+00 -0.24241248e+00 0.13959999e+00 + 2 111 370 371 -0.17180759e-01 -0.50306823e-01 -0.60783720e+00 0.13500001e+00 + 1 -211 0 0 -0.25079268e+00 -0.14066462e+00 0.57106650e+00 0.13959999e+00 + 1 211 0 0 -0.54566368e-01 -0.11864185e-01 0.18624455e+01 0.13959999e+00 + 2 311 372 372 -0.67813188e-01 0.12768656e-01 0.37760293e+01 0.49770001e+00 + 2 111 373 374 -0.60533889e-01 -0.10300270e+00 0.11625117e+00 0.13500001e+00 + 1 321 0 0 0.26797056e-01 0.97719491e-01 0.30053487e+00 0.49360001e+00 + 2 111 375 376 0.64313519e+00 -0.68378560e-01 0.40454093e+00 0.13500001e+00 + 1 -321 0 0 0.92149395e+00 -0.54465115e+00 -0.39817899e-01 0.49360001e+00 + 2 111 377 378 0.52166820e+00 -0.28495574e+00 -0.53314769e+00 0.13500001e+00 + 1 22 0 0 -0.11339319e+00 0.63886501e-01 0.11602437e+00 0.00000000e+00 + 1 22 0 0 -0.31791680e-01 -0.23893565e-02 0.20813516e+00 0.00000000e+00 + 1 -211 0 0 -0.91035783e-01 -0.16374838e-01 -0.40069652e+00 0.13959999e+00 + 1 211 0 0 0.48181415e-01 0.78923991e-02 -0.56590527e+00 0.13959999e+00 + 2 221 379 381 -0.66449416e+00 0.94997384e-01 -0.20844133e+01 0.54750001e+00 + 1 211 0 0 0.70628440e+00 -0.27939665e+00 0.75671035e+00 0.13959999e+00 + 1 -211 0 0 0.39229378e-01 0.18587910e+00 -0.88102147e-01 0.13959999e+00 + 1 22 0 0 0.11430277e+00 -0.14969531e+00 0.36782908e+00 0.00000000e+00 + 2 111 382 383 -0.48569879e+00 0.27691102e+00 0.11837615e+00 0.13500001e+00 + 1 -211 0 0 0.65168113e-01 0.35077356e-01 0.31411949e+00 0.13959999e+00 + 1 211 0 0 0.57987459e-02 -0.76875659e-02 0.13298714e+00 0.13959999e+00 + 2 111 384 385 -0.16185309e+00 -0.21420768e-01 0.67050004e+00 0.13500001e+00 + 1 -211 0 0 0.15821029e+00 0.55362713e+00 0.40274653e+01 0.13959999e+00 + 2 111 386 387 0.25379851e+00 -0.25544649e+00 0.38035798e+01 0.13500001e+00 + 1 211 0 0 -0.36657304e+00 0.37019482e+00 0.72804980e+01 0.13959999e+00 + 2 111 388 389 -0.29639298e+00 -0.33416125e+00 0.19862630e+01 0.13500001e+00 + 1 22 0 0 0.99512905e-01 -0.34864727e-01 0.65817761e+00 0.00000000e+00 + 1 22 0 0 0.11629352e+00 -0.72681289e-02 0.22302184e+00 0.00000000e+00 + 1 -211 0 0 -0.59619009e+00 0.40030181e+00 0.17943459e+02 0.13959999e+00 + 2 111 390 391 0.21035254e-01 -0.29234934e+00 0.10393394e+02 0.13500001e+00 + 2 111 392 393 -0.12593122e+00 -0.39390929e-01 -0.61039817e+00 0.13500001e+00 + 2 111 394 395 -0.58858968e-01 -0.64211681e-01 -0.38511115e+00 0.13500001e+00 + 2 111 396 397 0.13239226e+00 -0.18638182e+00 -0.59666204e+00 0.13500001e+00 + 1 211 0 0 0.29066654e-01 0.11876713e+00 -0.14631253e+00 0.13959999e+00 + 2 111 398 399 0.56965593e-01 -0.18249866e+00 -0.76429391e+00 0.13500001e+00 + 1 -211 0 0 0.26636237e+00 -0.26360965e+00 -0.40121326e+01 0.13959999e+00 + 2 111 400 401 -0.10749971e+00 0.22550952e+00 -0.14885799e+01 0.13500001e+00 + 1-2212 0 0 -0.37388986e+00 -0.27045113e+00 -0.28790128e+01 0.93830001e+00 + 1 -211 0 0 0.35350285e-01 0.16697249e+00 -0.75788987e+00 0.13959999e+00 + 1 211 0 0 0.48644480e+00 -0.33594474e-01 -0.36750827e+01 0.13959999e+00 + 1 -211 0 0 0.30449858e+00 -0.35890627e+00 -0.17268605e+01 0.13959999e+00 + 1 22 0 0 0.16128547e+00 0.28555831e+00 0.63952044e-01 0.00000000e+00 + 1 22 0 0 -0.11478610e-01 -0.23775935e+00 -0.85269660e-02 0.00000000e+00 + 1 22 0 0 -0.10271733e+00 -0.88402793e-01 0.18537257e-01 0.00000000e+00 + 1 22 0 0 -0.93489304e-01 -0.33625123e+00 0.12681653e+00 0.00000000e+00 + 1 22 0 0 0.75990766e-01 0.57265669e-01 0.94807225e+00 0.00000000e+00 + 1 -11 0 0 0.35212100e-01 0.77722684e-01 0.44789311e+00 0.50999998e-03 + 1 11 0 0 0.82086504e-01 0.18504998e+00 0.10632457e+01 0.50999998e-03 + 1 22 0 0 -0.44343448e+00 -0.17969893e+00 0.62999040e+00 0.00000000e+00 + 1 22 0 0 -0.44798218e-01 -0.57117335e-01 0.17110865e+00 0.00000000e+00 + 1 22 0 0 -0.30469976e-01 0.59026919e-01 0.27168182e+00 0.00000000e+00 + 1 22 0 0 -0.41737556e-02 -0.71643807e-01 0.40632936e+00 0.00000000e+00 + 1 22 0 0 0.74299604e-01 -0.37127625e-01 0.92670344e-01 0.00000000e+00 + 1 22 0 0 0.10244218e+01 -0.79209036e+00 0.82446873e+00 0.00000000e+00 + 1 22 0 0 0.56566015e-01 -0.11525574e+00 0.21322384e+00 0.00000000e+00 + 1 22 0 0 0.11723024e+00 0.57868138e-02 0.20217992e+00 0.00000000e+00 + 2 310 402 403 -0.11527415e+00 0.35495925e+00 -0.17358985e+01 0.49770001e+00 + 1 130 0 0 0.66590405e+00 0.18047683e-01 -0.41477675e+01 0.49770001e+00 + 1 22 0 0 0.18608594e-01 -0.41609187e-01 -0.54631424e+00 0.00000000e+00 + 1 22 0 0 0.61958585e-01 0.65711603e-01 -0.36444759e+01 0.00000000e+00 + 1 2212 0 0 -0.20820765e+00 0.54172301e+00 -0.18049067e+01 0.93830001e+00 + 1 -211 0 0 -0.14114893e-01 -0.17290637e-01 -0.14774263e+00 0.13959999e+00 + 1 22 0 0 -0.13530068e-02 0.96969679e-03 -0.27568799e+00 0.00000000e+00 + 1 22 0 0 -0.13202968e+00 0.86932346e-01 -0.35048169e+00 0.00000000e+00 + 1-2212 0 0 -0.13836095e+01 0.55919319e+00 -0.50605316e+01 0.93830001e+00 + 1 211 0 0 -0.30595800e+00 0.12657739e-01 -0.11652377e+01 0.13959999e+00 + 1 22 0 0 -0.10182273e-01 0.98283328e-02 -0.89853957e-01 0.00000000e+00 + 1 22 0 0 -0.64065379e+00 0.60606146e+00 -0.16847327e+01 0.00000000e+00 + 1 22 0 0 -0.87039024e-02 -0.64600515e-03 -0.31367801e-01 0.00000000e+00 + 1 22 0 0 -0.18895438e+00 0.28569213e+00 -0.86882172e+01 0.00000000e+00 + 1 22 0 0 0.10091648e-01 0.25830641e-02 -0.46646541e+00 0.00000000e+00 + 1 22 0 0 0.12031227e+00 -0.40749007e+00 -0.48241668e+01 0.00000000e+00 + 2 310 404 405 -0.60385597e+00 0.24032481e+00 0.19908502e+01 0.49770001e+00 + 1 22 0 0 0.79345495e-01 0.26392269e+00 0.79846239e+00 0.00000000e+00 + 1 22 0 0 -0.55915028e-01 0.13308959e+00 0.40538767e+00 0.00000000e+00 + 1 22 0 0 0.13274840e+00 0.86818509e-01 0.88617653e-01 0.00000000e+00 + 1 22 0 0 -0.31441133e-01 0.47225028e-01 0.25723282e-01 0.00000000e+00 + 1 22 0 0 -0.39945868e+00 0.17937493e+00 0.77671480e+00 0.00000000e+00 + 1 22 0 0 -0.13870227e+00 0.21860713e-01 0.13745603e+00 0.00000000e+00 + 1 22 0 0 -0.11562924e+00 0.41618053e-01 -0.82745254e-01 0.00000000e+00 + 1 11 0 0 -0.44501269e+00 0.24143347e+00 -0.13128549e+00 0.50999998e-03 + 1 -11 0 0 -0.29644838e+00 0.17457131e+00 -0.86010471e-01 0.50999998e-03 + 1 22 0 0 0.49122330e-01 -0.65950103e-01 -0.19605039e+00 0.00000000e+00 + 1 22 0 0 0.24918156e-01 0.18846739e-01 -0.53787297e+00 0.00000000e+00 + 1 22 0 0 0.60822960e-01 0.19015592e+00 -0.26359610e-01 0.00000000e+00 + 1 22 0 0 -0.67133181e-01 0.12455542e+00 -0.44996973e-01 0.00000000e+00 + 1 22 0 0 0.10856646e+00 -0.35601616e-01 0.78911796e-01 0.00000000e+00 + 1 22 0 0 0.22871678e+00 -0.28060955e+00 0.10802858e+00 0.00000000e+00 + 1 22 0 0 -0.12345234e+00 -0.50865963e-01 0.79179928e-03 0.00000000e+00 + 1 22 0 0 -0.83934471e-01 -0.19449839e-01 -0.12584546e+00 0.00000000e+00 + 1 -211 0 0 0.53750366e-01 -0.33722538e+00 0.15880556e+03 0.13959999e+00 + 1 211 0 0 -0.42497200e+00 0.22800018e+00 0.13024939e+03 0.13959999e+00 + 1 22 0 0 -0.37542433e-01 0.32445993e-01 0.30016596e+01 0.00000000e+00 + 1 22 0 0 -0.22351862e+00 0.95634803e-01 0.45492069e+02 0.00000000e+00 + 1 -211 0 0 -0.16306826e+00 0.32609034e+00 0.69960144e+02 0.13959999e+00 + 1 211 0 0 0.12635285e+00 0.11337361e+00 0.60389015e+02 0.13959999e+00 + 1 22 0 0 -0.46671171e-01 -0.79848066e-01 0.15196191e+01 0.00000000e+00 + 1 22 0 0 0.41733496e-01 0.29308533e-01 0.10377198e+01 0.00000000e+00 + 1 22 0 0 -0.61566632e-01 -0.70849620e-02 0.28648024e+01 0.00000000e+00 + 1 22 0 0 0.38473267e-01 -0.11498979e+00 0.62455006e+01 0.00000000e+00 + 1 22 0 0 0.13612035e+00 -0.32635536e-01 0.77396527e-01 0.00000000e+00 + 1 22 0 0 0.24785519e+00 0.12376195e+00 0.14032491e+00 0.00000000e+00 + 1 22 0 0 -0.61057854e-01 0.10267012e+00 -0.13374057e+00 0.00000000e+00 + 1 22 0 0 -0.42734299e-01 0.56849811e-01 0.28538477e-01 0.00000000e+00 + 1 211 0 0 -0.83120298e+00 -0.66581219e+00 -0.53890667e+01 0.13959999e+00 + 1 -211 0 0 -0.92457491e+00 -0.10498536e+01 -0.52635465e+01 0.13959999e+00 + 1 22 0 0 -0.23152240e+00 -0.72908178e-02 -0.11959318e+01 0.00000000e+00 + 1 22 0 0 -0.32227635e+00 -0.15814734e+00 -0.15053891e+01 0.00000000e+00 + 1 22 0 0 -0.65237373e+00 -0.14305177e+00 -0.20624697e+01 0.00000000e+00 + 1 22 0 0 -0.44213110e+00 0.12044545e-01 -0.14450476e+01 0.00000000e+00 + 1 22 0 0 0.25653861e-01 0.31115312e-01 -0.85467085e-01 0.00000000e+00 + 1 22 0 0 -0.42834621e-01 -0.81422135e-01 -0.52237010e+00 0.00000000e+00 + 1 130 0 0 -0.67813188e-01 0.12768656e-01 0.37760293e+01 0.49770001e+00 + 1 22 0 0 0.10695789e-01 -0.86623155e-01 0.13358414e-01 0.00000000e+00 + 1 22 0 0 -0.71229674e-01 -0.16379539e-01 0.10289276e+00 0.00000000e+00 + 1 22 0 0 0.63222963e+00 -0.63323185e-01 0.41488680e+00 0.00000000e+00 + 1 22 0 0 0.10905538e-01 -0.50553745e-02 -0.10345921e-01 0.00000000e+00 + 1 22 0 0 0.10743281e+00 -0.70566952e-01 -0.49035445e-01 0.00000000e+00 + 1 22 0 0 0.41423535e+00 -0.21438879e+00 -0.48411226e+00 0.00000000e+00 + 2 111 406 407 -0.41847411e+00 0.31866200e-01 -0.12108350e+01 0.13500001e+00 + 2 111 408 409 -0.54577664e-01 -0.36072738e-01 -0.45207369e+00 0.13500001e+00 + 2 111 410 411 -0.19144243e+00 0.99203929e-01 -0.42150474e+00 0.13500001e+00 + 1 22 0 0 -0.12964304e+00 0.11765007e+00 -0.13210051e-01 0.00000000e+00 + 1 22 0 0 -0.35605574e+00 0.15926096e+00 0.13158619e+00 0.00000000e+00 + 1 22 0 0 -0.76802045e-01 -0.66370726e-01 0.21681556e+00 0.00000000e+00 + 1 22 0 0 -0.85051045e-01 0.44949960e-01 0.45368448e+00 0.00000000e+00 + 1 22 0 0 0.41614715e-01 -0.13166466e+00 0.14916643e+01 0.00000000e+00 + 1 22 0 0 0.21218382e+00 -0.12378184e+00 0.23119156e+01 0.00000000e+00 + 1 22 0 0 -0.23486614e+00 -0.32985044e+00 0.17169389e+01 0.00000000e+00 + 1 22 0 0 -0.61526846e-01 -0.43108463e-02 0.26932427e+00 0.00000000e+00 + 1 22 0 0 0.30363131e-01 -0.12112865e+00 0.65437236e+01 0.00000000e+00 + 1 22 0 0 -0.93278764e-02 -0.17122069e+00 0.38496709e+01 0.00000000e+00 + 1 22 0 0 -0.64551845e-01 0.43496061e-01 -0.17594749e+00 0.00000000e+00 + 1 22 0 0 -0.61379373e-01 -0.82886994e-01 -0.43445072e+00 0.00000000e+00 + 1 22 0 0 0.20019051e-01 0.63746199e-02 -0.35471357e-02 0.00000000e+00 + 1 22 0 0 -0.78878023e-01 -0.70586301e-01 -0.38156402e+00 0.00000000e+00 + 1 22 0 0 0.85770851e-02 0.21672482e-01 -0.47895871e-01 0.00000000e+00 + 1 22 0 0 0.12381517e+00 -0.20805430e+00 -0.54876620e+00 0.00000000e+00 + 1 22 0 0 0.76668024e-01 -0.18297887e+00 -0.74766558e+00 0.00000000e+00 + 1 22 0 0 -0.19702435e-01 0.48020110e-03 -0.16628269e-01 0.00000000e+00 + 1 22 0 0 -0.84948696e-01 0.16198775e+00 -0.13379973e+01 0.00000000e+00 + 1 22 0 0 -0.22551011e-01 0.63521773e-01 -0.15058267e+00 0.00000000e+00 + 1 -211 0 0 -0.17130530e+00 0.11896621e+00 -0.13137789e+01 0.13959999e+00 + 1 211 0 0 0.56031149e-01 0.23599304e+00 -0.42211950e+00 0.13959999e+00 + 1 -211 0 0 -0.49140501e+00 0.21513861e+00 0.98223191e+00 0.13959999e+00 + 1 211 0 0 -0.11245090e+00 0.25186181e-01 0.10086182e+01 0.13959999e+00 + 1 22 0 0 -0.37725320e+00 0.49148191e-01 -0.11605642e+01 0.00000000e+00 + 1 22 0 0 -0.41220885e-01 -0.17281990e-01 -0.50270841e-01 0.00000000e+00 + 1 22 0 0 -0.95925368e-02 0.42840481e-01 -0.26198569e+00 0.00000000e+00 + 1 22 0 0 -0.44985130e-01 -0.78913219e-01 -0.19008802e+00 0.00000000e+00 + 1 22 0 0 -0.20752785e+00 0.80715276e-01 -0.40676939e+00 0.00000000e+00 + 1 22 0 0 0.16085410e-01 0.18488655e-01 -0.14735345e-01 0.00000000e+00 + 281 + 2 25 2 3 -0.38788685e+02 0.56758366e+02 0.37199829e+03 0.29970563e+03 + 2 23 4 5 -0.76688789e+02 -0.51514370e+02 0.70661171e+02 0.90678490e+02 + 2 23 6 7 0.37900108e+02 0.10827272e+03 0.30133713e+03 0.91444672e+02 + 1 11 0 0 -0.35037724e+02 -0.74105598e+02 0.42024319e+02 0.50999998e-03 + 1 -11 0 0 -0.41651081e+02 0.22591228e+02 0.28636854e+02 0.50999998e-03 + 1 11 0 0 0.43651142e+02 0.58341856e+01 0.95054100e+02 0.50999998e-03 + 1 -11 0 0 -0.57510338e+01 0.10243854e+03 0.20628302e+03 0.50999998e-03 + 2 2101 36 36 0.48570320e+00 -0.18252555e+00 0.42739960e+03 0.57933331e+00 + 2 21 36 36 -0.21073213e+01 -0.46825180e+01 0.46771286e+02 0.00000000e+00 + 2 21 36 36 0.64631076e+01 -0.43175821e+01 0.55581346e+01 0.00000000e+00 + 2 21 36 36 0.79345355e+01 -0.94112406e+01 0.14930843e+02 0.00000000e+00 + 2 21 36 36 0.14397410e+01 -0.96099091e+00 0.13965563e+01 0.00000000e+00 + 2 21 36 36 0.13796278e+01 -0.16660649e+01 0.38120571e+00 0.00000000e+00 + 2 21 36 36 0.51253104e+01 0.18961005e+01 -0.26113472e+01 0.00000000e+00 + 2 21 36 36 0.47832532e+01 -0.95984440e+01 -0.82181966e+00 0.00000000e+00 + 2 21 36 36 0.14642161e+02 -0.34674370e+02 -0.11342762e+01 0.00000000e+00 + 2 21 36 36 -0.45165142e+00 -0.55700028e+00 0.87797455e-01 0.00000000e+00 + 2 21 36 36 0.41902546e-01 -0.62131830e-01 0.13061762e+00 0.00000000e+00 + 2 21 36 36 -0.83743179e+00 -0.48883364e+00 -0.10762419e+00 0.00000000e+00 + 2 21 36 36 0.13202742e+01 -0.93532749e-01 -0.82503586e+01 0.00000000e+00 + 2 21 36 36 0.20894508e+01 0.21721227e+01 -0.49961552e+02 0.00000000e+00 + 2 21 36 36 -0.13706659e+00 0.16146072e+01 -0.24619696e+02 0.00000000e+00 + 2 21 36 36 -0.40800489e-01 0.27735075e+00 -0.37324661e+00 0.00000000e+00 + 2 21 36 36 -0.11987943e-01 0.11744563e+00 -0.15019013e+00 0.00000000e+00 + 2 21 36 36 -0.48221876e-02 0.20954113e-01 0.47427926e-01 0.00000000e+00 + 2 21 36 36 0.11395608e+01 0.95680982e+00 -0.26797426e+02 0.00000000e+00 + 2 2 36 36 -0.55523872e+00 -0.52268445e+00 0.28763893e+00 0.55999998e-02 + 2 2 85 85 -0.46395159e+00 -0.22145268e+00 0.12426339e+01 0.55999998e-02 + 2 21 85 85 -0.27452559e+01 -0.34393749e+01 0.18415006e+01 0.00000000e+00 + 2 21 85 85 -0.43974584e-02 -0.97174013e+00 0.33163962e+00 0.00000000e+00 + 2 21 85 85 -0.37285098e+00 0.38878900e+00 0.41543350e+01 0.00000000e+00 + 2 21 85 85 -0.49403268e+00 0.74467406e+01 0.33887421e+02 0.00000000e+00 + 2 2101 85 85 0.17084795e+00 0.20119110e+00 -0.66028198e+03 0.57933331e+00 + 2 21 107 107 -0.13218033e+01 -0.91309756e+00 -0.76327357e+01 0.00000000e+00 + 2 21 107 107 0.13218033e+01 0.91309756e+00 -0.12770474e+03 0.00000000e+00 + 2 92 37 84 0.42698307e+02 -0.60162529e+02 0.38216357e+03 0.55214569e+03 + 1 2112 0 0 0.27544296e+00 0.15768570e+00 0.20904825e+03 0.93959999e+00 + 2 213 114 115 0.19970268e+00 -0.30144534e+00 0.16155620e+03 0.62811553e+00 + 2 -213 116 117 0.54165818e-01 -0.13751221e-01 0.41473419e+02 0.99513817e+00 + 1 211 0 0 -0.60207349e+00 -0.76332736e+00 0.13427646e+02 0.13959999e+00 + 2 331 118 119 -0.37467605e+00 -0.17943465e+01 0.18625505e+02 0.95783585e+00 + 1 -211 0 0 -0.13102627e+00 0.17985451e+00 0.38405428e+01 0.13959999e+00 + 1 211 0 0 -0.57940489e+00 -0.37664610e+00 0.72669644e+01 0.13959999e+00 + 1 -211 0 0 0.17452517e+00 -0.11261261e+01 0.65300646e+01 0.13959999e+00 + 2 113 120 121 0.22365627e+00 -0.34317482e+00 0.36552854e+01 0.75294077e+00 + 2 111 122 123 -0.16194460e+00 -0.86468168e-01 0.36187646e+01 0.13500001e+00 + 1 211 0 0 -0.43255966e-01 -0.18696013e+00 0.55146551e+00 0.13959999e+00 + 2 113 124 125 0.25742260e+00 -0.84495372e+00 0.32665341e+01 0.83827710e+00 + 1-2212 0 0 0.47334561e+00 0.17081229e+00 0.11884232e+01 0.93830001e+00 + 1 2112 0 0 0.24833930e+01 -0.16832703e+01 0.30849545e+01 0.93959999e+00 + 2 213 126 127 0.64917475e+00 -0.14521512e+01 0.20068088e+01 0.49577826e+00 + 2 -323 128 129 0.20268896e+01 -0.23970575e+01 0.40310435e+01 0.83054411e+00 + 2 311 130 130 0.52652760e+01 -0.43328762e+01 0.54268813e+01 0.49770001e+00 + 2 213 131 132 0.22766056e+01 -0.26377347e+01 0.47344556e+01 0.86158347e+00 + 1-2212 0 0 0.14279242e+01 -0.17623793e+01 0.19231342e+01 0.93830001e+00 + 1 2112 0 0 0.15560459e+01 -0.22449940e+00 -0.11977528e+00 0.93959999e+00 + 1 211 0 0 -0.89613244e-01 0.75042676e-02 0.48803228e+00 0.13959999e+00 + 2 223 133 135 0.22631001e+01 0.27164075e+00 -0.19335957e+00 0.79356897e+00 + 1 -211 0 0 0.36158675e+00 -0.11776174e+01 -0.11074029e+00 0.13959999e+00 + 2 213 136 137 0.23342264e+01 0.41905382e+00 -0.98568606e+00 0.84440988e+00 + 1 -211 0 0 0.16593636e+01 -0.26010368e+01 -0.59342647e+00 0.13959999e+00 + 2-2214 138 139 0.13479950e+01 -0.15348326e+01 -0.32651016e+00 0.13228093e+01 + 2 2224 140 141 0.65418949e+01 -0.15828154e+02 -0.47009635e+00 0.13482418e+01 + 2 221 142 143 0.29262218e+01 -0.47286787e+01 -0.53677827e+00 0.54750001e+00 + 2 221 144 146 0.23274262e+01 -0.68333354e+01 -0.33479744e+00 0.54750001e+00 + 2 223 147 149 0.35405495e+01 -0.91335783e+01 -0.64097218e-01 0.78360820e+00 + 1-2212 0 0 0.98546666e+00 -0.22104075e+01 -0.20315696e+00 0.93830001e+00 + 1 2212 0 0 -0.27106124e+00 -0.73282701e+00 0.43336695e+00 0.93830001e+00 + 2 -213 150 151 -0.39381629e+00 -0.62968028e+00 -0.22485580e+01 0.81770819e+00 + 2 223 152 154 0.49144527e+00 -0.18982796e+00 -0.12298237e+01 0.71769726e+00 + 2 223 155 157 -0.24442706e+00 0.24788095e-01 -0.31514196e+01 0.78217977e+00 + 2 111 158 159 0.15472808e+01 0.13182130e+01 -0.24158785e+02 0.13500001e+00 + 2 113 160 161 0.50196952e+00 0.26731136e+00 -0.11839139e+02 0.89459306e+00 + 2 221 162 164 0.61081503e-01 0.29317781e+00 -0.34796796e+01 0.54750001e+00 + 2 111 165 166 0.18113567e+00 -0.29671416e+00 -0.17869318e+01 0.13500001e+00 + 2 -313 167 168 0.15458654e+00 0.14424775e+01 -0.22070684e+02 0.90029514e+00 + 1 321 0 0 0.46830887e+00 0.64867723e+00 -0.90629654e+01 0.49360001e+00 + 1 -321 0 0 0.21110734e+00 0.35982755e+00 -0.67190423e+01 0.49360001e+00 + 2 313 169 170 -0.18934581e+00 0.51623577e+00 -0.59455557e+01 0.88445270e+00 + 2 113 171 172 0.17164426e+00 0.28219232e+00 -0.97086678e+01 0.72479057e+00 + 2 213 173 174 0.10377861e+01 -0.17285077e+00 -0.50304852e+01 0.81528711e+00 + 2 -323 175 176 -0.62674934e+00 0.13722376e-01 -0.16230460e+01 0.91335124e+00 + 2 323 177 178 0.20495912e+00 0.18652706e+00 -0.14927809e+01 0.93574464e+00 + 2 113 179 180 -0.25700772e+00 -0.32552040e+00 -0.52822739e+00 0.48736656e+00 + 2 92 86 106 -0.39096408e+01 0.34041529e+01 -0.61882446e+03 0.34045166e+03 + 2 113 181 182 -0.12344964e+01 -0.15993313e+01 0.11920009e+01 0.89560831e+00 + 2 111 183 184 -0.54193473e+00 -0.27038300e+00 0.90099299e+00 0.13500001e+00 + 2 213 185 186 -0.13129203e+01 -0.19371516e+01 0.85114551e+00 0.74189663e+00 + 1 2112 0 0 -0.41772881e+00 -0.28167894e-01 0.41779418e+01 0.93959999e+00 + 2 223 187 189 0.15095557e+00 0.12981141e+01 0.44355912e+01 0.87816018e+00 + 1-2212 0 0 -0.53032186e-01 0.41331682e+00 0.25896833e+01 0.93830001e+00 + 2 2224 190 191 -0.33245780e-01 0.69197381e+00 0.53567147e+01 0.12445635e+01 + 2 223 192 194 -0.87735653e+00 0.12465861e+01 0.75365024e+01 0.78382903e+00 + 2-2224 195 196 0.55532694e+00 0.13782918e+01 0.52925782e+01 0.12293053e+01 + 2 223 197 199 -0.35003126e+00 0.51385667e-01 0.11406705e+01 0.77775091e+00 + 1 211 0 0 0.38089284e+00 0.11117604e+01 0.53942676e+01 0.13959999e+00 + 2 -213 200 201 -0.27059031e+00 0.29371256e+00 0.80102164e+00 0.71644431e+00 + 2 113 202 203 0.76385863e-01 0.15239239e+00 0.85749710e+00 0.73309618e+00 + 2 113 204 205 -0.44283297e-01 0.39558592e+00 -0.18365430e+01 0.42807612e+00 + 2 323 206 207 -0.17970985e+00 -0.30101603e+00 -0.12052518e+01 0.86142594e+00 + 2 -311 208 208 -0.22368699e-01 0.73426984e-01 -0.24367452e+01 0.49770001e+00 + 2 2114 209 210 0.31121796e+00 0.60034138e+00 -0.29751916e+01 0.12159030e+01 + 2 221 211 212 -0.16143917e+00 -0.43570590e+00 -0.77665911e+01 0.54750001e+00 + 1-2112 0 0 -0.27870384e+00 0.31085299e-01 -0.38051548e+02 0.93959999e+00 + 2 3122 213 214 0.89706711e-01 0.57036769e+00 -0.92424911e+02 0.11156000e+01 + 2 311 215 215 0.30371356e+00 -0.33243194e+00 -0.51265442e+03 0.49770001e+00 + 2 92 108 113 0.00000000e+00 0.00000000e+00 -0.13533748e+03 0.69306006e+01 + 1 2112 0 0 0.35519326e+00 0.12201169e+00 -0.30370211e+02 0.93959999e+00 + 1-2212 0 0 -0.18825777e+00 -0.37686929e+00 -0.13777378e+02 0.93830001e+00 + 1 211 0 0 -0.17158167e+00 0.60542691e+00 -0.26161070e+02 0.13959999e+00 + 2 113 216 217 -0.47789492e-01 0.21690406e-01 -0.21389153e+02 0.87973726e+00 + 2 113 218 219 -0.18159941e+00 -0.50177068e+00 -0.88438091e+01 0.11328787e+01 + 2 113 220 221 0.23403507e+00 0.12951100e+00 -0.34795860e+02 0.68873048e+00 + 1 211 0 0 0.26103616e+00 -0.22108746e+00 0.45403881e+02 0.13959999e+00 + 2 111 222 223 -0.61333463e-01 -0.80357879e-01 0.11615231e+03 0.13500001e+00 + 1 -211 0 0 -0.23691779e+00 -0.69610596e-01 0.36602180e+02 0.13959999e+00 + 2 111 224 225 0.29108360e+00 0.55859379e-01 0.48712363e+01 0.13500001e+00 + 1 22 0 0 -0.18899152e+00 -0.15751173e+00 0.21297214e+01 0.00000000e+00 + 2 223 226 228 -0.18568450e+00 -0.16368346e+01 0.16495783e+02 0.77838725e+00 + 1 211 0 0 0.18184035e+00 -0.35473040e+00 0.35481498e+01 0.13959999e+00 + 1 -211 0 0 0.41815951e-01 0.11555530e-01 0.10713592e+00 0.13959999e+00 + 1 22 0 0 -0.17155413e+00 -0.79841152e-01 0.35886385e+01 0.00000000e+00 + 1 22 0 0 0.96095446e-02 -0.66270167e-02 0.30126125e-01 0.00000000e+00 + 1 211 0 0 0.46612322e-03 -0.24260432e+00 0.22597966e+01 0.13959999e+00 + 1 -211 0 0 0.25695649e+00 -0.60234940e+00 0.10067376e+01 0.13959999e+00 + 1 211 0 0 0.66326046e+00 -0.11595780e+01 0.16420740e+01 0.13959999e+00 + 2 111 229 230 -0.14085799e-01 -0.29257306e+00 0.36473456e+00 0.13500001e+00 + 2 -311 231 231 0.18914202e+01 -0.21999004e+01 0.34685597e+01 0.49770001e+00 + 1 -211 0 0 0.13546924e+00 -0.19715716e+00 0.56248403e+00 0.13959999e+00 + 2 310 232 233 0.52652760e+01 -0.43328762e+01 0.54268813e+01 0.49770001e+00 + 1 211 0 0 0.60302323e+00 -0.24408543e+00 0.85986000e+00 0.13959999e+00 + 2 111 234 235 0.16735823e+01 -0.23936491e+01 0.38745954e+01 0.13500001e+00 + 1 -211 0 0 0.15638188e+01 0.70622563e-01 -0.24009903e+00 0.13959999e+00 + 1 211 0 0 0.55790073e+00 0.19617711e+00 0.12573893e+00 0.13959999e+00 + 2 111 236 237 0.14138059e+00 0.48410892e-02 -0.78999475e-01 0.13500001e+00 + 1 211 0 0 0.15892372e+00 -0.24669923e-01 0.91960147e-01 0.13959999e+00 + 2 111 238 239 0.21753030e+01 0.44372377e+00 -0.10776463e+01 0.13500001e+00 + 1-2212 0 0 0.88059151e+00 -0.14471650e+01 -0.30709031e+00 0.93830001e+00 + 2 111 240 242 0.46740365e+00 -0.87667823e-01 -0.19419909e-01 0.13500001e+00 + 1 2212 0 0 0.51758332e+01 -0.11943376e+02 -0.59485149e+00 0.93830001e+00 + 1 211 0 0 0.13660616e+01 -0.38847766e+01 0.12475518e+00 0.13959999e+00 + 1 22 0 0 0.52823907e+00 -0.52674681e+00 -0.21669418e-02 0.00000000e+00 + 1 22 0 0 0.23979828e+01 -0.42019320e+01 -0.53461134e+00 0.00000000e+00 + 2 111 243 244 0.12620666e+01 -0.36386154e+01 -0.25497511e-01 0.13500001e+00 + 2 111 245 246 0.66689354e+00 -0.19258493e+01 -0.20123827e+00 0.13500001e+00 + 2 111 247 248 0.39846611e+00 -0.12688707e+01 -0.10806167e+00 0.13500001e+00 + 1 -211 0 0 0.10650274e+01 -0.31662552e+01 0.17399763e+00 0.13959999e+00 + 1 211 0 0 0.21162155e+01 -0.52065272e+01 -0.24268213e+00 0.13959999e+00 + 2 111 249 250 0.35930654e+00 -0.76079583e+00 0.45872773e-02 0.13500001e+00 + 1 -211 0 0 -0.17717707e+00 -0.28147057e+00 -0.20153457e+00 0.13959999e+00 + 2 111 251 252 -0.21663918e+00 -0.34820965e+00 -0.20470233e+01 0.13500001e+00 + 1 211 0 0 0.13776729e+00 0.13529733e-01 -0.41038430e+00 0.13959999e+00 + 1 -211 0 0 0.63038081e-01 -0.15787682e+00 -0.67284465e+00 0.13959999e+00 + 2 111 253 254 0.29063985e+00 -0.45480847e-01 -0.14659454e+00 0.13500001e+00 + 1 -211 0 0 -0.64696416e-01 0.14088410e+00 -0.62166977e+00 0.13959999e+00 + 1 211 0 0 -0.16181377e+00 -0.20679560e+00 -0.66262615e+00 0.13959999e+00 + 2 111 255 256 -0.17916881e-01 0.90699598e-01 -0.18671240e+01 0.13500001e+00 + 1 22 0 0 0.22189668e+00 0.14483929e+00 -0.35262706e+01 0.00000000e+00 + 1 22 0 0 0.13253841e+01 0.11733737e+01 -0.20632513e+02 0.00000000e+00 + 1 -211 0 0 0.70896387e+00 0.42484239e-01 -0.79635744e+01 0.13959999e+00 + 1 211 0 0 -0.20699434e+00 0.22482711e+00 -0.38755641e+01 0.13959999e+00 + 1 211 0 0 0.91621615e-01 0.20548759e+00 -0.13944298e+01 0.13959999e+00 + 1 -211 0 0 -0.52526727e-01 0.11911549e+00 -0.15794086e+01 0.13959999e+00 + 2 111 257 258 0.21986622e-01 -0.31425230e-01 -0.50584143e+00 0.13500001e+00 + 1 22 0 0 0.80350719e-01 -0.28660037e-01 -0.35064930e+00 0.00000000e+00 + 1 22 0 0 0.10078496e+00 -0.26805413e+00 -0.14362825e+01 0.00000000e+00 + 1 -321 0 0 0.13352612e+00 0.48621836e+00 -0.71747546e+01 0.49360001e+00 + 1 211 0 0 0.21060430e-01 0.95625919e+00 -0.14895931e+02 0.13959999e+00 + 1 321 0 0 0.36241159e-01 0.25879318e+00 -0.21070709e+01 0.49360001e+00 + 1 -211 0 0 -0.22558698e+00 0.25744259e+00 -0.38384852e+01 0.13959999e+00 + 1 211 0 0 -0.53802609e-01 0.12364080e+00 -0.81490459e+01 0.13959999e+00 + 1 -211 0 0 0.22544688e+00 0.15855151e+00 -0.15596225e+01 0.13959999e+00 + 1 211 0 0 0.15590119e+00 0.16821909e+00 -0.21994071e+01 0.13959999e+00 + 2 111 259 260 0.88188493e+00 -0.34106988e+00 -0.28310783e+01 0.13500001e+00 + 2 -311 261 261 -0.49028185e+00 -0.27938795e+00 -0.11734914e+01 0.49770001e+00 + 1 -211 0 0 -0.13646746e+00 0.29311034e+00 -0.44955459e+00 0.13959999e+00 + 2 311 262 262 0.31756687e+00 0.22368468e-01 -0.14064000e+01 0.49770001e+00 + 1 211 0 0 -0.11260775e+00 0.16415858e+00 -0.86380988e-01 0.13959999e+00 + 1 211 0 0 0.48683047e-01 0.29065162e-01 -0.10783450e+00 0.13959999e+00 + 1 -211 0 0 -0.30569077e+00 -0.35458556e+00 -0.42039293e+00 0.13959999e+00 + 1 211 0 0 0.46731442e-01 -0.47625706e+00 0.22509272e+00 0.13959999e+00 + 1 -211 0 0 -0.12812278e+01 -0.11230743e+01 0.96690822e+00 0.13959999e+00 + 1 22 0 0 -0.47970286e+00 -0.27839303e+00 0.83924335e+00 0.00000000e+00 + 1 22 0 0 -0.62231846e-01 0.80100372e-02 0.61749596e-01 0.00000000e+00 + 1 211 0 0 0.35047024e-01 -0.27726609e+00 0.10667506e+00 0.13959999e+00 + 2 111 263 264 -0.13479675e+01 -0.16598855e+01 0.74447048e+00 0.13500001e+00 + 1 -211 0 0 0.30724925e+00 0.29032791e+00 0.14580457e+01 0.13959999e+00 + 1 211 0 0 -0.62115543e-01 0.15006724e+00 0.32145339e+00 0.13959999e+00 + 2 111 265 266 -0.94178148e-01 0.85771888e+00 0.26560922e+01 0.13500001e+00 + 1 2212 0 0 -0.15730496e-01 0.37236276e+00 0.31265371e+01 0.93830001e+00 + 1 211 0 0 -0.17515281e-01 0.31961107e+00 0.22301774e+01 0.13959999e+00 + 1 -211 0 0 -0.34247249e-01 0.21564898e+00 0.10370485e+01 0.13959999e+00 + 1 211 0 0 -0.45986629e+00 0.89171660e+00 0.49212313e+01 0.13959999e+00 + 2 111 267 268 -0.38324305e+00 0.13922054e+00 0.15782231e+01 0.13500001e+00 + 1-2212 0 0 0.62526393e+00 0.13621899e+01 0.47636108e+01 0.93830001e+00 + 1 -211 0 0 -0.69936991e-01 0.16101956e-01 0.52896714e+00 0.13959999e+00 + 1 211 0 0 -0.49567103e-01 0.22178528e+00 0.30424258e+00 0.13959999e+00 + 1 -211 0 0 -0.33374456e+00 -0.10965851e+00 0.36545169e+00 0.13959999e+00 + 2 111 269 270 0.33280402e-01 -0.60741104e-01 0.47097629e+00 0.13500001e+00 + 1 -211 0 0 -0.90249926e-01 0.48498529e+00 0.59930718e+00 0.13959999e+00 + 2 111 271 272 -0.18034039e+00 -0.19127271e+00 0.20171446e+00 0.13500001e+00 + 1 -211 0 0 0.31085363e+00 0.14395136e+00 0.18177070e+00 0.13959999e+00 + 1 211 0 0 -0.23446777e+00 0.84410533e-02 0.67572641e+00 0.13959999e+00 + 1 211 0 0 -0.89451388e-01 0.24208829e-01 -0.34928125e+00 0.13959999e+00 + 1 -211 0 0 0.45168087e-01 0.37137708e+00 -0.14872617e+01 0.13959999e+00 + 2 311 273 273 0.41494928e-01 0.17588258e-01 -0.50956225e+00 0.49770001e+00 + 1 211 0 0 -0.22120477e+00 -0.31860429e+00 -0.69568950e+00 0.13959999e+00 + 2 310 274 275 -0.22368699e-01 0.73426984e-01 -0.24367452e+01 0.49770001e+00 + 1 2212 0 0 0.40168422e+00 0.56973457e+00 -0.28285611e+01 0.93830001e+00 + 1 -211 0 0 -0.90466261e-01 0.30606799e-01 -0.14663041e+00 0.13959999e+00 + 1 22 0 0 -0.20285095e+00 -0.24511898e+00 -0.70465693e+01 0.00000000e+00 + 1 22 0 0 0.41411784e-01 -0.19058691e+00 -0.72002172e+00 0.00000000e+00 + 1 2212 0 0 0.20840339e-01 0.38807443e+00 -0.73403870e+02 0.93830001e+00 + 1 -211 0 0 0.68866372e-01 0.18229327e+00 -0.19021038e+02 0.13959999e+00 + 1 130 0 0 0.30371356e+00 -0.33243194e+00 -0.51265442e+03 0.49770001e+00 + 1 211 0 0 -0.39681975e-01 0.22246712e+00 -0.19566095e+02 0.13959999e+00 + 1 -211 0 0 -0.81075244e-02 -0.20077671e+00 -0.18230586e+01 0.13959999e+00 + 1 -211 0 0 -0.50010502e+00 -0.46744642e+00 -0.78011012e+01 0.13959999e+00 + 1 211 0 0 0.31850559e+00 -0.34324247e-01 -0.10427074e+01 0.13959999e+00 + 1 211 0 0 0.24603629e+00 0.35976243e+00 -0.18780502e+02 0.13959999e+00 + 1 -211 0 0 -0.12001224e-01 -0.23025143e+00 -0.16015356e+02 0.13959999e+00 + 1 22 0 0 -0.93265906e-01 -0.48181377e-01 0.10101965e+03 0.00000000e+00 + 1 22 0 0 0.31932451e-01 -0.32176502e-01 0.15132648e+02 0.00000000e+00 + 1 22 0 0 0.23594819e+00 0.96489623e-01 0.35831766e+01 0.00000000e+00 + 1 22 0 0 0.55135410e-01 -0.40630244e-01 0.12880595e+01 0.00000000e+00 + 1 211 0 0 -0.13836588e+00 -0.57486284e+00 0.42439799e+01 0.13959999e+00 + 1 -211 0 0 -0.14420071e+00 -0.34837562e+00 0.61678200e+01 0.13959999e+00 + 2 111 276 277 0.96882053e-01 -0.71359628e+00 0.60839849e+01 0.13500001e+00 + 1 22 0 0 -0.18841324e-01 -0.22117667e+00 0.34900826e+00 0.00000000e+00 + 1 22 0 0 0.47555240e-02 -0.71396388e-01 0.15726320e-01 0.00000000e+00 + 1 130 0 0 0.18914202e+01 -0.21999004e+01 0.34685597e+01 0.49770001e+00 + 1 -211 0 0 0.29802856e+01 -0.22283113e+01 0.28174312e+01 0.13959999e+00 + 1 211 0 0 0.22849901e+01 -0.21045644e+01 0.26094499e+01 0.13959999e+00 + 1 22 0 0 0.15269976e+01 -0.21112761e+01 0.34445794e+01 0.00000000e+00 + 1 22 0 0 0.14658487e+00 -0.28237298e+00 0.43001607e+00 0.00000000e+00 + 1 22 0 0 0.10798589e+00 0.64270027e-01 -0.37716057e-01 0.00000000e+00 + 1 22 0 0 0.33394702e-01 -0.59428934e-01 -0.41283417e-01 0.00000000e+00 + 1 22 0 0 0.18971473e+01 0.43188098e+00 -0.93472230e+00 0.00000000e+00 + 1 22 0 0 0.27815574e+00 0.11842787e-01 -0.14292392e+00 0.00000000e+00 + 1 22 0 0 0.14522603e+00 -0.49813092e-02 -0.64232647e-01 0.00000000e+00 + 1 11 0 0 0.21419953e+00 -0.57948638e-01 0.34956697e-01 0.50999998e-03 + 1 -11 0 0 0.10797805e+00 -0.24737865e-01 0.98560471e-02 0.50999998e-03 + 1 22 0 0 0.89733899e+00 -0.26233699e+01 -0.77802546e-01 0.00000000e+00 + 1 22 0 0 0.36472762e+00 -0.10152452e+01 0.52305032e-01 0.00000000e+00 + 1 22 0 0 0.14396720e+00 -0.35587764e+00 -0.87434247e-01 0.00000000e+00 + 1 22 0 0 0.52292633e+00 -0.15699717e+01 -0.11380403e+00 0.00000000e+00 + 1 22 0 0 0.39604741e+00 -0.11356404e+01 -0.11139192e+00 0.00000000e+00 + 1 22 0 0 0.24186932e-02 -0.13323030e+00 0.33302596e-02 0.00000000e+00 + 1 22 0 0 0.23139253e-01 -0.80080658e-01 -0.38312331e-01 0.00000000e+00 + 1 22 0 0 0.33616728e+00 -0.68071508e+00 0.42899609e-01 0.00000000e+00 + 1 22 0 0 -0.14057273e+00 -0.11377235e+00 -0.72172314e+00 0.00000000e+00 + 1 22 0 0 -0.76066457e-01 -0.23443730e+00 -0.13253002e+01 0.00000000e+00 + 1 22 0 0 0.24506089e+00 -0.10456903e-01 -0.61914958e-01 0.00000000e+00 + 1 22 0 0 0.45578945e-01 -0.35023943e-01 -0.84679574e-01 0.00000000e+00 + 1 22 0 0 0.16220845e-04 -0.15516587e-01 -0.10466164e+01 0.00000000e+00 + 1 22 0 0 -0.17933102e-01 0.10621619e+00 -0.82050759e+00 0.00000000e+00 + 1 22 0 0 0.31282797e-01 -0.81709869e-01 -0.35712025e+00 0.00000000e+00 + 1 22 0 0 -0.92961732e-02 0.50284639e-01 -0.14872116e+00 0.00000000e+00 + 1 22 0 0 0.27460128e+00 -0.16958950e+00 -0.88408399e+00 0.00000000e+00 + 1 22 0 0 0.60728365e+00 -0.17148039e+00 -0.19469944e+01 0.00000000e+00 + 1 130 0 0 -0.49028185e+00 -0.27938795e+00 -0.11734914e+01 0.49770001e+00 + 1 130 0 0 0.31756687e+00 0.22368468e-01 -0.14064000e+01 0.49770001e+00 + 1 22 0 0 -0.13274746e+01 -0.15987654e+01 0.71985871e+00 0.00000000e+00 + 1 22 0 0 -0.20492829e-01 -0.61120078e-01 0.24611739e-01 0.00000000e+00 + 1 22 0 0 -0.25996860e-01 0.26112226e+00 0.10192146e+01 0.00000000e+00 + 1 22 0 0 -0.68181291e-01 0.59659660e+00 0.16368775e+01 0.00000000e+00 + 1 22 0 0 -0.56165677e-01 0.72462305e-01 0.25628680e+00 0.00000000e+00 + 1 22 0 0 -0.32707736e+00 0.66758223e-01 0.13219362e+01 0.00000000e+00 + 1 22 0 0 -0.45394484e-01 -0.21222722e-01 0.82837217e-01 0.00000000e+00 + 1 22 0 0 0.78674890e-01 -0.39518386e-01 0.38813910e+00 0.00000000e+00 + 1 22 0 0 -0.13908482e+00 -0.19842787e+00 0.13059059e+00 0.00000000e+00 + 1 22 0 0 -0.41255571e-01 0.71551614e-02 0.71123861e-01 0.00000000e+00 + 1 130 0 0 0.41494928e-01 0.17588258e-01 -0.50956225e+00 0.49770001e+00 + 2 111 278 279 0.44763453e-01 0.21693882e+00 -0.17932104e+01 0.13500001e+00 + 2 111 280 281 -0.67132153e-01 -0.14351183e+00 -0.64353466e+00 0.13500001e+00 + 1 22 0 0 0.12255216e+00 -0.46857163e+00 0.42406788e+01 0.00000000e+00 + 1 22 0 0 -0.25670115e-01 -0.24502462e+00 0.18433053e+01 0.00000000e+00 + 1 22 0 0 0.81326328e-02 0.17741503e+00 -0.16375283e+01 0.00000000e+00 + 1 22 0 0 0.36630820e-01 0.39523788e-01 -0.15568215e+00 0.00000000e+00 + 1 22 0 0 -0.17954875e-01 0.24108613e-01 -0.58036458e-01 0.00000000e+00 + 1 22 0 0 -0.49177285e-01 -0.16762045e+00 -0.58549827e+00 0.00000000e+00 + 326 + 2 25 2 3 0.41438408e+02 0.14557352e+02 -0.14048491e+02 0.28458023e+03 + 2 23 4 5 -0.46209373e+02 0.91588821e+02 0.17647835e+02 0.92447227e+02 + 2 23 6 7 0.87647781e+02 -0.77031471e+02 -0.31696327e+02 0.87191383e+02 + 1 13 0 0 0.10370345e+02 0.41394424e+02 0.41884537e+02 0.10570000e+00 + 1 -13 0 0 -0.56579723e+02 0.50194420e+02 -0.24236698e+02 0.10570000e+00 + 1 11 0 0 0.66831177e+02 -0.33942914e+01 -0.27768253e+02 0.50999998e-03 + 1 -11 0 0 0.20816608e+02 -0.73637177e+02 -0.39280732e+01 0.50999998e-03 + 2 2 34 34 -0.71108060e+01 0.14566184e+01 0.22808779e+02 0.55999998e-02 + 2 21 34 34 -0.18810297e+01 0.16388229e+01 0.91655064e+01 0.00000000e+00 + 2 21 34 34 -0.61637654e+01 0.39791441e+01 0.26933565e+02 0.00000000e+00 + 2 21 34 34 -0.69973426e+01 0.37425354e+01 0.27603138e+02 0.00000000e+00 + 2 21 34 34 -0.13199933e+02 0.54352593e+01 0.44799198e+02 0.00000000e+00 + 2 21 34 34 -0.16915086e+00 0.34760669e+00 0.10103340e+02 0.00000000e+00 + 2 21 34 34 -0.14391123e+01 -0.22032247e+00 -0.21317600e+02 0.00000000e+00 + 2 2101 34 34 0.17409255e+00 -0.21291969e-01 -0.55086456e+03 0.57933331e+00 + 2 3 59 59 -0.61325729e+00 0.18470528e+01 -0.39895196e+01 0.00000000e+00 + 2 21 59 59 0.14391123e+01 0.22032247e+00 0.25952251e+02 0.00000000e+00 + 2 -3 59 59 0.61325729e+00 -0.18470528e+01 0.13582983e+02 0.00000000e+00 + 2 2101 70 70 0.32395923e+00 0.25666359e+00 0.53615656e+03 0.57933331e+00 + 2 21 70 70 -0.15227619e+01 0.54397371e-01 0.38746700e+02 0.00000000e+00 + 2 21 70 70 -0.14995421e+00 -0.26981854e+00 0.79972345e+00 0.00000000e+00 + 2 21 70 70 -0.84305400e+00 -0.25279527e+01 0.10104793e+02 0.00000000e+00 + 2 21 70 70 -0.36814457e+00 0.10394955e+00 0.29598224e+01 0.00000000e+00 + 2 21 70 70 -0.17633410e+00 -0.48724639e+00 0.26058824e+01 0.00000000e+00 + 2 21 70 70 0.25736117e-02 0.28950627e+01 0.44561954e+02 0.00000000e+00 + 2 21 70 70 -0.95671046e+00 0.20214338e+01 0.34076393e+02 0.00000000e+00 + 2 21 70 70 0.11764596e+02 -0.14580537e+02 -0.32612015e+02 0.00000000e+00 + 2 21 70 70 0.39286840e+01 -0.53908911e+01 -0.93192339e+01 0.00000000e+00 + 2 21 70 70 0.78865781e+01 -0.96656160e+01 -0.10694677e+02 0.00000000e+00 + 2 21 70 70 0.75945604e+00 -0.84174627e+00 -0.17217987e+01 0.00000000e+00 + 2 21 70 70 0.77119696e+00 -0.19251760e+01 -0.10005461e+01 0.00000000e+00 + 2 21 70 70 -0.28015524e+02 -0.11956046e+01 -0.18040230e+03 0.00000000e+00 + 2 2 70 70 0.50496191e+00 0.41702172e+00 -0.24989708e+02 0.55999998e-02 + 2 92 35 58 -0.36787048e+02 0.16358372e+02 -0.43076865e+03 0.57480469e+03 + 2 323 112 113 -0.49290743e+01 0.24374750e+01 0.18801435e+02 0.89566958e+00 + 2 3322 114 115 -0.64341292e+01 0.34679275e+01 0.25288445e+02 0.13149000e+01 + 1 321 0 0 -0.76996989e+01 0.26784744e+01 0.26400232e+02 0.49360001e+00 + 2-3224 116 117 -0.46863966e+01 0.22057505e+01 0.17954533e+02 0.13658290e+01 + 2 221 118 119 -0.40311294e+01 0.19123808e+01 0.16239162e+02 0.54750001e+00 + 2 -313 120 121 -0.43060822e+01 0.22962837e+01 0.16751940e+02 0.91629928e+00 + 2 113 122 123 -0.21221604e+01 0.82904750e+00 0.10456110e+02 0.96900457e+00 + 1 -211 0 0 -0.71399033e+00 0.44747451e+00 0.18689886e+01 0.13959999e+00 + 1 211 0 0 -0.67922479e+00 0.19668864e+00 0.32637978e+01 0.13959999e+00 + 1 2112 0 0 0.14117671e-01 0.23368967e+00 0.24250169e+01 0.93959999e+00 + 1 -211 0 0 0.18886009e+00 -0.26079533e+00 -0.28592691e+00 0.13959999e+00 + 2-2114 124 125 0.94134368e-01 -0.46292496e+00 0.71708316e+00 0.13580405e+01 + 2 213 126 127 -0.15038444e-01 0.46724507e+00 -0.40085700e+00 0.93637139e+00 + 1 -211 0 0 -0.51298213e+00 0.10653985e+00 -0.11979393e+01 0.13959999e+00 + 2 213 128 129 0.19174059e+00 0.30409923e+00 -0.66043788e+00 0.44958362e+00 + 2 221 130 131 -0.51977402e+00 -0.25283831e+00 -0.82875509e+01 0.54750001e+00 + 2 -213 132 133 0.21035807e+00 -0.24310401e+00 -0.76653104e+01 0.68721831e+00 + 1 211 0 0 -0.14391299e+00 0.61576851e-02 -0.45478663e+00 0.13959999e+00 + 2 311 134 134 -0.41194418e+00 0.21298569e+00 -0.40379262e+01 0.49770001e+00 + 2 -323 135 136 0.46218705e+00 -0.13160247e-01 -0.16436102e+02 0.92755502e+00 + 2 3212 137 138 0.26328048e-01 -0.33102626e+00 -0.25353889e+02 0.11926000e+01 + 2-3212 139 140 -0.43017650e+00 0.87195158e-01 -0.67074966e+02 0.11926000e+01 + 2 213 141 142 -0.56359255e+00 -0.97283155e-01 -0.63400448e+02 0.74333543e+00 + 1 2112 0 0 0.22453530e+00 0.13008809e+00 -0.37567917e+03 0.93959999e+00 + 2 92 60 69 0.14391123e+01 0.22032247e+00 0.35545715e+02 0.26152042e+02 + 2 -311 143 143 0.24636053e+00 0.80416781e+00 -0.13087701e+01 0.49770001e+00 + 2 -213 144 145 -0.46715793e+00 0.37862208e+00 -0.13609464e+01 0.99066472e+00 + 2 113 146 147 -0.49340013e+00 0.38124898e+00 -0.40823966e+00 0.76850492e+00 + 1 211 0 0 0.23648372e+00 -0.76929885e-02 0.14349578e+00 0.13959999e+00 + 2 221 148 149 -0.48298340e-01 0.12194949e-01 0.48521988e-01 0.54750001e+00 + 2 113 150 151 0.60911554e+00 0.93871631e-01 0.99327192e+01 0.71365458e+00 + 2 -213 152 153 0.24638759e+00 0.67802534e-01 0.27052319e+01 0.79553854e+00 + 2 111 154 155 0.41040052e-01 -0.94815767e+00 0.65773239e+01 0.13500001e+00 + 2 213 156 157 0.53838879e+00 0.32270947e+00 0.70561552e+01 0.81596082e+00 + 2 311 158 158 0.53019249e+00 -0.88444436e+00 0.12160224e+02 0.49770001e+00 + 2 92 71 111 -0.60904775e+01 -0.31136059e+02 0.40927155e+03 0.85464911e+03 + 2 223 159 161 0.79515898e+00 -0.27576205e+00 0.32981046e+03 0.76945823e+00 + 1 2112 0 0 -0.75234270e+00 0.36816642e+00 0.17541595e+03 0.93959999e+00 + 2 113 162 163 -0.38099223e+00 0.30231598e+00 0.34283569e+02 0.49320701e+00 + 1 211 0 0 -0.64505205e-01 0.33822302e-01 0.33588643e+01 0.13959999e+00 + 2 -213 164 165 -0.23362136e+00 -0.14298709e+00 0.13607329e+02 0.76187265e+00 + 2 213 166 167 -0.65153199e+00 -0.94378179e+00 0.93435078e+01 0.57681608e+00 + 2-3222 168 169 -0.48454326e-01 -0.61692196e+00 0.11497869e+02 0.11894000e+01 + 2 3322 170 171 -0.10193458e+01 -0.98182422e+00 0.81353731e+01 0.13149000e+01 + 2 313 172 173 0.25482866e+00 0.95916474e+00 0.15540339e+02 0.82665676e+00 + 2 111 174 175 -0.11632512e+00 -0.38842503e-01 0.63832760e+01 0.13500001e+00 + 1 211 0 0 0.18610407e+00 -0.29942505e-01 0.16905839e+01 0.13959999e+00 + 2 -323 176 177 -0.98785299e+00 0.97554016e+00 0.19930580e+02 0.95813388e+00 + 2 333 178 179 -0.20591909e+00 0.74108356e+00 0.10084447e+02 0.10248526e+01 + 2 311 180 180 -0.12961921e-01 0.85354024e+00 0.14248921e+02 0.49770001e+00 + 2 213 181 182 0.47789223e-01 -0.26385936e+00 0.18492206e+01 0.66975856e+00 + 2 223 183 185 -0.65710343e-01 0.30790129e+00 0.21805565e+01 0.78227329e+00 + 2 -323 186 187 -0.20481806e+00 0.24165303e+00 0.35406852e+01 0.87079328e+00 + 2 313 188 189 0.20785101e+00 0.18129598e+00 0.65572000e+01 0.88840193e+00 + 1 211 0 0 0.37066418e+00 -0.10937537e+00 -0.46078855e+00 0.13959999e+00 + 1 -211 0 0 -0.35174221e+00 -0.23613321e-01 0.16317688e+01 0.13959999e+00 + 2 213 190 191 -0.48426622e+00 -0.21517088e+00 0.21306841e+00 0.72649771e+00 + 1 -211 0 0 0.44194964e+00 -0.31865066e+00 -0.70785117e+00 0.13959999e+00 + 2 213 192 193 0.61160407e+01 -0.73751845e+01 -0.16950869e+02 0.11057392e+01 + 2 111 194 195 0.28595188e+01 -0.27062492e+01 -0.38424091e+01 0.13500001e+00 + 2 -213 196 197 0.31980155e+01 -0.46024699e+01 -0.91538668e+01 0.89640588e+00 + 2 213 198 199 0.12488128e+01 -0.21438730e+01 -0.30187523e+01 0.46633410e+00 + 1-2212 0 0 0.17105160e+01 -0.22774978e+01 -0.41120591e+01 0.93830001e+00 + 1 2212 0 0 0.34862311e+01 -0.27751074e+01 -0.55731740e+01 0.93830001e+00 + 2 -213 200 201 0.17275742e+01 -0.35042291e+01 -0.49166145e+01 0.63925010e+00 + 2 213 202 203 0.20874901e+01 -0.34534984e+01 -0.34547279e+01 0.87731212e+00 + 2 -213 204 205 0.15763011e+01 -0.15362613e+01 -0.23864768e+01 0.88865817e+00 + 1 211 0 0 0.98504918e-02 0.46542299e+00 -0.84161872e+00 0.13959999e+00 + 2 113 206 207 -0.30992508e+00 -0.67074966e+00 -0.32063713e+01 0.70169324e+00 + 2 223 208 210 -0.29526111e+00 -0.85930061e+00 -0.14618748e+01 0.77016401e+00 + 2 -323 211 212 -0.13310676e+01 0.17135657e+00 -0.12346370e+02 0.90151328e+00 + 2 313 213 214 -0.21383297e+01 0.19214821e+00 -0.12359980e+02 0.90993136e+00 + 1 211 0 0 -0.83602877e+01 -0.10339868e+01 -0.54190029e+02 0.13959999e+00 + 2 111 215 216 -0.40879869e+01 -0.13894716e+00 -0.25157595e+02 0.13500001e+00 + 2 331 217 218 -0.39698505e+01 -0.18095352e+00 -0.32222778e+02 0.95784533e+00 + 2 113 219 220 -0.70482969e+01 0.58688861e+00 -0.45597282e+02 0.77489501e+00 + 2 113 221 222 0.70622033e+00 -0.29732278e+00 -0.18070471e+02 0.70901865e+00 + 2 311 223 223 -0.45461121e+01 0.22614551e+01 0.16710886e+02 0.49770001e+00 + 1 211 0 0 -0.38296169e+00 0.17601967e+00 0.20905490e+01 0.13959999e+00 + 2 3122 224 225 -0.50745373e+01 0.27856727e+01 0.19727074e+02 0.11156000e+01 + 2 111 226 227 -0.13595918e+01 0.68225455e+00 0.55613708e+01 0.13500001e+00 + 2-3122 228 229 -0.39722197e+01 0.19902633e+01 0.15882102e+02 0.11156000e+01 + 1 -211 0 0 -0.71417660e+00 0.21548705e+00 0.20724304e+01 0.13959999e+00 + 1 22 0 0 -0.82491601e+00 0.23666409e+00 0.37723541e+01 0.00000000e+00 + 1 22 0 0 -0.32062132e+01 0.16757166e+01 0.12466808e+02 0.00000000e+00 + 2 -311 230 230 -0.15520333e+01 0.86995488e+00 0.68825550e+01 0.49770001e+00 + 2 111 231 232 -0.27540488e+01 0.14263288e+01 0.98693848e+01 0.13500001e+00 + 1 -211 0 0 -0.86387968e+00 0.25682694e+00 0.62355433e+01 0.13959999e+00 + 1 211 0 0 -0.12582808e+01 0.57222050e+00 0.42205658e+01 0.13959999e+00 + 1-2112 0 0 -0.25038835e+00 -0.24545550e+00 0.56692249e+00 0.93959999e+00 + 2 111 233 234 0.34452271e+00 -0.21746945e+00 0.15016064e+00 0.13500001e+00 + 1 211 0 0 -0.44735974e+00 0.27902970e+00 -0.13100171e+00 0.13959999e+00 + 2 111 235 236 0.43232131e+00 0.18821540e+00 -0.26985529e+00 0.13500001e+00 + 1 211 0 0 0.28038591e-01 0.32686734e+00 -0.35192433e+00 0.13959999e+00 + 2 111 237 238 0.16370198e+00 -0.22768095e-01 -0.30851352e+00 0.13500001e+00 + 1 22 0 0 -0.33441242e-01 0.78583337e-01 -0.20943567e+00 0.00000000e+00 + 1 22 0 0 -0.48633280e+00 -0.33142164e+00 -0.80781155e+01 0.00000000e+00 + 1 -211 0 0 0.25126988e+00 0.13548167e+00 -0.45971608e+01 0.13959999e+00 + 2 111 239 240 -0.40911824e-01 -0.37858567e+00 -0.30681496e+01 0.13500001e+00 + 1 130 0 0 -0.41194418e+00 0.21298569e+00 -0.40379262e+01 0.49770001e+00 + 2 -311 241 241 0.18558350e+00 -0.74414700e-01 -0.50768628e+01 0.49770001e+00 + 1 -211 0 0 0.27660349e+00 0.61254457e-01 -0.11359239e+02 0.13959999e+00 + 2 3122 242 243 0.28847748e-01 -0.23323885e+00 -0.23418324e+02 0.11156000e+01 + 1 22 0 0 -0.25197007e-02 -0.97787425e-01 -0.19355658e+01 0.00000000e+00 + 2-3122 244 245 -0.35003576e+00 0.82073703e-01 -0.59023140e+02 0.11156000e+01 + 1 22 0 0 -0.80140755e-01 0.51214569e-02 -0.80518255e+01 0.00000000e+00 + 1 211 0 0 -0.63708037e+00 -0.64583734e-01 -0.59705170e+02 0.13959999e+00 + 2 111 246 247 0.73487774e-01 -0.32699425e-01 -0.36952834e+01 0.13500001e+00 + 2 310 248 249 0.24636053e+00 0.80416781e+00 -0.13087701e+01 0.49770001e+00 + 1 -211 0 0 -0.70218945e+00 0.22152367e+00 -0.58502531e+00 0.13959999e+00 + 2 111 250 251 0.23503149e+00 0.15709843e+00 -0.77592117e+00 0.13500001e+00 + 1 -211 0 0 0.16273546e+00 0.61937921e-01 -0.19819413e+00 0.13959999e+00 + 1 211 0 0 -0.65613562e+00 0.31931105e+00 -0.21004553e+00 0.13959999e+00 + 1 22 0 0 0.18478692e+00 -0.43670822e-01 0.19404837e+00 0.00000000e+00 + 1 22 0 0 -0.23308526e+00 0.55865772e-01 -0.14552638e+00 0.00000000e+00 + 1 211 0 0 0.50777370e+00 0.31613728e+00 0.80921898e+01 0.13959999e+00 + 1 -211 0 0 0.10134178e+00 -0.22226566e+00 0.18405293e+01 0.13959999e+00 + 1 -211 0 0 -0.47400147e-01 0.33018929e+00 0.75475168e+00 0.13959999e+00 + 2 111 252 253 0.29378775e+00 -0.26238674e+00 0.19504805e+01 0.13500001e+00 + 1 22 0 0 0.34860112e-01 -0.24120235e+00 0.20853834e+01 0.00000000e+00 + 1 22 0 0 0.61799400e-02 -0.70695531e+00 0.44919400e+01 0.00000000e+00 + 1 211 0 0 -0.13133617e+00 -0.62698528e-01 0.77079558e+00 0.13959999e+00 + 2 111 254 255 0.66972488e+00 0.38540798e+00 0.62853584e+01 0.13500001e+00 + 1 130 0 0 0.53019249e+00 -0.88444436e+00 0.12160224e+02 0.49770001e+00 + 1 -211 0 0 0.21897934e-01 -0.15447406e+00 0.42676281e+02 0.13959999e+00 + 1 211 0 0 0.46600056e+00 -0.23210877e+00 0.20299660e+03 0.13959999e+00 + 2 111 256 257 0.30726051e+00 0.11082076e+00 0.84137619e+02 0.13500001e+00 + 1 211 0 0 -0.30300719e+00 0.31685460e+00 0.16920702e+02 0.13959999e+00 + 1 -211 0 0 -0.77985033e-01 -0.14538631e-01 0.17362867e+02 0.13959999e+00 + 1 -211 0 0 -0.20240374e+00 -0.66937879e-01 0.13039113e+02 0.13959999e+00 + 2 111 258 259 -0.31217610e-01 -0.76049201e-01 0.56821489e+00 0.13500001e+00 + 1 211 0 0 -0.24947886e+00 -0.74414772e+00 0.66068707e+01 0.13959999e+00 + 2 111 260 261 -0.40205309e+00 -0.19963400e+00 0.27366371e+01 0.13500001e+00 + 1-2212 0 0 -0.73050909e-01 -0.34525424e+00 0.75620427e+01 0.93830001e+00 + 2 111 262 263 0.24596587e-01 -0.27166769e+00 0.39358263e+01 0.13500001e+00 + 2 3122 264 265 -0.86498624e+00 -0.88570130e+00 0.64826331e+01 0.11156000e+01 + 2 111 266 267 -0.15435956e+00 -0.96122973e-01 0.16527400e+01 0.13500001e+00 + 1 321 0 0 0.10598703e+00 0.35855144e+00 0.58029475e+01 0.49360001e+00 + 1 -211 0 0 0.14884162e+00 0.60061330e+00 0.97373924e+01 0.13959999e+00 + 1 22 0 0 -0.11161480e-01 0.16877351e-01 0.13841344e+00 0.00000000e+00 + 1 22 0 0 -0.10516363e+00 -0.55719852e-01 0.62448621e+01 0.00000000e+00 + 1 -321 0 0 -0.24676126e+00 0.44987160e+00 0.11329118e+02 0.49360001e+00 + 2 111 268 269 -0.74109185e+00 0.52566862e+00 0.86014633e+01 0.13500001e+00 + 1 -321 0 0 -0.33094257e-01 0.28266686e+00 0.53545933e+01 0.49360001e+00 + 1 321 0 0 -0.17282484e+00 0.45841673e+00 0.47298541e+01 0.49360001e+00 + 2 310 270 271 -0.12961921e-01 0.85354024e+00 0.14248921e+02 0.49770001e+00 + 1 211 0 0 0.25156075e+00 -0.23852922e+00 0.15660967e+01 0.13959999e+00 + 2 111 272 273 -0.20377150e+00 -0.25330152e-01 0.28312409e+00 0.13500001e+00 + 1 -211 0 0 -0.15448186e+00 -0.50658688e-01 0.11333379e+01 0.13959999e+00 + 1 211 0 0 0.19927508e+00 0.17115864e+00 0.56634295e+00 0.13959999e+00 + 2 111 274 275 -0.11050357e+00 0.18740135e+00 0.48087588e+00 0.13500001e+00 + 2 -311 276 276 -0.13400263e+00 -0.94701037e-01 0.25199316e+01 0.49770001e+00 + 1 -211 0 0 -0.70815407e-01 0.33635402e+00 0.10207530e+01 0.13959999e+00 + 2 311 277 277 0.26900309e+00 0.36403023e-01 0.26404321e+01 0.49770001e+00 + 2 111 278 279 -0.61152078e-01 0.14489296e+00 0.39167686e+01 0.13500001e+00 + 1 211 0 0 -0.14797384e+00 -0.40751368e+00 -0.13095684e-01 0.13959999e+00 + 2 111 280 281 -0.33629245e+00 0.19234276e+00 0.22616413e+00 0.13500001e+00 + 1 211 0 0 0.63919884e+00 -0.12869163e+01 -0.28832173e+01 0.13959999e+00 + 2 111 282 283 0.54768419e+01 -0.60882683e+01 -0.14067651e+02 0.13500001e+00 + 1 22 0 0 0.18789384e+01 -0.16896714e+01 -0.24750209e+01 0.00000000e+00 + 1 22 0 0 0.98058045e+00 -0.10165777e+01 -0.13673881e+01 0.00000000e+00 + 1 -211 0 0 0.24018731e+01 -0.29324963e+01 -0.56338801e+01 0.13959999e+00 + 2 111 284 285 0.79614258e+00 -0.16699739e+01 -0.35199869e+01 0.13500001e+00 + 1 211 0 0 0.91364026e-01 -0.27511114e+00 -0.36023402e+00 0.13959999e+00 + 2 111 286 287 0.11574489e+01 -0.18687620e+01 -0.26585183e+01 0.13500001e+00 + 1 -211 0 0 0.25930572e+00 -0.55958503e+00 -0.51718402e+00 0.13959999e+00 + 2 111 288 289 0.14682686e+01 -0.29446440e+01 -0.43994308e+01 0.13500001e+00 + 1 211 0 0 0.20326428e+00 -0.77078432e-01 -0.17394587e+00 0.13959999e+00 + 2 111 290 291 0.18842258e+01 -0.33764200e+01 -0.32807822e+01 0.13500001e+00 + 1 -211 0 0 0.34082428e+00 -0.79663908e+00 -0.58045924e+00 0.13959999e+00 + 2 111 292 293 0.12354767e+01 -0.73962200e+00 -0.18060172e+01 0.13500001e+00 + 1 -211 0 0 0.13689779e+00 -0.14520556e-01 -0.41534090e+00 0.13959999e+00 + 1 211 0 0 -0.44682288e+00 -0.65622914e+00 -0.27910304e+01 0.13959999e+00 + 1 211 0 0 0.47002457e-01 -0.39860123e+00 -0.68654937e+00 0.13959999e+00 + 1 -211 0 0 -0.52497648e-01 0.34334734e-01 -0.10422316e+00 0.13959999e+00 + 2 111 294 295 -0.28976595e+00 -0.49503410e+00 -0.67110223e+00 0.13500001e+00 + 2 -311 296 296 -0.75847727e+00 0.36377749e+00 -0.65850973e+01 0.49770001e+00 + 1 -211 0 0 -0.57259035e+00 -0.19242091e+00 -0.57612729e+01 0.13959999e+00 + 2 311 297 297 -0.18215243e+01 0.31788930e-01 -0.11180157e+02 0.49770001e+00 + 2 111 298 299 -0.31680539e+00 0.16035928e+00 -0.11798224e+01 0.13500001e+00 + 1 22 0 0 -0.16041219e+01 -0.82175143e-01 -0.95077581e+01 0.00000000e+00 + 1 22 0 0 -0.24838650e+01 -0.56772016e-01 -0.15649836e+02 0.00000000e+00 + 1 22 0 0 -0.46702590e-01 -0.52240146e-02 -0.33040181e+00 0.00000000e+00 + 2 113 300 301 -0.39231477e+01 -0.17572948e+00 -0.31892374e+02 0.95052135e+00 + 1 -211 0 0 -0.61926789e+01 0.35115600e+00 -0.38862953e+02 0.13959999e+00 + 1 211 0 0 -0.85561693e+00 0.23573253e+00 -0.67343206e+01 0.13959999e+00 + 1 -211 0 0 0.37391788e+00 -0.32747900e+00 -0.53179026e+01 0.13959999e+00 + 1 211 0 0 0.33230245e+00 0.30156225e-01 -0.12752569e+02 0.13959999e+00 + 2 310 302 303 -0.45461121e+01 0.22614551e+01 0.16710886e+02 0.49770001e+00 + 1 2212 0 0 -0.39082196e+01 0.21662800e+01 0.15476336e+02 0.93830001e+00 + 1 -211 0 0 -0.11663171e+01 0.61939240e+00 0.42507343e+01 0.13959999e+00 + 1 22 0 0 -0.32708722e+00 0.21929240e+00 0.15617156e+01 0.00000000e+00 + 1 22 0 0 -0.10325046e+01 0.46296209e+00 0.39996550e+01 0.00000000e+00 + 1-2112 0 0 -0.34557827e+01 0.16201288e+01 0.13723925e+02 0.93959999e+00 + 2 111 304 305 -0.51643735e+00 0.37013489e+00 0.21581783e+01 0.13500001e+00 + 1 130 0 0 -0.15520333e+01 0.86995488e+00 0.68825550e+01 0.49770001e+00 + 1 22 0 0 -0.25444410e+01 0.13548732e+01 0.91284723e+01 0.00000000e+00 + 1 22 0 0 -0.20960797e+00 0.71455613e-01 0.74091214e+00 0.00000000e+00 + 1 22 0 0 0.29127267e+00 -0.16129617e+00 0.17135797e+00 0.00000000e+00 + 1 22 0 0 0.53250067e-01 -0.56173276e-01 -0.21197330e-01 0.00000000e+00 + 1 22 0 0 0.11820612e+00 0.12103913e+00 -0.97233601e-01 0.00000000e+00 + 1 22 0 0 0.31411517e+00 0.67176275e-01 -0.17262168e+00 0.00000000e+00 + 1 22 0 0 -0.21006495e-01 0.32251608e-02 -0.10877032e-01 0.00000000e+00 + 1 22 0 0 0.18470848e+00 -0.25993256e-01 -0.29763651e+00 0.00000000e+00 + 1 22 0 0 -0.40173959e-01 -0.37500456e+00 -0.30678730e+01 0.00000000e+00 + 1 22 0 0 -0.73787145e-03 -0.35811309e-02 -0.27672201e-03 0.00000000e+00 + 1 130 0 0 0.18558350e+00 -0.74414700e-01 -0.50768628e+01 0.49770001e+00 + 1 2112 0 0 0.92052236e-01 -0.12041133e+00 -0.19125034e+02 0.93959999e+00 + 2 111 306 307 -0.63204482e-01 -0.11282752e+00 -0.42932920e+01 0.13500001e+00 + 1-2112 0 0 -0.27687034e+00 -0.10830589e-01 -0.46226391e+02 0.93959999e+00 + 2 111 308 309 -0.73165394e-01 0.92904292e-01 -0.12796747e+02 0.13500001e+00 + 1 22 0 0 0.10434706e-01 0.35379745e-01 -0.22813993e+01 0.00000000e+00 + 1 22 0 0 0.63053064e-01 -0.68079174e-01 -0.14138842e+01 0.00000000e+00 + 2 111 310 312 0.27425963e+00 0.77905470e+00 -0.11070448e+01 0.13500001e+00 + 2 111 313 314 -0.27899094e-01 0.25113076e-01 -0.20172533e+00 0.13500001e+00 + 1 22 0 0 0.14557257e-01 0.46167355e-01 -0.26479146e+00 0.00000000e+00 + 1 22 0 0 0.22047424e+00 0.11093107e+00 -0.51112974e+00 0.00000000e+00 + 1 22 0 0 0.61136525e-01 -0.13958430e+00 0.65220308e+00 0.00000000e+00 + 1 22 0 0 0.23265123e+00 -0.12280244e+00 0.12982774e+01 0.00000000e+00 + 1 22 0 0 0.37815168e+00 0.27617621e+00 0.34253983e+01 0.00000000e+00 + 1 22 0 0 0.29157323e+00 0.10923176e+00 0.28599603e+01 0.00000000e+00 + 1 22 0 0 0.13605198e+00 0.16790852e-02 0.46064415e+02 0.00000000e+00 + 1 22 0 0 0.17120852e+00 0.10914167e+00 0.38073200e+02 0.00000000e+00 + 1 22 0 0 0.40138498e-01 0.93274154e-02 0.92987537e-01 0.00000000e+00 + 1 22 0 0 -0.71356110e-01 -0.85376620e-01 0.47522736e+00 0.00000000e+00 + 1 22 0 0 -0.39242959e+00 -0.21617706e+00 0.26620002e+01 0.00000000e+00 + 1 22 0 0 -0.96234623e-02 0.16543061e-01 0.74637100e-01 0.00000000e+00 + 1 22 0 0 0.36018837e-01 -0.17901634e+00 0.32870953e+01 0.00000000e+00 + 1 22 0 0 -0.11422250e-01 -0.92651352e-01 0.64873087e+00 0.00000000e+00 + 1 2112 0 0 -0.84846747e+00 -0.79750925e+00 0.56253753e+01 0.93959999e+00 + 2 111 315 316 -0.16518824e-01 -0.88192098e-01 0.85725862e+00 0.13500001e+00 + 1 22 0 0 -0.11403742e+00 -0.12847933e+00 0.11442795e+01 0.00000000e+00 + 1 22 0 0 -0.40322140e-01 0.32356367e-01 0.50846052e+00 0.00000000e+00 + 1 22 0 0 -0.49423215e+00 0.40656820e+00 0.63980045e+01 0.00000000e+00 + 1 22 0 0 -0.24685967e+00 0.11910039e+00 0.22034583e+01 0.00000000e+00 + 1 -211 0 0 0.15085154e-01 0.45040664e+00 0.10370765e+02 0.13959999e+00 + 1 211 0 0 -0.28047075e-01 0.40313360e+00 0.38781571e+01 0.13959999e+00 + 1 22 0 0 -0.12062058e+00 0.28491676e-01 0.76203555e-01 0.00000000e+00 + 1 22 0 0 -0.83150908e-01 -0.53821824e-01 0.20692053e+00 0.00000000e+00 + 1 22 0 0 -0.43055758e-01 0.14696251e+00 0.19304861e+00 0.00000000e+00 + 1 22 0 0 -0.67447804e-01 0.40438842e-01 0.28782725e+00 0.00000000e+00 + 2 310 317 318 -0.13400263e+00 -0.94701037e-01 0.25199316e+01 0.49770001e+00 + 2 310 319 320 0.26900309e+00 0.36403023e-01 0.26404321e+01 0.49770001e+00 + 1 22 0 0 -0.63334741e-02 0.87834835e-01 0.86847484e+00 0.00000000e+00 + 1 22 0 0 -0.54818600e-01 0.57058126e-01 0.30482934e+01 0.00000000e+00 + 1 22 0 0 -0.31515610e+00 0.12453495e+00 0.17935826e+00 0.00000000e+00 + 1 22 0 0 -0.21136321e-01 0.67807809e-01 0.46805874e-01 0.00000000e+00 + 1 22 0 0 0.43340564e+01 -0.47914200e+01 -0.10993716e+02 0.00000000e+00 + 1 22 0 0 0.11427853e+01 -0.12968487e+01 -0.30739343e+01 0.00000000e+00 + 1 22 0 0 0.69023973e+00 -0.15316551e+01 -0.32212863e+01 0.00000000e+00 + 1 22 0 0 0.10590283e+00 -0.13831866e+00 -0.29870057e+00 0.00000000e+00 + 1 22 0 0 0.57320201e+00 -0.81362838e+00 -0.12527791e+01 0.00000000e+00 + 1 22 0 0 0.58424693e+00 -0.10551337e+01 -0.14057392e+01 0.00000000e+00 + 1 22 0 0 0.14005007e+00 -0.30309054e+00 -0.51523858e+00 0.00000000e+00 + 1 22 0 0 0.13282185e+01 -0.26415532e+01 -0.38841918e+01 0.00000000e+00 + 1 22 0 0 0.11602631e+01 -0.21961141e+01 -0.21464989e+01 0.00000000e+00 + 1 22 0 0 0.72396260e+00 -0.11803057e+01 -0.11342831e+01 0.00000000e+00 + 1 22 0 0 0.10558223e+01 -0.68428266e+00 -0.15619646e+01 0.00000000e+00 + 1 22 0 0 0.17965445e+00 -0.55339292e-01 -0.24405247e+00 0.00000000e+00 + 1 22 0 0 -0.66199720e-01 -0.47192749e-01 -0.50142597e-01 0.00000000e+00 + 1 22 0 0 -0.22356623e+00 -0.44784135e+00 -0.62095964e+00 0.00000000e+00 + 1 130 0 0 -0.75847727e+00 0.36377749e+00 -0.65850973e+01 0.49770001e+00 + 2 310 321 322 -0.18215243e+01 0.31788930e-01 -0.11180157e+02 0.49770001e+00 + 1 22 0 0 -0.31177819e+00 0.11260062e+00 -0.10116001e+01 0.00000000e+00 + 1 22 0 0 -0.50271973e-02 0.47758657e-01 -0.16822235e+00 0.00000000e+00 + 1 -211 0 0 -0.83661580e+00 -0.37449476e+00 -0.86737938e+01 0.13959999e+00 + 1 211 0 0 -0.30865319e+01 0.19876529e+00 -0.23218578e+02 0.13959999e+00 + 2 111 323 324 -0.10525277e+01 0.68615335e+00 0.38682466e+01 0.13500001e+00 + 2 111 325 326 -0.34935842e+01 0.15753014e+01 0.12842638e+02 0.13500001e+00 + 1 22 0 0 -0.39728139e-01 0.20489970e-01 0.66015996e-01 0.00000000e+00 + 1 22 0 0 -0.47670925e+00 0.34964493e+00 0.20921626e+01 0.00000000e+00 + 1 22 0 0 -0.43703761e-01 -0.13569491e+00 -0.26803949e+01 0.00000000e+00 + 1 22 0 0 -0.19500721e-01 0.22867374e-01 -0.16128974e+01 0.00000000e+00 + 1 22 0 0 -0.88810906e-01 0.10295479e+00 -0.75418334e+01 0.00000000e+00 + 1 22 0 0 0.15645508e-01 -0.10050502e-01 -0.52549133e+01 0.00000000e+00 + 1 22 0 0 0.23610634e+00 0.50179350e+00 -0.69610780e+00 0.00000000e+00 + 1 -11 0 0 0.21298081e-02 0.88938728e-01 -0.13902593e+00 0.50999998e-03 + 1 11 0 0 0.36023483e-01 0.18832244e+00 -0.27191100e+00 0.50999998e-03 + 1 22 0 0 -0.27493648e-01 -0.37969157e-01 -0.16731404e+00 0.00000000e+00 + 1 22 0 0 -0.40544383e-03 0.63082233e-01 -0.34411285e-01 0.00000000e+00 + 1 22 0 0 -0.62414233e-01 -0.90601563e-01 0.48255536e+00 0.00000000e+00 + 1 22 0 0 0.45895405e-01 0.24094582e-02 0.37470329e+00 0.00000000e+00 + 1 -211 0 0 -0.21274689e+00 0.40981188e-01 0.19403763e+01 0.13959999e+00 + 1 211 0 0 0.78744248e-01 -0.13568223e+00 0.57955533e+00 0.13959999e+00 + 1 -211 0 0 0.11479615e+00 -0.11553774e+00 0.49125594e+00 0.13959999e+00 + 1 211 0 0 0.15420695e+00 0.15194076e+00 0.21491761e+01 0.13959999e+00 + 1 211 0 0 -0.16319364e+01 -0.47821801e-01 -0.95520258e+01 0.13959999e+00 + 1 -211 0 0 -0.18958768e+00 0.79610728e-01 -0.16281309e+01 0.13959999e+00 + 1 22 0 0 -0.29928148e+00 0.12499975e+00 0.10057473e+01 0.00000000e+00 + 1 22 0 0 -0.75324619e+00 0.56115359e+00 0.28624990e+01 0.00000000e+00 + 1 22 0 0 -0.26696101e+00 0.15567617e+00 0.97485036e+00 0.00000000e+00 + 1 22 0 0 -0.32266233e+01 0.14196252e+01 0.11867787e+02 0.00000000e+00 diff --git a/examples/noviceN04/pythia_main.f b/examples/noviceN04/pythia_main.f new file mode 100644 index 0000000000000000000000000000000000000000..b0a512678097d16e5a96e64f93809ee7e6c2586e --- /dev/null +++ b/examples/noviceN04/pythia_main.f @@ -0,0 +1,88 @@ +* + COMMON /LUDAT2/ KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON /LUDAT3/ MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + COMMON /PYSUBS/ MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200) + COMMON /PYPARS/ MSTP(200),PARP(200),MSTI(200),PARI(200) +*********** COMMON /LUJETS/ N,K(4000,5),P(4000,5),V(4000,5) + EXTERNAL LUDATA,PYDATA + CHARACTER FRAME*4,BEAM*10,TARGET*10 + REAL WIN + INTEGER LUCOMP + REAL PDT(500,5) +* + FRAME = 'CMS' + BEAM = 'P' + TARGET = 'P' + WIN = 14000. + NEVNT = 3 +* + MSEL = 0 + MSUB(102) = 1 + MSUB(123) = 1 + MSUB(124) = 1 +* + PMAS(6,1) = 176. + PMAS(25,1) = 500. + CKIN(1) = 470. + CKIN(2) = 530. +* +* turn off all Higgs decays except the ZZ +* + IH = LUCOMP(25) + DO IDC=MDCY(IH,2),MDCY(IH,2)+MDCY(IH,3)-1 + IF (KFDP(IDC,1).NE.23.AND.MDME(IDC,1).EQ.1) MDME(IDC,1)=0 + ENDDO +* +* turn off all Z decays except mumu or ee +* + IZ = LUCOMP(23) + DO IDC=MDCY(IZ,2),MDCY(IZ,2)+MDCY(IZ,3)-1 + IF (MDME(IDC,1).EQ.1) THEN + IF ((IABS(KFDP(IDC,1)).NE.13) + > .AND.(IABS(KFDP(IDC,1)).NE.11)) THEN + MDME(IDC,1)=0 + ENDIF + ENDIF + ENDDO +*********************************************************** + CALL PYINIT(FRAME,BEAM,TARGET,WIN) +* + DO IEVT = 1, NEVNT +* + CALL PYEVNT + CALL LUEDIT(11) + CALL LUEDIT(12) + CALL LUEDIT(15) +* + CALL LUHEPC(1) +* + CALL HEP2G4 +* + ENDDO +*********************************************************** + STOP + END +*********************************************************** + SUBROUTINE HEP2G4 +* +* Output /HEPEVT/ event structure to G4HEPEvtInterface +* +* M.Asai (asai@kekvax.kek.jp) -- 24/09/96 +* +*********************************************************** + PARAMETER (NMXHEP=2000) + COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + >JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + DOUBLE PRECISION PHEP,VHEP +* + WRITE(6,*) NHEP + DO IHEP=1,NHEP + WRITE(6,10) + > ISTHEP(IHEP),IDHEP(IHEP),JDAHEP(1,IHEP),JDAHEP(2,IHEP), + > PHEP(1,IHEP),PHEP(2,IHEP),PHEP(3,IHEP),PHEP(5,IHEP) +10 FORMAT(4I5,4(1X,D15.8)) + ENDDO +* + RETURN + END + diff --git a/examples/noviceN04/run1.mac b/examples/noviceN04/run1.mac new file mode 100644 index 0000000000000000000000000000000000000000..69ba6a2e10580bcf4d8ac831cb2a39cd3e08702b --- /dev/null +++ b/examples/noviceN04/run1.mac @@ -0,0 +1,22 @@ +# $Id: run1.mac,v 1.2 2000-11-21 10:59:42 maire Exp $ +# +# Macro file for "exampleN03.cc" +# +# can be run in batch, without graphic +# or interactively: Idle> /control/execute run1.mac +# +/control/verbose 1 +/control/saveHistory +# +/run/verbose 0 +/event/verbose 0 +/tracking/verbose 1 +# +# muon 300 MeV to the direction (1.,0.,0.) +# 3 events +# +##/generator/select gun +/gun/direction 1. 1. .1 +/gun/particle mu+ +/gun/energy 3 GeV +/run/beamOn 3 diff --git a/examples/noviceN04/src/Calorimeter_geo.cc b/examples/noviceN04/src/Calorimeter_geo.cc new file mode 100644 index 0000000000000000000000000000000000000000..ca54ec610aad1398982a2f49022b1e56ede6dd18 --- /dev/null +++ b/examples/noviceN04/src/Calorimeter_geo.cc @@ -0,0 +1,89 @@ +// $Id: $ +//==================================================================== +// AIDA Detector description implementation for LCD +//-------------------------------------------------------------------- +// geant4 example/novice/N04 ported to DD4hep +// +// @author F.Gaede, DESY +//==================================================================== +#include "DD4hep/DetFactoryHelper.h" + +using namespace std; +using namespace DD4hep; +using namespace DD4hep::Geometry; + + +static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens) { + + + xml_det_t x_det = e; + string name = x_det.nameStr(); + DetElement calorimeter( name, x_det.id() ); + + Volume experimentalHall_log = lcdd.pickMotherVolume( calorimeter ) ; + + xml_comp_t calTubs ( x_det.child( _U(tubs) ) ); + + Tube calorimeter_tubs( calTubs.rmin(),calTubs.rmax(),calTubs.dz(), calTubs.phi0(), calTubs.deltaphi() ); + // fixme: Tgeo documentation has phi1, phi2 !!!??? + + Volume calorimeter_log( "calorimeterT_L", calorimeter_tubs, lcdd.air() ) ; + + PlacedVolume calorimeter_phys = experimentalHall_log.placeVolume( calorimeter_log ); + + calorimeter_phys.addPhysVolID( "system", x_det.id() ) ; + + calorimeter.setPlacement( calorimeter_phys ); + + calorimeter.setVisAttributes( lcdd, x_det.visStr(), calorimeter_log ); + + double calo_layer_ri = calTubs.rmin() ; + double calo_layer_ro = 0. ; + + // DD4hep does not handle parameterized volumes - so we + // specify the layers in the xml file (using "repeat") + + int l=0 ; + for(xml_coll_t li(x_det,_U(layer)); li; ++li) { + + xml_comp_t x_layer = li; + int repeat = x_layer.repeat(); + + // Loop over number of repeats for this layer. + for (int j=0; j<repeat; j++) { + + // slices per layer + for(xml_coll_t si(x_layer,_U(slice)); si; ++si) { + + xml_comp_t x_slice = si; + + double s_thick = x_slice.thickness(); + + calo_layer_ro = calo_layer_ri + s_thick ; + + Tube layer_tubs( calo_layer_ri ,calo_layer_ro ,calTubs.dz(), calTubs.phi0(), calTubs.deltaphi() ); + + calo_layer_ri = calo_layer_ro ; + + Volume layer_log( "layer_L", layer_tubs, lcdd.material( x_slice.attr<string>( _U(material) ) )); + + PlacedVolume layer_phys = calorimeter_log.placeVolume( layer_log ); + + if( x_slice.isSensitive() ) { + + layer_log.setSensitiveDetector( sens) ; + + layer_phys.addPhysVolID( "layer", l++ ) ; + } + + calorimeter.setVisAttributes( lcdd, x_layer.visStr(), layer_log ); + } // slice + } // repeat + } // layer + + + return calorimeter; +} + +//first argument is the type from the xml file +DECLARE_DETELEMENT( Calorimeter ,create_element ); diff --git a/examples/noviceN04/src/ExN04CalorimeterHit.cc b/examples/noviceN04/src/ExN04CalorimeterHit.cc new file mode 100644 index 0000000000000000000000000000000000000000..d74a2d34a32bb8bcf397ba0dde0696521ff8ddfc --- /dev/null +++ b/examples/noviceN04/src/ExN04CalorimeterHit.cc @@ -0,0 +1,129 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04CalorimeterHit.hh" +#include "G4ios.hh" +#include "G4VVisManager.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4LogicalVolume.hh" +#include "G4UIcommand.hh" +#include "G4UnitsTable.hh" +#include "G4AttValue.hh" +#include "G4AttDef.hh" +#include "G4AttCheck.hh" + +G4Allocator<ExN04CalorimeterHit> ExN04CalorimeterHitAllocator; + +ExN04CalorimeterHit::ExN04CalorimeterHit() +{pLogV=0;} + +ExN04CalorimeterHit::ExN04CalorimeterHit(G4LogicalVolume* logVol,G4int z,G4int phi) +: ZCellID(z), PhiCellID(phi), pLogV(logVol) +{;} + +ExN04CalorimeterHit::~ExN04CalorimeterHit() +{;} + +ExN04CalorimeterHit::ExN04CalorimeterHit(const ExN04CalorimeterHit &right) + : G4VHit() +{ + ZCellID = right.ZCellID; + PhiCellID = right.PhiCellID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; +} + +const ExN04CalorimeterHit& ExN04CalorimeterHit::operator=(const ExN04CalorimeterHit &right) +{ + ZCellID = right.ZCellID; + PhiCellID = right.PhiCellID; + edep = right.edep; + pos = right.pos; + rot = right.rot; + pLogV = right.pLogV; + return *this; +} + +G4int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const +{ + return ((ZCellID==right.ZCellID)&&(PhiCellID==right.PhiCellID)); +} + +std::map<G4String,G4AttDef> ExN04CalorimeterHit::fAttDefs; + +void ExN04CalorimeterHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Transform3D trans(rot,pos); + G4VisAttributes attribs; + const G4VisAttributes* pVA = pLogV->GetVisAttributes(); + if(pVA) attribs = *pVA; + G4Colour colour(1.,0.,0.); + attribs.SetColour(colour); + attribs.SetForceSolid(true); + pVVisManager->Draw(*pLogV,attribs,trans); + } +} + +const std::map<G4String,G4AttDef>* ExN04CalorimeterHit::GetAttDefs() const +{ + // G4AttDefs have to have long life. Use static member... + if (fAttDefs.empty()) { + fAttDefs["HitType"] = + G4AttDef("HitType","Type of hit","Physics","","G4String"); + fAttDefs["ZID"] = G4AttDef("ZID","Z Cell ID","Physics","","G4int"); + fAttDefs["PhiID"] = G4AttDef("PhiID","Phi Cell ID","Physics","","G4int"); + fAttDefs["EDep"] = + G4AttDef("EDep","Energy deposited","Physics","G4BestUnit","G4double"); + } + return &fAttDefs; +} + +std::vector<G4AttValue>* ExN04CalorimeterHit::CreateAttValues() const +{ + // Create expendable G4AttsValues for picking... + std::vector<G4AttValue>* attValues = new std::vector<G4AttValue>; + attValues->push_back + (G4AttValue("HitType","ExN04CalorimeterHit","")); + attValues->push_back + (G4AttValue("ZID",G4UIcommand::ConvertToString(ZCellID),"")); + attValues->push_back + (G4AttValue("PhiID",G4UIcommand::ConvertToString(PhiCellID),"")); + attValues->push_back + (G4AttValue("EDep",G4BestUnit(edep,"Energy"),"")); + //G4cout << "Checking...\n" << G4AttCheck(attValues, GetAttDefs()); + return attValues; +} + +void ExN04CalorimeterHit::Print() +{;} + + diff --git a/examples/noviceN04/src/ExN04CalorimeterParametrisation.cc b/examples/noviceN04/src/ExN04CalorimeterParametrisation.cc new file mode 100644 index 0000000000000000000000000000000000000000..fc4683ce8cd536358ce99c4c7df3d9e4cc350440 --- /dev/null +++ b/examples/noviceN04/src/ExN04CalorimeterParametrisation.cc @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04CalorimeterParametrisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" + +ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() +{ +#include "ExN04DetectorParameterDef.icc" +} + +ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() +{;} + +void ExN04CalorimeterParametrisation::ComputeTransformation +(const G4int,G4VPhysicalVolume *physVol) const +{ + G4ThreeVector origin; + physVol->SetTranslation(origin); +} + +void ExN04CalorimeterParametrisation::ComputeDimensions +(G4Tubs & calorimeterLayer, const G4int copyNo, const G4VPhysicalVolume*) const +{ + G4double innerRad = caloTubs_rmin + + copyNo*(absorber_thick+scinti_thick); + calorimeterLayer.SetInnerRadius(innerRad); + calorimeterLayer.SetOuterRadius(innerRad+absorber_thick); + calorimeterLayer.SetZHalfLength(caloTubs_dz); + calorimeterLayer.SetStartPhiAngle(caloTubs_sphi,false); + calorimeterLayer.SetDeltaPhiAngle(caloTubs_dphi); +} diff --git a/examples/noviceN04/src/ExN04CalorimeterROGeometry.cc b/examples/noviceN04/src/ExN04CalorimeterROGeometry.cc new file mode 100644 index 0000000000000000000000000000000000000000..99c4644f5a891e92c7f5b5247a28a0c479aa3684 --- /dev/null +++ b/examples/noviceN04/src/ExN04CalorimeterROGeometry.cc @@ -0,0 +1,114 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +#include "ExN04CalorimeterROGeometry.hh" +#include "ExN04DummySD.hh" + +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4SDManager.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4ThreeVector.hh" +#include "G4Material.hh" +#include "G4VisAttributes.hh" + +ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry() + : G4VReadOutGeometry() +{ +#include "ExN04DetectorParameterDef.icc" +} + + +ExN04CalorimeterROGeometry::ExN04CalorimeterROGeometry(G4String aString) + : G4VReadOutGeometry(aString), dummyMat(0) +{ +#include "ExN04DetectorParameterDef.icc" +} + +ExN04CalorimeterROGeometry::~ExN04CalorimeterROGeometry() +{ + delete dummyMat; +} + +G4VPhysicalVolume* ExN04CalorimeterROGeometry::Build() +{ + // A dummy material is used to fill the volumes of the readout geometry. + // ( It will be allowed to set a NULL pointer in volumes of such virtual + // division in future, since this material is irrelevant for tracking.) + dummyMat = new G4Material(name="dummyMat", 1., 1.*g/mole, 1.*g/cm3); + + //Builds the ReadOut World: + G4Box *ROWorldBox = new G4Box("ROWorldBox", expHall_x, expHall_y, expHall_z); + G4LogicalVolume *ROWorldLog = new G4LogicalVolume(ROWorldBox, dummyMat, + "ROWorldLogical", 0, 0, 0); + ROWorldLog->SetVisAttributes(G4VisAttributes::Invisible); + G4PVPlacement *ROWorldPhys = new G4PVPlacement(0,G4ThreeVector(), + "ROWorldPhysical", + ROWorldLog, + 0,false,0); + // Calorimeter volume: + G4VSolid * caloROtub + = new G4Tubs("caloROtub",caloTubs_rmin,caloTubs_rmax, + caloTubs_dz,caloTubs_sphi,caloTubs_dphi); + G4LogicalVolume * caloROlog + = new G4LogicalVolume(caloROtub,dummyMat,"caloROlogical",0,0,0); + G4VPhysicalVolume * caloROphys + = new G4PVPlacement(0,G4ThreeVector(),"calROphysical",caloROlog, + ROWorldPhys,false,0); + + // ------------------------------- + // Calorimeter readout division: + // ------------------------------- + // Phi division first: 48 sectors + G4VSolid * caloROphiDivisionTub + = new G4Tubs("caloROphiDivision", caloCell_rmin, caloCell_rmax, + caloCell_dz, caloCell_sphi, caloCell_dphi); + G4LogicalVolume * caloROphiDivisionLog + = new G4LogicalVolume(caloROphiDivisionTub, dummyMat, "caloROphiDivisionLogical",0,0,0); + G4VPhysicalVolume * caloROphiDivisionPhys + = new G4PVReplica("caloROphiDivisionPhysical", caloROphiDivisionLog, caloROphys, + kPhi, segmentsinPhi, caloCell_dphi); + // then z division: 20 slices: + G4VSolid * caloROcellTub + = new G4Tubs("caloROcellTub", caloRing_rmin, caloRing_rmax, + caloRing_dz, caloRing_sphi, caloRing_dphi); + G4LogicalVolume * caloROcellLog + = new G4LogicalVolume(caloROcellTub, dummyMat, "caloROcellLogical",0,0,0); +// G4VPhysicalVolume * caloROcellPhys = + new G4PVReplica("caloROcellPhysical", caloROcellLog, caloROphiDivisionPhys, + kZAxis, segmentsinZ,2.*caloRing_dz); + + + //Flags the cells as sensitive .The pointer here serves + // as a flag only to check for sensitivity. + // (Could we make it by a simple cast of a non-NULL value ?) + ExN04DummySD * dummySensi = new ExN04DummySD; + caloROcellLog->SetSensitiveDetector(dummySensi); + + return ROWorldPhys; +} diff --git a/examples/noviceN04/src/ExN04CalorimeterSD.cc b/examples/noviceN04/src/ExN04CalorimeterSD.cc new file mode 100644 index 0000000000000000000000000000000000000000..82811ea6b941f94ab234c5d8fc8e98e97f23cdf1 --- /dev/null +++ b/examples/noviceN04/src/ExN04CalorimeterSD.cc @@ -0,0 +1,120 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04CalorimeterSD.hh" +#include "ExN04CalorimeterHit.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ParticleDefinition.hh" +#include "G4VTouchable.hh" +#include "G4TouchableHistory.hh" +#include "G4ios.hh" + +ExN04CalorimeterSD::ExN04CalorimeterSD(G4String name) +:G4VSensitiveDetector(name), + numberOfCellsInZ(20),numberOfCellsInPhi(48) +{ + G4String HCname; + collectionName.insert(HCname="calCollection"); +} + +ExN04CalorimeterSD::~ExN04CalorimeterSD() +{;} + +void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*) +{ + CalCollection = new ExN04CalorimeterHitsCollection + (SensitiveDetectorName,collectionName[0]); + for(G4int j=0;j<numberOfCellsInZ;j++) + for(G4int k=0;k<numberOfCellsInPhi;k++) + { + CellID[j][k] = -1; + } + verboseLevel = 0; +} + +G4bool ExN04CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +{ + if(!ROhist) return false; + G4double edep = aStep->GetTotalEnergyDeposit(); + if(verboseLevel>1) G4cout << "Next step edep(MeV) = " << edep/MeV << G4endl; + if(edep==0.) return false; + + G4VPhysicalVolume* physVol = ROhist->GetVolume(); + //ROhist->MoveUpHistory(); + //G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); + G4int copyIDinZ = ROhist->GetReplicaNumber(); + G4int copyIDinPhi = ROhist->GetReplicaNumber(1); + + if(CellID[copyIDinZ][copyIDinPhi]==-1) + { + ExN04CalorimeterHit* calHit + = new ExN04CalorimeterHit + (physVol->GetLogicalVolume(),copyIDinZ,copyIDinPhi); + calHit->SetEdep( edep ); + G4AffineTransform aTrans = ROhist->GetHistory()->GetTopTransform(); + aTrans.Invert(); + calHit->SetPos(aTrans.NetTranslation()); + calHit->SetRot(aTrans.NetRotation()); + G4int icell = CalCollection->insert( calHit ); + CellID[copyIDinZ][copyIDinPhi] = icell - 1; + if(verboseLevel>0) + { G4cout << " New Calorimeter Hit on CellID " + << copyIDinZ << " " << copyIDinPhi << G4endl; } + } + else + { + (*CalCollection)[CellID[copyIDinZ][copyIDinPhi]]->AddEdep(edep); + if(verboseLevel>0) + { G4cout << " Energy added to CellID " + << copyIDinZ << " " << copyIDinPhi << G4endl; } + } + + return true; +} + +void ExN04CalorimeterSD::EndOfEvent(G4HCofThisEvent*HCE) +{ + static G4int HCID = -1; + if(HCID<0) + { HCID = GetCollectionID(0); } + HCE->AddHitsCollection( HCID, CalCollection ); +} + +void ExN04CalorimeterSD::clear() +{ +} + +void ExN04CalorimeterSD::DrawAll() +{ +} + +void ExN04CalorimeterSD::PrintAll() +{ +} + diff --git a/examples/noviceN04/src/ExN04DetectorConstruction.cc b/examples/noviceN04/src/ExN04DetectorConstruction.cc new file mode 100644 index 0000000000000000000000000000000000000000..428792bb9cb009d719f35e3634cc46364837154a --- /dev/null +++ b/examples/noviceN04/src/ExN04DetectorConstruction.cc @@ -0,0 +1,262 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04DetectorConstruction.hh" +#include "ExN04TrackerSD.hh" +#include "ExN04CalorimeterSD.hh" +#include "ExN04CalorimeterROGeometry.hh" +#include "ExN04MuonSD.hh" +#include "ExN04TrackerParametrisation.hh" +#include "ExN04CalorimeterParametrisation.hh" +#include "ExN04Field.hh" + +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "G4PVParameterised.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" +#include "G4SDManager.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +ExN04DetectorConstruction::ExN04DetectorConstruction() +{ + +#include "ExN04DetectorParameterDef.icc" + DefineMaterials(); + +} + +ExN04DetectorConstruction::~ExN04DetectorConstruction() +{ + delete Scinti; + delete Silicon; + delete Ar; + delete Lead; + delete Air; + + delete O; + delete N; + delete C; + delete H; +} + +void ExN04DetectorConstruction::DefineMaterials() +{ + //------------------------------------------------------------------------- + // Materials + //------------------------------------------------------------------------- + + G4double a, z, density; + G4int nel; + + H = new G4Element("Hydrogen", "H", z=1., a= 1.01*g/mole); + C = new G4Element("Carbon", "C", z=6., a= 12.01*g/mole); + N = new G4Element("Nitrogen", "N", z=7., a= 14.01*g/mole); + O = new G4Element("Oxygen", "O", z=8., a= 16.00*g/mole); + + Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); + Air->AddElement(N, 70.*perCent); + Air->AddElement(O, 30.*perCent); + + Lead = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + + Ar = + new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + + Silicon = + new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + + Scinti = new G4Material("Scintillator", density= 1.032*g/cm3, nel=2); + Scinti->AddElement(C, 9); + Scinti->AddElement(H, 10); +} + +G4VPhysicalVolume* ExN04DetectorConstruction::Construct() +{ + //------------------------------------------------------------------------- + // Magnetic field + //------------------------------------------------------------------------- + + static G4bool fieldIsInitialized = false; + if(!fieldIsInitialized) + { + ExN04Field* myField = new ExN04Field; + G4FieldManager* fieldMgr + = G4TransportationManager::GetTransportationManager() + ->GetFieldManager(); + fieldMgr->SetDetectorField(myField); + fieldMgr->CreateChordFinder(myField); + fieldIsInitialized = true; + } + + + //------------------------------------------------------------------------- + // Detector geometry + //------------------------------------------------------------------------- + + //------------------------------ experimental hall + G4Box * experimentalHall_box + = new G4Box("expHall_b",expHall_x,expHall_y,expHall_z); + G4LogicalVolume * experimentalHall_log + = new G4LogicalVolume(experimentalHall_box,Air,"expHall_L",0,0,0); + G4VPhysicalVolume * experimentalHall_phys + = new G4PVPlacement(0,G4ThreeVector(),experimentalHall_log,"expHall_P", + 0,false,0); + experimentalHall_log->SetVisAttributes(G4VisAttributes::GetInvisible()); + + //------------------------------ tracker + G4VSolid * tracker_tubs + = new G4Tubs("trkTubs_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz, + trkTubs_sphi,trkTubs_dphi); + G4LogicalVolume * tracker_log + = new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0); + // G4VPhysicalVolume * tracker_phys = + new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys", + experimentalHall_log,false,0); + G4VisAttributes* tracker_logVisAtt + = new G4VisAttributes(G4Colour(1.0,0.0,1.0)); + tracker_log->SetVisAttributes(tracker_logVisAtt); + + //------------------------------ tracker layers + // As an example for Parameterised volume + // dummy values for G4Tubs -- modified by parameterised volume + G4VSolid * trackerLayer_tubs + = new G4Tubs("trackerLayer_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz, + trkTubs_sphi,trkTubs_dphi); + G4LogicalVolume * trackerLayer_log + = new G4LogicalVolume(trackerLayer_tubs,Silicon,"trackerB_L",0,0,0); + G4VPVParameterisation * trackerParam + = new ExN04TrackerParametrisation; + // dummy value : kXAxis -- modified by parameterised volume + // G4VPhysicalVolume *trackerLayer_phys = + new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_log, + kXAxis, notrkLayers, trackerParam); + G4VisAttributes* trackerLayer_logVisAtt + = new G4VisAttributes(G4Colour(0.5,0.0,1.0)); + trackerLayer_logVisAtt->SetForceWireframe(true); + trackerLayer_log->SetVisAttributes(trackerLayer_logVisAtt); + + //------------------------------ calorimeter + G4VSolid * calorimeter_tubs + = new G4Tubs("calorimeter_tubs",caloTubs_rmin,caloTubs_rmax, + caloTubs_dz,caloTubs_sphi,caloTubs_dphi); + G4LogicalVolume * calorimeter_log + = new G4LogicalVolume(calorimeter_tubs,Scinti,"caloT_L",0,0,0); + // G4VPhysicalVolume * calorimeter_phys = + new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P", + experimentalHall_log,false,0); + G4VisAttributes* calorimeter_logVisATT + = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); + calorimeter_logVisATT->SetForceWireframe(true); + calorimeter_log->SetVisAttributes(calorimeter_logVisATT); + + //------------------------------- Lead layers + // As an example for Parameterised volume + // dummy values for G4Tubs -- modified by parameterised volume + G4VSolid * caloLayer_tubs + = new G4Tubs("caloLayer_tubs",caloRing_rmin,caloRing_rmax, + caloRing_dz,caloRing_sphi,caloRing_dphi); + G4LogicalVolume * caloLayer_log + = new G4LogicalVolume(caloLayer_tubs,Lead,"caloR_L",0,0,0); + G4VPVParameterisation * calorimeterParam + = new ExN04CalorimeterParametrisation; + // dummy value : kXAxis -- modified by parameterised volume + // G4VPhysicalVolume * caloLayer_phys = + new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_log, + kXAxis, nocaloLayers, calorimeterParam); + G4VisAttributes* caloLayer_logVisAtt + = new G4VisAttributes(G4Colour(0.7,1.0,0.0)); + caloLayer_log->SetVisAttributes(caloLayer_logVisAtt); + + //------------------------------ muon counters + // As an example of CSG volumes with rotation + G4VSolid * muoncounter_box + = new G4Box("muoncounter_box",muBox_width,muBox_thick, + muBox_length); + G4LogicalVolume * muoncounter_log + = new G4LogicalVolume(muoncounter_box,Scinti,"mucounter_L",0,0,0); + for(int i=0; i<nomucounter ; i++) + { + G4double phi, x, y, z; + phi = 360.*deg/nomucounter*i; + x = muBox_radius*std::sin(phi); + y = muBox_radius*std::cos(phi); + z = 0.*cm; + G4RotationMatrix rm; + rm.rotateZ(phi); + new G4PVPlacement(G4Transform3D(rm,G4ThreeVector(x,y,z)), + muoncounter_log, "muoncounter_P", + experimentalHall_log,false,i); + } + G4VisAttributes* muoncounter_logVisAtt + = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); + muoncounter_logVisAtt->SetForceWireframe(true); + muoncounter_log->SetVisAttributes(muoncounter_logVisAtt); + + //------------------------------------------------------------------ + // Sensitive Detector + //------------------------------------------------------------------ + + G4SDManager* SDman = G4SDManager::GetSDMpointer(); + + G4String trackerSDname = "/mydet/tracker"; + ExN04TrackerSD * trackerSD = new ExN04TrackerSD(trackerSDname); + SDman->AddNewDetector(trackerSD); + trackerLayer_log->SetSensitiveDetector(trackerSD); + + G4String calorimeterSDname = "/mydet/calorimeter"; + ExN04CalorimeterSD * calorimeterSD = new ExN04CalorimeterSD(calorimeterSDname); + G4String ROgeometryName = "CalorimeterROGeom"; + G4VReadOutGeometry* calRO = new ExN04CalorimeterROGeometry(ROgeometryName); + calRO->BuildROGeometry(); + calRO->SetName(ROgeometryName); + calorimeterSD->SetROgeometry(calRO); + SDman->AddNewDetector(calorimeterSD); + calorimeter_log->SetSensitiveDetector(calorimeterSD); + + G4String muonSDname = "/mydet/muon"; + ExN04MuonSD * muonSD = new ExN04MuonSD(muonSDname); + SDman->AddNewDetector(muonSD); + muoncounter_log->SetSensitiveDetector(muonSD); + + //------------------------------------------------------------------ + // Digitizer modules + //------------------------------------------------------------------ + + return experimentalHall_phys; +} + diff --git a/examples/noviceN04/src/ExN04DetectorParameterDef.icc b/examples/noviceN04/src/ExN04DetectorParameterDef.icc new file mode 100644 index 0000000000000000000000000000000000000000..fa5ee2b6c2df31cba8757d4d1b535b48bd96b569 --- /dev/null +++ b/examples/noviceN04/src/ExN04DetectorParameterDef.icc @@ -0,0 +1,79 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + + expHall_x = 600.*cm; + expHall_y = 600.*cm; + expHall_z = 600.*cm; + + trkTubs_rmax = 50.*cm; + trkTubs_rmin = 20.*cm; + trkTubs_dz = 100.*cm; + trkTubs_sphi = 0.*deg; + trkTubs_dphi = 360.*deg; + + notrkLayers = 5; + tracker_radius[0] = 25.*cm; + tracker_radius[1] = 30.*cm; + tracker_radius[2] = 35.*cm; + tracker_radius[3] = 40.*cm; + tracker_radius[4] = 45.*cm; + + tracker_thick = 0.5*cm; + for(int il=0;il<5;il++) + { + tracker_length[il] = tracker_radius[il]; + } + + caloTubs_rmax = 300.*cm; + caloTubs_rmin = 50.*cm; + caloTubs_dz = 200.*cm; + caloTubs_sphi = 0.*deg; + caloTubs_dphi = 360.*deg; + + absorber_thick = 3.*cm; + scinti_thick = 2.*cm; + nocaloLayers = int((caloTubs_rmax-caloTubs_rmin)/(absorber_thick+scinti_thick)); + + segmentsinPhi = 48; + caloCell_rmax = caloTubs_rmax; + caloCell_rmin = caloTubs_rmin; + caloCell_dz = caloTubs_dz; + caloCell_sphi = caloTubs_sphi; + caloCell_dphi = caloTubs_dphi/segmentsinPhi; + + segmentsinZ = 20; + caloRing_rmax = caloCell_rmax; + caloRing_rmin = caloCell_rmin; + caloRing_dz = caloCell_dz/segmentsinZ ; + caloRing_sphi = caloCell_sphi; + caloRing_dphi = caloCell_dphi; + + nomucounter = 4; + muBox_radius = 350.*cm; + muBox_width = muBox_radius - 5.*cm; + muBox_thick = 1.*cm; + muBox_length = expHall_z - 10.*cm; + diff --git a/examples/noviceN04/src/ExN04EventAction.cc b/examples/noviceN04/src/ExN04EventAction.cc new file mode 100644 index 0000000000000000000000000000000000000000..a45a9cd5bbc0502abfd30725d942177c4da87d1d --- /dev/null +++ b/examples/noviceN04/src/ExN04EventAction.cc @@ -0,0 +1,107 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04EventAction.hh" + +#include "ExN04TrackerHit.hh" +#include "ExN04CalorimeterHit.hh" +#include "ExN04MuonHit.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4HCofThisEvent.hh" +#include "G4VHitsCollection.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" +#include "G4ios.hh" + +ExN04EventAction::ExN04EventAction() +{ + trackerCollID = -1; + calorimeterCollID = -1; + muonCollID = -1; +} + +ExN04EventAction::~ExN04EventAction() +{;} + +void ExN04EventAction::BeginOfEventAction(const G4Event*) +{ + G4SDManager * SDman = G4SDManager::GetSDMpointer(); + if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) + { + G4String colNam; + trackerCollID = SDman->GetCollectionID(colNam="trackerCollection"); + calorimeterCollID = SDman->GetCollectionID(colNam="calCollection"); + muonCollID = SDman->GetCollectionID(colNam="muonCollection"); + } +} + +void ExN04EventAction::EndOfEventAction(const G4Event* evt) +{ + G4cout << ">>> Event " << evt->GetEventID() << G4endl; + + if(trackerCollID<0||calorimeterCollID<0||muonCollID<0) return; + + G4HCofThisEvent * HCE = evt->GetHCofThisEvent(); + ExN04TrackerHitsCollection* THC = 0; + ExN04CalorimeterHitsCollection* CHC = 0; + ExN04MuonHitsCollection* MHC = 0; + if(HCE) + { + THC = (ExN04TrackerHitsCollection*)(HCE->GetHC(trackerCollID)); + CHC = (ExN04CalorimeterHitsCollection*)(HCE->GetHC(calorimeterCollID)); + MHC = (ExN04MuonHitsCollection*)(HCE->GetHC(muonCollID)); + } + + if(THC) + { + int n_hit = THC->entries(); + G4cout << " " << n_hit + << " hits are stored in ExN04TrackerHitsCollection." << G4endl; + } + if(CHC) + { + int n_hit = CHC->entries(); + G4cout << " " << n_hit + << " hits are stored in ExN04CalorimeterHitsCollection." << G4endl; + G4double totE = 0; + for(int i=0;i<n_hit;i++) + { totE += (*CHC)[i]->GetEdep(); } + G4cout << " Total energy deposition in calorimeter : " + << totE / GeV << " (GeV)" << G4endl; + } + if(MHC) + { + int n_hit = MHC->entries(); + G4cout << " " << n_hit + << " hits are stored in ExN04MuonHitsCollection." << G4endl; + } +} + diff --git a/examples/noviceN04/src/ExN04Field.cc b/examples/noviceN04/src/ExN04Field.cc new file mode 100644 index 0000000000000000000000000000000000000000..811225d8a74e3b949882445f44db1cdc1c1f7024 --- /dev/null +++ b/examples/noviceN04/src/ExN04Field.cc @@ -0,0 +1,48 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04Field.hh" + +ExN04Field::ExN04Field() +{ + Bz = 3.0*tesla; + rmax_sq = sqr(50.*cm); + zmax = 100.*cm; +} + +ExN04Field::~ExN04Field() +{;} + +void ExN04Field::GetFieldValue(const double Point[3],double *Bfield) const +{ + Bfield[0] = 0.; + Bfield[1] = 0.; + if(std::abs(Point[2])<zmax && (sqr(Point[0])+sqr(Point[1]))<rmax_sq) + { Bfield[2] = Bz; } + else + { Bfield[2] = 0.; } +} + diff --git a/examples/noviceN04/src/ExN04MuonHit.cc b/examples/noviceN04/src/ExN04MuonHit.cc new file mode 100644 index 0000000000000000000000000000000000000000..ee4882f843afc9260c2e29dd15236e43176094c6 --- /dev/null +++ b/examples/noviceN04/src/ExN04MuonHit.cc @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04MuonHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4UnitsTable.hh" +#include "G4AttValue.hh" +#include "G4AttDef.hh" +#include "G4AttCheck.hh" + +G4Allocator<ExN04MuonHit> ExN04MuonHitAllocator; + +ExN04MuonHit::ExN04MuonHit() +{;} + +ExN04MuonHit::~ExN04MuonHit() +{;} + +ExN04MuonHit::ExN04MuonHit(const ExN04MuonHit &right) + : G4VHit() +{ + edep = right.edep; + pos = right.pos; +} + +const ExN04MuonHit& ExN04MuonHit::operator=(const ExN04MuonHit &right) +{ + edep = right.edep; + pos = right.pos; + return *this; +} + +G4int ExN04MuonHit::operator==(const ExN04MuonHit &right) const +{ + return (this==&right) ? 1 : 0; +} + +std::map<G4String,G4AttDef> ExN04MuonHit::fAttDefs; + +void ExN04MuonHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Circle circle(pos); + circle.SetScreenSize(0.04); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.,0.,0.); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +const std::map<G4String,G4AttDef>* ExN04MuonHit::GetAttDefs() const +{ + // G4AttDefs have to have long life. Use static member... + if (fAttDefs.empty()) { + fAttDefs["HitType"] = + G4AttDef("HitType","Type of hit","Physics","","G4String"); + } + return &fAttDefs; +} + +std::vector<G4AttValue>* ExN04MuonHit::CreateAttValues() const +{ + // Create expendable G4AttsValues for picking... + std::vector<G4AttValue>* attValues = new std::vector<G4AttValue>; + attValues->push_back + (G4AttValue("HitType","ExN04MuonHit","")); + //G4cout << "Checking...\n" << G4AttCheck(attValues, GetAttDefs()); + return attValues; +} + +void ExN04MuonHit::Print() +{;} + + diff --git a/examples/noviceN04/src/ExN04MuonSD.cc b/examples/noviceN04/src/ExN04MuonSD.cc new file mode 100644 index 0000000000000000000000000000000000000000..c8082e949864367ef671ea87d42bd64cd784ee45 --- /dev/null +++ b/examples/noviceN04/src/ExN04MuonSD.cc @@ -0,0 +1,97 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04MuonSD.hh" +#include "ExN04MuonHit.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4ios.hh" + +ExN04MuonSD::ExN04MuonSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="muonCollection"); + positionResolution = 5*cm; +} + +ExN04MuonSD::~ExN04MuonSD(){;} + +void ExN04MuonSD::Initialize(G4HCofThisEvent*HCE) +{ + static int HCID = -1; + muonCollection = new ExN04MuonHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = GetCollectionID(0); } + HCE->AddHitsCollection(HCID,muonCollection); +} + +G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + + if(edep==0.) return true; + + ExN04MuonHit* aHit; + int nHit = muonCollection->entries(); + G4ThreeVector hitpos = aStep->GetPreStepPoint()->GetPosition(); + for(int i=0;i<nHit;i++) + { + aHit = (*muonCollection)[i]; + G4ThreeVector pos = aHit->GetPos(); + G4double dist2 = sqr(pos.x()-hitpos.x()) + +sqr(pos.y()-hitpos.y())+sqr(pos.z()-hitpos.z()); + if(dist2<=sqr(positionResolution)) + aHit->AddEdep(edep); + return true; + } + + aHit = new ExN04MuonHit(); + aHit->SetEdep( edep ); + aHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); + muonCollection->insert( aHit ); + + return true; +} + +void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*) +{;} + +void ExN04MuonSD::clear() +{ +} + +void ExN04MuonSD::DrawAll() +{ +} + +void ExN04MuonSD::PrintAll() +{ +} + diff --git a/examples/noviceN04/src/ExN04PrimaryGeneratorAction.cc b/examples/noviceN04/src/ExN04PrimaryGeneratorAction.cc new file mode 100644 index 0000000000000000000000000000000000000000..aef6433afaee1db9293b6041d02b0bd2bfbef891 --- /dev/null +++ b/examples/noviceN04/src/ExN04PrimaryGeneratorAction.cc @@ -0,0 +1,72 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04PrimaryGeneratorAction.hh" + +#include "G4Event.hh" +#include "G4HEPEvtInterface.hh" +#include "G4ParticleGun.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" +#include "ExN04PrimaryGeneratorMessenger.hh" + +ExN04PrimaryGeneratorAction::ExN04PrimaryGeneratorAction() +{ + const char* filename = "pythia_event.data"; + HEPEvt = new G4HEPEvtInterface(filename); + + G4int n_particle = 1; + G4ParticleGun* fParticleGun = new G4ParticleGun(n_particle); + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + G4ParticleDefinition* particle + = particleTable->FindParticle(particleName="mu+"); + fParticleGun->SetParticleDefinition(particle); + fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,1.,0.)); + fParticleGun->SetParticleEnergy(100.*GeV); + fParticleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); + particleGun = fParticleGun; + + messenger = new ExN04PrimaryGeneratorMessenger(this); + useHEPEvt = true; +} + +ExN04PrimaryGeneratorAction::~ExN04PrimaryGeneratorAction() +{ + delete HEPEvt; + delete particleGun; + delete messenger; +} + +void ExN04PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + if(useHEPEvt) + { HEPEvt->GeneratePrimaryVertex(anEvent); } + else + { particleGun->GeneratePrimaryVertex(anEvent); } +} + + diff --git a/examples/noviceN04/src/ExN04PrimaryGeneratorMessenger.cc b/examples/noviceN04/src/ExN04PrimaryGeneratorMessenger.cc new file mode 100644 index 0000000000000000000000000000000000000000..948e939e13e2fe23d626156975603b30568d8e2a --- /dev/null +++ b/examples/noviceN04/src/ExN04PrimaryGeneratorMessenger.cc @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04PrimaryGeneratorMessenger.hh" +#include "ExN04PrimaryGeneratorAction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4ios.hh" + +ExN04PrimaryGeneratorMessenger::ExN04PrimaryGeneratorMessenger(ExN04PrimaryGeneratorAction * mpga) +:myAction(mpga) +{ + mydetDirectory = new G4UIdirectory("/mydet/"); + mydetDirectory->SetGuidance("ExN04 detector control commands."); + + genCmd = new G4UIcmdWithAString("/mydet/generator",this); + genCmd->SetGuidance("Select primary generator."); + genCmd->SetGuidance(" Available generators : PYTHIA, particleGun"); + genCmd->SetParameterName("generator",true); + genCmd->SetDefaultValue("PYTHIA"); + genCmd->SetCandidates("PYTHIA particleGun"); +} + +ExN04PrimaryGeneratorMessenger::~ExN04PrimaryGeneratorMessenger() +{ + delete genCmd; + delete mydetDirectory; +} + +void ExN04PrimaryGeneratorMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==genCmd ) + { myAction->SetHEPEvtGenerator(newValue=="PYTHIA"); } +} + +G4String ExN04PrimaryGeneratorMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + + if( command==genCmd ) + { + if(myAction->GetHEPEvtGenerator()) + { cv = "PYTHIA"; } + else + { cv = "particleGun"; } + } + + return cv; +} + diff --git a/examples/noviceN04/src/ExN04RunAction.cc b/examples/noviceN04/src/ExN04RunAction.cc new file mode 100644 index 0000000000000000000000000000000000000000..00dd760cf2c097712079cbefd460dbddc2f6349b --- /dev/null +++ b/examples/noviceN04/src/ExN04RunAction.cc @@ -0,0 +1,60 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: ExN04RunAction.cc,v 1.5 2006-06-29 17:51:44 gunter Exp $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04RunAction.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::~ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + G4RunManager::GetRunManager()->SetRandomNumberStore(true); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/noviceN04/src/ExN04StackingAction.cc b/examples/noviceN04/src/ExN04StackingAction.cc new file mode 100644 index 0000000000000000000000000000000000000000..f8f7da3e6dc6e23948227ed978ac5b322770ec74 --- /dev/null +++ b/examples/noviceN04/src/ExN04StackingAction.cc @@ -0,0 +1,206 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04StackingAction.hh" +#include "G4SDManager.hh" +#include "G4RunManager.hh" +#include "G4Event.hh" +#include "G4HCofThisEvent.hh" +#include "G4Track.hh" +#include "G4TrackStatus.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" +#include "ExN04StackingActionMessenger.hh" +#include "G4ios.hh" + +ExN04StackingAction::ExN04StackingAction() + : trkHits(0), muonHits(0), stage(0) +{ + angRoI = 30.0*deg; + reqMuon = 2; + reqIso = 10; + theMessenger = new ExN04StackingActionMessenger(this); +} + +ExN04StackingAction::~ExN04StackingAction() +{ delete theMessenger; } + +G4ClassificationOfNewTrack +ExN04StackingAction::ClassifyNewTrack(const G4Track * aTrack) +{ + G4ClassificationOfNewTrack classification = fWaiting; + switch(stage) + { + case 0: // Stage 0 : Primary muons only + if(aTrack->GetParentID()==0) + { + G4ParticleDefinition * particleType = aTrack->GetDefinition(); + if((particleType==G4MuonPlus::MuonPlusDefinition()) + ||(particleType==G4MuonMinus::MuonMinusDefinition())) + { classification = fUrgent; } + } + break; + + case 1: // Stage 1 : Charged primaries only + // Suspended tracks will be sent to the waiting stack + if(aTrack->GetParentID()!=0) { break; } + if(aTrack->GetTrackStatus()==fSuspend) { break; } + if(aTrack->GetDefinition()->GetPDGCharge()==0.) { break; } + classification = fUrgent; + break; + + default: // Stage 2 : Accept all primaries + // Accept all secondaries in RoI + // Kill secondaries outside RoI + if(aTrack->GetParentID()==0) + { + classification = fUrgent; + break; + } + if((angRoI<0.)||InsideRoI(aTrack,angRoI)) + { + classification = fUrgent; + break; + } + classification = fKill; + } + return classification; +} + +G4bool ExN04StackingAction::InsideRoI(const G4Track * aTrack,G4double ang) +{ + if(!muonHits) + { muonHits = (ExN04MuonHitsCollection*)GetCollection("muonCollection"); } + if(!muonHits) + { G4cerr << "muonCollection NOT FOUND" << G4endl; + return true; } + + G4int nhits = muonHits->entries(); + + const G4ThreeVector trPos = aTrack->GetPosition(); + for(G4int i=0;i<nhits;i++) + { + G4ThreeVector muHitPos = (*muonHits)[i]->GetPos(); + G4double angl = muHitPos.angle(trPos); + if(angl<ang) { return true; } + } + + return false; +} + +G4VHitsCollection* ExN04StackingAction::GetCollection(G4String colName) +{ + G4SDManager* SDMan = G4SDManager::GetSDMpointer(); + G4RunManager* runMan = G4RunManager::GetRunManager(); + int colID = SDMan->GetCollectionID(colName); + if(colID>=0) + { + const G4Event* currentEvent = runMan->GetCurrentEvent(); + G4HCofThisEvent* HCE = currentEvent->GetHCofThisEvent(); + return HCE->GetHC(colID); + } + return 0; +} + +void ExN04StackingAction::NewStage() +{ + stage++; + G4int nhits; + if(stage==1) + { + // Stage 0->1 : check if at least "reqMuon" hits on muon chamber + // otherwise abort current event + if(!muonHits) + { muonHits = (ExN04MuonHitsCollection*)GetCollection("muonCollection"); } + if(!muonHits) + { G4cerr << "muonCollection NOT FOUND" << G4endl; + return; } + nhits = muonHits->entries(); + G4cout << "Stage 0->1 : " << nhits << " hits found in the muon chamber." + << G4endl; + if(nhits<reqMuon) + { + stackManager->clear(); + G4cout << "++++++++ event aborted" << G4endl; + return; + } + stackManager->ReClassify(); + return; + } + + else if(stage==2) + { + // Stage 1->2 : check the isolation of muon tracks + // at least "reqIsoMuon" isolated muons + // otherwise abort current event. + // Isolation requires "reqIso" or less hits + // (including own hits) in the RoI region + // in the tracker layers. + nhits = muonHits->entries(); + if(!trkHits) + { trkHits = (ExN04TrackerHitsCollection*)GetCollection("trackerCollection"); } + if(!trkHits) + { G4cerr << "trackerCollection NOT FOUND" << G4endl; + return; } + G4int nTrkhits = trkHits->entries(); + G4int isoMuon = 0; + for(G4int j=0;j<nhits;j++) + { + G4ThreeVector hitPos = (*muonHits)[j]->GetPos(); + G4int nhitIn = 0; + for(G4int jj=0;(jj<nTrkhits)&&(nhitIn<=reqIso);jj++) + { + G4ThreeVector trkhitPos = (*trkHits)[jj]->GetPos(); + if(trkhitPos.angle(hitPos)<angRoI) nhitIn++; + } + if(nhitIn<=reqIso) isoMuon++; + } + G4cout << "Stage 1->2 : " << isoMuon << " isolated muon found." << G4endl; + if(isoMuon<reqIsoMuon) + { + stackManager->clear(); + G4cout << "++++++++ event aborted" << G4endl; + return; + } + stackManager->ReClassify(); + return; + } + + else + { + // Other stage change : just re-classify + stackManager->ReClassify(); + } +} + +void ExN04StackingAction::PrepareNewEvent() +{ + stage = 0; + trkHits = 0; + muonHits = 0; +} + + diff --git a/examples/noviceN04/src/ExN04StackingActionMessenger.cc b/examples/noviceN04/src/ExN04StackingActionMessenger.cc new file mode 100644 index 0000000000000000000000000000000000000000..7bd5c2ffd4702521c8898ff7aff22b3bd7e9b9db --- /dev/null +++ b/examples/noviceN04/src/ExN04StackingActionMessenger.cc @@ -0,0 +1,96 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04StackingActionMessenger.hh" +#include "ExN04StackingAction.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4ios.hh" + +ExN04StackingActionMessenger::ExN04StackingActionMessenger(ExN04StackingAction * msa) +:myAction(msa) +{ + muonCmd = new G4UIcmdWithAnInteger("/mydet/reqmuon",this); + muonCmd->SetGuidance("Number of muon for the trigger."); + muonCmd->SetParameterName("N",true); + muonCmd->SetDefaultValue(2); + muonCmd->SetRange("N>=0"); + + isomuonCmd = new G4UIcmdWithAnInteger("/mydet/isomuon",this); + isomuonCmd->SetGuidance("Number of isolated muon for the trigger."); + isomuonCmd->SetParameterName("N",true); + isomuonCmd->SetDefaultValue(2); + isomuonCmd->SetRange("N>=0"); + + isoCmd = new G4UIcmdWithAnInteger("/mydet/isolation",this); + isoCmd->SetGuidance("Maximum allowed number of hits in tracker"); + isoCmd->SetGuidance(" for an isolated muon track (includes hits by muon)"); + isoCmd->SetParameterName("N",true); + isoCmd->SetDefaultValue(10); + isoCmd->SetRange("N>=0"); + + roiCmd = new G4UIcmdWithADoubleAndUnit("/mydet/RoIangle",this); + roiCmd->SetGuidance("Define RoI angle"); + roiCmd->SetParameterName("theta",true,true); + roiCmd->SetDefaultUnit("deg"); +} + +ExN04StackingActionMessenger::~ExN04StackingActionMessenger() +{ + delete muonCmd; + delete isomuonCmd; + delete isoCmd; + delete roiCmd; +} + +void ExN04StackingActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue) +{ + if( command==muonCmd ) + { myAction->SetNRequestMuon(muonCmd->GetNewIntValue(newValue)); } + else if( command==isomuonCmd ) + { myAction->SetNRequestIsoMuon(isomuonCmd->GetNewIntValue(newValue)); } + else if( command==isoCmd ) + { myAction->SetNIsolation(isoCmd->GetNewIntValue(newValue)); } + else if( command==roiCmd ) + { myAction->SetRoIAngle(roiCmd->GetNewDoubleValue(newValue)); } +} + +G4String ExN04StackingActionMessenger::GetCurrentValue(G4UIcommand * command) +{ + G4String cv; + + if( command==muonCmd ) + { cv = muonCmd->ConvertToString(myAction->GetNRequestMuon()); } + else if( command==isomuonCmd ) + { cv = isomuonCmd->ConvertToString(myAction->GetNRequestIsoMuon()); } + else if( command==isoCmd ) + { cv = isoCmd->ConvertToString(myAction->GetNIsolation()); } + else if( command==roiCmd ) + { cv = roiCmd->ConvertToString(myAction->GetRoIAngle(),"deg"); } + + return cv; +} + diff --git a/examples/noviceN04/src/ExN04SteppingAction.cc b/examples/noviceN04/src/ExN04SteppingAction.cc new file mode 100644 index 0000000000000000000000000000000000000000..db3baf0514c92591f329e1195193b80f01095b92 --- /dev/null +++ b/examples/noviceN04/src/ExN04SteppingAction.cc @@ -0,0 +1,73 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04SteppingAction.hh" +#include "G4SteppingManager.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "G4TrackStatus.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTypes.hh" + +ExN04SteppingAction::ExN04SteppingAction() +{;} + +ExN04SteppingAction::~ExN04SteppingAction() +{;} + +void ExN04SteppingAction::UserSteppingAction(const G4Step * theStep) +{ + G4Track * theTrack = theStep->GetTrack(); + + // check if it is alive + if(theTrack->GetTrackStatus()!=fAlive) { return; } + + // check if it is primary + if(theTrack->GetParentID()!=0) { return; } + + // check if it is NOT muon + G4ParticleDefinition * particleType = theTrack->GetDefinition(); + if((particleType==G4MuonPlus::MuonPlusDefinition()) + ||(particleType==G4MuonMinus::MuonMinusDefinition())) + { return; } + + // check if it is entering to the calorimeter volume + G4StepPoint * thePrePoint = theStep->GetPreStepPoint(); + G4VPhysicalVolume * thePrePV = thePrePoint->GetPhysicalVolume(); + G4String thePrePVname = thePrePV->GetName(); + if(thePrePVname(0,4)=="calo") { return; } + G4StepPoint * thePostPoint = theStep->GetPostStepPoint(); + G4VPhysicalVolume * thePostPV = thePostPoint->GetPhysicalVolume(); + G4String thePostPVname = thePostPV->GetName(); + if(thePostPVname(0,4)!="calo") { return; } + + // then suspend the track + theTrack->SetTrackStatus(fSuspend); +} + + diff --git a/examples/noviceN04/src/ExN04SteppingVerbose.cc b/examples/noviceN04/src/ExN04SteppingVerbose.cc new file mode 100644 index 0000000000000000000000000000000000000000..416355efac2696b32f40c07153ed4e130a50195f --- /dev/null +++ b/examples/noviceN04/src/ExN04SteppingVerbose.cc @@ -0,0 +1,181 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// +// +// $Id: ExN04SteppingVerbose.cc,v 1.4 2006-06-29 17:51:55 gunter Exp $ +// GEANT4 tag $Name: not supported by cvs2svn $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::~ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::StepInfo() +{ + CopyState(); + + G4int prec = G4cout.precision(3); + + if( verboseLevel >= 1 ){ + if( verboseLevel >= 4 ) VerboseTrack(); + if( verboseLevel >= 3 ){ + G4cout << G4endl; + G4cout << std::setw( 5) << "#Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + } + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + // if( fStepStatus != fWorldBoundary){ + if( fTrack->GetNextVolume() != 0 ) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << " " + << std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep() + ->GetProcessName(); + } else { + G4cout << " UserLimit"; + } + + G4cout << G4endl; + + if( verboseLevel == 2 ){ + G4int tN2ndariesTot = fN2ndariesAtRestDoIt + + fN2ndariesAlongStepDoIt + + fN2ndariesPostStepDoIt; + if(tN2ndariesTot>0){ + G4cout << " :----- List of 2ndaries - " + << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot + << "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt + << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt + << ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt + << "), " + << "#SpawnTotal=" << std::setw(3) << (*fSecondary).size() + << " ---------------" + << G4endl; + + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; + lp1<(*fSecondary).size(); lp1++){ + G4cout << " : " + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") + << std::setw(6) + << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") + << std::setw(10) + << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); + G4cout << G4endl; + } + + G4cout << " :-----------------------------" + << "----------------------------------" + << "-- EndOf2ndaries Info ---------------" + << G4endl; + } + } + + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::TrackingStarted() +{ + + CopyState(); +G4int prec = G4cout.precision(3); + if( verboseLevel > 0 ){ + + G4cout << std::setw( 5) << "Step#" << " " + << std::setw( 6) << "X" << " " + << std::setw( 6) << "Y" << " " + << std::setw( 6) << "Z" << " " + << std::setw( 9) << "KineE" << " " + << std::setw( 9) << "dEStep" << " " + << std::setw(10) << "StepLeng" + << std::setw(10) << "TrakLeng" + << std::setw(10) << "Volume" << " " + << std::setw(10) << "Process" << G4endl; + + G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " + << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; + + if(fTrack->GetNextVolume()){ + G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); + } else { + G4cout << std::setw(10) << "OutOfWorld"; + } + G4cout << " initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/noviceN04/src/ExN04TrackerHit.cc b/examples/noviceN04/src/ExN04TrackerHit.cc new file mode 100644 index 0000000000000000000000000000000000000000..262247f72c268b5e12503ed997560eb03e2442d8 --- /dev/null +++ b/examples/noviceN04/src/ExN04TrackerHit.cc @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04TrackerHit.hh" +#include "G4VVisManager.hh" +#include "G4Circle.hh" +#include "G4Colour.hh" +#include "G4VisAttributes.hh" +#include "G4UnitsTable.hh" +#include "G4AttValue.hh" +#include "G4AttDef.hh" +#include "G4AttCheck.hh" + +G4Allocator<ExN04TrackerHit> ExN04TrackerHitAllocator; + +ExN04TrackerHit::ExN04TrackerHit() +{;} + +ExN04TrackerHit::~ExN04TrackerHit() +{;} + +ExN04TrackerHit::ExN04TrackerHit(const ExN04TrackerHit &right) + : G4VHit() +{ + edep = right.edep; + pos = right.pos; +} + +const ExN04TrackerHit& ExN04TrackerHit::operator=(const ExN04TrackerHit &right) +{ + edep = right.edep; + pos = right.pos; + return *this; +} + +G4int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const +{ + return (this==&right) ? 1 : 0; +} + +std::map<G4String,G4AttDef> ExN04TrackerHit::fAttDefs; + +void ExN04TrackerHit::Draw() +{ + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) + { + G4Circle circle(pos); + circle.SetScreenSize(0.04); + circle.SetFillStyle(G4Circle::filled); + G4Colour colour(1.,0.,0.); + G4VisAttributes attribs(colour); + circle.SetVisAttributes(attribs); + pVVisManager->Draw(circle); + } +} + +const std::map<G4String,G4AttDef>* ExN04TrackerHit::GetAttDefs() const +{ + // G4AttDefs have to have long life. Use static member... + if (fAttDefs.empty()) { + fAttDefs["HitType"] = + G4AttDef("HitType","Type of hit","Physics","","G4String"); + } + return &fAttDefs; +} + +std::vector<G4AttValue>* ExN04TrackerHit::CreateAttValues() const +{ + // Create expendable G4AttsValues for picking... + std::vector<G4AttValue>* attValues = new std::vector<G4AttValue>; + attValues->push_back + (G4AttValue("HitType","ExN04TrackerHit","")); + //G4cout << "Checking...\n" << G4AttCheck(attValues, GetAttDefs()); + return attValues; +} + +void ExN04TrackerHit::Print() +{;} + + diff --git a/examples/noviceN04/src/ExN04TrackerParametrisation.cc b/examples/noviceN04/src/ExN04TrackerParametrisation.cc new file mode 100644 index 0000000000000000000000000000000000000000..524f0e67f7c799f9fd57d80295eac0a74ab76d47 --- /dev/null +++ b/examples/noviceN04/src/ExN04TrackerParametrisation.cc @@ -0,0 +1,58 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04TrackerParametrisation.hh" + +#include "G4VPhysicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4Tubs.hh" + +ExN04TrackerParametrisation::ExN04TrackerParametrisation() +{ + +#include "ExN04DetectorParameterDef.icc" + +} + +ExN04TrackerParametrisation::~ExN04TrackerParametrisation() +{;} + +void ExN04TrackerParametrisation::ComputeTransformation +(const G4int, G4VPhysicalVolume* physVol) const +{ + G4ThreeVector origin; + physVol->SetTranslation(origin); +} + +void ExN04TrackerParametrisation::ComputeDimensions +(G4Tubs& trackerLayer, const G4int copyNo, const G4VPhysicalVolume*) const +{ + trackerLayer.SetInnerRadius(tracker_radius[copyNo]); + trackerLayer.SetOuterRadius(tracker_radius[copyNo]+tracker_thick); + trackerLayer.SetZHalfLength(tracker_length[copyNo]); + trackerLayer.SetStartPhiAngle(trkTubs_sphi,false); + trackerLayer.SetDeltaPhiAngle(trkTubs_dphi); +} diff --git a/examples/noviceN04/src/ExN04TrackerSD.cc b/examples/noviceN04/src/ExN04TrackerSD.cc new file mode 100644 index 0000000000000000000000000000000000000000..90b2a68f84368dd255ed4348ba4ffdf9aeede78d --- /dev/null +++ b/examples/noviceN04/src/ExN04TrackerSD.cc @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + +#include "ExN04TrackerSD.hh" +#include "ExN04TrackerHit.hh" +#include "G4Step.hh" +#include "G4HCofThisEvent.hh" +#include "G4TouchableHistory.hh" +#include "G4ios.hh" + +ExN04TrackerSD::ExN04TrackerSD(G4String name) +:G4VSensitiveDetector(name) +{ + G4String HCname; + collectionName.insert(HCname="trackerCollection"); +} + +ExN04TrackerSD::~ExN04TrackerSD(){;} + +void ExN04TrackerSD::Initialize(G4HCofThisEvent* HCE) +{ + static int HCID = -1; + trackerCollection = new ExN04TrackerHitsCollection + (SensitiveDetectorName,collectionName[0]); + if(HCID<0) + { HCID = GetCollectionID(0); } + HCE->AddHitsCollection(HCID,trackerCollection); +} + +G4bool ExN04TrackerSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) +{ + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep==0.) return false; + + ExN04TrackerHit* newHit = new ExN04TrackerHit(); + newHit->SetEdep( edep ); + newHit->SetPos( aStep->GetPreStepPoint()->GetPosition() ); + trackerCollection->insert( newHit ); + + return true; +} + +void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*) +{ +} + +void ExN04TrackerSD::clear() +{ +} + +void ExN04TrackerSD::DrawAll() +{ +} + +void ExN04TrackerSD::PrintAll() +{ +} diff --git a/examples/noviceN04/src/ExN04TrackingAction.cc b/examples/noviceN04/src/ExN04TrackingAction.cc new file mode 100644 index 0000000000000000000000000000000000000000..d9e214ad8bca86d2ee3fd350407dc4709f19c039 --- /dev/null +++ b/examples/noviceN04/src/ExN04TrackingAction.cc @@ -0,0 +1,41 @@ +// +// ******************************************************************** +// * License and Disclaimer * +// * * +// * The Geant4 software is copyright of the Copyright Holders of * +// * the Geant4 Collaboration. It is provided under the terms and * +// * conditions of the Geant4 Software License, included in the file * +// * LICENSE and available at http://cern.ch/geant4/license . These * +// * include a list of copyright holders. * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. Please see the license in the file LICENSE and URL above * +// * for the full disclaimer and the limitation of liability. * +// * * +// * This code implementation is the result of the scientific and * +// * technical work of the GEANT4 collaboration. * +// * By using, copying, modifying or distributing the software (or * +// * any work based on the software) you agree to acknowledge its * +// * use in resulting scientific publications, and indicate your * +// * acceptance of all terms of the Geant4 Software license. * +// ******************************************************************** +// + + +#include "ExN04TrackingAction.hh" +#include "G4TrackingManager.hh" +#include "G4Track.hh" + +void ExN04TrackingAction::PreUserTrackingAction(const G4Track* aTrack) +{ + // Create trajectory only for primaries + if(aTrack->GetParentID()==0) + { fpTrackingManager->SetStoreTrajectory(true); } + else + { fpTrackingManager->SetStoreTrajectory(false); } +} + + diff --git a/examples/noviceN04/src/Muon_geo.cc b/examples/noviceN04/src/Muon_geo.cc new file mode 100644 index 0000000000000000000000000000000000000000..a0972312cf06943276aee3b686f67d23f4486ff4 --- /dev/null +++ b/examples/noviceN04/src/Muon_geo.cc @@ -0,0 +1,62 @@ +// $Id: $ +//==================================================================== +// AIDA Detector description implementation for LCD +//-------------------------------------------------------------------- +// geant4 example/novice/N04 ported to DD4hep +// +// @author F.Gaede, DESY +//==================================================================== +#include "DD4hep/DetFactoryHelper.h" + +using namespace std; +using namespace DD4hep; +using namespace DD4hep::Geometry; + + +static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens) { + + + xml_det_t x_det = e; + string name = x_det.nameStr(); + DetElement muon( name, x_det.id() ); + + Volume experimentalHall_log = lcdd.pickMotherVolume( muon ) ; + + xml_comp_t muonBox ( x_det.child( _U(box) ) ); + + Box muon_box( muonBox.width(), muonBox.thickness(), muonBox.length() ) ; + + + Volume muon_log( "muonT_L", muon_box, lcdd.material("Scintillator" ) ); + + muon_log.setSensitiveDetector( sens ) ; + + double deltaphi = muonBox.deltaphi() ; + + for(int i=0,N = muonBox.repeat() ; i < N ; ++i ){ + + double radius = x_det.radius() ; + + double phi = deltaphi * i ; + + Position trans( radius * sin( phi ) , + radius * cos( phi ) , + 0. ) ; + + // Rotation rot( 0, 0 , phi ) ; + // FG: RotationZ(phi) is not the same as rot( 0, 0 , phi ) !!!??? + PlacedVolume muon_phys = experimentalHall_log.placeVolume( muon_log , Transform3D( RotationZ(phi) , trans ) ); + + muon_phys.addPhysVolID( "system", x_det.id() ) ; + + muon.setPlacement( muon_phys ); + + } + muon.setVisAttributes( lcdd, x_det.visStr(), muon_log ); + + + return muon; +} + +//first argument is the type from the xml file +DECLARE_DETELEMENT( Muon ,create_element ); diff --git a/examples/noviceN04/src/Tracker_geo.cc b/examples/noviceN04/src/Tracker_geo.cc new file mode 100644 index 0000000000000000000000000000000000000000..c48875e33652b2e05f5312cfe748c3473d32026a --- /dev/null +++ b/examples/noviceN04/src/Tracker_geo.cc @@ -0,0 +1,85 @@ +// $Id: $ +//==================================================================== +// AIDA Detector description implementation for LCD +//-------------------------------------------------------------------- +// geant4 example/novice/N04 ported to DD4hep +// +// @author F.Gaede, DESY +//==================================================================== +#include "DD4hep/DetFactoryHelper.h" + +using namespace std; +using namespace DD4hep; +using namespace DD4hep::Geometry; + + +static Ref_t create_element(LCDD& lcdd, xml_h e, SensitiveDetector sens) { + + + xml_det_t x_det = e; + string name = x_det.nameStr(); + DetElement tracker( name, x_det.id() ); + + Volume experimentalHall_log = lcdd.pickMotherVolume( tracker ) ; + + xml_comp_t trkTubs ( x_det.child( _U(tubs) ) ); + + // G4VSolid * tracker_tubs + // = new G4Tubs("trkTubs_tubs",trkTubs_rmin,trkTubs_rmax,trkTubs_dz, + // trkTubs_sphi,trkTubs_dphi); + + Tube tracker_tubs( trkTubs.rmin(),trkTubs.rmax(),trkTubs.dz(), trkTubs.phi0(), trkTubs.deltaphi() ); + // fixme: Tgeo documentation has phi1, phi2 !!!??? + + // G4LogicalVolume * tracker_log + // = new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0); + + Volume tracker_log( "trackerT_L", tracker_tubs, lcdd.material("ArgonGas") ); + + + + // G4VPhysicalVolume * tracker_phys = + // new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys", + // experimentalHall_log,false,0); + + PlacedVolume tracker_phys = experimentalHall_log.placeVolume( tracker_log ); + + tracker_phys.addPhysVolID( "system", x_det.id() ).addPhysVolID("side",0 ) ; + + + tracker.setPlacement( tracker_phys ); + + // G4VisAttributes* tracker_logVisAtt + // = new G4VisAttributes(G4Colour(1.0,0.0,1.0)); + // tracker_log->SetVisAttributes(tracker_logVisAtt); + + tracker.setVisAttributes( lcdd, x_det.visStr(), tracker_log ); + + + // DD4hep does not handle prarmetrized volumes - so we + // have to specify every layer by hand in the xml file + // + int layerID = 0 ; + for(xml_coll_t c(e,_U(layer)); c; ++c, ++layerID) { + + xml_comp_t x_layer(c); + + Tube layer_tubs( x_layer.rmin(),x_layer.rmax(),x_layer.dz(), x_layer.phi0(), x_layer.deltaphi() ); // fixme: Tgeo TubeSegment has phi1, phi2 !!! + + Volume layer_log( "layer_L", layer_tubs, lcdd.material("Silicon") ); + + layer_log.setSensitiveDetector( sens ) ; + + + PlacedVolume layer_phys = tracker_log.placeVolume( layer_log ); + + layer_phys.addPhysVolID( "layer", layerID ) ; + + tracker.setVisAttributes( lcdd, x_layer.visStr(), layer_log ); + } + + return tracker; +} + +//first argument is the type from the xml file +DECLARE_DETELEMENT( Tracker ,create_element ); diff --git a/examples/noviceN04/vis.mac b/examples/noviceN04/vis.mac new file mode 100644 index 0000000000000000000000000000000000000000..b3bb2045bd8921c035623bf8026a565316c40bf1 --- /dev/null +++ b/examples/noviceN04/vis.mac @@ -0,0 +1,77 @@ +# +# Macro file for the initialization phase of "exampleN02.cc" +# when runing in interactive mode +# +# Sets some default verbose +# +/control/verbose 2 +/run/verbose 2 +# +# Use this open statement to create an OpenGL view: +/vis/open OGL 600x600-0+0 +# +# Use this open statement to create a .prim file suitable for +# viewing in DAWN: +#/vis/open DAWNFILE +# +# Use this open statement to create a .heprep file suitable for +# viewing in HepRApp: +#/vis/open HepRepFile +# +# Use this open statement to create a .wrl file suitable for +# viewing in a VRML viewer: +#/vis/open VRML2FILE +# +# Disable auto refresh and quieten vis messages whilst scene and +# trajectories are established: +/vis/viewer/set/autoRefresh false +/vis/verbose errors +# +# Draw geometry: +/vis/drawVolume +# +# Specify view angle: +/vis/viewer/set/viewpointThetaPhi 90. 180. +# +# Specify zoom value: +/vis/viewer/zoom 1.4 +# +# Specify style (surface or wireframe): +#/vis/viewer/set/style wireframe +# +# Draw coordinate axes: +#/vis/scene/add/axes 0 0 0 1 m +# +# Draw smooth trajectories at end of event, showing trajectory points +# as markers 2 pixels wide: +/vis/scene/add/trajectories smooth +/vis/modeling/trajectories/create/drawByCharge +/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true +/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2 +# (if too many tracks cause core dump => /tracking/storeTrajectory 0) +# +# Draw hits at end of event: +#/vis/scene/add/hits +# +# To draw only gammas: +#/vis/filtering/trajectories/create/particleFilter +#/vis/filtering/trajectories/particleFilter-0/add gamma +# +# To invert the above, drawing all particles except gammas, +# keep the above two lines but also add: +#/vis/filtering/trajectories/particleFilter-0/invert true +# +# Many other options are available with /vis/modeling and /vis/filtering. +# For example, to select colour by particle ID: +#/vis/modeling/trajectories/create/drawByParticleID +#/vis/modeling/trajectories/drawByParticleID-0/set e- blue +# +# To superimpose all of the events from a given run: +/vis/scene/endOfEventAction accumulate +# +# Re-establish auto refreshing and verbosity: +/vis/viewer/set/autoRefresh true +/vis/verbose warnings +# +# For file-based drivers, use this to create an empty detector view: +#/vis/viewer/flush