Belle II Software development
TOPLaserHitSelectorModule.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <framework/core/HistoModule.h>
12
13#include <TH2.h>
14
15namespace Belle2 {
24 enum { c_NChannelPerAsic = 8, c_NModule = 16, c_NChannelPerPMT = 16,
25 c_NChannelPerPMTRow = 4, c_NPMTPerRow = 16,
26 c_NPMTPerModule = 32, c_NPixelPerRow = 64, c_NPixelPerModule = 512
27 };
28
33
34 public:
35
39 typedef struct {
40 float m_time;
41 float m_height;
42 } hitInfo_t;
43
48
53
58 virtual void initialize() override;
59
64 virtual void beginRun() override;
65
69 virtual void event() override;
70
75 virtual void endRun() override;
76
81 virtual void terminate() override;
82
86 virtual void defineHisto() override;
87
88 private:
89
90 TH2F* m_TimeHeightHistogramForFit[c_NPixelPerModule *
91 c_NModule] = {0};
92 TH2F* m_TimeHeightHistogramForHitRate[c_NPixelPerModule *
93 c_NModule] = {0};
94 TH2F* m_TimeIntegralHistogramForFit[c_NPixelPerModule *
95 c_NModule] = {0};
97 0;
100 std::vector<int>
102 std::vector<int>
105 bool m_useDoublePulse = true;
107 300;
109 100;
115 };
116
118} //namespace Belle2
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Module for pixel-by-pixel gain/efficiency analysis.
bool m_useDoublePulse
set true when you require both of double calibration pulses for reference timing
float m_calibrationPulseInterval
nominal DeltaT value (time interval of two calibration signals) in a unit of ns
float m_calibrationPulseIntervalRange
tolerable shift of DeltaT from its nominal before calibration in a unit of ns
float m_calibrationPulseThreshold2
minimum pulse height for the secon calibration pulse to be qualified as calibration signals
std::vector< int > m_timeHistogramBinning
histogram binning of hit timing distribution, in the order of number of bins, lower limit,...
TH2F * m_TimeHeightHistogramForFit[c_NPixelPerModule *c_NModule]
array of histogram pointer to 2D histogram of hit timing vs pulse height distribution for each pixel ...
std::vector< int > m_chargeHistogramBinning
histogram binning of pulse height distribution, in the order of number of bins, lower limit,...
bool m_includePrimaryChargeShare
set true when you require without chargeshare cut for making 2D histogram
TH2F * m_TimeHeightHistogramForHitRate[c_NPixelPerModule *c_NModule]
array of histogram pointer to 2D histogram of hit timing vs pulse height distribution for each pixel ...
TH2F * m_TimeIntegralHistogramForFit[c_NPixelPerModule *c_NModule]
array of histogram pointer to 2D histogram of hit timing vs integral distribution for each pixel (all...
float m_calibrationPulseThreshold1
minimum pulse height for the first calibration pulse to be qualified as calibration signals
bool m_includeAllChargeShare
set true when you require without chargeshare cut for making 2D histogram
int m_windowSelect
select window number is [All=0, Odd=2, Even=1]
TH1F * m_nCalPulseHistogram
histogram to store the number of events with calibration pulse(s) identified for each asic (1,...
virtual void initialize() override
Initialize the Module.
virtual void event() override
Event processor.
virtual void endRun() override
End-of-run action.
virtual void terminate() override
Termination action.
virtual void beginRun() override
Called when entering a new run.
virtual void defineHisto() override
create timing-height 2D histograms for all 8192 pixels
Abstract base class for different kinds of events.
structure to hold hit information, used in double cal.