Belle II Software  release-08-01-10
BremHit.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/datastore/RelationsObject.h>
12 #include <tracking/dataobjects/RecoTrack.h>
13 #include <mdst/dataobjects/ECLCluster.h>
14 
15 #include <Math/Vector3D.h>
16 
17 namespace Belle2 {
24  class BremHit : public RelationsObject {
25  public:
29  BremHit() = default;
30 
42  BremHit(const RecoTrack* recoTrack, const ECLCluster* bremCluster, const ROOT::Math::XYZVector& position, double bremEnergy,
43  double clusterDistance, double acceptanceFactor) :
44  m_position(position),
45  m_positionRadius(position.Rho()),
46  m_bremEnergy(bremEnergy),
47  m_clusterDistance(clusterDistance),
48  m_acceptanceFactor(acceptanceFactor)
49  {
50  addRelationTo(recoTrack);
51  addRelationTo(bremCluster);
52  }
53 
55  void setPosition(const ROOT::Math::XYZVector& position) {m_position = position;}
56 
58  void setBremEnergy(const double bremEnergy) {m_bremEnergy = bremEnergy;}
59 
61  void setClusterDistance(const double distance) {m_clusterDistance = distance;}
62 
64  ROOT::Math::XYZVector getPosition() const
65  {
66  return m_position;
67  }
69  double getBremEnergy() const
70  {
71  return m_bremEnergy;
72  }
73 
75  double getClusterDistance() const
76  {
77  return m_clusterDistance;
78  }
79 
81  double getEffAcceptanceFactor() const
82  {
83  return m_acceptanceFactor;
84  }
85 
86  private:
88  ROOT::Math::XYZVector m_position;
89 
92 
94  double m_bremEnergy;
95 
98 
101 
104  };
106 }
A bremsstrahlung hit that correlates an ECLCluster with a RecoTrack.
Definition: BremHit.h:24
double m_clusterDistance
Angle difference between the extrapolation and the bremCluster position.
Definition: BremHit.h:97
ROOT::Math::XYZVector m_position
The radiation position.
Definition: BremHit.h:88
BremHit()=default
Empty constructor for root.
double m_bremEnergy
The radiated energy.
Definition: BremHit.h:94
double getEffAcceptanceFactor() const
Return the effective acceptance factor to find the BremHit.
Definition: BremHit.h:81
BremHit(const RecoTrack *recoTrack, const ECLCluster *bremCluster, const ROOT::Math::XYZVector &position, double bremEnergy, double clusterDistance, double acceptanceFactor)
Create a BremHit, with information about the energy and position of the radiation Automatically adds ...
Definition: BremHit.h:42
ClassDef(BremHit, 2)
Making this class a ROOT class.
double getClusterDistance() const
Return the angle difference between the extrapolation and the bremCluster position.
Definition: BremHit.h:75
double getBremEnergy() const
Return the radiated energy.
Definition: BremHit.h:69
double m_positionRadius
The radiation position radius.
Definition: BremHit.h:91
double m_acceptanceFactor
The acceptance factor which is needed to find the BremHit.
Definition: BremHit.h:100
void setPosition(const ROOT::Math::XYZVector &position)
Set the radiation position.
Definition: BremHit.h:55
void setClusterDistance(const double distance)
Set the distance between the extrapolation and the bremCluster position.
Definition: BremHit.h:61
ROOT::Math::XYZVector getPosition() const
Return the radiation position.
Definition: BremHit.h:64
void setBremEnergy(const double bremEnergy)
Set the radiated energy.
Definition: BremHit.h:58
ECL cluster data.
Definition: ECLCluster.h:27
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:79
Defines interface for accessing relations of objects in StoreArray.
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).
Abstract base class for different kinds of events.