sipm-characterisation 0.1.0
SiPM characterisation for ePIC — IV/DCR/gain, laser, readout, irradiation
Loading...
Searching...
No Matches
analysis_utils Namespace Reference

Classes

struct  data_t
 Data Structures — ALCOR output structure. More...
 

Typedefs

typedef std::vector< data_tchannel_data_t
 Analysis types ----------------------------------------------------------------------------------------------------—.
 
typedef std::map< int, channel_data_tchip_data_t
 
typedef std::map< int, chip_data_tframe_data_t
 
typedef std::map< int, frame_data_tspill_data_t
 
typedef std::map< int, spill_data_tframed_data_t
 
typedef std::tuple< TString, intglobal_identifier_t
 

Enumerations

enum  type_t { kAlcorHit = 1 , kTriggerTag = 9 , kStartSpill = 7 , kEndSpill = 15 }
 — Datatype Structure ----------------------------------------------------------------------------------------------------— More...
 

Functions

std::pair< int, intget_index (int pixel, int column)
 Functions ------------------------------------------------------------------------------------------------------— — Declaration — — Getter & Setters.
 
int get_eochannel (int pixel, int column)
 
int get_global_index (int fifo, int pixel, int column, int tdc, bool kUseFIFO=true)
 
std::tuple< Int_t, Int_t, Int_t, Int_tget_full_info (Int_t iIndex)
 
void set_verbose_level (int kVerboseLevel)
 
bool sort_data (data_t i, data_t j)
 — — Data handling
 
void load_tree (TTree *kInputTree, data_t &kReadData)
 
int get_dochannel (int pixel, int column)
 — Implementation — — Getter & Setters
 
bool populate_framed_data (framed_data_t &framed_data, std::string dirname, std::vector< std::string > filenames=all_filenames, int frame_size=1024)
 

Variables

const int frame_size = 1024
 Variables ------------------------------------------------------------------------------------------------------— — General.
 
const Int_t kGlobalIndexRange = 768
 
const Int_t kGlobalIndexTiming_Start = 512
 
const Int_t kGlobalIndexTiming_End = kGlobalIndexRange
 
std::map< std::string, int_next_spill
 
const Int_t kFineRange = 512
 — Finetune analysis
 
const TString intput_rawdata_directory = TString(get_environment_variable("ALCOR_DATA_DIR"))+TString("/")
 
const TString intput_rawdata_decoded_file_dir = intput_rawdata_directory + TString("./%s/decoded/")
 
const TString intput_rawdata_decoded_file = intput_rawdata_decoded_file_dir + TString("./alcdaq.fifo_%i.root")
 
const TString output_preprocess_directory = TString(get_environment_variable("ALCOR_WORK_DIR"))+TString("/")+TString("PreProcessedData/")
 
const double coarse_to_s = 3.1250000e-09
 — Convertion — — Coarse
 
const double coarse_to_us = 3.1250000e-03
 
const double coarse_to_ns = 3.1250000
 
const int rollover_to_coarse = 32768.
 — — Rollover
 
const double rollover_to_s = 0.0001024
 
const double rollover_to_us = 102.4
 
const double rollover_to_ns = 102400.
 
int eo2do [32] = {22, 20, 18, 16, 24, 26, 28, 30, 25, 27, 29, 31, 23, 21, 19, 17, 9, 11, 13, 15, 7, 5, 3, 1, 6, 4, 2, 0, 8, 10, 12, 14}
 — — Electronics-Detector conversions
 
std::vector< std::string > data_filenames
 — Filenames
 
std::vector< std::string > timing_filenames
 
std::vector< std::string > extra_filenames
 
std::vector< std::string > all_filenames
 
bool kVerboseInfo = false
 — Verbose levels
 
bool kVerboseWarning = true
 
bool kVerboseError = true
 
bool kVerboseFatal = true
 

Typedef Documentation

◆ channel_data_t

Analysis types ----------------------------------------------------------------------------------------------------—.

◆ chip_data_t

◆ frame_data_t

◆ framed_data_t

◆ global_identifier_t

◆ spill_data_t

Enumeration Type Documentation

◆ type_t

— Datatype Structure ----------------------------------------------------------------------------------------------------—

Enumerator
kAlcorHit 
kTriggerTag 
kStartSpill 
kEndSpill 

Function Documentation

◆ get_dochannel()

int analysis_utils::get_dochannel ( int  pixel,
int  column 
)

— Implementation — — Getter & Setters

◆ get_eochannel()

int analysis_utils::get_eochannel ( int  pixel,
int  column 
)

◆ get_full_info()

std::tuple< Int_t, Int_t, Int_t, Int_t > analysis_utils::get_full_info ( Int_t  iIndex)

Result { Chip, Pixel, Column, TDC }

Result { Chip, Pixel, Column, TDC }

◆ get_global_index()

int analysis_utils::get_global_index ( int  fifo,
int  pixel,
int  column,
int  tdc,
bool  kUseFIFO = true 
)

4 TDCs for each pixel 4 pixel for each column 8 columns for each chip

4 TDCs for each pixel 4 pixel for each column 8 columns for each chip

◆ get_index()

std::pair< int, int > analysis_utils::get_index ( int  pixel,
int  column 
)

Functions ------------------------------------------------------------------------------------------------------— — Declaration — — Getter & Setters.

◆ load_tree()

void analysis_utils::load_tree ( TTree kInputTree,
data_t kReadData 
)

◆ populate_framed_data()

bool analysis_utils::populate_framed_data ( framed_data_t framed_data,
std::string  dirname,
std::vector< std::string >  filenames = all_filenames,
int  frame_size = 1024 
)

start clean

loop over input file list

reset spill pointer

open file

retrieve tree and link it

loop over events in tree

start of spill

ALCOR hit

end of spill

sort channel data

end of loop over events

end of loop over input files

Reset spill counter if end of data

◆ set_verbose_level()

void analysis_utils::set_verbose_level ( int  kVerboseLevel = 4)

◆ sort_data()

bool analysis_utils::sort_data ( data_t  i,
data_t  j 
)

— — Data handling

Variable Documentation

◆ _next_spill

std::map<std::string, int> analysis_utils::_next_spill

◆ all_filenames

std::vector<std::string> analysis_utils::all_filenames
Initial value:
= {"alcdaq.fifo_0.root", "alcdaq.fifo_1.root", "alcdaq.fifo_2.root", "alcdaq.fifo_3.root",
"alcdaq.fifo_4.root", "alcdaq.fifo_5.root", "alcdaq.fifo_6.root", "alcdaq.fifo_7.root",
"alcdaq.fifo_8.root", "alcdaq.fifo_9.root", "alcdaq.fifo_10.root", "alcdaq.fifo_11.root",
"alcdaq.fifo_12.root", "alcdaq.fifo_13.root", "alcdaq.fifo_14.root", "alcdaq.fifo_15.root",
"alcdaq.fifo_16.root", "alcdaq.fifo_17.root", "alcdaq.fifo_18.root", "alcdaq.fifo_19.root",
"alcdaq.fifo_20.root", "alcdaq.fifo_21.root", "alcdaq.fifo_22.root", "alcdaq.fifo_23.root",
"alcdaq.fifo_24.root"}

◆ coarse_to_ns

const double analysis_utils::coarse_to_ns = 3.1250000

◆ coarse_to_s

const double analysis_utils::coarse_to_s = 3.1250000e-09

— Convertion — — Coarse

◆ coarse_to_us

const double analysis_utils::coarse_to_us = 3.1250000e-03

◆ data_filenames

std::vector<std::string> analysis_utils::data_filenames
Initial value:
= {
"alcdaq.fifo_0.root", "alcdaq.fifo_1.root", "alcdaq.fifo_2.root", "alcdaq.fifo_3.root",
"alcdaq.fifo_4.root", "alcdaq.fifo_5.root", "alcdaq.fifo_6.root", "alcdaq.fifo_7.root",
"alcdaq.fifo_8.root", "alcdaq.fifo_9.root", "alcdaq.fifo_10.root", "alcdaq.fifo_11.root",
"alcdaq.fifo_12.root", "alcdaq.fifo_13.root", "alcdaq.fifo_14.root", "alcdaq.fifo_15.root"
}

— Filenames

◆ eo2do

int analysis_utils::eo2do[32] = {22, 20, 18, 16, 24, 26, 28, 30, 25, 27, 29, 31, 23, 21, 19, 17, 9, 11, 13, 15, 7, 5, 3, 1, 6, 4, 2, 0, 8, 10, 12, 14}

— — Electronics-Detector conversions

◆ extra_filenames

std::vector<std::string> analysis_utils::extra_filenames
Initial value:
= {
"alcdaq.fifo_24.root"
}

◆ frame_size

const int analysis_utils::frame_size = 1024

Variables ------------------------------------------------------------------------------------------------------— — General.

◆ intput_rawdata_decoded_file

const TString analysis_utils::intput_rawdata_decoded_file = intput_rawdata_decoded_file_dir + TString("./alcdaq.fifo_%i.root")

◆ intput_rawdata_decoded_file_dir

const TString analysis_utils::intput_rawdata_decoded_file_dir = intput_rawdata_directory + TString("./%s/decoded/")

◆ intput_rawdata_directory

const TString analysis_utils::intput_rawdata_directory = TString(get_environment_variable("ALCOR_DATA_DIR"))+TString("/")

◆ kFineRange

const Int_t analysis_utils::kFineRange = 512

— Finetune analysis

◆ kGlobalIndexRange

const Int_t analysis_utils::kGlobalIndexRange = 768

◆ kGlobalIndexTiming_End

const Int_t analysis_utils::kGlobalIndexTiming_End = kGlobalIndexRange

◆ kGlobalIndexTiming_Start

const Int_t analysis_utils::kGlobalIndexTiming_Start = 512

◆ kVerboseError

bool analysis_utils::kVerboseError = true

◆ kVerboseFatal

bool analysis_utils::kVerboseFatal = true

◆ kVerboseInfo

bool analysis_utils::kVerboseInfo = false

— Verbose levels

◆ kVerboseWarning

bool analysis_utils::kVerboseWarning = true

◆ output_preprocess_directory

const TString analysis_utils::output_preprocess_directory = TString(get_environment_variable("ALCOR_WORK_DIR"))+TString("/")+TString("PreProcessedData/")

◆ rollover_to_coarse

const int analysis_utils::rollover_to_coarse = 32768.

— — Rollover

◆ rollover_to_ns

const double analysis_utils::rollover_to_ns = 102400.

◆ rollover_to_s

const double analysis_utils::rollover_to_s = 0.0001024

◆ rollover_to_us

const double analysis_utils::rollover_to_us = 102.4

◆ timing_filenames

std::vector<std::string> analysis_utils::timing_filenames
Initial value:
= {
"alcdaq.fifo_16.root", "alcdaq.fifo_17.root", "alcdaq.fifo_18.root", "alcdaq.fifo_19.root",
"alcdaq.fifo_20.root", "alcdaq.fifo_21.root", "alcdaq.fifo_22.root", "alcdaq.fifo_23.root"
}