Berkeley Nuclear Data Software
Public Member Functions | List of all members
GenesisAnalysis Class Reference

#include <GenesisAnalysis.h>

Inheritance diagram for GenesisAnalysis:
Inheritance graph
[legend]
Collaboration diagram for GenesisAnalysis:
Collaboration graph
[legend]

Public Member Functions

 GenesisAnalysis (string a_configFileName)
 constructor for use with new config More...
 
void readConfigFile (string a_configFileName)
 
void accumulateBasicQuantities (string a_outFileName="genEventBasicQuantities.root")
 
void buildRFCalibrationTree (string a_outFileName="rfCalibrationResults.root", double a_dsFraction=0.1)
 
void buildGammaSpectra (string a_outFileName="spec1.root", bool a_requireScint=false, bool a_integralCal=false, int a_maxE=8192)
 
void buildTOFHists (string a_outFileName="tofHists.root")
 
void buildPSDFHists (string a_outFileName="psdHists.root")
 get psd histo, apply cuts isNeutron, isGamma More...
 
void findGammaGammaTimeOffset (string a_outFileNameRoot="gammaTimeOffset.root", string a_outFileNameTxt="gammaTimeOffset.txt", int a_doFit=1, std::array< double, 3 > a_offset={0, 0, 0})
 
void buildOutgoingTOFHist (string a_outFileName="outgoingTOF.root")
 
void reduceToCalibratedTrees (string a_outFileName="calibrateEvents.root", int a_detOption=0)
 
void reduceToCloverTree (string a_outFileName="calibratedGamma.root")
 
void buildEfficiencyAnaTree (bool a_buildForNeutrons, string a_outFileName="", double a_enThreshold=.2)
 builds tree of PH, TOF, gamma energy for PSD-neutrons More...
 
void buildEfficiencyAnaTreeScintScint (string a_outFileName, double a_enThreshold=.2, bool a_gammaGamma=false, std::array< double, 3 > a_offset={0, 0, 0})
 
void makeRandomTOFHists (string a_outFileName="", double a_enThreshold=.2)
 build random n/g coincidences between EJ-309 detectors More...
 
void buildGammaGammaCoins (string a_fileName="gammaGammaCoinHists.root")
 
void buildNeutronSinglesTree (string a_fileName="neutronSinglesTree.root")
 
virtual std::ostream & printEvent (std::ostream &a_stream=std::cout, int a_eventToPrint=-1)
 this is used for testing the internal state of events stored in the tree More...
 
- Public Member Functions inherited from PostProcBase< GenesisEvent >
 PostProcBase ()
 defualt constructor puts class into a working state More...
 
virtual int addFile (string a_filename)
 
virtual int addFilesFromDirectory (string a_dir, string a_ext)
 
virtual int loadEvent (int a_eventNumber)
 loads a specified event into memory More...
 
virtual int fileNotLoaded ()
 tests if a file is loaded and prinst a message if not More...
 
virtual int clearFileState ()
 
virtual std::ostream & printState (std::ostream &a_stream=std::cout)
 
virtual ~PostProcBase ()
 
TChain * getTrees ()
 danger danger, use this if you know what you are doing. More...
 

Additional Inherited Members

- Protected Attributes inherited from PostProcBase< GenesisEvent >
TChain * m_trees
 for associating the trees from files More...
 
string m_treeName
 for storing the name of the tree More...
 
string m_branchName
 for storing the name of the branch More...
 
GenesisEventm_currentEvent
 for storing the current event More...
 
vector< string > m_loadedFiles
 for storing a list of loaded files More...
 
bool m_hasFile
 flag for wheter a file has been loaded More...
 

Detailed Description

class to do cursory analysis on GenesisEvent trees J. Gordon

Constructor & Destructor Documentation

◆ GenesisAnalysis()

GenesisAnalysis::GenesisAnalysis ( string  a_configFileName)

constructor for use with new config

read in ExperimentConfig config into GENESISConfig

read in GENESISConfig specific parameters

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ accumulateBasicQuantities()

void GenesisAnalysis::accumulateBasicQuantities ( string  a_outFileName = "genEventBasicQuantities.root")

creates histograms of basic coincidence quantities uses new config used to provide singles and coincidence histograms as sanity checks to data integrety generates an new file titled

mod id, channel: time since file start vs ADC

clover id, channel: leaf-leaf, leaf-bgo TDC diff

clover id

scint id

number of hits per event

lists of detector IDs to build histograms

Here is the call graph for this function:

◆ buildEfficiencyAnaTree()

void GenesisAnalysis::buildEfficiencyAnaTree ( bool  a_buildForNeutrons,
string  a_outFileName = "",
double  a_enThreshold = .2 
)

builds tree of PH, TOF, gamma energy for PSD-neutrons

Here is the call graph for this function:

◆ buildEfficiencyAnaTreeScintScint()

void GenesisAnalysis::buildEfficiencyAnaTreeScintScint ( string  a_outFileName,
double  a_enThreshold = .2,
bool  a_gammaGamma = false,
std::array< double, 3 >  a_offset = {0,0,0} 
)

same as above for OrgScint/OrgScint n/g coincidences Also saves neutron time since RF for the 5 RFs

Parameters
a_offsetthis is used to offset the array to account for source offsets when doing timing calibrations
Here is the call graph for this function:

◆ buildGammaGammaCoins()

void GenesisAnalysis::buildGammaGammaCoins ( string  a_fileName = "gammaGammaCoinHists.root")

builds clover-clover [add-back] gamma-gamma coincidences writes a file with N_clovers^N_clovers 2D histograms

Here is the call graph for this function:

◆ buildGammaSpectra()

void GenesisAnalysis::buildGammaSpectra ( string  a_outFileName = "spec1.root",
bool  a_requireScint = false,
bool  a_integralCal = false,
int  a_maxE = 8192 
)

For each gamma detector (Clover, Pop-top, LaBr):

  • Singles spectra for each leaf (PopTop, LaBr = 1 leaf)
  • Singles spectra, for each leaf w/. BGO veto (same as above for Pop-top, LaBr)
  • Singles Spectra, for each leaf w/. events that were BGO veto'd this is empty for Pop-tops and LaBr
  • Added-back spectra (up to 4-fold)
  • Sum of singles spectra (so each leaf plotted in one spectrum)
  • Addded-back + BGO veto (up to 4-fold) uses new config requires time calibrations in config a_requireScint - require an orgScint to be present in the GenesisEvent NEEDS TO BE UPDATED TO CALL OUT WHATS NEEDED

clover-id mult = 2 events: big energy vs small energy

Parameters
a_integralCalif you don't have energy calibrations but want spectra this will set the full scale range correctly
Here is the call graph for this function:
Here is the caller graph for this function:

◆ buildNeutronSinglesTree()

void GenesisAnalysis::buildNeutronSinglesTree ( string  a_fileName = "neutronSinglesTree.root")
Here is the call graph for this function:

◆ buildOutgoingTOFHist()

void GenesisAnalysis::buildOutgoingTOFHist ( string  a_outFileName = "outgoingTOF.root")

uses time calibrations to construct outgoingTOF histograms: does TOF against gamma-ray (clover/HPGe, inorg) detectors

  • neutron TOF vs light
  • neutron energy vs light
  • scintillator TOF vs pulse shape
  • neutron TOF vs gamma ray energy
  • some plots to check RF / triggers between boards !!!! - hardcoded for module id 17,18,19

scint ID, TOF [ns] vs light

scint ID, TOF

scint ID, clover ID [not added-back], neutron TOF vs gamma energy

scint ID, neutron energy from TOF vs light

for testing trigger differences

get the hits

gamma det ID, {tof, gamma energy}

fill the histograms

Here is the call graph for this function:

◆ buildPSDFHists()

void GenesisAnalysis::buildPSDFHists ( string  a_outFileName = "psdHists.root")

get psd histo, apply cuts isNeutron, isGamma

mod id, channel: time since file start vs ADC scint id

number of hits per event

lists of detector IDs to build histograms

Here is the call graph for this function:

◆ buildRFCalibrationTree()

void GenesisAnalysis::buildRFCalibrationTree ( string  a_outFileName = "rfCalibrationResults.root",
double  a_dsFraction = 0.1 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ buildTOFHists()

void GenesisAnalysis::buildTOFHists ( string  a_outFileName = "tofHists.root")

builds histograms of incoming TOF vs energy:

  • no PSD cut, uncalibrated in time
  • PSD cut gammas, calibrated in time
  • PSD cut neutrons, calibrated (Total TOF)
  • clover leafs, calibrated
  • full clover, calibrated
  • HPGe, inorg scint, calibrated Note: requires correct RF time offset

det ID, channels (for leafs/BGO)

singles neutron total TOF

!!!!NEED TO THINK ABOUT THIS!!!!

if the time offset of the clovers (calibration value ) is large this lead to extremely offset time since RF values,

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findGammaGammaTimeOffset()

void GenesisAnalysis::findGammaGammaTimeOffset ( string  a_outFileNameRoot = "gammaTimeOffset.root",
string  a_outFileNameTxt = "gammaTimeOffset.txt",
int  a_doFit = 1,
std::array< double, 3 >  a_offset = {0,0,0} 
)

determines time calibrations to bring detectors into Real Time space for outgoing TOF analysis: builds gamma-gamma EJ-309 / LaBr+Pop-top+Clover time difference spectra Finds the mean of those spectra, prints out values uses new config Should be fixed needs testing Requires Config file update

scint ID, clover ID, leaf number

scint ID, HPGe ID

scint ID, inorgScint ID

scint ID

loop over orgScint events

gamma flight time from scattering target

building all time diffs. rel to Detector specified in config

write clones of the histograms to file before trying to fit

fit gaussians to time difference peaks for time calibration value

Parameters
a_offsetthis is used to offset the array to account for source offsets when doing timing calibrations
Here is the call graph for this function:

◆ makeRandomTOFHists()

void GenesisAnalysis::makeRandomTOFHists ( string  a_outFileName = "",
double  a_enThreshold = .2 
)

build random n/g coincidences between EJ-309 detectors

find neutrons and gammas in this event

pick random other events in tree

find neutrons and gammas in 2nd event

build coincidences between neutrons from event 1, gammas from event 2

build coincidences between neutrons from event 2, gammas from event 1

Here is the call graph for this function:

◆ printEvent()

std::ostream & GenesisAnalysis::printEvent ( std::ostream &  a_stream = std::cout,
int  a_eventToPrint = -1 
)
virtual

this is used for testing the internal state of events stored in the tree

Here is the call graph for this function:

◆ readConfigFile()

void GenesisAnalysis::readConfigFile ( string  a_configFileName)

read in ExperimentConfig config into GENESISConfig

read in GENESISConfig specific parameters

Here is the call graph for this function:

◆ reduceToCalibratedTrees()

void GenesisAnalysis::reduceToCalibratedTrees ( string  a_outFileName = "calibrateEvents.root",
int  a_detOption = 0 
)

reduces GENESISEvent trees to GenesisPhysEvent trees detOption of 0 gives you both scint and clover events detOption 1 gives scint only and detOption 2 is clover only

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reduceToCloverTree()

void GenesisAnalysis::reduceToCloverTree ( string  a_outFileName = "calibratedGamma.root")

!!!!!!!!!!!!!!!!!THIS NEEDS TO BE UPDATED!!!!!!!!!!!!!!!!!

assume the clovers define the axis? !!!!!!!!!!!!Fix THIS!!!!!!!!!!!!

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: