Releases: rest-for-physics/framework
v2.2.15
REST Framework
-
TRestAnalysisPlot
. Added a new field in<plot
to be able to shift the annotation. New field name is :xOffset
andyOffset
in the units of the corresponding histogram drawing. -
TRestAnalysisPlot
. Added aplot.timeDisplay
option. -
TRestAnalsisPlot
. Added special keywords <> , <> , <> , <> , <> , that can be used in the panel. -
TRestAnalysisPlot
. If the extension of thefCanvasSave
is a ROOT file then histograms will also be saved. -
TRestTools
. Added a new methodPrintTable
that prints out the contents of astd::vector <std::vector <Double_t>>
. -
TRestG4Hits
. Added momentum and kinetic energy to hits accessible viaGetKineticEnergy
andGetMomentumDirection
. -
restManager
. Enabled batch mode. This mode disables all the graphical output. One can enable this by--batch
option. -
TRestDataBase
. Implemented remote file uploading within methodupdate_metadatafile
. This method replaces the old one which works only for gas file uploading. Now there shall be no explicit gas server address inside the code. -
Added new metadata class
TRestGainMap
which stores channel and module gains for calibration. -
Added new process
TRestSingleChannelAnalysisProcess
to create/apply gain map for each readout channel. -
TRestEventProcess
. Removed methodGetReadoutMetadata()
,GetGeant4Metadata()
, etc., replaced byGetMetadata<TRestReadout>()
, etc. One does not need to force convertTRestMetadata
pointer to specific metadata class. -
Added new process
TRestPositionMappingProcess
to create/apply position-dependent energy map for event-level correction. -
Added a validation pipeline for TREX-DM detector data at
/macros/pipeline/trex/
.
v2.2.14
REST Framework
-
Added new
REST_ListMacros.C
to list all the REST macros available. It also prints documentation that should be introduced inside the macro code using //*** . CheckREST_PrintTrees.C
for a documented example. -
Added a new sub-dir in the process code directory, util. The util processes are the ones who have nothing to do with data analysis, or that cannot be easily classified with one of the existing categories. Three processes were moved into the folder:
TRestDaqChannelSwitchingProcess
,TRestRawSignalViewerProcess
,TRestSignalViewerProcess
. -
Full revision of
TRestAnalysisPlot
. Check forum posts! -
Fixed observable leak for TRestTrackAnalysisProcess and TRestTriggerAnalysisProcess. Fixed a bug in TRestTriggerAnalysisProcess
-
A REST process
EndProcess
implementation can now access theanalysisTree
using the methodGetFullAnalysisTree
. -
Added new <panel definition inside TRestAnalysisPlot.
REST processes
-
Added new util process:
TRestBenchMarkProcess
. It monitors system load and the performance of REST, then saves the result as observables. The input and output event type is arbitary, so we can insert it anywhere in the process chain. -
Added a new
validateProcesses.py
script to identify problems in the construction of processes. It will be executed in the pipeline when new code is uploaded to the repository. -
fixed observable leak for
TRestTrackAnalysisProcess
andTRestTriggerAnalysisProcess
. Fixed a bug inTRestTriggerAnalysisProcess
. This bug is detectable now byvalidateProcesses.py
.
REST events
-
Updated
TRestHitsEvent
to savefType
object. For concatenated MicroMegas readout it is not purely 2D. We should still have X information in YZ hits, and Y information in XZ hits. The new TRestHitsEvent saves all the information. Needs verification. -
TRestG4Hits
stores also now the information of the remaining kinetic energy of the particle. So that we keep track the information on the kinetic energy at each hit. -
TRestG4Hits::GetTime() now returns the global timestamp (in seconds) when the hit was recorded in the stepping action. Previously this method always returned 0.
v2.2.13
REST Framework
-
When opening root file using
restRoot
, now will also create links to metadata structures. -
New methods added to
TRestRun
to search entries, eventIds, and load events with particular conditions (i.e.GetEventEntriesWithConditions
) to befullfilled
by variables that are found in theanalysisTree
. -
Major revision of
TRestAnalysisTree
observables methods to retrieve values from analysisTree. I.e.
int value = GetObservableValue<int>( obsName )
. We can useGetObservableValueSafe
so that the type is checked. -
Major revision of
REST_Reflection
methods. Now we can retrieve any metadata member using directly is name. I.e.TRestMDClass::GetDataMemberValue("fClassMember")
. -
ToString()
method was updated was updated to work with different types,TVector2
for example used to return a vector when callingGetDataMemberValue
. -
Major fix to improve performance when using
TRestAnalysisPlot
with several files. -
Fixed important leak on
TRestRun::OpenInputFile
. -
TRestAnalysisTree::EvaluateCuts
new method added to evaluate a combined condition of observables. -
TRestDataBase
: added interface to handle web files. TRestManager and TRestGas are now using those interface to download/upload files. -
TRestStringOutput
: output tools now moved to global scale (previously they were inside TRestMetadata). -
TRestSystemOfUnits
introduced as a new unit parsing class. Pre-defined units are added through preprocessor, and saved in a map. -
TRestMetadata
implemented if definition. -
TRestGas
now inherited fromTRestDriftVolume
.
Event types
-
TRestRawSignalEvent
defines internally the baseline range and range where raw signal parameters are calculated. We need to callSetBaseLineRange
andSetRange
methods now. -
TRestHits::fCh
andTRestHits::fMod
members have been removed. Several fixes and validation of this class.
Event processes
-
TRestRawSignalAnalysisProcess
has been reviewed and updated to use the new baseline scheme. Baseline is not substracted from aTRestRawSignalEvent
during the processing. -
Reviewed points over threshold, now
TRestRawSignal::InitPointsOverThreshold
should be used by any REST process to identify and initialise the points that are over threshold. -
TRestMultiFeminosToSignalProcess
now will assign the run start/end time using the first and last events timestamp. -
TRestRawVetoAnalysisProcess
. New process added allowing to remove/veto and analyse a particular channel id. This was added because in CAST we have integrated the Muon veto signal in one of the channels of the electronics. -
Added new process
TRestDaqChannelSwitchingProcess
.
Metadata
TRestG4Metadata
now handles the generation of the random seed to be used in the MC simulation.
v2.2.12
REST Framework
- When opening root file using
restRoot
, it will callTRestRun
for file loading, and automatically connect observable branches for AnalysisTree.
For example, executing restRoot
with a ROOT file as argument will allow to get a run0
and a ev0
initialized pointers.
restRoot file.root
run0->PrintMetadata();
run0->GetEntry(0);
ev0->PrintEvent();
-
Add a namespace:
REST_Reflection
. Add a class: any. This is important for observable saving in theAnalysisTree
, and it is a step towards automatic parameter loading inInitFromConfigFile
. -
AnalysisTree
now accepts all types of observables. If the observable does not exist, it will create a new one in the first filling. -
System-level methods from TRestStringHelper(fileExists(), SearchFileInPath(), Execute(), etc.) now moved to
TRestTools
. -
CMakeLists
. The git info collection operation is moved to the installation stage. -
Now the commit number is stored during the REST installation, and accessible using :
rest-config --commit
. -
New member
TRestMetadata::fCommit
added.
RestG4
-
We split method
EventAction::FillSubEvent
into two methods that combined do the same thing as the original:EventAction::FillSubEvent
andEventAction::ReOrderTrackIds
. This was done because only the first of these methods (EventAction::FillSubEvent) is needed to compute sensitive volume energy and therefore calling the followingEventAction::ReOrderTrackIds
can be avoided if the sensitive energy is zero and thus is not going to be stored anyway (calling the method is a bottleneck in high number of tracks simulations).
https://lfna.unizar.es/rest-development/REST_v2/issues/63 -
PrimaryGeneratorAction
: reimplemented and tested rotation of generatorvirtualWall
using normal vector to the plane. -
Introduced the
enum generator types
and angular/energy distributions. Now we can stop worrying about capital letters when defining this parameters in the configuration files, also now its possible to know all possible values of these parameters by looking at the code and going to the enum struct.
https://lfna.unizar.es/rest-development/REST_v2/issues/54 -
Implemented cleaning of file path strings output such that now every path (restG4) shown in console should contain a single slash.
-
Fixed bug in output messages where sensitive volume energy was being confused by active volume energy.
-
Heavily altered INFO/DEBUG messages of restG4 simulations so that they are more consistent and contain more useful infor mation.
Processes:
-
TRestMultiFEMINOSToSignal
: integratedTRestDetectorSetup
metadata class, used to read detector information through the filename format. -
All the processes are now using the new, more practical, observable interface.
-
TRestGeant4AnalysisProcess
: AddedphotonNuclear
andNInelastic
observables. -
TRestTrackAnalysisProcess
: AddedtrackEnergy
observable.
Metadata:
- New
TRestG4Metadata::fSeed
member added to register the seed given to Geant4 random generator.
Macros:
- New
REST_ReadNEvents_inROI
macro added.
Data:
- Cf252 neutron source added to
distributions/NeutronSources.root
.
v2.2.11
-
Removed automatic
TRestVersion.h
generation at compile time. Now version must be updated manually. AndTRestVersion.h
header generated using the new scriptgenerateVersionHeader.py
to help on header generation. CONTRIBUTING guide will be soon updated accordingly. -
Upgrades related to pre-generated Decay0 generator. New particles, pre-defined positions, etc.
-
New online
Decay0
generator added.packages/restG4/example/restG4template/restG4.rml
has been updated to show the new different ways to implement this generator inTRestG4Metadata
. -
REST_ViewReadoutEvent
rescued. -
New
fVersionLibrary
member insideTRestMetadata
. To be used to define version of REST libraries, and be written in the corresponding metadata classes. -
Added future libraries skeleton under
libraries/
. -
Reference to create new future REST libraries has been refurbished. It has been moved from
packages/userRESTlibrary
tolibraries/dummy
. -
Added a script to apply
clang-format
to the full repository. We adopt the useclang-format
in this release for coding style conventions. Needs update on the CONTRIBUTION GUIDE! -
Improved output precision at
TRestG4Track::PrintTrack
, and added missing track origin information. -
Updated
TRestAnalysisTree
information. Simplified the integration of analysis tree variables inside processes. A new methodTRestEventProcess::SetObservableValue
has been added to help in this. Processes now do not need to build the observable name. Just callSetObservableValue((string) "xOrigin", xOrigin)
. Processes need to be updated in future. An updated process to be used as reference isTRestGeant4AnalysisProcess
. -
Fixed issue in
restG4
not filling properly the run number, and other related fields. -
{Begin,End}OfEventProcess
are now not virtual. It means when using the REST processes insideTRestProcessRunner
any{Begin,End}OfEventProcess
implemented inside a specific process will be just ignored. The implementation ofTRestEventProcess::{Begin,End}OfEventProcess
will be used to assist on transferring event id, timestamp, etc. -
Added a new option to add all the observables of a process to the analysis tree!
<parameter name="observable" value="all" />
If we do not define this parameter, just the explicit observable declarations will be added to the analysisTree.
-
Now, analysis observables of type
map
do not have to be declared as a member of the process. But they are rather defined as local variables and added simply usingSetObservableValue
. -
SetObservableValue
improved efficiency using templates, this should simplify integrating new observables inside processes by using directyTRestEventProcess::SetObservableValue()
inside theProcessEvent
method. -
TRestHits::are{XY,XZ,YZ}
methods have been updated to evaluate all the hits, and not only the first one. -
TRestHits::GetPosition(n)
. NaN vector components are converted to 0 in any scenario. -
Added method
TRestTools::GetTypeName
andTRestTools::Assembly
. -
Updated method TRestMetadata::{Get,Set}DataMemberVal{InString}.
-
TRestEventProcess members will be saved without junk. fVersion, fName, etc.
-
Fix a bug on restG4 SteppingAction. Biasing volume related. Still I don't understand this fix. But anyway, biasing volumes will disappear in future.
-
TRestAnalysisPlot
added stats box also on single plot, and other mods not previously integrated from v2.1.7. -
Several updates on Decay0 generator
TRestG4
related classes. New Decay0 format accepted now. New particles accepted in pre-generated file (not only electron). -
TRestMetadata::SearchFile
is now recursive. -
TRestMetadata::GetSearchPath
will search in REST_PATH/data/ by default if not found in user defined paths. -
Many other minor but important bug fixes.
v2.2.10
-
TRestTools::ReadASCIITable
added to load the contents of a text file with values into avector <vector <Double_t> >
. -
Improved thisREST.sh to be able to switch REST version in a clean way.
-
TRestEvent::PrintEvent
date is printed now human readable. -
TRestMultiFEMINOSToSignalProcess
.Important fix
affecting the read of time stamp values. -
TRestMultiFEMINOSToSignalProcess
. Solved problem related to initialisation offSignalEvent
in obsoleteBeginOfEventProcess
. -
TRestRawToSignalProcess
. Removed unusedBegin,EndOfEventProcess
methods. -
TRestRawToSignalProcess
. Transferred v2.1.7 updates. -
TRestStringHelper::GetSubdirectories
method added. -
TRestStringHelper::SearchFileInPath
is now recursive and searches files also in subdirectories. -
REST_PATH/data
is now a default path where REST will look for files when usingSearchFile
method. -
Few minor bug fixes.
v2.2.9
-
userRESTLibrary
example: Improved compatibility with MacOs and fixed compilation issue on Linux. -
Refurbished and improved cmake scripts and macros.
-
TRestEventProcess
:BeginOfEventProcess
andEndOfEventProcess
are not virtual anymore. They cannot be re-implemented at specific processes. -
Fixed assignment of
runNumber
when the first process is an external process. I.e.fExternal=true
. -
Event IDs are now properly propagated through the processing chain using
TRestEventProcess::BeginOfEventProcess
. -
restRoot
aesthetic changes. By default we only print out the REST libraries loaded in ROOT environment.restRoot --debug
will additionally show the macros being loaded.restRoot --silent
will print out nothing. -
Improved error output and syntax identification on RML files. And added fix related to reading the verboseLevel from included RML section.
-
TRestSystemOfUnits
: Magnetic field units added. -
CMakeLists.txt
: Garfield compilation is now disabled by default. -
inputData
directory has been renamed todata
. Since we do not expect to have an outputData directory. -
Added new
REST_Physics
namespace to define physics constants. -
TRestMultiCoBoAsAdToSignalProcess
: Improved handling of signal loss. -
materials.xml
: Added newAcrylic
material.
v2.2.8
-
TRestTrackAnalysisProcess
. Several fixes and changes on observables names. -
restG4
now accepts a **new particle field, charge, to be able to launch charged ions as primary particles. -
TRestParticle
andTRestParticleSource
addedfCharge
member in consequence. -
TRestG4Track::PrintEvent
increased precision of hit information. -
Fixed array protection index in method
TRestTrackEvent::GetTrack(n)
-
TRestGas::FindGasFile
improved output when gas file is not found. -
Increased compatibility with MacOs.
v2.2.7
v2.2.6
- Major changeTRestGas definition in rml file supports web download, we can use:
<TRestGas name="Xenon-TMA 1Pct 10-10E3Vcm" pressure="10" file="server"/>
- Fix a bug in TRestReadout
GetX()
,GetY()
- Fix a bug in restG4's example: matreials.xml. We recommend to remove
${REST_PATH}/example/restG4template
before installation. - Fix a bug in TRestRawSignal::GetIntegralWithThreshold()
- Changed process: TRestSignalZeroSuppresionProcess, TRestHitsToSignalProcess, TRestSignalToHitsProcess. They are in accordance with sampling unit.
- Defined ci testing with restG4 generation, events processing, etc.
- More TRestRawToSignalProcess now supports progressbar.
- Reduced space consumption for process saving in TRestAnalysisTree, by clearing the config buffer
- updateREST.py: fix a problem in tag sync