v01-08
v01-08
-
2018-07-02 Markus Frank (PR#418)
- Add DDCodexB in standalone mode with simulation script and basic skeleton for DDEve
-
2018-06-28 Markus Frank (PR#417)
- Steer debug printouts in CondDB2DDDB and DDDB2Objects by parsing xml files.
-
2018-06-26 Markus Frank (PR#416)
- Separate the hit class and add dictionary. No base class - entirely independent.
- Allow to save the hit class to ROOT (but without MC truth)
See MyTrackerHit.h for details.
-
2018-06-26 Markus Frank (PR#415)
- Add small example how to specialize a new sensitive action and attach it to a detector in DDG4.
-
2018-06-26 Frank Gaede (PR#414)
- bug fix in Geant4EventReaderGuineaPig
- fix ignoring input lines with 'nan'
- bug fix in Geant4EventReaderGuineaPig
-
2018-06-26 Shaojun Lu (PR#412)
- Added one more if statement: If the track went into new Volume,
- then extracted the hit in previous Volume,
- and start a new hit in this current Volume,
- in this current process, also allow the same following treatments for the new hit.
- Added one more if statement: If the track went into new Volume,
-
2018-06-21 Markus Frank (PR#409)
- Support out-of-source builds of DD4hep examples.
Comes with an expense: A new environment DD4hepExamplesINSTALL.
has to be defined to support internal file accesses and loads.
The builds were also checked with read-only installation directories.
Solves issue #382 - Smallish improvement to the ConditionsManager.
- Support out-of-source builds of DD4hep examples.
-
2018-06-21 Andre Sailer (PR#408)
-
2018-06-07 Markus Frank (PR#404)
- Fix basic shape tests for PseudoTrap
-
2018-06-07 Markus Frank (PR#403)
- patch for truncated tubes shapes.
-
2018-06-04 Markus Frank (PR#402)
- Fix truncated tube shape
-
2018-06-04 Markus Frank (PR#400)
- Allow for world volumes other than boxes. See
examples/ClientTests/compact/WorldVolume.xml
how to set it up. The effective thing is that the top level volume must be set to the TGeoManager beforeDetector::init()
. If a top level volume is set, it is implicitly assumed to be the world volume. Otherwise the already existing mechanism (box volume) is activated. - Add new basic shape tests.
- Allow for world volumes other than boxes. See
-
2018-06-01 Markus Frank (PR#399)
- As discussed in issue #398 The use of TGeoUnits is inconvenient. The dd4hep units are now exposed in the python modules.
- Basic shapes are now tested in the regular ctest executions. The mesh vertices of the shapes were
saved to a reference file and are compared to in subsequent runs. The reference files reside in
examples/ClienTests/ref
. Seeexamples/ClientTests/compact/Check_Shape_*.xml
for details. - The ROOT UI and some dump plugins were enhanced to expose more information.
-
2018-05-30 Markus Frank (PR#397)
- Enable to start DDG4 using a saved detector description in a ROOT file.
- Added corresponding test:
Persist_CLICSiD_Geant4_LONGTEST
- Added corresponding test:
- Fix shape constructors for Trap and PseudoTrap
- The python module
DD4hep.py
is gone as discussed in the developers meeting usedd4hep.py
instead.- on masOS : your "git pull" possibly deletes both files. you may have to checkout
dd4hep.py
again, due to fact that the filesystem is case-insensitive.
- on masOS : your "git pull" possibly deletes both files. you may have to checkout
- Add example for LHCb CODEX-b.
- Enable to start DDG4 using a saved detector description in a ROOT file.
-
2018-05-29 Markus Frank (PR#394)
- Consistently handle cmake command line options in case no Geant4 or no documentation should be built.
-
2018-05-28 Markus Frank (PR#393)
- Improvements to
geoPluginRun
.
$> geoPluginRun -ui -interactive
results in DD4hep enabled ROOT prompt. - DD4hepUI: improvements to interact with DD4hep instance from ROOT prompt
- DDDB improve configuration for printing and debugging
- DDDB: allow to block certain XML branches
- Improvements to
-
2018-05-22 Frank Gaede (PR#389)
- fix bug in input handling, for details see discussion #387
- exclude leptons with zero lifetime from Geant4
- fix bug in input handling, for details see discussion #387
-
2018-05-22 Markus Frank (PR#388)
- Update doxygen information for some undocumented classes.
- Add licence header to files where not present.
-
2018-05-22 Marko Petric (PR#380)
- Update LICENSE to LGPLv3
- The name of the file containing the LICENSE has ben changed from LICENCE->LICENSE as all source files reference
For the licensing terms see $DD4hepINSTALL/LICENSE.
- The name of the file containing the LICENSE has ben changed from LICENCE->LICENSE as all source files reference
- Update LICENSE to LGPLv3
-
2018-05-16 Markus Frank (PR#386)
- Fix bug in variable order of
ExtrudedPolygon
(x<->y)
- Fix bug in variable order of
-
2018-05-15 Markus Frank (PR#384)
Implementation of non-cylindrical tracking region (resolves #371)
- It is possible to define volumes in a parallel world such as e.g. a tracking region. In principle any volume hierarchy may be attached to the parallel world. None of these volumes participate in the tracking as long as the "connected" attribute is set to false. The hierarchy of parallel world volumes can be accessed from the main detector object using
dd4hep::Volume parallel = dd4hep::Description::parallelWorldVolume()
This parallel world volume is created when the geometry is opened together (and with the same dimensions) as the world volume itself.
- IF the NAME of the volumes is "tracking_volume" within the compact notation it is declared as the Detector's trackingVolume entity and is accessible as well:
dd4hep::Volume trackers = dd4hep::Description::trackingVolume()
- Although the concept is available in the DD4hep core, it's configuration from XML is only implemented for the compact notation. For details see the example
examples/ClientTests/compact/TrackingRegion.xml
. - If the volume should be connected to the world: connected="true". This is useful for debugging because the volume can be visualized else if the volume is part of the parallelworld: connected="false". The volume is always connected to the top level. The anchor detector element defines the base transformation to place the volume within the (parallel) world.
<parallelworld_volume name="tracking_volume" anchor="/world" material="Air" connected="true" vis="VisibleBlue"> <shape type="BooleanShape" operation="Subtraction"> <shape type="BooleanShape" operation="Subtraction"> <shape type="BooleanShape" operation="Subtraction" > <shape type="Tube" rmin="0*cm" rmax="100*cm" dz="100*cm"/> <shape type="Cone" rmin2="0*cm" rmax2="60*cm" rmin1="0*cm" rmax1="30*cm" z="40*cm"/> <position x="0*cm" y="0*cm" z="65*cm"/> </shape> <shape type="Cone" rmin1="0*cm" rmax1="60*cm" rmin2="0*cm" rmax2="30*cm" z="40*cm"/> <position x="0" y="0" z="-65*cm"/> </shape> <shape type="Cone" rmin2="0*cm" rmax2="55*cm" rmin1="0*cm" rmax1="55*cm" z="30*cm"/> <position x="0" y="0" z="0*cm"/> </shape> <position x="0*cm" y="50*cm" z="0*cm"/> <rotation x="pi/2.0" y="0" z="0"/> </parallelworld_volume>
Enhancement of assemblies, regions and production cuts (resolves #373)
On request from FCC particle specific production cuts may be specified in the compact notation. These production cuts (Geant4 currently supports these for e+, e-, gammas and protons) are specified as "cut" entities in the limitset. (See the example
examples/ClientTests/compact/Assemblies.xml
).- The hierarchy of cuts being applied is:
- If present particle specific production cuts for a region are applied.
- else the "cut" attribute of the compact region specification is used
- else the global Geant4 cut is automaticallly applied by Geant4.
<limits> <limitset name="VXD_RegionLimitSet"> <!-- These are particle specific limits applied to the region ending in Geant4 in a G4UserLimits instance --> <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> <limit name="track_length_max" particles="*" value="5.0" unit="mm" /> <limit name="time_max" particles="*" value="5.0" unit="ns" /> <limit name="ekin_min" particles="*" value="0.01" unit="MeV" /> <limit name="range_min" particles="*" value="5.0" unit="mm" /> <!-- These are particle specific production cuts applied to the region ending in Geant4 in a G4ProductionCuts instance --> <cut particles="e+" value="2.0" unit="mm" /> <cut particles="e-" value="2.0" unit="mm" /> <cut particles="gamma" value="5.0" unit="mm" /> </limitset> </limits>
SensitiveDetector types not changed by Geant4SensDetActionSequence (resolves #378)
The sensitive detector type defined in the detector constructors is no longer changed intransparently in the back of the users. This may have side-effects for creative detector constructor writers, who invent sd types out of the sky. These obviously will not work with Geant4, because in Geant4 a mapping of these types must be applied to supported sensitive detectors. Now the mapping of a sd type (e.g. "tracker") is strict in the python setup. The default factory to create any sensitive detector instance in Geant4 (ie. an object of type G4VSensitiveDetector, G4VSDFilter, Geant4ActionSD) is a property of the Geant4Kernel instance and defaults to:
declareProperty("DefaultSensitiveType", m_dfltSensitiveDetectorType = "Geant4SensDet");
- Since the actual behavior is defined in the sequencer instanciated therein this default should be sufficient for 99.99 % of all cases. Otherwise the factory named "Geant4SensDet" may be overloaded.
- It is possible to define volumes in a parallel world such as e.g. a tracking region. In principle any volume hierarchy may be attached to the parallel world. None of these volumes participate in the tracking as long as the "connected" attribute is set to false. The hierarchy of parallel world volumes can be accessed from the main detector object using
-
2018-05-15 David Blyth (PR#379)
- Geant4FieldTrackingConstruction now properly overrides
constructField()
- Geant4FieldTrackingConstruction now properly overrides
-
2018-05-03 David Blyth (PR#377)
- Geant4Handle unhandled reference to shared actions. This affected the destruction of shared actions.
-
2018-05-03 Markus Frank (PR#375)
-
Development of a small user example on how to do analysis in
DDG4
.- See
examples/DDG4/src/HitTupleAction.cpp
- Simply collect the energy deposits of hits and write an N-tuple with them.
- The example shows how to access the hit collections and to extract the data in order to write other more sophisticated analyses.
- See
-
This
DDG4
action is used in one of the Minitel examples:examples/ClientTests/srcipts/MiniTelEnergyDeposits.py
-
-
2018-05-02 Markus Frank (PR#374)
- recommission the multithreaded SiD example
DDG4/examples/SiDSim_MT.py
vs.DDG4/examples/SiDSim.py
- recommission the multithreaded SiD example
-
2018-04-19 Markus Frank (PR#370)
- Allow to disable building the documentation cmake option BUILD_DOCS. By default ON and backwards compatible. If set to OFF no doc shall be built. (not everybody has biber installed)
- Move from
DD4hep.py
todd4hep.py
, sinceDD4hep.py
has to disappear due to conflicts on MAC.
-
2018-04-13 Markus Frank (PR#367)
-
resolves #361
The Detector object has a stateDetector::state()
with three values:/// The detector description states enum State { /// The detector description object is freshly created. No geometry nothing. NOT_READY = 1<<0, /// The geometry is being created and loaded. (parsing ongoing) LOADING = 1<<1, /// The geometry is loaded. READY = 1<<2 };
It starts with
NOT_READY
, moves toLOADING
once the geometry is opened and goes toREADY
once the geometry is closed. As suggested in the developers meeting: the initial field object is invalid and gets created only once the geometry is opened. As a corollary, the field may not be accessed before. Geometry parsers must take this behavior into account! -
Address some compiler warnings.
- Mainly add override/final statements in header files.
-
Implement a module to invoke python as a DD4hep plugin:
invoked e.g. by:geoPluginRun -plugin DD4hep_Python -dd4hep -prompt
geoPluginRun -plugin DD4hep_Python -help Usage: -plugin <name> -arg [-arg] name: factory name DD4hep_Python -import <string> import a python module, making its classes available. -macro <string> load a python script as if it were a macro. -exec <string> execute a python statement (e.g. import ROOT. -eval <string> evaluate a python expression (e.g. 1+1) -prompt enter an interactive python session (exit with ^D) -dd4hep Equivalent to -exec "import dd4hep" -help Show this online help message. Note: entries can be given multiple times and are executed in exactly the order specified at the command line!
Implementation wise the plugin is a simple CLI wrapper for TPython.
-
-
2018-04-12 Marko Petric (PR#362)
- Update DD4hepManual
-
2018-04-12 Markus Frank (PR#360)
- Examples: only build some examples depending on the availability of dependencies.
- DDCore: Add interface to allow URI blocking during file parsing. Default is as now.
- DDCMS: Add conversion of new shapes.
-
2018-04-10 Markus Frank (PR#359)
- Bunch of fixes. Mostly in
examples/DDDB
- Only build
examples/DDDB
if XercesC is present. - Only build
examples/DDCMS
if CLHEP is present
- Bunch of fixes. Mostly in
-
2018-04-09 Markus Frank (PR#357)
- Add configuration options for loading DDDB
-
2018-04-05 Markus Frank (PR#351)
- To avoid unwanted disappearing conditions sub pools, a conditions slice may be instructed to collect shared references to the used pools in the slice.
- For python:
- Move DDG4/SystemOfUnits.py to DDG4/g4units.py
Keep SystemOfUnits.py with deprecation warning - move DD4hep.py to dd4hep.py.
import dd4hep also imports all TGeoUnit units into its namespace.
Hence: import dd4hep; print dd4hep.m gives: "100.0" - DD4hep.py is kept for backwards compatibility issuing a deprecation warning
- DDG4.py: imports g4units as G4Units: DDG4.G4Units.m etc.
- DDG4.py: imports TGeoUnit as TGeo4Units: DDG4.TGeoUnits.m etc.
- Some problem with replacing DD4hepUnits.h with TGeoSystemOfUnits.h
Surface test complains. To be investigated. Keep old DD4hepUnits for the time being.
- Move DDG4/SystemOfUnits.py to DDG4/g4units.py
-
2018-04-05 Markus Frank (PR#350)
- Merge
DDCMS
andDDCMSTests
toDDCMS
- Move
DDDB
to theexamples/
- Add tests
DDDB_DeVelo
andDDDB_DeVelo_Gaudi
missing from #349
- Merge
-
2018-04-05 Markus Frank (PR#349)
- Resolves #339
- DDDB conditions had a bug when loading from file base. The IOV was not handled properly. Now the resulting IOV is configurable using properties.
- Added Gaudi like example use case for options handling with the DeVelo detector elements.
- Configuration improvement in DDG4 action Output2ROOT:
- New property "DisableParticles" allows to suppress the MCParticle record from being written to the ROOT file.
- dto. the option "DisabledCollections" allows to NOT write any hit collection.
- Unit tests for these options are not (yet) present.
- DDCond: allow for user defined conditions cleanup policies. Base class
dd4hep::cond::ConditionsCleanup
. Callbacks are issued to the class for IOV type pools and IOV dependent pools asking if the pools should be processed.
-
2018-04-05 Marko Petric (PR#344)
- Move
DDCMS
into examples as it is not core functionality
- Move