Belle II Software  release-06-02-00
eclMuMuECollectorModule.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 //Calibration
12 #include <calibration/CalibrationCollectorModule.h>
13 
14 //ECL
15 #include <framework/database/DBObjPtr.h>
16 #include <framework/datastore/StoreArray.h>
17 
18 namespace Belle2 {
24  class ECLDigit;
25  class Track;
26  class ECLCrystalCalib;
27  class ECLCluster;
28  class EventMetaData;
29  class TRGSummary;
30 
31  namespace ECL {
32  class ECLNeighbours;
33  }
34 
37 
38  public:
39 
42 
44  void prepare() override;
45 
47  void collect() override;
48 
49  private:
50 
52  double m_minPairMass{9.0};
53  double m_minTrackLength{30.0};
54  double m_MaxNeighbourE{0.010};
55  double m_thetaLabMinDeg{17.0};
56  double m_thetaLabMaxDeg{150.0};
57  bool m_measureTrueEnergy{false};
58  bool m_requireL1{true};
61  int firstcellIDN4 = 1009;
62  int lastcellIDN4 = 7920;
75  double cotThetaLabMin{0.0};
76  double cotThetaLabMax{0.0};
77  int iEvent = 0;
78  std::vector<float> EperCrys;
82  std::vector<float> ExpMuMuE;
86  std::vector<float> ElectronicsCalib;
90  std::vector<float> MuMuECalib;
94  std::vector<float> CrystalEnergy;
96  };
98 }
Calibration collector module base class.
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
Class to get the neighbours for a given cell id.
Definition: ECLNeighbours.h:23
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:95
Calibration collector module that uses muon pairs to do ECL single crystal energy calibration.
StoreArray< ECLDigit > m_eclDigitArray
Required input array of eclDigits.
double m_MaxNeighbourE
maximum signal allowed in a neighbouring crystal (0.010 GeV)
bool m_requireL1
require events to satisfy a level 1 trigger (true)
DBObjPtr< ECLCrystalCalib > m_ECLExpMuMuE
Expected energies from database.
double m_minTrackLength
minimum extrapolated track length in the crystal (30 cm)
ECL::ECLNeighbours * myNeighbours8
class to return 8 nearest neighbours to crystal
StoreArray< ECLCluster > m_eclClusterArray
Required input array of ECLClusters.
StoreObjPtr< TRGSummary > m_TRGResults
DataStore TRGSummary.
std::vector< float > ExpMuMuE
vector obtained from DB object
std::vector< float > EperCrys
ECL digit energy for each crystal.
double cotThetaLabMin
Some other useful quantities.
void collect() override
Select events and crystals and accumulate histograms.
double m_minPairMass
Parameters to control the job.
StoreObjPtr< EventMetaData > m_evtMetaData
DataStore EventMetaData.
std::vector< float > ElectronicsCalib
vector obtained from DB object
int firstcellIDN4
Neighbours of each ECL crystal.
DBObjPtr< ECLCrystalCalib > m_CrystalEnergy
Existing single single calibration from DB is used to find expected E.
int lastcellIDN4
last cellID where we only need 4 neighbours
void prepare() override
Define histograms and read payloads from DB.
ECL::ECLNeighbours * myNeighbours4
class to return 4 nearest neighbours to crystal
double m_thetaLabMaxDeg
maximum muon theta in lab (150 degrees)
double m_thetaLabMinDeg
miniumum muon theta in lab (17 degrees)
std::vector< float > CrystalEnergy
vector obtained from DB object
std::vector< float > MuMuECalib
vector obtained from DB object
DBObjPtr< ECLCrystalCalib > m_MuMuECalib
Existing single muon pair calibration from DB; will be updated by CAF.
DBObjPtr< ECLCrystalCalib > m_ElectronicsCalib
Electronics calibration from database.
eclMuMuECollectorModule()
Constructor: Sets the description, the properties and the parameters of the module.
bool m_measureTrueEnergy
use eclCalDigit to determine MC deposited energy (false)
double cotThetaLabMax
m_thetaLabMaxDeg converted to cotangent
StoreArray< Track > m_trackArray
Required arrays.
Abstract base class for different kinds of events.