Belle II Software development
ECLShowerCorrectorModule.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/Module.h>
12#include <framework/database/DBObjPtr.h>
13#include <framework/datastore/StoreArray.h>
14#include <ecl/dbobjects/ECLnOptimal.h>
15#include <mdst/dataobjects/EventLevelClusteringInfo.h>
16#include <TH2F.h>
17
18namespace Belle2 {
24 class ECLShower;
25
26 namespace ECL {
28 }
29
32
33 public:
36
41
44
46 virtual void initialize() override;
47
49 virtual void beginRun() override;
50
52 virtual void event() override;
53
55 virtual void endRun() override;
56
58 virtual void terminate() override;
59
60 private:
61
64
67
70
75
76 //..Parameters derived from payload (except for nThetaID & nLeakReg, which are fixed)
77 const unsigned int nThetaID = 69;
78 static constexpr unsigned int nLeakReg = 3;
79 int nPositionBins = 0;
80 int nXBins = 0;
81 int nEnergies = 0;
82 std::vector< std::vector<float> > leakLogE;
83
86 TH2F m_bias;
89
90 public:
92
94 virtual const char* eclShowerArrayName() const
95 { return "ECLShowers" ; }
96
97 };
98
101 public:
102
104 virtual const char* eclShowerArrayName() const override
105 { return "ECLShowersPureCsI" ; }
106
107 };
108
110} // end of Belle2 namespace
Class for accessing objects in the database.
Definition DBObjPtr.h:21
DB object to store leakage corrections, including nCrys dependence.
static constexpr unsigned int nLeakReg
0 = forward, 1 = barrel, 2 = backward
virtual const char * eclShowerArrayName() const
We need names for the data objects to differentiate between PureCsI and default.
TH2F m_logPeakEnergy
log of peak energy (GeV) contained in nOptimal crystals
TH2F phiCorrection
histogram of phi-dependent corrections
StoreArray< ECLShower > m_eclShowers
Store array: ECLShower.
virtual void initialize() override
Initialize.
const unsigned int nThetaID
69 thetaIDs
virtual void endRun() override
End run.
int nEnergies
number of energies for which there are leakage corrections
TH2F m_bias
2D histogram of bias = sum of ECLCalDigit energy minus true (GeV)
virtual void terminate() override
Terminate.
TH2F thetaCorrection
histogram of theta-dependent corrections
std::vector< std::vector< float > > leakLogE
log(E) values for each region
int nXBins
number of thetaID x energy bins
TH2F m_peakFracEnergy
2D histogram of peak fractional contained energy
ECLShowerCorrectorModule(const ECLShowerCorrectorModule &)=delete
Copy constructor (disabled).
DBObjPtr< ECLnOptimal > m_eclNOptimal
nOptimal payload: bias from beam background, and correction from number of crystals
virtual void beginRun() override
Begin run.
DBObjPtr< ECLLeakageCorrections > m_eclLeakageCorrections
Leakage correction from database: leakage correction as a function of position.
ECL::ECLLeakagePosition * m_leakagePosition
location of cluster; cellID and position within the crystal
int nPositionBins
number of locations across crystal
StoreObjPtr< EventLevelClusteringInfo > m_eventLevelClusteringInfo
EventLevelClusteringInfo.
ECLShowerCorrectorModule & operator=(const ECLShowerCorrectorModule &)=delete
Operator = (disabled).
The very same module but for PureCsI.
virtual const char * eclShowerArrayName() const override
PureCsI name ECLShowersPureCsI.
Class to store ECL Showers.
Definition ECLShower.h:30
Class to get position information for a cluster for leakage corrections.
Module()
Constructor.
Definition Module.cc:30
Accessor to arrays stored in the data store.
Definition StoreArray.h:113
Type-safe access to single objects in the data store.
Definition StoreObjPtr.h:96
Abstract base class for different kinds of events.