MUSIC unknown
Analysis for the MUSIC active-target ionization chamber
Loading...
Searching...
No Matches
CalibrateBeam.cpp File Reference
#include "CalibrateBeam.hpp"
#include <Rtypes.h>
Include dependency graph for CalibrateBeam.cpp:

Go to the source code of this file.

Classes

struct  StripPairSamples
struct  RidgeFit

Functions

Double_t StripTotalAdc (const UShort_t *l, const UShort_t *r, Int_t s)
Int_t GatePartner (Int_t s)
void RobustPeakSeed (const std::vector< Float_t > &v, Double_t &mode, Double_t &sigma)
TH1F * MakeBeamPeakHist (const TString &name, const TString &title, const std::vector< Float_t > &v, Double_t mode, Double_t sigma)
Int_t ChannelToEresIndex (const ChannelCal &c)
Char_t LongSide (Int_t strip)
Bool_t IsBeamdEChannel (const ChannelCal &c)
Bool_t IsCalibrated (const ChannelCal &c)
Double_t Gain (const ChannelCal &c)
Double_t ResolutionFWHMPercent (const ChannelCal &c)
Double_t ApplyCal (const ChannelCal &c, Double_t adc)
BeamFit2D FindBeamGateStrips (const FileSpec &spec, Int_t sx, Int_t sy, const TString &run_label, const TString &plot_subdir, Bool_t save_plot=kTRUE)
Double_t Median (std::vector< Float_t > &v)
Double_t InterquartileRange (std::vector< Float_t > &v)
Bool_t FitBeamPeakGaussian (const std::vector< Float_t > &v, const TString &fname, Double_t &peak_adc, Double_t &sigma_adc, TF1 *&fit_out)
Bool_t FitGaussianMuSigma (const std::vector< Float_t > &v, const TString &fname, Double_t &mu, Double_t &sigma)
void CollectAnchorSamplesOneSubfile (const FileSpec &spec, const std::vector< ChannelCal > &chans, const BeamFit2D gate[18], std::vector< std::vector< Float_t > > &samples, StripPairSamples pairs[18])
Bool_t TheilSenLine (const std::vector< Double_t > &x, const std::vector< Double_t > &y, Double_t &slope, Double_t &intercept)
Double_t RidgeShortAnchor (const std::vector< Float_t > &v_short, const std::vector< Float_t > &v_long, Double_t c_long, Double_t &slope_out, Double_t &intercept_out, RidgeFit *dbg=nullptr)
void SaveRidgeFitPlots (const StripPairSamples pairs[18], const RidgeFit dbg[18], const TString &plot_subdir)
Double_t GmFindPeak (const std::vector< Float_t > &v, Double_t lo, Double_t hi, Double_t skip_frac)
void ComputeLRGainMatch (std::vector< ChannelCal > &chans, const StripPairSamples pairs[18], const TString &plot_subdir)
void ReduceToAnchors (std::vector< ChannelCal > &chans, std::vector< std::vector< Float_t > > &samples, std::vector< TF1 * > &fits_out, const TString &run_label, const StripPairSamples pairs[18], const TString &plot_subdir)
void WriteEresTomlRaw (const TString &out_subpath, const Double_t eres_vals[35])
void WriteCalibrationTree (TFile *dst, const std::vector< ChannelCal > &chans, const StripAlignmentResult *align)
void SaveBeamPeakChannelHistograms (const std::vector< ChannelCal > &chans, const std::vector< std::vector< Float_t > > &samples, const std::vector< TF1 * > &fits, const TString &plot_subdir)
void WriteCalibrationToEvents (const FileSpec &spec, const std::vector< ChannelCal > &chans, const StripAlignmentResult *align)
void SaveDynamicRangeOverlay (const FileSpec &spec, const std::vector< ChannelCal > &chans, const TString &plot_subdir, const TString &file_label)
void DeriveBeamEnergyWindow (const std::vector< ChannelCal > &chans, StripAlignmentResult &align)
StripAlignmentResult FindStripCentroidAlignment (const FileSpec &spec, const TString &plot_subdir, const TString &file_label)

Variables

const Int_t kMaxChannels = 35
const Long64_t kMinSamples = 200
const Long64_t kSampleCap = 20000
const Long64_t kPairCap = 100000
const Int_t kGmBins = 512
const Double_t kRidgeShortMaxFrac
const Double_t kRidgeBandLo = 0.30
const Double_t kRidgeBandHi = 1.45
const Int_t kRidgeSlices = 60
const Long64_t kRidgeMinPerSlice = 200
const Long64_t kRidgeNoiseFloor = 20
const Int_t kRidgeMinPts = 6
const Double_t kRidgeRatioLo = 0.30
const Double_t kRidgeRatioHi = 3.00
const Double_t kGmEsumLo = 0.8
const Double_t kGmEsumHi = 2.5

Function Documentation

◆ ApplyCal()

Double_t ApplyCal ( const ChannelCal & c,
Double_t adc )
inline

Definition at line 98 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::SaveCalibSampleOverlay().

◆ ChannelToEresIndex()

Int_t ChannelToEresIndex ( const ChannelCal & c)

Definition at line 59 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::AggregateEresTomlForRun().

◆ CollectAnchorSamplesOneSubfile()

void CollectAnchorSamplesOneSubfile ( const FileSpec & spec,
const std::vector< ChannelCal > & chans,
const BeamFit2D gate[18],
std::vector< std::vector< Float_t > > & samples,
StripPairSamples pairs[18] )

Definition at line 493 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ ComputeLRGainMatch()

void ComputeLRGainMatch ( std::vector< ChannelCal > & chans,
const StripPairSamples pairs[18],
const TString & plot_subdir )

Definition at line 941 of file CalibrateBeam.cpp.

Referenced by ReduceToAnchors().

◆ DeriveBeamEnergyWindow()

void DeriveBeamEnergyWindow ( const std::vector< ChannelCal > & chans,
StripAlignmentResult & align )

Definition at line 1543 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ FindBeamGateStrips()

BeamFit2D FindBeamGateStrips ( const FileSpec & spec,
Int_t sx,
Int_t sy,
const TString & run_label,
const TString & plot_subdir,
Bool_t save_plot = kTRUE )

Definition at line 106 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ FindStripCentroidAlignment()

StripAlignmentResult FindStripCentroidAlignment ( const FileSpec & spec,
const TString & plot_subdir,
const TString & file_label )

Definition at line 1571 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ FitBeamPeakGaussian()

Bool_t FitBeamPeakGaussian ( const std::vector< Float_t > & v,
const TString & fname,
Double_t & peak_adc,
Double_t & sigma_adc,
TF1 *& fit_out )

Definition at line 357 of file CalibrateBeam.cpp.

Referenced by ReduceToAnchors().

◆ FitGaussianMuSigma()

Bool_t FitGaussianMuSigma ( const std::vector< Float_t > & v,
const TString & fname,
Double_t & mu,
Double_t & sigma )

Definition at line 438 of file CalibrateBeam.cpp.

◆ Gain()

◆ GatePartner()

Int_t GatePartner ( Int_t s)
inline

◆ GmFindPeak()

Double_t GmFindPeak ( const std::vector< Float_t > & v,
Double_t lo,
Double_t hi,
Double_t skip_frac )

Definition at line 913 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ InterquartileRange()

Double_t InterquartileRange ( std::vector< Float_t > & v)
inline

Definition at line 268 of file CalibrateBeam.cpp.

Referenced by ReduceToAnchors().

◆ IsBeamdEChannel()

Bool_t IsBeamdEChannel ( const ChannelCal & c)

Definition at line 75 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::SaveCalibSampleOverlay().

◆ IsCalibrated()

◆ LongSide()

◆ MakeBeamPeakHist()

TH1F * MakeBeamPeakHist ( const TString & name,
const TString & title,
const std::vector< Float_t > & v,
Double_t mode,
Double_t sigma )

Definition at line 329 of file CalibrateBeam.cpp.

Referenced by FitBeamPeakGaussian(), and SaveBeamPeakChannelHistograms().

◆ Median()

Double_t Median ( std::vector< Float_t > & v)
inline

Definition at line 253 of file CalibrateBeam.cpp.

Referenced by ReduceToAnchors().

◆ ReduceToAnchors()

void ReduceToAnchors ( std::vector< ChannelCal > & chans,
std::vector< std::vector< Float_t > > & samples,
std::vector< TF1 * > & fits_out,
const TString & run_label,
const StripPairSamples pairs[18],
const TString & plot_subdir )

Definition at line 1145 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ ResolutionFWHMPercent()

Double_t ResolutionFWHMPercent ( const ChannelCal & c)

Definition at line 91 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ RidgeShortAnchor()

Double_t RidgeShortAnchor ( const std::vector< Float_t > & v_short,
const std::vector< Float_t > & v_long,
Double_t c_long,
Double_t & slope_out,
Double_t & intercept_out,
RidgeFit * dbg = nullptr )

Definition at line 733 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ RobustPeakSeed()

void RobustPeakSeed ( const std::vector< Float_t > & v,
Double_t & mode,
Double_t & sigma )

◆ SaveBeamPeakChannelHistograms()

void SaveBeamPeakChannelHistograms ( const std::vector< ChannelCal > & chans,
const std::vector< std::vector< Float_t > > & samples,
const std::vector< TF1 * > & fits,
const TString & plot_subdir )

Definition at line 1330 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ SaveDynamicRangeOverlay()

void SaveDynamicRangeOverlay ( const FileSpec & spec,
const std::vector< ChannelCal > & chans,
const TString & plot_subdir,
const TString & file_label )

Definition at line 1387 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ SaveRidgeFitPlots()

void SaveRidgeFitPlots ( const StripPairSamples pairs[18],
const RidgeFit dbg[18],
const TString & plot_subdir )

Definition at line 860 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ StripTotalAdc()

Double_t StripTotalAdc ( const UShort_t * l,
const UShort_t * r,
Int_t s )
inline

Definition at line 7 of file CalibrateBeam.cpp.

Referenced by CollectAnchorSamplesOneSubfile(), and FindBeamGateStrips().

◆ TheilSenLine()

Bool_t TheilSenLine ( const std::vector< Double_t > & x,
const std::vector< Double_t > & y,
Double_t & slope,
Double_t & intercept )

Definition at line 697 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor().

◆ WriteCalibrationToEvents()

void WriteCalibrationToEvents ( const FileSpec & spec,
const std::vector< ChannelCal > & chans,
const StripAlignmentResult * align )

Definition at line 1367 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile().

◆ WriteCalibrationTree()

void WriteCalibrationTree ( TFile * dst,
const std::vector< ChannelCal > & chans,
const StripAlignmentResult * align )

Definition at line 1249 of file CalibrateBeam.cpp.

Referenced by WriteCalibrationToEvents().

◆ WriteEresTomlRaw()

void WriteEresTomlRaw ( const TString & out_subpath,
const Double_t eres_vals[35] )

Definition at line 1210 of file CalibrateBeam.cpp.

Referenced by CalibrateBeam::AggregateEresTomlForRun().

Variable Documentation

◆ kGmBins

const Int_t kGmBins = 512

Definition at line 645 of file CalibrateBeam.cpp.

Referenced by GmFindPeak().

◆ kGmEsumHi

const Double_t kGmEsumHi = 2.5

Definition at line 671 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ kGmEsumLo

const Double_t kGmEsumLo = 0.8

Definition at line 670 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ kMaxChannels

const Int_t kMaxChannels = 35

◆ kMinSamples

◆ kPairCap

const Long64_t kPairCap = 100000

Definition at line 21 of file CalibrateBeam.cpp.

Referenced by CollectAnchorSamplesOneSubfile().

◆ kRidgeBandHi

const Double_t kRidgeBandHi = 1.45

Definition at line 659 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor().

◆ kRidgeBandLo

const Double_t kRidgeBandLo = 0.30

Definition at line 658 of file CalibrateBeam.cpp.

◆ kRidgeMinPerSlice

const Long64_t kRidgeMinPerSlice = 200

Definition at line 661 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor().

◆ kRidgeMinPts

const Int_t kRidgeMinPts = 6

Definition at line 665 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor().

◆ kRidgeNoiseFloor

const Long64_t kRidgeNoiseFloor = 20

Definition at line 664 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor().

◆ kRidgeRatioHi

const Double_t kRidgeRatioHi = 3.00

Definition at line 669 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ kRidgeRatioLo

const Double_t kRidgeRatioLo = 0.30

Definition at line 668 of file CalibrateBeam.cpp.

Referenced by ComputeLRGainMatch().

◆ kRidgeShortMaxFrac

const Double_t kRidgeShortMaxFrac
Initial value:
=
0.5

Definition at line 656 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor(), and SaveRidgeFitPlots().

◆ kRidgeSlices

const Int_t kRidgeSlices = 60

Definition at line 660 of file CalibrateBeam.cpp.

Referenced by RidgeShortAnchor().

◆ kSampleCap

const Long64_t kSampleCap = 20000

Definition at line 16 of file CalibrateBeam.cpp.

Referenced by CollectAnchorSamplesOneSubfile().