Skip to content

Releases: rest-for-physics/framework

v2.2.15

25 Dec 05:53
Compare
Choose a tag to compare
REST Framework
  1. TRestAnalysisPlot. Added a new field in <plot to be able to shift the annotation. New field name is : xOffset and yOffset in the units of the corresponding histogram drawing.

  2. TRestAnalysisPlot. Added a plot.timeDisplay option.

  3. TRestAnalsisPlot. Added special keywords <> , <> , <> , <> , <> , that can be used in the panel.

  4. TRestAnalysisPlot. If the extension of the fCanvasSave is a ROOT file then histograms will also be saved.

  5. TRestTools. Added a new method PrintTable that prints out the contents of a std::vector <std::vector <Double_t>>.

  6. TRestG4Hits. Added momentum and kinetic energy to hits accessible via GetKineticEnergy and GetMomentumDirection.

  7. restManager. Enabled batch mode. This mode disables all the graphical output. One can enable this by --batch option.

  8. TRestDataBase. Implemented remote file uploading within method update_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.

  9. Added new metadata class TRestGainMap which stores channel and module gains for calibration.

  10. Added new process TRestSingleChannelAnalysisProcess to create/apply gain map for each readout channel.

  11. TRestEventProcess. Removed method GetReadoutMetadata(), GetGeant4Metadata(), etc., replaced by GetMetadata<TRestReadout>(), etc. One does not need to force convert TRestMetadata pointer to specific metadata class.

  12. Added new process TRestPositionMappingProcess to create/apply position-dependent energy map for event-level correction.

  13. Added a validation pipeline for TREX-DM detector data at /macros/pipeline/trex/.

v2.2.14

25 Dec 05:54
Compare
Choose a tag to compare
REST Framework
  1. 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 //*** . Check REST_PrintTrees.C for a documented example.

  2. 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.

  3. Full revision of TRestAnalysisPlot. Check forum posts!

  4. Fixed observable leak for TRestTrackAnalysisProcess and TRestTriggerAnalysisProcess. Fixed a bug in TRestTriggerAnalysisProcess

  5. A REST process EndProcess implementation can now access the analysisTree using the method GetFullAnalysisTree.

  6. Added new <panel definition inside TRestAnalysisPlot.

REST processes
  1. 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.

  2. 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.

  3. fixed observable leak for TRestTrackAnalysisProcess and TRestTriggerAnalysisProcess. Fixed a bug in TRestTriggerAnalysisProcess. This bug is detectable now by validateProcesses.py.

REST events
  1. Updated TRestHitsEvent to save fType 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.

  2. 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.

  3. 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

25 Dec 05:55
Compare
Choose a tag to compare
REST Framework
  1. When opening root file using restRoot, now will also create links to metadata structures.

  2. New methods added to TRestRun to search entries, eventIds, and load events with particular conditions (i.e. GetEventEntriesWithConditions) to be fullfilled by variables that are found in the analysisTree.

  3. Major revision of TRestAnalysisTree observables methods to retrieve values from analysisTree. I.e.
    int value = GetObservableValue<int>( obsName ). We can use GetObservableValueSafe so that the type is checked.

  4. Major revision of REST_Reflection methods. Now we can retrieve any metadata member using directly is name. I.e. TRestMDClass::GetDataMemberValue("fClassMember").

  5. ToString() method was updated was updated to work with different types, TVector2 for example used to return a vector when calling GetDataMemberValue.

  6. Major fix to improve performance when using TRestAnalysisPlot with several files.

  7. Fixed important leak on TRestRun::OpenInputFile.

  8. TRestAnalysisTree::EvaluateCuts new method added to evaluate a combined condition of observables.

  9. TRestDataBase: added interface to handle web files. TRestManager and TRestGas are now using those interface to download/upload files.

  10. TRestStringOutput: output tools now moved to global scale (previously they were inside TRestMetadata).

  11. TRestSystemOfUnits introduced as a new unit parsing class. Pre-defined units are added through preprocessor, and saved in a map.

  12. TRestMetadata implemented if definition.

  13. TRestGas now inherited from TRestDriftVolume.

Event types

  1. TRestRawSignalEvent defines internally the baseline range and range where raw signal parameters are calculated. We need to call SetBaseLineRange and SetRange methods now.

  2. TRestHits::fCh and TRestHits::fMod members have been removed. Several fixes and validation of this class.

Event processes

  1. TRestRawSignalAnalysisProcess has been reviewed and updated to use the new baseline scheme. Baseline is not substracted from a TRestRawSignalEvent during the processing.

  2. Reviewed points over threshold, now TRestRawSignal::InitPointsOverThreshold should be used by any REST process to identify and initialise the points that are over threshold.

  3. TRestMultiFeminosToSignalProcess now will assign the run start/end time using the first and last events timestamp.

  4. 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.

  5. Added new process TRestDaqChannelSwitchingProcess.

Metadata

  1. TRestG4Metadata now handles the generation of the random seed to be used in the MC simulation.

v2.2.12

25 Dec 05:55
Compare
Choose a tag to compare
REST Framework
  1. When opening root file using restRoot, it will call TRestRun 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();
  1. Add a namespace: REST_Reflection. Add a class: any. This is important for observable saving in the AnalysisTree, and it is a step towards automatic parameter loading in InitFromConfigFile.

  2. AnalysisTree now accepts all types of observables. If the observable does not exist, it will create a new one in the first filling.

  3. System-level methods from TRestStringHelper(fileExists(), SearchFileInPath(), Execute(), etc.) now moved to TRestTools.

  4. CMakeLists. The git info collection operation is moved to the installation stage.

  5. Now the commit number is stored during the REST installation, and accessible using : rest-config --commit.

  6. New member TRestMetadata::fCommit added.

RestG4
  1. We split method EventAction::FillSubEvent into two methods that combined do the same thing as the original: EventAction::FillSubEvent and EventAction::ReOrderTrackIds. This was done because only the first of these methods (EventAction::FillSubEvent) is needed to compute sensitive volume energy and therefore calling the following EventAction::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

  2. PrimaryGeneratorAction: reimplemented and tested rotation of generator virtualWall using normal vector to the plane.

  3. 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

  4. Implemented cleaning of file path strings output such that now every path (restG4) shown in console should contain a single slash.

  5. Fixed bug in output messages where sensitive volume energy was being confused by active volume energy.

  6. Heavily altered INFO/DEBUG messages of restG4 simulations so that they are more consistent and contain more useful infor mation.

Processes:
  1. TRestMultiFEMINOSToSignal: integrated TRestDetectorSetup metadata class, used to read detector information through the filename format.

  2. All the processes are now using the new, more practical, observable interface.

  3. TRestGeant4AnalysisProcess: Added photonNuclear and NInelastic observables.

  4. TRestTrackAnalysisProcess: Added trackEnergy observable.

Metadata:

  1. New TRestG4Metadata::fSeed member added to register the seed given to Geant4 random generator.
Macros:
  1. New REST_ReadNEvents_inROI macro added.
Data:
  1. Cf252 neutron source added to distributions/NeutronSources.root.

v2.2.11

25 Dec 05:57
Compare
Choose a tag to compare
  1. Removed automatic TRestVersion.h generation at compile time. Now version must be updated manually. And TRestVersion.h header generated using the new script generateVersionHeader.py to help on header generation. CONTRIBUTING guide will be soon updated accordingly.

  2. Upgrades related to pre-generated Decay0 generator. New particles, pre-defined positions, etc.

  3. New online Decay0 generator added. packages/restG4/example/restG4template/restG4.rml has been updated to show the new different ways to implement this generator in TRestG4Metadata.

  4. REST_ViewReadoutEvent rescued.

  5. New fVersionLibrary member inside TRestMetadata. To be used to define version of REST libraries, and be written in the corresponding metadata classes.

  6. Added future libraries skeleton under libraries/.

  7. Reference to create new future REST libraries has been refurbished. It has been moved from packages/userRESTlibrary to libraries/dummy.

  8. Added a script to apply clang-format to the full repository. We adopt the use clang-format in this release for coding style conventions. Needs update on the CONTRIBUTION GUIDE!

  9. Improved output precision at TRestG4Track::PrintTrack, and added missing track origin information.

  10. Updated TRestAnalysisTree information. Simplified the integration of analysis tree variables inside processes. A new method TRestEventProcess::SetObservableValue has been added to help in this. Processes now do not need to build the observable name. Just call SetObservableValue((string) "xOrigin", xOrigin). Processes need to be updated in future. An updated process to be used as reference is TRestGeant4AnalysisProcess.

  11. Fixed issue in restG4 not filling properly the run number, and other related fields.

  12. {Begin,End}OfEventProcess are now not virtual. It means when using the REST processes inside TRestProcessRunner any {Begin,End}OfEventProcess implemented inside a specific process will be just ignored. The implementation of TRestEventProcess::{Begin,End}OfEventProcess will be used to assist on transferring event id, timestamp, etc.

  13. 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.

  1. 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 using SetObservableValue.

  2. SetObservableValue improved efficiency using templates, this should simplify integrating new observables inside processes by using directy TRestEventProcess::SetObservableValue() inside the ProcessEvent method.

  3. TRestHits::are{XY,XZ,YZ} methods have been updated to evaluate all the hits, and not only the first one.

  4. TRestHits::GetPosition(n). NaN vector components are converted to 0 in any scenario.

  5. Added method TRestTools::GetTypeName and TRestTools::Assembly.

  6. Updated method TRestMetadata::{Get,Set}DataMemberVal{InString}.

  7. TRestEventProcess members will be saved without junk. fVersion, fName, etc.

  8. Fix a bug on restG4 SteppingAction. Biasing volume related. Still I don't understand this fix. But anyway, biasing volumes will disappear in future.

  9. TRestAnalysisPlot added stats box also on single plot, and other mods not previously integrated from v2.1.7.

  10. Several updates on Decay0 generator TRestG4 related classes. New Decay0 format accepted now. New particles accepted in pre-generated file (not only electron).

  11. TRestMetadata::SearchFile is now recursive.

  12. TRestMetadata::GetSearchPath will search in REST_PATH/data/ by default if not found in user defined paths.

  13. Many other minor but important bug fixes.

v2.2.10

25 Dec 05:58
Compare
Choose a tag to compare
  1. TRestTools::ReadASCIITable added to load the contents of a text file with values into a vector <vector <Double_t> >.

  2. Improved thisREST.sh to be able to switch REST version in a clean way.

  3. TRestEvent::PrintEvent date is printed now human readable.

  4. TRestMultiFEMINOSToSignalProcess. Important fix affecting the read of time stamp values.

  5. TRestMultiFEMINOSToSignalProcess. Solved problem related to initialisation of fSignalEvent in obsolete BeginOfEventProcess.

  6. TRestRawToSignalProcess. Removed unused Begin,EndOfEventProcess methods.

  7. TRestRawToSignalProcess. Transferred v2.1.7 updates.

  8. TRestStringHelper::GetSubdirectories method added.

  9. TRestStringHelper::SearchFileInPath is now recursive and searches files also in subdirectories.

  10. REST_PATH/data is now a default path where REST will look for files when using SearchFile method.

  11. Few minor bug fixes.

v2.2.9

25 Dec 05:59
Compare
Choose a tag to compare
  1. userRESTLibrary example: Improved compatibility with MacOs and fixed compilation issue on Linux.

  2. Refurbished and improved cmake scripts and macros.

  3. TRestEventProcess : BeginOfEventProcess and EndOfEventProcess are not virtual anymore. They cannot be re-implemented at specific processes.

  4. Fixed assignment of runNumber when the first process is an external process. I.e. fExternal=true.

  5. Event IDs are now properly propagated through the processing chain using TRestEventProcess::BeginOfEventProcess.

  6. 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.

  7. Improved error output and syntax identification on RML files. And added fix related to reading the verboseLevel from included RML section.

  8. TRestSystemOfUnits : Magnetic field units added.

  9. CMakeLists.txt : Garfield compilation is now disabled by default.

  10. inputData directory has been renamed to data. Since we do not expect to have an outputData directory.

  11. Added new REST_Physics namespace to define physics constants.

  12. TRestMultiCoBoAsAdToSignalProcess : Improved handling of signal loss.

  13. materials.xml : Added new Acrylic material.

v2.2.8

25 Dec 06:00
Compare
Choose a tag to compare
  1. TRestTrackAnalysisProcess. Several fixes and changes on observables names.

  2. restG4 now accepts a **new particle field, charge, to be able to launch charged ions as primary particles.

  3. TRestParticle and TRestParticleSource added fCharge member in consequence.

  4. TRestG4Track::PrintEvent increased precision of hit information.

  5. Fixed array protection index in method TRestTrackEvent::GetTrack(n)

  6. TRestGas::FindGasFile improved output when gas file is not found.

  7. Increased compatibility with MacOs.

v2.2.7

25 Dec 06:01
Compare
Choose a tag to compare
  • TRestWebFile and related features to download remote files have been moved to v2.2.7_dev_http. For independent testing and development.
    Problems of compatibility at compilation time architecture dependent.

v2.2.6

25 Dec 06:02
Compare
Choose a tag to compare
  1. Major changeTRestGas definition in rml file supports web download, we can use:
    <TRestGas name="Xenon-TMA 1Pct 10-10E3Vcm" pressure="10" file="server"/>
  2. Fix a bug in TRestReadout GetX(), GetY()
  3. Fix a bug in restG4's example: matreials.xml. We recommend to remove ${REST_PATH}/example/restG4template before installation.
  4. Fix a bug in TRestRawSignal::GetIntegralWithThreshold()
  5. Changed process: TRestSignalZeroSuppresionProcess, TRestHitsToSignalProcess, TRestSignalToHitsProcess. They are in accordance with sampling unit.
  6. Defined ci testing with restG4 generation, events processing, etc.
  7. More TRestRawToSignalProcess now supports progressbar.
  8. Reduced space consumption for process saving in TRestAnalysisTree, by clearing the config buffer
  9. updateREST.py: fix a problem in tag sync