Belle II Software  release-08-01-10
ARICHDQMModule.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 <TH1F.h>
14 #include <TH2F.h>
15 #include <TH3F.h>
16 
17 #include <framework/datastore/StoreArray.h>
18 #include <framework/database/DBObjPtr.h>
19 #include <rawdata/dataobjects/RawFTSW.h>
20 
21 #include <arich/dbobjects/ARICHGeometryConfig.h>
22 #include <arich/dbobjects/ARICHMergerMapping.h>
23 
24 namespace Belle2 {
29  class ARICHHit;
30  class ARICHDigit;
31  class ARICHTrack;
32  class ARICHLikelihood;
33 
40  class ARICHDQMModule : public HistoModule {
41 
42  public:
43 
48 
52  virtual ~ARICHDQMModule();
53 
58  virtual void initialize() override;
59 
60  virtual void defineHisto() override;
61 
66  virtual void beginRun() override;
67 
71  virtual void event() override;
72 
77  virtual void endRun() override;
78 
79  protected:
80  bool m_debug;
83  int m_maxHits;
84  int m_minHits;
86  //Histograms to show status by 1/0
87  TH1* h_chStat = NULL;
88  TH1* h_aeroStat = NULL;
90  //Hitograms to show the data quality
91  TH1* h_chDigit = NULL;
92  TH1* h_chipDigit = NULL;
93  TH1* h_hapdDigit = NULL;
94  TH1* h_chHit = NULL;
95  TH1* h_chipHit = NULL;
96  TH1* h_hapdHit = NULL;
97  TH1* h_mergerHit = NULL;
98  TH2* h_bitsPerMergerNorm =
99  NULL;/*<The number of hits in each bit in each Merger Board normalised to number of HAPDs and sum(bit1, bit2)>*/
100  TH2* h_bitsPerHapdMerger = NULL;/*<The number of hits in each bit in each HAPD sorted by Merger Board>*/
101  TH1* h_secHapdHit[6] = {};
102  TH2* h_hapdHitPerEvent = NULL;
103  TH1* h_aerogelHit = NULL;
104  TH1* h_bits = NULL;
105  TH2* h_bitsPerChannel = NULL;
106  TH2* h_hitsPerTrack2D = NULL;
107  TH2* h_tracks2D = NULL;
108  TH3* h_aerogelHits3D = NULL;
109  TH3* h_mirrorThetaPhi = NULL;
110  TH2* h_thetaPhi = NULL;
111  TH1* h_hitsPerEvent = NULL;
112  TH1* h_theta = NULL;
113  TH1* h_hitsPerTrack = NULL;
114  TH1* h_trackPerEvent = NULL;
115  TH1* h_flashPerAPD = NULL;
117  TH1* h_secTheta[6] = {};
118  TH1* h_secHitsPerTrack[6] = {};
120  TH1* h_ARICHOccAfterInjLer = NULL;
121  TH1* h_ARICHOccAfterInjHer = NULL;
124  // dataobjects
127  //Monitoring parameters
128 
129  double m_momUpLim = 0;
130  double m_momDnLim = 0;
140  };
141 
143 } // Belle2 namespace
Make summary of data quality from reconstruction.
StoreArray< ARICHHit > m_arichHits
ARICHHits StoreArray.
TH1 * h_chipDigit
The number of raw digits in each ASIC chip.
StoreArray< ARICHDigit > m_arichDigits
ARICHDigits StoreArray.
TH2 * h_hitsPerTrack2D
Sum of 2D hit/track map on each position of track.
TH1 * h_chipHit
The number of hits in each ASIC chip.
DBObjPtr< ARICHMergerMapping > m_arichMergerMap
ARICH merger mapping payload.
int m_maxHits
exclude events with very large number of hits in arich
TH1 * h_ARICHEOccAfterInjHer
Histogram for Nr Entries (=Triggrs) for normalization after HER injection.
TH3 * h_aerogelHits3D
3D histogram of
int m_minHits
exclude events with number of hits lower than this
TH1 * h_flashPerAPD
Number of flashes in each APD.
TH1 * h_hitsPerTrack
Average hits/track calculated from h_hits2D and h_track2D.
StoreArray< ARICHTrack > m_arichTracks
ARICHTracks StoreArray.
TH1 * h_trackPerEvent
Number of tracks in ARICH per event (with p>0.5 GeV)
TH1 * h_ARICHOccAfterInjLer
Histogram Ndigits after LER injection.
StoreArray< RawFTSW > m_rawFTSW
Input array for DAQ Status.
TH1 * h_chDigit
The number of raw digits in each channel.
TH1 * h_aerogelHit
The number of reconstructed photons in each aerogel tiles.
TH1 * h_mergerHit
The number of hits in each Merger Boards.
double m_momDnLim
Lower momentum limit of tracks used in GeV (if set 0, no limit is applied)
double m_momUpLim
Upper momentum limit of tracks used in GeV (if set 0, no limit is applied)
TH1 * h_theta
Reconstructed Cherenkov angles.
TH2 * h_thetaPhi
cherenkov theta vs phi for non-mirror-reflected photons
TH1 * h_aeroStat
Status of each aerogel tiles.
TH1 * h_ARICHOccAfterInjHer
Histogram Ndigits after HER injection.
TH3 * h_mirrorThetaPhi
cherenkov theta vs phi for mirror reflected photons (for each mirror plate)
TH2 * h_hapdHitPerEvent
number of hits in each HAPD per event
TH1 * h_hapdDigit
The number of raw digits in each HAPD.
StoreArray< ARICHLikelihood > m_arichLikelihoods
ARICHLikelihoods StoreArray.
TH1 * h_chHit
The number of hits in each channel.
bool m_arichEvents
process only events that have extrapolated hit in arich
DBObjPtr< ARICHGeometryConfig > m_arichGeoConfig
ARICH Geometry configuration payload.
TH1 * h_chStat
Status of each channels.
TH1 * h_secHitsPerTrack[6]
Detailed average hits/track for each sector.
TH1 * h_hapdHit
The number of hits in each HAPD.
TH1 * h_ARICHEOccAfterInjLer
Histogram for Nr Entries (=Triggrs) for normalization after LER injection.
TH1 * h_secTheta[6]
Detailed view of Cherenkov angle for each sector.
TH1 * h_hitsPerEvent
Ihe number of all hits in each event.
TH2 * h_tracks2D
2D track distribution of whole ARICH
TH1 * h_secHapdHit[6]
The number of hits in each HAPDs of each sector.
TH1 * h_bits
Timing bits.
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
HistoModule.h is supposed to be used instead of Module.h for the modules with histogram definitions t...
Definition: HistoModule.h:29
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
ARICHDQMModule()
Constructor.
virtual void initialize() override
Initialize the Module.
virtual void event() override
Event processor.
virtual void endRun() override
End-of-run action.
virtual void beginRun() override
Called when entering a new run.
virtual ~ARICHDQMModule()
Destructor.
virtual void defineHisto() override
Function to define histograms.
Abstract base class for different kinds of events.