Skip to content

Overview

BatCommon is the package that can be described as the foundation behind SuperCDMS processing. It supplies cdmsbats with all the functionalities required to process SuperCDMS data. For e.g., it contains functions that read raw data files, data structures that store event and series information (from detector settings to raw traces), functions that read external inputs (user settings, templates, cuts, etc) and most importantly it contains all the analysis classes which extract meaningful physical quantities (RQs) from our raw data. All functionalities are defined as classes in BatCommon and the magic of object oriented programming allows cdmsbats to create instances of these classes within itself to perform various processing tasks.

The core classes that calculate RQs can be found in the BatCommon/analysis folder. Each file in this folder represents an analysis class that is responsible for a set of RQs. For each class in this folder you will find a header (.h) file and a source code (.cxx). The header file is where various functions and variables are declared while the source code is where the calculations are done. The particular RQs calculated in each file are listed in this page. Alternately, every source code (.cxx) file has a function called ConstructRQList() which lists the RQs that are calculated in that file if you wish to explore the RQs using the code itself.

The classes that read, parse and store raw data are found in the BatCommon/datareader folder. The raw data reading is accomplished with help from IOLibrary and hence IOLibrary is a requirement for installing BatCommon. There is also an additional class in BatCommon/management which aids in reading detector settings identifying the most accurate and reasonable source of the same information.

BatCommon/extdata contains classes that read external inputs to cdmsbats. For e.g, this folder contains the class UserDataManager that reads user settings (a.k.a the processing and analysis config files), TemplateDataManager which reads templates for cdmsbats processing, and FilterDataManager that reads the filer file output from BatNoise to name a few.

In addition to the above mentioned folders, BatCommon also has several utility classes that help with tasks like pulse filtering, FFTs, matrix operations etc.

Note that although BatCommon is mainly used with cdmsbats processing it also plays an important role in data acquisition. For e.g., it is used in MidasTools which helps with detector tuning and testing.