Note: given the many software changes and to proceed in a controlled manner, this is only a partial release. It covers only modules needed for NEXT-DEMO data pre-processing and some trakc reconstruction. Modules yielding the full nextoffline functionality will be added in the subsequent (nitrogen, etc.) releases.New packages (SVN tag):
CreatePTracks (v1r0p0): This module creates PTracks out of S1 and S2 PMaps. One PTrack per input S2 PMap is created, provided that at least one input S1 PMap is present in the event. If more than one S1 PMap is present, the first instance is always considered. For each PTrack, a simple XY reconstruction using the barycenter method is performed
GammaCreatePTracks (v1r0p0): This module creates PTracks out of S1 and S2 PMaps. This (more specific) module should be used instead of CreatePTracks? for PTrack reconstruction for the Na22 gamma analysis in NEXT-DEMO
GammaS1S2Selector (v1r0p0): This module performs S1 and S2 PMap selection for the Na22 gamma analysis
Na22XNaI (v1r0p0): This is an analysis module (-> only produces histos) for the Na22 gamma analysis, for data taken with the NaI? calorimeter present
OffsetControl (v1r0p0): This module generates pedestal information for all SiPM? channels out of the raw data, in a format suitable to be entered into the relevant Database xml table
SelectPeakMaps (v1r0p0): This library contains a variety of modules for generic S1 and S2 PMap selection, based on PMap as well as on underlying Peak properties. For S1 and S2 PMap selection specific to the Na22 gamma analysis in NEXT-DEMO, the GammaS1S2Selector? should be used instead.
XYReco (v1r0p0): This library defines the classes performing x/y reconstuction based on tracking plane information. Two reconstruction methods currently exist: barycenter and chi2 method.
Modified packages (SVN tag):
ClearArrays (v1r0p1): add configuration to clear SiPM? DAQDigits
EnergyROIFilter?: can cut on energy from Peak objects, in addition to ChamberHit?, Track or Digit objects
RadiusFilter?: now uses PTrack rather than ChamberHit?
RawBase (V1r4p0): DATE's event.h updated to version 3.12 in the offline. This is the same version used by the NEXT-DEMO DAQ (as it should!)
RawDataReader (v1r4p0):
NEXT1ELEventHandle: fixed to read PMTs and SiPMs? at the same time
NEXT1ELeventHandle: changed vectors to maps with elecid as key. to avoid having to assume that consecutive elecids are present in the data, and that they start from 0 for pmts, and from 1000 for sipms
NEXT1ELEventHandle: decode the error flag for SiPM? FE boards
NEXT1ELReadModule: fix in read helper class
RecoBaseTemp (v1r1p0):
DAQDigit: Reordering data members (it matters for ROOT persistency). Removing unnecessary dependencies. Adding svn keyword. Add FEB failure bit for SiPMs?. Add methods returning FEC ID and FEB ID given ElecID?
Digit: Digit destructor made virtual since the class is used as a base class for Peak. Minor changes.
PMap: bug fix: Tmin and Tmax were not being set after adding the Peak, now they are. Slice typedef added. Added methods GetAnodeIntegral?() and GetCathodeIntegral?(). Removed a constructor that was not being used and was somewhat insecure. Added a setter for the width of time slices. Also, the width is not taking anymore directly from the Peak.
PTrack: remove dependency on PMT class. DriftTime?() method added. Updated to use XYReco. Update in PTrack to use PMap::GetAnodeIntegral(). Added setter and getter for the event time in PTrack
Peak: Subversion keyword 'Id' set in Peak. Peak data member fS2Like was not being initialized in constructor.
SRT_NEXT (v1r3p0):
scripts/importpkg: when checking for package already existing in repository, check for exact name match
SoftRelTools?/platforms: add Linux kernel 3 family (3.0 and 3.2)
SumDigits (v1r2p0):
pedestal RMS now in units PEs/PMT rather than PEs, as it should
Note: given the many software changes and to proceed in a controlled manner, this is only a partial release. It covers only modules needed for NEXT-DEMO data pre-processing. Modules yielding the full nextoffline functionality will be added in the subsequent (carbon, nitrogen) releases.New packages (SVN tag):
ClearArrays (v1r0p0): The ClearArrays? module clears the contents of a folder within a FMWK event branch. All subfolders underneath will be cleared as well. The folder "." indicates the top-level folder of the branch (entire branch cleared).
CreateDigits (v1r0p0): This module reads the raw waveforms (recobase::DAQDigit) expressed in ADC counts and transforms them into pedestal-subtracted, gain-corrected recobase::Digit expressed in photoelectrons. Note: supersedes the PedestalSubtraction? module.
CreatePeakMaps (v1r0p0): The CreatePeakMaps? module reads cathode sum recobase::Peak objects and individual channel recobase::Digit objects to create recobase::PMap objects.
CreatePeaks (v1r0p0): The CreatePeaks? module reads cathode sum recobase::Digit objects to create recobase::Peak objects. Note: supersedes the PeakFinder? module.
RecoBaseTemp (v1r0p0): temporary library meant for testing the new, more light-weight, RecoBase? library. Modules in this release depend on RecoBaseTemp? rather than RecoBase?.
SensorLoader (v1r0p0): The SensorLoader? module loads Sensor information, storing it in the FMWK event. The information loaded includes mapping between channel number and sensor geometrical position, which channels are alive for a given run, channel pedestal information, channel gain information.
Utilities (v1r0p0): library containing global functions and classes providing useful utilities. Utilities include template and non-template operations on strings, vectors and maps; operations on ROOT histograms; a Interval class. Note that this library does not depend on RecoBase?, and can be considered experiment-independent.
Modified packages (SVN tag):
Database (v1r2p0):
Add xml subdirectory containing tabular information in xml files. This information does not change event-by-event. Its validity may be indefinite or extend only for a given range of runs. The files in this xml subdirectory provide a "local" implementation of the NEXT offline database.
Database now loads only DatabaseBase? and DatabaseBaseXML? base libraries, and not others such as EventDisplayBase?. this is to allow Database-dependent jobs to work in batch mode
Several LBNL types from ROOT's typedefs to C++ native types
Update LBNL timestamp management
RawDataReader (v1r3p1):
Fix a memory leak in GenericDATEReadModule? and NEXT1ELReadModule
NEXTLBNLEventHandle?: timestamp from event header, all waveform samples added regardless of value (before: greater than 0), waveform saturation check added
NEXT1ELEventHandle: several updates to read SiPM? data; updates to read raw data from latest firmware version (Golf) while maintaining backward compatibility since Foxtrot version; fill DATEEventHeader?; store number of pre-trigger samples in Trigger class; offline fix for case when channel number of first ADC sample is wrong in raw data
SRT_NEXT (v1r2p0):
Rationalize includes in template package
Add -fPIC flag to CXXFLAGS and CPPFLAGS in arch_spec_fmwk.mk
Update list of libraries checked for declaring nextoffline installation as successful
SumDigits (v1r1p0):
Big code speed-up
Merging from CathodeSum? module: read from generic input folder, set ElecID? of summed Digit, create histogram of pedestal rms, use InVector? for improved readability, update management of verbosity for messages
R2011-06-17 (beryllium)
New packages (SVN tag):
ASCITables (v1r0p0): The ASCITables module computes the probability for a EL photon produced in a specific position within the EL grid to hit and be detected in a specific photodetector at the anode or cathode plane. Such light detection tables, produced for a given step size in the EL grid position and a given photodetector array configuration, are obtained by processing NEXUS MC events. In such MC events, a large number of isotropically-distributed photons are produced in a given EL grid point.
EnergyReconstruction (v1r0p1): The EnergyReconstruction? module reconstructs the deposited energy per event. A few corrections to the basic energy observable, namely the integrated charge of the cathode sum, can be applied in this package. Such corrections are related to photodetector gain intercaibration, attachment of ionization electrons along drift, radial effects due to finite reflectivity of light tube walls.
PMTLoader (v1r0p0): The PMTLoader package stores in the event stream information related to PMTs. Such information, such as PMT position, is read either from the MySQL? offline database, or from local tables in xml format.
PeakFinder (v1r0p0): The PeakFinder? algorithm is in charge of finding peaks in event waveforms. Such (pedestal-subtracted) waveforms can be either from individual photodetectors or from summing the response of several photodetectors. The algortihm stores the full information of (TDC, ADC) pairs associated to the peak, and classifies the peaks as S1, alpha or beta-like for further analysis.
PedestalSubtraction (v1r0p1): The PedestalSubtraction? algorithm computes the pedestal mean and RMS, separately for each event and for each channel. The pedestal mean is then subtracted from the waveform. Optionally, resampling (that is, combining several clock ticks into one) or zero-suppression is also performed on the new waveforms.
PlotDigitWaveforms (v1r0p1):PlotDigitWaveforms? is a simple package to plot waveforms. Such (pedestal-subtracted) waveforms can be either from individual photodetectors or from summing the response of several photodetectors.
PointReconstruction (v1r0p0): The PointReconstruction? algorithm performs a simple reconstruction of a 3D point within the gas, starting from the information on the anode and cathode plane. The anode plane information is used to reconstruct x and y. A simple wieghted average method is used for now. The z position is obtained from the measured drift time for that event, times the drift velocity.
SumDigits (v1r0p0): The SumDigits? algorithm simply sums the pedestal-subtracted waveforms from several channels into one. A typical example of use of this algorithm is to perform the cathode sum. Optionally, perform (further) zero-suppression on the summed waveform.
Modified packages (SVN tag):
AnaBase (v1r2p0):
Add MCTrack
Bhep2Other (v1r0p2):
SensorHit? now in RecoBase? library, and not in SensorResponse? library anymore
MCTrack class is now in AnaBase? library, not in CreateMCTracks?
Database (v1r1p0):
Add example (in test subdir) on how to retrieve table data
Bug fix: Table namespace in test examples from db to io
changed GNUmakefile so that linking with DatabaseBase? and DatabaseBaseXML? libraries is done automatically, and does not need to be specified in the job xml definition anymore
Digitizer (v1r0p4):
SensorHot? now in RecoBase? library, not in SensorResponse? library anymore
NEXT1ELEventHandle: matches raw data format from Echo firmware release, allow data decoding for SiPM? FECs as well, simplify data decoding from PMT FECs, make code less verbose, now fills DAQDigits rather than Digits, fix problem with more than one equipment per LDC, now correctly glue together separate frames from same FEC
NEXTLBNLEventHandle?: updated to reflect that PMTEvent really contains four waveforms from four different PMTs
Globals.h include file added. Defines some DAQ-related quantities (no. channels, samples per channel, etc.)
VectorOperations?.h added, defining standard operations to be performed on std::vector containers containing recobase objects. Operation currently defined: Sum, Copy, Clone, Delete
Reset (v1r0p2):
SensorHit? now in RecoBase? library, not in SensorResponse? library anymore
SRT_NEXT (v1r1p1):
arch_spec_log4cplus.mk added
arch_spec_bhep.mk adapted for latest version of bhep-config script
install_nextoffline: remove non-critical check about BHEP library directory in library path, as this is dependent on BHEP version (after latest changes on bhep)
SensorResponse (v1r0p1):
SensorHit? and ROOT CINT dictionary generation removed from this library. SensorHit? now in RecoBase? library
SmearHits (v1r0p2):
MCTrack class now included from AnaBase?, not CreateMCTracks?, library
TrackID (v1r1p0):
Updated default value for maximum size of track of isolated-blob type
Size of voxels read via xml file
Add counters for understanding track multiplicity per event
Tutorial (v1r1p1):
Four examples on analysis of NEXT-1-IFIC real data added
Reset (v1r0p1): The Reset package performs the following reconstruction tasks: 3D imaging of the energy deposition within the chamber, and reconstruction of the total energy deposited per event. Several reconstruction modes and input data types can be used, see Doxygen and xml documentation.
Modified packages (SVN tag):
BHEPReader (v1r1p1):
Bug fix: memory leak fixed (anabase::Run)
Bug fix: now make xml subdirectory, also
Bhep2Other (v1r0p1):
Improve Doxygen documentation
Digitizer (v1r0p2):
Bug fix: change xml version from "pmt" to "PMT"
MakeVoxels (v1r1p0):
Voxel size now controlled via parameter
PatternRec (v1r0p1):
Histograms added
Bug fix: reduce ultra-verbose output
RawBase (v1r1p0):
Add DATE's event.h
RawDataReader (v1r1p0):
Can now read also raw data produced by the DATE online system. Both "generic" DATE raw data files can be read (suffix ".genericdate") as well as NEXT1EL DATE raw data files (suffix ".next1el"). For the latter, only PMT raw data information is assumed and decoded (no trigger nor SiPM? info)
TrackID (v1r0p1):
Bug fix: reduce ultra-verbose output
R2010-09-24 (helium)
New packages (SVN tag):
Bhep2Other (v1r0p0): The Bhep2Other module is supposed to read outputs from the nexus MC simulation package. The simulation data is stored using the bhep package and its data containers. Bhep2Other reads the data from these containers an writes it to simple ASCII or binary files. These files can be used as current source input files for electronic simulators like spice, spectre or similar.
CalibrateHits (v1r0p0):CalibrateHits? is a FMWK module to perform a first, simple hit calibration. Depending on the module configuration version, either PMT or SiPMT? hits are calibrated. Raw Digit instances are read, pedestal is subtracted, zero suppression is performed, gain from the full electronics chain is applied, then charge is converted into electron units. Calibrated hts are stored as instances of the SensorHit? class.
Database (v1r0p0): Database is a FMWK module that allows to perform queries to the MySQL?-based NEXT offline database from within any other FMWK module. All you have to do is to add Database at the beginning of your job, or in any case before the module(s) where DB queries are performed. The MySQLConfigurationFile? parameter specifies the name for the MySQL? configuration file to be used.
Digitizer (v1r0p1): Digitizer is a FMWK module in charge of simulating the front-end electronics and digitization chain. It takes as input a collection of recobase::SensorHit instances, with calibrated hit info for all PMTs and SiPMs?, and produces a collection of recobase::Digit instances, that is hits having the same format as real hits from the DAQ. See xml file for details of what is being simulated.
ELParamSimulation (v1r0p0):ELParamSimulation? is a FMWK module to simulate production, propagation and detection of electroluminescent light in the chamber. This simulation is performed here, via look-up tables, to make it faster compared to a full simulation within NEXUS. The module reads ionization clusters reaching the EL plane, as stored in a bhep::event, as input. As output, a collection of LightHit? class instances is filled, one instance for each PMT or SiPM? present in the chamber.
MakeVoxels (v1r0p0): This module takes anabase::Event objects as an input and gives a collection of recobase::Voxel objects as an output. A voxelization of the detector volume is performed and voxels are created, each one characterized by a 3-dimensional position and a deposition energy.
PatternRec (v1r0p0): This module takes recobase::Track objects and return recobase::TrackWithAttributes. Attributes: maximum and next-to-maximum energy, number of blob candidates, maximum distance between blob candidates, l2, energy on the main track length of the track
RawBase (v1r0p0): Library with classes stored in raw data files. This library is used by the RawDataReader? package.
RawDataReader (v1r0p0): Event I/O handles to read from raw data streams. For now supports only input produced by the NEXT-LBNL prototype
SensorResponse (v1r0p0):SensorResponse? is a module to convert the signal of photons per PMT/ SiPM? into the response of the photo detector. Gain, gain dispersion and quantum efficiency are taken into account. Same quantum efficiency is assigned to all of the same kind of photodetector. Also the dark current is implemented here.
SmearVoxels (v1r0p0): This module takes a collection of recobase::Voxel objects and performs a smearing of the energy of them, according to a gaussian distribution. It returns again a collection of recobase::Voxel objects that are placed into the Cal()/ionization folder.
TrackID (v1r0p0): This modules takes as an input recobase::Voxel objects and gives as an output recobase::Track objects. For each event, it identifies how many different tracks there are and if they are wires or isolated blobs.
Tutorial (v1r0p1): package containing xml and data files to run the nextoffline tutorial
Make event statistics an integer rather than a double bhep property
Remove dependency on BHEPWriter
Add forgotten xml/GNUmakefile. Copy package xml file into top-level xml directory
BHEPWriter (v1r1p0):
Remove dependency on BHEPReader, remove other unnecessary includes
Change how to check whether ROOT file is open
Copy package xml file into top-level xml directory
CreateMCTracks (v1r1p0):
Single paramater (wire width) now deciding whether to merge particles into single tracks, and defining whether track is of type wire or isolated blob (depending on size)
Primary gamma particles are now excluded from particles used to create MC tracks
Copy package xml file into top-level xml directory
Copy package xml file into top-level xml directory
EventFilters (v1r1p0):
EnergyROIFilter? and TrackWireCounterFilter? can now select events based on Track information, in addition to MCTrack information
Copy package xml files into top-level xml directory
RecoBase (v1r1p0):
Digit now uses unsigned shorts rather than shorts
Added dictionary generation for pair
Voxel class added
Tracks can be built also as collection of Voxels, not only as collection of ChamberHits?
Add type data member to Track
SRT_NEXT (v1r0p2):
Simplify bhep and fmwk makefile segments, since not all UNIX shells recognize [[ syntax
Create custom srt_environment to get rid of "ambiguous redirect to empty string" when executing srt_environment
Copy package xml file into top-level xml directory, when creating new package with newpkg
SmearHits (v1r0p1):
Copy package xml file into top-level xml directory
R2010-03-17 (hydrogen)
New packages (SVN tag):
AnaBase (v1r0p0): library for analysis-level objects
BHEPreader (v1r0p0): module to read event data in BHEP format, either from the detector simulation or from a FMWK job
BHEPWriter (v1r0p0): module to write event data in BHEP format
CreateMCTracks (v1r0p1): module implementing a simple tracking algorithm, using MC truth information
DSTMaker (v1r0p0): module to create a bhep::event into the FMWK event summary branch. This module typically precedes BHEPWriter at the end of a reconstruction job
EventDump (v1r0p0): module dumping on screen FMWK event info
EventFilters (v1r0p0): package defining severeal modules to perform event selection
RecoBase (v1r0p0): library for reconstruction-level objects
SmearHits (v1r0p0): module to mimick a simplistic detector response, smearing MC true hits in position and energy to create "reco" hits
SoftRelTools (F02-00-56): administrative package providing a general scheme for code management. Not NEXT code, just copy of the package in the official FNAL CVS SoftRelTools? repository
SRT_NEXT (v1r0p1): administrative package to customize SRT-based code management for NEXT offline