Software for Liquid Argon time projection chambers
Several products have been split into separate parts. The new products make a suite, larsoftobj, that does not depend on art.
art 1.xx | art 2.xx | notes |
---|---|---|
art | art, canvas | art:Release Notes 2.00.02 |
nutools | nutools, nusimdata | nusimdata contains SimulationBase |
larcore | larcore, larcoreobj | larcoreobj contains SimpleTypesAndConstants and SummaryData |
lardata | lardata, lardataobj | lardataobj contains AnalysisBase, MCBase, OpticalDetectorData, RawData, RecoBase, and part of Utilities |
larsim | larsim, larsimobj | larsimobj contains part of Simulation |
Code for building with root 6 and art v1_18_05 will be found in the v06_00_00_rc branch of the following repositories. Release candidate tags will only be made for the larsoft repositories.
This error message most likely means that an enum has not been specified. —- DictionaryNotFound BEGIN No dictionary found for the following classes:
geo::_plane_sigtype
Most likely they were never generated, but it may be that they were generated in the wrong package.
Please add (or move) the specification
<class name="MyClassName"/>
to the appropriate classes_def.xml file.
If the class is a template instance, you may need
to define a dummy variable of this type in classes.h.
Also, if this class has any transient members,
you need to specify them in classes_def.xml.
---- DictionaryNotFound END
With root 6, it is no longer necessary to include template instantiations in classes.h.
The templates are instantiated when they are used.
Removing all template instantiations from the classes.h files results in much faster loading of root dictionaries.
TFormula
discovered integral mathROOT 6 implementation of TFormula
performs integral math evaluation in a fashion more similar to the C language. For example, "1/2"
evaluates to 0.
, while "1./2."
evaluates to 0.5
.
ROOT 5 used to convert all operands to floating point and then perform floating point math: both "1/2"
and "1./2."
did evaluate to 0.5
.
TFormula
is internally used in many ROOT classes (e.g. TTree::Draw
, TTree::Scan
, TF1
, etc.). All the instances should be checked to make sure that they yield the expected result.
This new feature has been reported as JIRA issue 8110, but no official response has been produced yet. For what we know so far, ROOT 6’s one might be either a buggy behaviour that will be fixed and disappear, or the new official behaviour of TFormula
.
TFormula
bug on missing parameter in expressionSee JIRA issue 8182.
In short, if your expression omits a parameter, parameters gets assigned as if you hadn’t. This means that some parameters are assigned values that some others should have been assigned.
For example:
wrong formula | interpreted as | bad effects |
---|---|---|
"[0]*x**[2]" |
"[0]*x**[1]" |
SetParameters(0., 1., 2.) results in [2] <== 1. |
"[0]*x**[2]" |
"[0]*x**[1]" |
SetParameter(2, 2.) has no effect (there is no parameter 2) |
gaus(0) + [4]**[5] |
gaus(0) + [3]**[4] |
SetParameters(0., 1., 2., 3., 4., 5.) results in [4] <== 3. , [5] <== 4. |
gaus(0) + [4]**[5] |
gaus(0) + [3]**[4] |
SetParameter(4, 4.) results in [5] <== 4. |
gaus(0) + [4]**[5] |
gaus(0) + [3]**[4] |
@SetParameter(5, 5.) has no effect (there is no parameter 5) |
This script is in larsoft. RemoveMathFromGDML.py uses root 5 to translate expressions and must be run with root 5.34.32. You must setup an appropriate larsoft v05_xx_yy release.
setup larsoft v05_09_00 or later
cd to the gdml directory
RemoveMathFromGDML.py *.gdml
the original gdml files will be named xxx.gdml.bak
USAGE: check_dictionaries.sh [-h] <directory>
-h (this help)
look for classes_def.xml under the specified directory
If no directory is specified, search this directory