Belle II Software  release-05-01-25
BKLMHit2d.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leo Piilonen *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 /* Own header. */
12 #include <klm/dataobjects/bklm/BKLMHit2d.h>
13 
14 /* KLM headers. */
15 #include <klm/dataobjects/bklm/BKLMHit1d.h>
16 
17 /* Belle 2 headers. */
18 #include <framework/logging/Logger.h>
19 
20 using namespace Belle2;
21 
22 // empty constructor for ROOT - do not use this
25  m_ModuleID(0),
26  m_ZStrips(0),
27  m_GlobalPosition{0, 0, 0},
28  m_Time(0.0),
29  m_EnergyDeposit(0.0)
30 {
31 }
32 
33 // Constructor with orthogonal 1D hits
34 BKLMHit2d::BKLMHit2d(const BKLMHit1d* hitPhi, const BKLMHit1d* hitZ, const CLHEP::Hep3Vector& globalPos, double time) :
36 {
37  m_ModuleID = hitPhi->getModuleID() | (hitZ->getModuleID() & BKLM_STATUS_MASK);
38  m_ZStrips = ((hitZ->getStripMin() - 1) << BKLM_ZSTRIP_BIT) | ((hitZ->getStripMax() - 1) << BKLM_ZMAXSTRIP_BIT);
39 
41  B2WARNING("Attempt to form a 2D hit from distinct-module 1D hits");
42  }
43 
44  m_GlobalPosition[0] = globalPos.x();
45  m_GlobalPosition[1] = globalPos.y();
46  m_GlobalPosition[2] = globalPos.z();
47  m_Time = time;
49 
50  addRelationTo(hitPhi);
51  addRelationTo(hitZ);
52 }
53 
54 // Copy constructor
56  RelationsObject(h),
57  m_ModuleID(h.m_ModuleID),
58  m_ZStrips(h.m_ZStrips),
59  m_Time(h.m_Time),
60  m_EnergyDeposit(h.m_EnergyDeposit)
61 {
62  m_GlobalPosition[0] = h.m_GlobalPosition[0];
63  m_GlobalPosition[1] = h.m_GlobalPosition[1];
64  m_GlobalPosition[2] = h.m_GlobalPosition[2];
65 }
66 
67 // Assignment operator
69 {
70  m_ModuleID = h.m_ModuleID;
71  m_ZStrips = h.m_ZStrips;
72  m_Time = h.m_Time;
73  m_EnergyDeposit = h.m_EnergyDeposit;
74  m_GlobalPosition[0] = h.m_GlobalPosition[0];
75  m_GlobalPosition[1] = h.m_GlobalPosition[1];
76  m_GlobalPosition[2] = h.m_GlobalPosition[2];
77  return *this;
78 }
Belle2::BKLMHit2d::m_ModuleID
int m_ModuleID
detector-module identifier
Definition: BKLMHit2d.h:250
Belle2::BKLMHit1d
Store one reconstructed BKLM 1D hit as a ROOT object.
Definition: BKLMHit1d.h:39
Belle2::BKLMHit2d::m_Time
float m_Time
reconstructed hit time relative to trigger (ns)
Definition: BKLMHit2d.h:260
Belle2::BKLMHit2d::operator=
BKLMHit2d & operator=(const BKLMHit2d &)
Assignment operator.
Definition: BKLMHit2d.cc:68
Belle2::RelationsInterface::addRelationTo
void addRelationTo(const RelationsInterface< BASE > *object, float weight=1.0, const std::string &namedRelation="") const
Add a relation from this object to another object (with caching).
Definition: RelationsObject.h:144
Belle2::BKLMHit2d::m_ZStrips
int m_ZStrips
z-measuring strip numbers of the 2D hit
Definition: BKLMHit2d.h:254
Belle2::BKLMHit2d::BKLMHit2d
BKLMHit2d()
Empty constructor for ROOT IO (needed to make the class storable)
Definition: BKLMHit2d.cc:23
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::BKLMElementNumbers::hitsFromSameModule
static bool hitsFromSameModule(int module1, int module2)
Check whether the hits are from the same module.
Definition: BKLMElementNumbers.h:399
Belle2::BKLMHit2d::m_GlobalPosition
float m_GlobalPosition[3]
position of the 2D hit in global coordinates (cm)
Definition: BKLMHit2d.h:257
Belle2::BKLMHit2d::m_EnergyDeposit
float m_EnergyDeposit
reconstructed pulse height (MeV)
Definition: BKLMHit2d.h:263
Belle2::BKLMHit1d::getEnergyDeposit
float getEnergyDeposit() const
Get energy deposition.
Definition: BKLMHit1d.h:142
Belle2::BKLMHit2d::BKLM_ZSTRIP_BIT
static constexpr int BKLM_ZSTRIP_BIT
BKLMHit2d Zstrips bit position for strip-1 [0..47].
Definition: BKLMHit2d.h:237
Belle2::BKLMHit1d::getStripMin
int getStripMin() const
Get lowest strip number of this 1D hit.
Definition: BKLMHit1d.h:106
Belle2::BKLMHit1d::getModuleID
int getModuleID() const
Get detector-module identifier.
Definition: BKLMHit1d.h:128
Belle2::RelationsInterface
Defines interface for accessing relations of objects in StoreArray.
Definition: RelationsObject.h:102
Belle2::BKLMHit2d
Store one BKLM strip hit as a ROOT object.
Definition: BKLMHit2d.h:42
Belle2::BKLMHit2d::BKLM_ZMAXSTRIP_BIT
static constexpr int BKLM_ZMAXSTRIP_BIT
BKLMHit2d Zstrips bit position for maxStrip-1 [0..47].
Definition: BKLMHit2d.h:240
Belle2::BKLMHit1d::getStripMax
int getStripMax() const
Get highest strip number of this 1D hit.
Definition: BKLMHit1d.h:113