11#include <framework/database/DBArray.h>
12#include <framework/database/DBObjPtr.h>
13#include <dqm/core/DQMHistAnalysis.h>
27#include <cdc/geometry/CDCGeometryPar.h>
28#include <cdc/geometry/CDCGeometryParConstants.h>
42 constexpr std::array<int, 9>
slindex = { 8, 14, 20, 26, 32, 38, 44, 50, 56 };
69 void event()
override final;
74 void endRun()
override final;
84 static void getHistStyle(TH1F*& htemp,
const std::string& label,
double max)
86 gStyle->SetOptStat(
"ne");
87 if (strcmp(label.data(),
"adc") == 0)htemp->GetYaxis()->SetRangeUser(max * 0.25, max * 2.25);
88 else if (strcmp(label.data(),
"tdc") == 0)htemp->GetYaxis()->SetRangeUser(max * 0.90, max * 1.10);
105 static void fillEffiTH2Poly(TH2F* hist, TH2Poly* attached, TH2Poly* expected, TH2Poly* efficiency) ;
110 void fillEffiTH2(TH2F* hist, TH2F* attached, TH2F* expected, TH2F* efficiency) ;
TCanvas * m_canv_effphi
canvas for tracking efficiency
TLine * m_line_ltdc_sl28
line for lower TDC window for SL2-8
double m_maxtdc_sl28
max tdc median threshold accepted for SL2-8
void initialize() override final
Initialize the Module.
TH1F * m_hist_wire_attach_eff_1d
for above
TH1D * m_hist_crphi
for above
double m_secondEffBoundary
The second boundary of the efficiency range.
TH1D * m_hist_skimphi[8]
for above
int m_minevt
min events for single intra-run point
std::string m_hname_idxphi
Phi Inedx histogram names.
static void fillEffiTH2Poly(TH2F *hist, TH2Poly *attached, TH2Poly *expected, TH2Poly *efficiency)
Populate the efficiency histograms.
TH1D * m_hists_bADC[kNumBoards]
ADC histograms with track associated hits for each board (0-299)
double m_mintdc_sl01
min tdc median threshold accepted for SL0-1
static TH2Poly * createEffiTH2Poly(const TString &name, const TString &title)
Convenient function to create a TH2Poly based on CDC geometry.
double m_maxadc_sl28
max adc median threshold accepted for SL2-8
std::string m_hname_hitsphi
Phi Hits histogram names.
double m_phiwarn
5% warn thershold for phi differences
TLine * m_line_ladc_sl01
line for lower ADC window for SL0-1
std::string m_name_dir
histogram dir
static float getHistMedian(TH1 *h)
Get median of given histogram.
static void getHistStyle(TH1F *&htemp, const std::string &label, double max)
get histogram styles
std::string m_histoTrackingWireEff
Wire Eff histogram names.
TFile * m_fileRefPhi
reference histogram file point
TCanvas * m_canv_md_ladc
canvas for adc layer median
double m_mintdc_sl28
min tdc median threshold accepted for SL2-8
double m_phialarm
15% alarm thershold for phi differences
TLine * m_line_ltdc_sl01
line for lower TDC window for SL0-1
std::string m_hname_effphi
Phi Eff histogram names.
TCanvas * m_canv_tdc
canvas for tdc board median
double m_maxadc_sl01
max adc median threshold accepted for SL0-1
TH1F * m_hist_adc
for above
TLine * m_line_hadc_sl01
line for higher ADC window for SL0-1
TH2F * m_histref_phiindex
for above
TH1F * m_hist_tdc
for above
double m_lbinEdges[kNumLayers+1]
vector for radius edge 56
MonitoringObject * m_monObj
monitoring object
double m_minadc_sl28
min adc median threshold accepted for SL2-8
TLine * m_line_htdc_sl01
line for higher TDC window for SL0-1
std::string m_fname_refphi
reference file of phi histogram
void terminate() override final
Termination action.
std::string m_name_pvpfx
Prefix of PVs.
void event() override final
intra-run actions (EPICC PVs).
std::vector< TLine * > m_lines
number of CDC layer lines
std::string m_hname_ladc
Layer ADC histogram names.
TH1D * m_hists_lADC[kNumLayers]
ADC histograms with track associated hits for each board (0-299)
bool m_doTH2PolyTrackingWireEff
If true, creates TH2Poly instead of TH2F for TrackingWireEff Histos.
double m_minphibinsfrac
min phi diff fraction for alarms
TH2Poly * m_hist_attach_eff_Poly[3]
for above
TH1D * m_hist_effphi
for above
double m_firstEffBoundary
The first boundary of the efficiency range.
double m_maxtdc_sl01
max tdc median threshold accepted for SL0-1
std::string m_name_refdir
reference histogram dir
void endRun() override final
End-of-run action.
TH1D * m_hist_refphi
for above
TCanvas * m_canv_hitsphi
expert canvas for hits vs phi
void beginRun() override final
Called when entering a new run.
TLine * m_line_htdc_sl28
line for higher TDC window for SL2-8
TH1D * m_hists_bTDC[kNumBoards]
TDC histograms with track associated hits for each board (0-299)
double m_minadc_sl01
min adc median threshold accepted for SL0-1
TLine * m_line_hadc_sl28
line for higher ADC window for SL2-8
TCanvas * m_canv_crphi
canvas for control shifter phi
TCanvas * m_canv_skimphi[8]
canvas for various phi distribution
TCanvas * m_canv_adc
canvas for adc board median
TCanvas * m_canv_attach_eff[4]
canvas for layer efficiency
TH2F * m_hist_attach_eff[3]
for above
TH1F * m_histmd_ladc
for above
DQMHistAnalysisCDCEpicsModule()
Constructor.
TLine * m_line_ladc_sl28
line for lower ADC window for SL2-8
std::string m_hname_btdc
Board TDC histogram names.
std::string m_hname_badc
Board ADC histogram names.
void fillEffiTH2(TH2F *hist, TH2F *attached, TH2F *expected, TH2F *efficiency)
Populate the efficiency histograms.
DQMHistAnalysisModule()
Constructor / Destructor.
MonitoringObject is a basic object to hold data for the run-dependency monitoring Run summary TCanvas...
constexpr unsigned kNumLayers
const CDC numbers for layers, boards and super layers
constexpr unsigned kNumBoards
Total number of CDC Boards.
constexpr std::array< int, 9 > slindex
Index (layer number) of the 9 super-layers in the CDC.
Abstract base class for different kinds of events.