PyDianaIO

pydiana.tools.pydianaIO.alias_compare(variable, list1, dict_alias={'ADC2mV': 'RunDataLoader@ChannelRunData.fADC2mV', 'Baseline': 'BaselineModule@BaselineData.fBaseline', 'BaselineFlatRMS': 'BaselineModule@BaselineData.fBaselineFlatRMS', 'BaselineRMS': 'BaselineModule@BaselineData.fBaselineRMS', 'BaselineSlope': 'BaselineModule@BaselineData.fBaselineSlope', 'BiOT_Fast': 'COFBiComponent@AmplitudeFast.fValue', 'BiOT_Slow': 'COFBiComponent@AmplitudeSlow.fValue', 'Channel': 'DAQ@PulseInfo.fChannelId', 'ClockNumber': 'RunDataLoader@ThermalDetector.fTdClock.fValue', 'CoincidenceData_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.', 'CoincidenceData_OFTime': 'Coincidence_OFTime@CoincidenceData.', 'CoincidenceData_RawTime': 'Coincidence_RawTime@CoincidenceData.', 'CoincidenceData_Side': 'SideCoincidence@CoincidenceData.', 'CoincidenceData_Sync': 'Coincidence_Sync@CoincidenceData.', 'CoincidenceData_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.', 'CryptedEnergy': 'EnergyBlinding@CryptedEnergy.', 'Daughter': 'FilterResult@Passed.fValue', 'DecayTime': 'PulseBasicParameters@Parameters.fDecayTime', 'Energy': 'ApplyCalibration@Energy.fValue', 'EnergyDecorrOF': 'ApplyCalibration_DecorrOF@Energy.fValue', 'EnergyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Energy.fValue', 'EnergyNewOF': 'ApplyCalibration_NewOF@Energy.fValue', 'EnergyNewOFWoH': 'ApplyCalibration_NewOF_WoH@Energy.fValue', 'EnergyUncertainty': 'ApplyCalibration@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOF': 'ApplyCalibration_DecorrOF@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Uncertainty.fValue', 'EnergyUncertaintyNewOF': 'ApplyCalibration_NewOF@EnergyUncertainty.fValue', 'EnergyUncertaintyNewOFWoH': 'ApplyCalibration_NewOF_WoH@EnergyUncertainty.fValue', 'EnergyUncertaintyWoH': 'ApplyCalibration_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_OF': 'ApplyCalibration_OF@EnergyUncertainty.fValue', 'EnergyUncertainty_OF_WoH': 'ApplyCalibration_OF_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF': 'ApplyCalibration_wOF@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF_WoH': 'ApplyCalibration_wOF_WoH@EnergyUncertainty.fValue', 'EnergyWoH': 'ApplyCalibration_WoH@Energy.fValue', 'Energy_OF': 'ApplyCalibration_OF@Energy.fValue', 'Energy_OF_WoH': 'ApplyCalibration_OF_WoH@Energy.fValue', 'Energy_wOF': 'ApplyCalibration_wOF@Energy.fValue', 'Energy_wOF_WoH': 'ApplyCalibration_wOF_WoH@Energy.fValue', 'EventNumber': 'DAQ@Header.fEventNumber', 'Floor': 'RunDataLoader@ThermalDetector.fTdFloor.fValue', 'FullWindowBaseline': 'BaselineModule_FullWindow@BaselineData.fBaseline', 'FullWindowBaselineFlatRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineFlatRMS', 'FullWindowBaselineRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineRMS', 'FullWindowBaselineSlope': 'BaselineModule_FullWindow@BaselineData.fBaselineSlope', 'GoodForStandardAnalysis': 'BadForAnalysis_GoodForStandardAnalysis@Passed.fValue', 'GoodForWoHAnalysis': 'BadForAnalysis_GoodForWoHAnalysis@Passed.fValue', 'IsBolometer': 'RunDataLoader@ChannelRunData.fIsBolometer', 'IsNoise': 'DAQ@PulseInfo.fMasterSample.GetIsNoise()', 'IsPulser': 'DAQ@PulseInfo.fMasterSample.GetIsPulser()', 'IsReversed': 'DAQ@PulseInfo.fMasterSample.GetIsReversed()', 'IsSaturatedHigh': 'PulseBasicParameters@Parameters.fIsSaturatedHigh', 'IsSaturatedLow': 'PulseBasicParameters@Parameters.fIsSaturatedLow', 'IsSide': 'DAQ@PulseInfo.fMasterSample.GetIsSide()', 'IsSignal': 'DAQ@PulseInfo.fMasterSample.GetIsSignal()', 'IsStab': 'FindMultipleTrendsByBruteForce@Selected.fValue', 'IsThermometer': 'RunDataLoader@ChannelRunData.fIsThermometer', 'IsVeto': 'DAQ@PulseInfo.fMasterSample.GetIsVeto()', 'MaxBaseline': 'PulseBasicParameters@MaxBaseline.fValue', 'MaxBaselineInWindow': 'PulseBasicParameters@MaxBaselineInWindow.fValue', 'MaxMinInWindow': 'PulseBasicParameters@MaxMinInWindow.fValue', 'MaxPosition': 'PulseBasicParameters@Parameters.fMaxPosition', 'Mother': 'FilterInInterval@Passed.fValue', 'Multiplicity_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime': 'Coincidence_OFTime@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime': 'Coincidence_RawTime@CoincidenceData.fMultiplicity', 'Multiplicity_RawTimeNoChiCut': 'Coincidence_RawTimeNoChiCut@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_NoChi_50perc': 'Coincidence_RawTime_NoChi_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_newCoinc_50perc': 'Coincidence_RawTime_newCoinc_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_Side': 'SideCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_Sync': 'Coincidence_Sync@CoincidenceData.fMultiplicity', 'Multiplicity_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fMultiplicity', 'NormBaselineSlope': 'ApplyShapeNormalization@NormBaselineSlope.fValue', 'NormDecayTime': 'ApplyShapeNormalization@NormDecayTime.fValue', 'NormDelay': 'ApplyShapeNormalization@NormDelay.fValue', 'NormRiseTime': 'ApplyShapeNormalization@NormRiseTime.fValue', 'NormTVL': 'ApplyShapeNormalization@NormTVL.fValue', 'NormTVR': 'ApplyShapeNormalization@NormTVR.fValue', 'NsTime': 'DAQ@Header.fTime.fFromStartRunNs', 'NumberOfPulses': 'BCountPulses@CountPulsesData.fNumberOfPulses', 'OF_Amplitude': 'FilteredPulseAmplitude_OF@Amplitude.fValue', 'OF_DecayTime': 'FilteredPulseAmplitude_OF@OFData.fDecayTime', 'OF_Delay': 'FilteredPulseAmplitude_OF@OFData.fDelay', 'OF_FDAmplitude': 'FilteredPulseAmplitude_OF@OFData.fFDAmplitude', 'OF_RiseTime': 'FilteredPulseAmplitude_OF@OFData.fRiseTime', 'OF_SecondAmplitude': 'FilteredPulseAmplitude_OF@OFData.fSecondAmplitude', 'OF_SecondDelay': 'FilteredPulseAmplitude_OF@OFData.fSecondDelay', 'OF_TVL': 'FilteredPulseAmplitude_OF@OFData.fTVL', 'OF_TVR': 'FilteredPulseAmplitude_OF@OFData.fTVR', 'OT_Amplitude': 'OTAnalysis@Amplitude.fValue', 'OT_ChiSquare': 'OTAnalysis@FitChiSquare.fValue', 'OT_Time': 'OTAnalysis@FitTime.fValue', 'OrderInMultiple_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime': 'Coincidence_OFTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_RawTime': 'Coincidence_RawTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Side': 'SideCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Sync': 'Coincidence_Sync@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fOrderInMultiple', 'PSAMDistance': 'MahalanobisDistance_PSA@Distance.fValue', 'PSAMDistance_5Component': 'MahalanobisDistance_PSA_5Component@Distance.fValue', 'Position': 'RunDataLoader@ThermalDetector.fTdPos.fValue', 'Position_X': 'RunDataLoader@ThermalDetector.fTdX.fValue', 'Position_Y': 'RunDataLoader@ThermalDetector.fTdY.fValue', 'Position_Z': 'RunDataLoader@ThermalDetector.fTdZ.fValue', 'Q0NDBDAggressiveEnergy': 'Q0SelectEnergy_Q0NDBDAggressive@Energy.fValue', 'Q0NDBDAggressiveVariable': 'Q0SelectEnergy_Q0NDBDAggressive@SelectedEnergyBranch.fValue', 'Q0NDBDModConservativeEnergy': 'Q0SelectEnergy_Q0NDBDModConservative@Energy.fValue', 'Q0NDBDModConservativeVariable': 'Q0SelectEnergy_Q0NDBDModConservative@SelectedEnergyBranch.fValue', 'Q0NDBDOfficialEnergy': 'Q0SelectEnergy_Q0NDBD@Energy.fValue', 'Q0NDBDOfficialVariable': 'Q0SelectEnergy_Q0NDBD@SelectedEnergyBranch.fValue', 'QNDBDOfficialEnergy': 'EnergySelector_QNDBD@Energy.fValue', 'QNDBDOfficialEnergyVariable': 'EnergySelector_QNDBD@SelectedEnergyBranch.fValue', 'RejectBadIntervals': 'RejectBadIntervals@Passed.fValue', 'RejectBadIntervals_AntiCoincidence': 'RejectBadIntervals_AntiCoincidence@Passed.fValue', 'RejectBadIntervals_Final': 'RejectBadIntervals_WithFirstIteration@Passed.fValue', 'RiseTime': 'PulseBasicParameters@Parameters.fRiseTime', 'Run': 'DAQ@Header.fRun', 'SamplingFrequency': 'RunDataLoader@ChannelRunData.fSamplingFrequency', 'SingleTrigger': 'SampleInfoFilter@Passed.fValue', 'StabAmplitude': 'CorrectAmplitudes@Amplitude.fValue', 'StartRunUnixTime': 'DAQ@Header.fTime.fStartRunUnix', 'StartSourceRunUnixTime': 'SourceRunTime@StartSourceRunUnix.fStartRunUnix', 'StartSourceRunUnixTime_newCoinc_50perc': 'SourceRunTime_newCoinc_50perc@StartSourceRunUnix.fStartRunUnix', 'ThermistorRanking': 'ThermistorRanking@Rank.fValue', 'Time': 'DAQ@Header.fTime.fFromStartRunNs/1e09', 'TimeSinceEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_SameChannel', 'TimeUntilEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_SameChannel', 'TotalEnergy_Alpha': 'AlphaDelayedCoincidence@TotalEnergy.fValue', 'TotalEnergy_OFTime': 'Coincidence_OFTime@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@TotalEnergy.fValue', 'TotalEnergy_RawTime': 'Coincidence_RawTime@TotalEnergy.fValue', 'TotalEnergy_Side': 'SideCoincidence@TotalEnergy.fValue', 'TotalEnergy_Sync': 'Coincidence_Sync@TotalEnergy.fValue', 'TotalEnergy_SyncPSA': 'Coincidence_SyncPSA@TotalEnergy.fValue', 'Tower': 'RunDataLoader@ThermalDetector.fTdTower.fValue'})[source]

Function for converting a variable alias to a complete variable path

Parameters:
  • variable (string with the variable to convert) --

  • list1 (array-like of lists with the datafile aliases) --

  • dict_alias (dictionary of the aliases (keys = aliases, values = variable path)) --

Return type:

Complete path to variable or '' if not found.

pydiana.tools.pydianaIO.alias_reader(alias_files=None)[source]

Function for importing the aliases. If no file is specified in automatically reads the cfg/aliases.txt files present in DIANA_INSTALL and DIANA_EXT_INSTALL.

Parameters:

alias_files (array-like with all the paths to the alias files to be used. If only one file to be used it can be inserted as a simple string.) --

Return type:

dictionary with keys as the aliases and the elements as the path to the variable

pydiana.tools.pydianaIO.apply_cuts(cuts, datafile)[source]

Function for getting cuts on datafile. Readapted from ROOT's TTreePlayer->CopyTree.

Parameters:
  • cuts (string with cuts) --

  • datafile (QChain instance on which to evaluate the cuts) --

Return type:

Array with indexes of the events that pass the cuts

pydiana.tools.pydianaIO.check_legacy(variable, legacy=False)[source]

Function for checking if the variable needs to be read with the legacy method or not

Parameters:
  • variable (string with the name of the variable) --

  • legacy (bool that overides check) --

Return type:

True if it's a legacy variable, False if not

pydiana.tools.pydianaIO.extract_list(a)[source]
pydiana.tools.pydianaIO.find_all_files(datafile)[source]

Function for finding all files to include in the analysis. :type datafile: str :param datafile: :type datafile: String containing the path to the file

Return type:

list with all the files to use

pydiana.tools.pydianaIO.get_all_aliases(datafile)[source]

Function for getting all the aliases in the .root files

Parameters:

datafile (QChain instance of the opened file) --

Return type:

List with all the aliases

pydiana.tools.pydianaIO.get_all_branches(datafile)[source]

Function for getting all the branches in the .root files

Parameters:

datafile (QChain instance of the opened file) --

Return type:

List with all the branches

pydiana.tools.pydianaIO.get_all_content(datafile, verbose=False)[source]

Function for getting all the info in the .root files

Parameters:

datafile (QChain instance of the opened file) --

Return type:

List with all the info

pydiana.tools.pydianaIO.get_all_leaves(datafile)[source]

Function for getting all the leaves in the .root files

Parameters:

datafile (QChain instance of the opened file) --

Return type:

List with all the leaves

pydiana.tools.pydianaIO.get_average_noise(an_input, dataset, chan, owner='NoiseAvgPowerSpectrum', extralabel=None, verbose=False)[source]

Function for importing the average noise power spectrum.

Parameters:
  • an_input (String with the path to the average noise power spectrum) --

  • chan (Integer indicating the channel number) --

  • extralabel (string indicating the extralabel used for the average noise power spectrum) --

Return type:

array with the values of the noise power spectrum in ADC units

pydiana.tools.pydianaIO.get_average_pulse(ap_input, dataset, chan, owner='AveragePulses', extralabel=None, verbose=False)[source]

Function for importing the average pulse.

Parameters:
  • ap_input (String with the path to the average pulse) --

  • chan (Integer indicating the channel number) --

  • extralabel (string indicating the extralabel used for the average pulse) --

Return type:

vector with the average pulse in ADC units

pydiana.tools.pydianaIO.get_channel_run_data(filename, ch, run, rundataowner='DAQ')[source]

Method for getting the channel rundata

Parameters:
  • filename (String with path to file to be read) --

  • ch (Int with channel number) --

  • run (Int with run number.) --

Return type:

Channel run data

pydiana.tools.pydianaIO.get_custom_class_from_event(datafile, owner, label, cut=None)[source]

Utility Function for getting classes from datafile with selection.

Parameters:
  • datafile (QChain instance with the datafile) --

  • owner (string with the owner of the pulse) --

  • label (string with the label of the pulse) --

  • cut (either array with indexes of pulses to keep or string with cut) --

Return type:

2D array with the results. Returns none if no pulses are found

pydiana.tools.pydianaIO.get_durations(listfile, verbose=False, printres=False)[source]

Method for getting the duration of a datafile (taken from rundata). The result is returned in hours.

pydiana.tools.pydianaIO.get_noise_covariance(covinput, dataset, owner='NoiseCrossPowerSpectrum', extralabel=None, verbose=False)[source]

Function for importing the noise covariance.

Parameters:
  • covinput (String with the path to the file containing the noise covariance matrix (usually same as average noise power spectrum)) --

  • dataset (int with the dataset) --

  • owner (owner of the noise covariance matrix) --

  • extralabel (string indicating the extralabel used for the covariance matrix) --

Return type:

Instance of QChannelCovariance

pydiana.tools.pydianaIO.get_pulse_info(datafile, cut=None, owner='DAQ')[source]

Utility Function for getting classes from datafile with selection.

Parameters:
  • datafile (QChain instance with the datafile) --

  • owner (string with the owner of the pulse) --

  • cut (either array with indexes of pulses to keep or string with cut) --

Return type:

2D array with the pulse infos. Returns none if no pulses are found

pydiana.tools.pydianaIO.get_pulses(datafile, cut=None, owner='DAQ', label='Pulse.')[source]

Function for getting pulses from Diana .root file

Parameters:
  • datafile (QChain instance with the datafile) --

  • cuts (string implementing the cuts) --

  • owner (string with the owner of the pulse) --

  • label (string with the label of the pulse) --

Return type:

2D array with the pulses. Returns none if no pulses are found

pydiana.tools.pydianaIO.get_pulses_with_index(datafile, indexes=None, owner='DAQ', label='Pulse.')[source]

Function for getting pulses with cuts and indexes.

Parameters:
  • datafile (QChain instance with the datafile) --

  • indexes (list of pulses to get withing the ones selected by the cuts) --

  • owner (string with the owner of the pulse) --

  • label (string with the label of the pulse) --

Return type:

2D array with the pulses. Returns none if no pulses are found

pydiana.tools.pydianaIO.get_random_pulses(datafile, num, cuts='', owner='DAQ', label='Pulse.')[source]

Function for getting random pulses from dataset.

Parameters:
  • datafile (QChain instance with the datafile) --

  • cuts (string implementing the cuts) --

  • num (number of random pulses to be fetched within the ones that pass the cuts) --

  • owner (string with the owner of the pulse) --

  • label (string with the label of the pulse) --

Return type:

2D array with the pulses. Returns none if no pulses are found

pydiana.tools.pydianaIO.get_run_data(filename, run, rundataowner='DAQ')[source]

Method for getting rundata.

Parameters:
  • filename (String with path to file to be read) --

  • run (Int with run number.) --

  • rundataowner (string with run data owner) --

Return type:

Run data

pydiana.tools.pydianaIO.get_subtree(datafiles, cuts)[source]

Method to get elements of tree that respect cuts

Parameters:
  • datafile (QChain instance with cuts to be applied to) --

  • cuts (string with cuts to be imposed) --

Return type:

QChain instance with elements that passed cut selection

pydiana.tools.pydianaIO.old_read_var(variable, datafile, cuts='', dtypes=(<class 'float'>, ))[source]

Function for reading a variable from the root file

Parameters:
  • variable (string containing the name of the variable) --

  • datafile (QChain instance (given from the openfile function)) --

  • cuts (String containing the cuts to select the wanted variables) --

  • dtypes (array-like of types used to convert the read values (the variables are read as floats by default and then are converted from the first to the last type indicated)) --

Return type:

tuple of the values of that variable

pydiana.tools.pydianaIO.openfile(datafile)[source]

Function for opening Diana data files. If a .root file is provided that is the only file provided, if a .list file all the .root files linked (directly or indirectly) from the .list files will be included.

Parameters:

datafile (String containing the path to the file) --

Returns:

datafiles

Return type:

QChain instance used to read the file (analogous to a TChain or TTree from root, can be thought of as the pointer to the file)

pydiana.tools.pydianaIO.parse_listfile(inputfile)[source]

Function for parsing a .list file (not a nested reading).

Parameters:

(str) (inputfile) --

Returns:

dict containing the following structure: {'datapath':<datapath written in file>,'listfiles':<list of .list files>,'rootfiles':<list of .root files>}

pydiana.tools.pydianaIO.read_var(variable, datafile, cuts='', dtypes=(<class 'float'>, ), dict_alias={'ADC2mV': 'RunDataLoader@ChannelRunData.fADC2mV', 'Baseline': 'BaselineModule@BaselineData.fBaseline', 'BaselineFlatRMS': 'BaselineModule@BaselineData.fBaselineFlatRMS', 'BaselineRMS': 'BaselineModule@BaselineData.fBaselineRMS', 'BaselineSlope': 'BaselineModule@BaselineData.fBaselineSlope', 'BiOT_Fast': 'COFBiComponent@AmplitudeFast.fValue', 'BiOT_Slow': 'COFBiComponent@AmplitudeSlow.fValue', 'Channel': 'DAQ@PulseInfo.fChannelId', 'ClockNumber': 'RunDataLoader@ThermalDetector.fTdClock.fValue', 'CoincidenceData_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.', 'CoincidenceData_OFTime': 'Coincidence_OFTime@CoincidenceData.', 'CoincidenceData_RawTime': 'Coincidence_RawTime@CoincidenceData.', 'CoincidenceData_Side': 'SideCoincidence@CoincidenceData.', 'CoincidenceData_Sync': 'Coincidence_Sync@CoincidenceData.', 'CoincidenceData_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.', 'CryptedEnergy': 'EnergyBlinding@CryptedEnergy.', 'Daughter': 'FilterResult@Passed.fValue', 'DecayTime': 'PulseBasicParameters@Parameters.fDecayTime', 'Energy': 'ApplyCalibration@Energy.fValue', 'EnergyDecorrOF': 'ApplyCalibration_DecorrOF@Energy.fValue', 'EnergyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Energy.fValue', 'EnergyNewOF': 'ApplyCalibration_NewOF@Energy.fValue', 'EnergyNewOFWoH': 'ApplyCalibration_NewOF_WoH@Energy.fValue', 'EnergyUncertainty': 'ApplyCalibration@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOF': 'ApplyCalibration_DecorrOF@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Uncertainty.fValue', 'EnergyUncertaintyNewOF': 'ApplyCalibration_NewOF@EnergyUncertainty.fValue', 'EnergyUncertaintyNewOFWoH': 'ApplyCalibration_NewOF_WoH@EnergyUncertainty.fValue', 'EnergyUncertaintyWoH': 'ApplyCalibration_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_OF': 'ApplyCalibration_OF@EnergyUncertainty.fValue', 'EnergyUncertainty_OF_WoH': 'ApplyCalibration_OF_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF': 'ApplyCalibration_wOF@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF_WoH': 'ApplyCalibration_wOF_WoH@EnergyUncertainty.fValue', 'EnergyWoH': 'ApplyCalibration_WoH@Energy.fValue', 'Energy_OF': 'ApplyCalibration_OF@Energy.fValue', 'Energy_OF_WoH': 'ApplyCalibration_OF_WoH@Energy.fValue', 'Energy_wOF': 'ApplyCalibration_wOF@Energy.fValue', 'Energy_wOF_WoH': 'ApplyCalibration_wOF_WoH@Energy.fValue', 'EventNumber': 'DAQ@Header.fEventNumber', 'Floor': 'RunDataLoader@ThermalDetector.fTdFloor.fValue', 'FullWindowBaseline': 'BaselineModule_FullWindow@BaselineData.fBaseline', 'FullWindowBaselineFlatRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineFlatRMS', 'FullWindowBaselineRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineRMS', 'FullWindowBaselineSlope': 'BaselineModule_FullWindow@BaselineData.fBaselineSlope', 'GoodForStandardAnalysis': 'BadForAnalysis_GoodForStandardAnalysis@Passed.fValue', 'GoodForWoHAnalysis': 'BadForAnalysis_GoodForWoHAnalysis@Passed.fValue', 'IsBolometer': 'RunDataLoader@ChannelRunData.fIsBolometer', 'IsNoise': 'DAQ@PulseInfo.fMasterSample.GetIsNoise()', 'IsPulser': 'DAQ@PulseInfo.fMasterSample.GetIsPulser()', 'IsReversed': 'DAQ@PulseInfo.fMasterSample.GetIsReversed()', 'IsSaturatedHigh': 'PulseBasicParameters@Parameters.fIsSaturatedHigh', 'IsSaturatedLow': 'PulseBasicParameters@Parameters.fIsSaturatedLow', 'IsSide': 'DAQ@PulseInfo.fMasterSample.GetIsSide()', 'IsSignal': 'DAQ@PulseInfo.fMasterSample.GetIsSignal()', 'IsStab': 'FindMultipleTrendsByBruteForce@Selected.fValue', 'IsThermometer': 'RunDataLoader@ChannelRunData.fIsThermometer', 'IsVeto': 'DAQ@PulseInfo.fMasterSample.GetIsVeto()', 'MaxBaseline': 'PulseBasicParameters@MaxBaseline.fValue', 'MaxBaselineInWindow': 'PulseBasicParameters@MaxBaselineInWindow.fValue', 'MaxMinInWindow': 'PulseBasicParameters@MaxMinInWindow.fValue', 'MaxPosition': 'PulseBasicParameters@Parameters.fMaxPosition', 'Mother': 'FilterInInterval@Passed.fValue', 'Multiplicity_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime': 'Coincidence_OFTime@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime': 'Coincidence_RawTime@CoincidenceData.fMultiplicity', 'Multiplicity_RawTimeNoChiCut': 'Coincidence_RawTimeNoChiCut@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_NoChi_50perc': 'Coincidence_RawTime_NoChi_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_newCoinc_50perc': 'Coincidence_RawTime_newCoinc_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_Side': 'SideCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_Sync': 'Coincidence_Sync@CoincidenceData.fMultiplicity', 'Multiplicity_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fMultiplicity', 'NormBaselineSlope': 'ApplyShapeNormalization@NormBaselineSlope.fValue', 'NormDecayTime': 'ApplyShapeNormalization@NormDecayTime.fValue', 'NormDelay': 'ApplyShapeNormalization@NormDelay.fValue', 'NormRiseTime': 'ApplyShapeNormalization@NormRiseTime.fValue', 'NormTVL': 'ApplyShapeNormalization@NormTVL.fValue', 'NormTVR': 'ApplyShapeNormalization@NormTVR.fValue', 'NsTime': 'DAQ@Header.fTime.fFromStartRunNs', 'NumberOfPulses': 'BCountPulses@CountPulsesData.fNumberOfPulses', 'OF_Amplitude': 'FilteredPulseAmplitude_OF@Amplitude.fValue', 'OF_DecayTime': 'FilteredPulseAmplitude_OF@OFData.fDecayTime', 'OF_Delay': 'FilteredPulseAmplitude_OF@OFData.fDelay', 'OF_FDAmplitude': 'FilteredPulseAmplitude_OF@OFData.fFDAmplitude', 'OF_RiseTime': 'FilteredPulseAmplitude_OF@OFData.fRiseTime', 'OF_SecondAmplitude': 'FilteredPulseAmplitude_OF@OFData.fSecondAmplitude', 'OF_SecondDelay': 'FilteredPulseAmplitude_OF@OFData.fSecondDelay', 'OF_TVL': 'FilteredPulseAmplitude_OF@OFData.fTVL', 'OF_TVR': 'FilteredPulseAmplitude_OF@OFData.fTVR', 'OT_Amplitude': 'OTAnalysis@Amplitude.fValue', 'OT_ChiSquare': 'OTAnalysis@FitChiSquare.fValue', 'OT_Time': 'OTAnalysis@FitTime.fValue', 'OrderInMultiple_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime': 'Coincidence_OFTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_RawTime': 'Coincidence_RawTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Side': 'SideCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Sync': 'Coincidence_Sync@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fOrderInMultiple', 'PSAMDistance': 'MahalanobisDistance_PSA@Distance.fValue', 'PSAMDistance_5Component': 'MahalanobisDistance_PSA_5Component@Distance.fValue', 'Position': 'RunDataLoader@ThermalDetector.fTdPos.fValue', 'Position_X': 'RunDataLoader@ThermalDetector.fTdX.fValue', 'Position_Y': 'RunDataLoader@ThermalDetector.fTdY.fValue', 'Position_Z': 'RunDataLoader@ThermalDetector.fTdZ.fValue', 'Q0NDBDAggressiveEnergy': 'Q0SelectEnergy_Q0NDBDAggressive@Energy.fValue', 'Q0NDBDAggressiveVariable': 'Q0SelectEnergy_Q0NDBDAggressive@SelectedEnergyBranch.fValue', 'Q0NDBDModConservativeEnergy': 'Q0SelectEnergy_Q0NDBDModConservative@Energy.fValue', 'Q0NDBDModConservativeVariable': 'Q0SelectEnergy_Q0NDBDModConservative@SelectedEnergyBranch.fValue', 'Q0NDBDOfficialEnergy': 'Q0SelectEnergy_Q0NDBD@Energy.fValue', 'Q0NDBDOfficialVariable': 'Q0SelectEnergy_Q0NDBD@SelectedEnergyBranch.fValue', 'QNDBDOfficialEnergy': 'EnergySelector_QNDBD@Energy.fValue', 'QNDBDOfficialEnergyVariable': 'EnergySelector_QNDBD@SelectedEnergyBranch.fValue', 'RejectBadIntervals': 'RejectBadIntervals@Passed.fValue', 'RejectBadIntervals_AntiCoincidence': 'RejectBadIntervals_AntiCoincidence@Passed.fValue', 'RejectBadIntervals_Final': 'RejectBadIntervals_WithFirstIteration@Passed.fValue', 'RiseTime': 'PulseBasicParameters@Parameters.fRiseTime', 'Run': 'DAQ@Header.fRun', 'SamplingFrequency': 'RunDataLoader@ChannelRunData.fSamplingFrequency', 'SingleTrigger': 'SampleInfoFilter@Passed.fValue', 'StabAmplitude': 'CorrectAmplitudes@Amplitude.fValue', 'StartRunUnixTime': 'DAQ@Header.fTime.fStartRunUnix', 'StartSourceRunUnixTime': 'SourceRunTime@StartSourceRunUnix.fStartRunUnix', 'StartSourceRunUnixTime_newCoinc_50perc': 'SourceRunTime_newCoinc_50perc@StartSourceRunUnix.fStartRunUnix', 'ThermistorRanking': 'ThermistorRanking@Rank.fValue', 'Time': 'DAQ@Header.fTime.fFromStartRunNs/1e09', 'TimeSinceEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_SameChannel', 'TimeUntilEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_SameChannel', 'TotalEnergy_Alpha': 'AlphaDelayedCoincidence@TotalEnergy.fValue', 'TotalEnergy_OFTime': 'Coincidence_OFTime@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@TotalEnergy.fValue', 'TotalEnergy_RawTime': 'Coincidence_RawTime@TotalEnergy.fValue', 'TotalEnergy_Side': 'SideCoincidence@TotalEnergy.fValue', 'TotalEnergy_Sync': 'Coincidence_Sync@TotalEnergy.fValue', 'TotalEnergy_SyncPSA': 'Coincidence_SyncPSA@TotalEnergy.fValue', 'Tower': 'RunDataLoader@ThermalDetector.fTdTower.fValue'}, legacy=False, verbose=False)[source]

Function for reading a tuple for a diana root file.

Parameters:
  • variable (string with the variable to read) --

  • datafile (Either QChain instance of the file/files to read) --

  • cuts (String containing the cuts to select the wanted variables) --

  • dtypes (array-like of types used to convert the read values (the variables are read as floats by default and then are converted from the first to the last type indicated)) --

  • dict_alias (dictionary of the aliases (keys = aliases, values = variable path)) --

  • legacy (boolean indicating if one must use old_read_var function) --

Return type:

array with the requested variable, or None if variable not found or cuts not passed

pydiana.tools.pydianaIO.read_vars(variables, datafile, cuts='', dict_alias={'ADC2mV': 'RunDataLoader@ChannelRunData.fADC2mV', 'Baseline': 'BaselineModule@BaselineData.fBaseline', 'BaselineFlatRMS': 'BaselineModule@BaselineData.fBaselineFlatRMS', 'BaselineRMS': 'BaselineModule@BaselineData.fBaselineRMS', 'BaselineSlope': 'BaselineModule@BaselineData.fBaselineSlope', 'BiOT_Fast': 'COFBiComponent@AmplitudeFast.fValue', 'BiOT_Slow': 'COFBiComponent@AmplitudeSlow.fValue', 'Channel': 'DAQ@PulseInfo.fChannelId', 'ClockNumber': 'RunDataLoader@ThermalDetector.fTdClock.fValue', 'CoincidenceData_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.', 'CoincidenceData_OFTime': 'Coincidence_OFTime@CoincidenceData.', 'CoincidenceData_RawTime': 'Coincidence_RawTime@CoincidenceData.', 'CoincidenceData_Side': 'SideCoincidence@CoincidenceData.', 'CoincidenceData_Sync': 'Coincidence_Sync@CoincidenceData.', 'CoincidenceData_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.', 'CryptedEnergy': 'EnergyBlinding@CryptedEnergy.', 'Daughter': 'FilterResult@Passed.fValue', 'DecayTime': 'PulseBasicParameters@Parameters.fDecayTime', 'Energy': 'ApplyCalibration@Energy.fValue', 'EnergyDecorrOF': 'ApplyCalibration_DecorrOF@Energy.fValue', 'EnergyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Energy.fValue', 'EnergyNewOF': 'ApplyCalibration_NewOF@Energy.fValue', 'EnergyNewOFWoH': 'ApplyCalibration_NewOF_WoH@Energy.fValue', 'EnergyUncertainty': 'ApplyCalibration@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOF': 'ApplyCalibration_DecorrOF@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Uncertainty.fValue', 'EnergyUncertaintyNewOF': 'ApplyCalibration_NewOF@EnergyUncertainty.fValue', 'EnergyUncertaintyNewOFWoH': 'ApplyCalibration_NewOF_WoH@EnergyUncertainty.fValue', 'EnergyUncertaintyWoH': 'ApplyCalibration_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_OF': 'ApplyCalibration_OF@EnergyUncertainty.fValue', 'EnergyUncertainty_OF_WoH': 'ApplyCalibration_OF_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF': 'ApplyCalibration_wOF@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF_WoH': 'ApplyCalibration_wOF_WoH@EnergyUncertainty.fValue', 'EnergyWoH': 'ApplyCalibration_WoH@Energy.fValue', 'Energy_OF': 'ApplyCalibration_OF@Energy.fValue', 'Energy_OF_WoH': 'ApplyCalibration_OF_WoH@Energy.fValue', 'Energy_wOF': 'ApplyCalibration_wOF@Energy.fValue', 'Energy_wOF_WoH': 'ApplyCalibration_wOF_WoH@Energy.fValue', 'EventNumber': 'DAQ@Header.fEventNumber', 'Floor': 'RunDataLoader@ThermalDetector.fTdFloor.fValue', 'FullWindowBaseline': 'BaselineModule_FullWindow@BaselineData.fBaseline', 'FullWindowBaselineFlatRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineFlatRMS', 'FullWindowBaselineRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineRMS', 'FullWindowBaselineSlope': 'BaselineModule_FullWindow@BaselineData.fBaselineSlope', 'GoodForStandardAnalysis': 'BadForAnalysis_GoodForStandardAnalysis@Passed.fValue', 'GoodForWoHAnalysis': 'BadForAnalysis_GoodForWoHAnalysis@Passed.fValue', 'IsBolometer': 'RunDataLoader@ChannelRunData.fIsBolometer', 'IsNoise': 'DAQ@PulseInfo.fMasterSample.GetIsNoise()', 'IsPulser': 'DAQ@PulseInfo.fMasterSample.GetIsPulser()', 'IsReversed': 'DAQ@PulseInfo.fMasterSample.GetIsReversed()', 'IsSaturatedHigh': 'PulseBasicParameters@Parameters.fIsSaturatedHigh', 'IsSaturatedLow': 'PulseBasicParameters@Parameters.fIsSaturatedLow', 'IsSide': 'DAQ@PulseInfo.fMasterSample.GetIsSide()', 'IsSignal': 'DAQ@PulseInfo.fMasterSample.GetIsSignal()', 'IsStab': 'FindMultipleTrendsByBruteForce@Selected.fValue', 'IsThermometer': 'RunDataLoader@ChannelRunData.fIsThermometer', 'IsVeto': 'DAQ@PulseInfo.fMasterSample.GetIsVeto()', 'MaxBaseline': 'PulseBasicParameters@MaxBaseline.fValue', 'MaxBaselineInWindow': 'PulseBasicParameters@MaxBaselineInWindow.fValue', 'MaxMinInWindow': 'PulseBasicParameters@MaxMinInWindow.fValue', 'MaxPosition': 'PulseBasicParameters@Parameters.fMaxPosition', 'Mother': 'FilterInInterval@Passed.fValue', 'Multiplicity_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime': 'Coincidence_OFTime@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime': 'Coincidence_RawTime@CoincidenceData.fMultiplicity', 'Multiplicity_RawTimeNoChiCut': 'Coincidence_RawTimeNoChiCut@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_NoChi_50perc': 'Coincidence_RawTime_NoChi_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_newCoinc_50perc': 'Coincidence_RawTime_newCoinc_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_Side': 'SideCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_Sync': 'Coincidence_Sync@CoincidenceData.fMultiplicity', 'Multiplicity_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fMultiplicity', 'NormBaselineSlope': 'ApplyShapeNormalization@NormBaselineSlope.fValue', 'NormDecayTime': 'ApplyShapeNormalization@NormDecayTime.fValue', 'NormDelay': 'ApplyShapeNormalization@NormDelay.fValue', 'NormRiseTime': 'ApplyShapeNormalization@NormRiseTime.fValue', 'NormTVL': 'ApplyShapeNormalization@NormTVL.fValue', 'NormTVR': 'ApplyShapeNormalization@NormTVR.fValue', 'NsTime': 'DAQ@Header.fTime.fFromStartRunNs', 'NumberOfPulses': 'BCountPulses@CountPulsesData.fNumberOfPulses', 'OF_Amplitude': 'FilteredPulseAmplitude_OF@Amplitude.fValue', 'OF_DecayTime': 'FilteredPulseAmplitude_OF@OFData.fDecayTime', 'OF_Delay': 'FilteredPulseAmplitude_OF@OFData.fDelay', 'OF_FDAmplitude': 'FilteredPulseAmplitude_OF@OFData.fFDAmplitude', 'OF_RiseTime': 'FilteredPulseAmplitude_OF@OFData.fRiseTime', 'OF_SecondAmplitude': 'FilteredPulseAmplitude_OF@OFData.fSecondAmplitude', 'OF_SecondDelay': 'FilteredPulseAmplitude_OF@OFData.fSecondDelay', 'OF_TVL': 'FilteredPulseAmplitude_OF@OFData.fTVL', 'OF_TVR': 'FilteredPulseAmplitude_OF@OFData.fTVR', 'OT_Amplitude': 'OTAnalysis@Amplitude.fValue', 'OT_ChiSquare': 'OTAnalysis@FitChiSquare.fValue', 'OT_Time': 'OTAnalysis@FitTime.fValue', 'OrderInMultiple_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime': 'Coincidence_OFTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_RawTime': 'Coincidence_RawTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Side': 'SideCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Sync': 'Coincidence_Sync@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fOrderInMultiple', 'PSAMDistance': 'MahalanobisDistance_PSA@Distance.fValue', 'PSAMDistance_5Component': 'MahalanobisDistance_PSA_5Component@Distance.fValue', 'Position': 'RunDataLoader@ThermalDetector.fTdPos.fValue', 'Position_X': 'RunDataLoader@ThermalDetector.fTdX.fValue', 'Position_Y': 'RunDataLoader@ThermalDetector.fTdY.fValue', 'Position_Z': 'RunDataLoader@ThermalDetector.fTdZ.fValue', 'Q0NDBDAggressiveEnergy': 'Q0SelectEnergy_Q0NDBDAggressive@Energy.fValue', 'Q0NDBDAggressiveVariable': 'Q0SelectEnergy_Q0NDBDAggressive@SelectedEnergyBranch.fValue', 'Q0NDBDModConservativeEnergy': 'Q0SelectEnergy_Q0NDBDModConservative@Energy.fValue', 'Q0NDBDModConservativeVariable': 'Q0SelectEnergy_Q0NDBDModConservative@SelectedEnergyBranch.fValue', 'Q0NDBDOfficialEnergy': 'Q0SelectEnergy_Q0NDBD@Energy.fValue', 'Q0NDBDOfficialVariable': 'Q0SelectEnergy_Q0NDBD@SelectedEnergyBranch.fValue', 'QNDBDOfficialEnergy': 'EnergySelector_QNDBD@Energy.fValue', 'QNDBDOfficialEnergyVariable': 'EnergySelector_QNDBD@SelectedEnergyBranch.fValue', 'RejectBadIntervals': 'RejectBadIntervals@Passed.fValue', 'RejectBadIntervals_AntiCoincidence': 'RejectBadIntervals_AntiCoincidence@Passed.fValue', 'RejectBadIntervals_Final': 'RejectBadIntervals_WithFirstIteration@Passed.fValue', 'RiseTime': 'PulseBasicParameters@Parameters.fRiseTime', 'Run': 'DAQ@Header.fRun', 'SamplingFrequency': 'RunDataLoader@ChannelRunData.fSamplingFrequency', 'SingleTrigger': 'SampleInfoFilter@Passed.fValue', 'StabAmplitude': 'CorrectAmplitudes@Amplitude.fValue', 'StartRunUnixTime': 'DAQ@Header.fTime.fStartRunUnix', 'StartSourceRunUnixTime': 'SourceRunTime@StartSourceRunUnix.fStartRunUnix', 'StartSourceRunUnixTime_newCoinc_50perc': 'SourceRunTime_newCoinc_50perc@StartSourceRunUnix.fStartRunUnix', 'ThermistorRanking': 'ThermistorRanking@Rank.fValue', 'Time': 'DAQ@Header.fTime.fFromStartRunNs/1e09', 'TimeSinceEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_SameChannel', 'TimeUntilEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_SameChannel', 'TotalEnergy_Alpha': 'AlphaDelayedCoincidence@TotalEnergy.fValue', 'TotalEnergy_OFTime': 'Coincidence_OFTime@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@TotalEnergy.fValue', 'TotalEnergy_RawTime': 'Coincidence_RawTime@TotalEnergy.fValue', 'TotalEnergy_Side': 'SideCoincidence@TotalEnergy.fValue', 'TotalEnergy_Sync': 'Coincidence_Sync@TotalEnergy.fValue', 'TotalEnergy_SyncPSA': 'Coincidence_SyncPSA@TotalEnergy.fValue', 'Tower': 'RunDataLoader@ThermalDetector.fTdTower.fValue'}, legacy=False, verbose=True, useTQDM=False)[source]

Function for reading a tuple for a diana root file.

Parameters:
  • variables (array-like of strings containing the name of the variables to fetch. If dictionary, the values must be the names of the variables to search and the keys the name to be shown in the resulting dataframe) --

  • datafile (Either QChain instance of the file/files to read) --

  • cuts (String containing the cuts to select the wanted variables) --

  • dict_alias (dictionary of the aliases (keys = aliases, values = variable path)) --

  • legacy (boolean indicating if one must use old_read_var function) --

Return type:

Pandas dataframe with all the requested variables, or None if no events pass the cuts.

pydiana.tools.pydianaIO.var_autocomplete(variable, dict_content, dict_alias={'ADC2mV': 'RunDataLoader@ChannelRunData.fADC2mV', 'Baseline': 'BaselineModule@BaselineData.fBaseline', 'BaselineFlatRMS': 'BaselineModule@BaselineData.fBaselineFlatRMS', 'BaselineRMS': 'BaselineModule@BaselineData.fBaselineRMS', 'BaselineSlope': 'BaselineModule@BaselineData.fBaselineSlope', 'BiOT_Fast': 'COFBiComponent@AmplitudeFast.fValue', 'BiOT_Slow': 'COFBiComponent@AmplitudeSlow.fValue', 'Channel': 'DAQ@PulseInfo.fChannelId', 'ClockNumber': 'RunDataLoader@ThermalDetector.fTdClock.fValue', 'CoincidenceData_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.', 'CoincidenceData_OFTime': 'Coincidence_OFTime@CoincidenceData.', 'CoincidenceData_RawTime': 'Coincidence_RawTime@CoincidenceData.', 'CoincidenceData_Side': 'SideCoincidence@CoincidenceData.', 'CoincidenceData_Sync': 'Coincidence_Sync@CoincidenceData.', 'CoincidenceData_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.', 'CryptedEnergy': 'EnergyBlinding@CryptedEnergy.', 'Daughter': 'FilterResult@Passed.fValue', 'DecayTime': 'PulseBasicParameters@Parameters.fDecayTime', 'Energy': 'ApplyCalibration@Energy.fValue', 'EnergyDecorrOF': 'ApplyCalibration_DecorrOF@Energy.fValue', 'EnergyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Energy.fValue', 'EnergyNewOF': 'ApplyCalibration_NewOF@Energy.fValue', 'EnergyNewOFWoH': 'ApplyCalibration_NewOF_WoH@Energy.fValue', 'EnergyUncertainty': 'ApplyCalibration@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOF': 'ApplyCalibration_DecorrOF@EnergyUncertainty.fValue', 'EnergyUncertaintyDecorrOFWoH': 'ApplyCalibration_DecorrOF_WoH@Uncertainty.fValue', 'EnergyUncertaintyNewOF': 'ApplyCalibration_NewOF@EnergyUncertainty.fValue', 'EnergyUncertaintyNewOFWoH': 'ApplyCalibration_NewOF_WoH@EnergyUncertainty.fValue', 'EnergyUncertaintyWoH': 'ApplyCalibration_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_OF': 'ApplyCalibration_OF@EnergyUncertainty.fValue', 'EnergyUncertainty_OF_WoH': 'ApplyCalibration_OF_WoH@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF': 'ApplyCalibration_wOF@EnergyUncertainty.fValue', 'EnergyUncertainty_wOF_WoH': 'ApplyCalibration_wOF_WoH@EnergyUncertainty.fValue', 'EnergyWoH': 'ApplyCalibration_WoH@Energy.fValue', 'Energy_OF': 'ApplyCalibration_OF@Energy.fValue', 'Energy_OF_WoH': 'ApplyCalibration_OF_WoH@Energy.fValue', 'Energy_wOF': 'ApplyCalibration_wOF@Energy.fValue', 'Energy_wOF_WoH': 'ApplyCalibration_wOF_WoH@Energy.fValue', 'EventNumber': 'DAQ@Header.fEventNumber', 'Floor': 'RunDataLoader@ThermalDetector.fTdFloor.fValue', 'FullWindowBaseline': 'BaselineModule_FullWindow@BaselineData.fBaseline', 'FullWindowBaselineFlatRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineFlatRMS', 'FullWindowBaselineRMS': 'BaselineModule_FullWindow@BaselineData.fBaselineRMS', 'FullWindowBaselineSlope': 'BaselineModule_FullWindow@BaselineData.fBaselineSlope', 'GoodForStandardAnalysis': 'BadForAnalysis_GoodForStandardAnalysis@Passed.fValue', 'GoodForWoHAnalysis': 'BadForAnalysis_GoodForWoHAnalysis@Passed.fValue', 'IsBolometer': 'RunDataLoader@ChannelRunData.fIsBolometer', 'IsNoise': 'DAQ@PulseInfo.fMasterSample.GetIsNoise()', 'IsPulser': 'DAQ@PulseInfo.fMasterSample.GetIsPulser()', 'IsReversed': 'DAQ@PulseInfo.fMasterSample.GetIsReversed()', 'IsSaturatedHigh': 'PulseBasicParameters@Parameters.fIsSaturatedHigh', 'IsSaturatedLow': 'PulseBasicParameters@Parameters.fIsSaturatedLow', 'IsSide': 'DAQ@PulseInfo.fMasterSample.GetIsSide()', 'IsSignal': 'DAQ@PulseInfo.fMasterSample.GetIsSignal()', 'IsStab': 'FindMultipleTrendsByBruteForce@Selected.fValue', 'IsThermometer': 'RunDataLoader@ChannelRunData.fIsThermometer', 'IsVeto': 'DAQ@PulseInfo.fMasterSample.GetIsVeto()', 'MaxBaseline': 'PulseBasicParameters@MaxBaseline.fValue', 'MaxBaselineInWindow': 'PulseBasicParameters@MaxBaselineInWindow.fValue', 'MaxMinInWindow': 'PulseBasicParameters@MaxMinInWindow.fValue', 'MaxPosition': 'PulseBasicParameters@Parameters.fMaxPosition', 'Mother': 'FilterInInterval@Passed.fValue', 'Multiplicity_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime': 'Coincidence_OFTime@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fMultiplicity', 'Multiplicity_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime': 'Coincidence_RawTime@CoincidenceData.fMultiplicity', 'Multiplicity_RawTimeNoChiCut': 'Coincidence_RawTimeNoChiCut@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_NoChi_50perc': 'Coincidence_RawTime_NoChi_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_RawTime_newCoinc_50perc': 'Coincidence_RawTime_newCoinc_50perc@CoincidenceData.fMultiplicity', 'Multiplicity_Side': 'SideCoincidence@CoincidenceData.fMultiplicity', 'Multiplicity_Sync': 'Coincidence_Sync@CoincidenceData.fMultiplicity', 'Multiplicity_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fMultiplicity', 'NormBaselineSlope': 'ApplyShapeNormalization@NormBaselineSlope.fValue', 'NormDecayTime': 'ApplyShapeNormalization@NormDecayTime.fValue', 'NormDelay': 'ApplyShapeNormalization@NormDelay.fValue', 'NormRiseTime': 'ApplyShapeNormalization@NormRiseTime.fValue', 'NormTVL': 'ApplyShapeNormalization@NormTVL.fValue', 'NormTVR': 'ApplyShapeNormalization@NormTVR.fValue', 'NsTime': 'DAQ@Header.fTime.fFromStartRunNs', 'NumberOfPulses': 'BCountPulses@CountPulsesData.fNumberOfPulses', 'OF_Amplitude': 'FilteredPulseAmplitude_OF@Amplitude.fValue', 'OF_DecayTime': 'FilteredPulseAmplitude_OF@OFData.fDecayTime', 'OF_Delay': 'FilteredPulseAmplitude_OF@OFData.fDelay', 'OF_FDAmplitude': 'FilteredPulseAmplitude_OF@OFData.fFDAmplitude', 'OF_RiseTime': 'FilteredPulseAmplitude_OF@OFData.fRiseTime', 'OF_SecondAmplitude': 'FilteredPulseAmplitude_OF@OFData.fSecondAmplitude', 'OF_SecondDelay': 'FilteredPulseAmplitude_OF@OFData.fSecondDelay', 'OF_TVL': 'FilteredPulseAmplitude_OF@OFData.fTVL', 'OF_TVR': 'FilteredPulseAmplitude_OF@OFData.fTVR', 'OT_Amplitude': 'OTAnalysis@Amplitude.fValue', 'OT_ChiSquare': 'OTAnalysis@FitChiSquare.fValue', 'OT_Time': 'OTAnalysis@FitTime.fValue', 'OrderInMultiple_Alpha': 'AlphaDelayedCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime': 'Coincidence_OFTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_RawTime': 'Coincidence_RawTime@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Side': 'SideCoincidence@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_Sync': 'Coincidence_Sync@CoincidenceData.fOrderInMultiple', 'OrderInMultiple_SyncPSA': 'Coincidence_SyncPSA@CoincidenceData.fOrderInMultiple', 'PSAMDistance': 'MahalanobisDistance_PSA@Distance.fValue', 'PSAMDistance_5Component': 'MahalanobisDistance_PSA_5Component@Distance.fValue', 'Position': 'RunDataLoader@ThermalDetector.fTdPos.fValue', 'Position_X': 'RunDataLoader@ThermalDetector.fTdX.fValue', 'Position_Y': 'RunDataLoader@ThermalDetector.fTdY.fValue', 'Position_Z': 'RunDataLoader@ThermalDetector.fTdZ.fValue', 'Q0NDBDAggressiveEnergy': 'Q0SelectEnergy_Q0NDBDAggressive@Energy.fValue', 'Q0NDBDAggressiveVariable': 'Q0SelectEnergy_Q0NDBDAggressive@SelectedEnergyBranch.fValue', 'Q0NDBDModConservativeEnergy': 'Q0SelectEnergy_Q0NDBDModConservative@Energy.fValue', 'Q0NDBDModConservativeVariable': 'Q0SelectEnergy_Q0NDBDModConservative@SelectedEnergyBranch.fValue', 'Q0NDBDOfficialEnergy': 'Q0SelectEnergy_Q0NDBD@Energy.fValue', 'Q0NDBDOfficialVariable': 'Q0SelectEnergy_Q0NDBD@SelectedEnergyBranch.fValue', 'QNDBDOfficialEnergy': 'EnergySelector_QNDBD@Energy.fValue', 'QNDBDOfficialEnergyVariable': 'EnergySelector_QNDBD@SelectedEnergyBranch.fValue', 'RejectBadIntervals': 'RejectBadIntervals@Passed.fValue', 'RejectBadIntervals_AntiCoincidence': 'RejectBadIntervals_AntiCoincidence@Passed.fValue', 'RejectBadIntervals_Final': 'RejectBadIntervals_WithFirstIteration@Passed.fValue', 'RiseTime': 'PulseBasicParameters@Parameters.fRiseTime', 'Run': 'DAQ@Header.fRun', 'SamplingFrequency': 'RunDataLoader@ChannelRunData.fSamplingFrequency', 'SingleTrigger': 'SampleInfoFilter@Passed.fValue', 'StabAmplitude': 'CorrectAmplitudes@Amplitude.fValue', 'StartRunUnixTime': 'DAQ@Header.fTime.fStartRunUnix', 'StartSourceRunUnixTime': 'SourceRunTime@StartSourceRunUnix.fStartRunUnix', 'StartSourceRunUnixTime_newCoinc_50perc': 'SourceRunTime_newCoinc_50perc@StartSourceRunUnix.fStartRunUnix', 'ThermistorRanking': 'ThermistorRanking@Rank.fValue', 'Time': 'DAQ@Header.fTime.fFromStartRunNs/1e09', 'TimeSinceEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeSinceEvent_SameChannel', 'TimeSinceSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_DifferentChannel', 'TimeSinceSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeSinceEvent_SameChannel', 'TimeUntilEvent_DifferentChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilEvent_SameChannel': 'CoincidenceTiming@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilHeaterEvent_DifferentChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilHeaterEvent_SameChannel': 'CoincidenceTiming_Heater@Timing.fTimeUntilEvent_SameChannel', 'TimeUntilSignalEvent_DifferentChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_DifferentChannel', 'TimeUntilSignalEvent_SameChannel': 'CoincidenceTiming_Signal@Timing.fTimeUntilEvent_SameChannel', 'TotalEnergy_Alpha': 'AlphaDelayedCoincidence@TotalEnergy.fValue', 'TotalEnergy_OFTime': 'Coincidence_OFTime@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms': 'Coincidence_OFTime_Sync_10ms@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_10ms_150keV': 'Coincidence_OFTime_Sync_10ms_150keV@TotalEnergy.fValue', 'TotalEnergy_OFTime_Sync_20ms': 'Coincidence_OFTime_Sync_20ms@TotalEnergy.fValue', 'TotalEnergy_RawTime': 'Coincidence_RawTime@TotalEnergy.fValue', 'TotalEnergy_Side': 'SideCoincidence@TotalEnergy.fValue', 'TotalEnergy_Sync': 'Coincidence_Sync@TotalEnergy.fValue', 'TotalEnergy_SyncPSA': 'Coincidence_SyncPSA@TotalEnergy.fValue', 'Tower': 'RunDataLoader@ThermalDetector.fTdTower.fValue'}, verbose=False)[source]

Function for searching the best possible match of inserted variable.

Parameters:
  • variable (string with the variable to search) --

  • datafile (QChain instance of the opened datafile) --

  • dict_alias (dictionary of the aliases (keys = aliases, values = variable path)) --

Return type:

String with best possible match of variable