Belle II Software  release-05-02-19
Segment.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jakob Lettenbichler *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/dataobjects/FullSecID.h>
13 
14 // C++-std:
15 #include <string>
16 
17 namespace Belle2 {
26  template<class HitType>
27  class Segment {
28  protected:
32  HitType* m_outerHit;
33 
35  HitType* m_innerHit;
36 
39 
42 
44  const std::int64_t m_identifier;
45 
46  public:
50  Segment():
51  m_outerHit(NULL),
52  m_innerHit(NULL),
55  m_identifier(-1)
56  {}
57 
58 
65  Segment(FullSecID::BaseType outerSector, FullSecID::BaseType innerSector, HitType* outerNode, HitType* innerNode):
66  m_outerHit(outerNode),
67  m_innerHit(innerNode),
68  m_outerSector(outerSector),
69  m_innerSector(innerSector),
70  m_identifier(static_cast<std::int64_t>(outerNode->getID()) << 32 | static_cast<std::int64_t>
71  (innerNode->getID())) // Use int TrackNode IDs to construct int Segment ID
72  {}
73 
77  bool operator==(const Segment& b) const
78  {
79  return (*getInnerHit() == *b.getInnerHit() and * getOuterHit() == *b.getOuterHit());
80  }
81 
83 
86  std::int64_t getID() const { return m_identifier; }
87 
89  std::string getName() const
90  {
91  if (m_identifier >= 0)
92  return "Out: " + m_outerHit->getName() + ")" + ",\nin: " + m_innerHit->getName();
93  else
94  return "Out: missing,\nin: missing";
95  }
96 
98  inline const HitType* getInnerHit() const { return m_innerHit; }
99 
100 
102  inline const HitType* getOuterHit() const { return m_outerHit; }
103 
104 
107 
108 
111  };
113 } //Belle2 namespace
Belle2::Segment::m_outerSector
FullSecID::BaseType m_outerSector
iD of sector carrying outer hit
Definition: Segment.h:46
Belle2::Segment::operator==
bool operator==(const Segment &b) const
************************* OPERATORS *************************
Definition: Segment.h:85
Belle2::Segment::getOuterHit
const HitType * getOuterHit() const
returns outer hit of current Segment
Definition: Segment.h:110
Belle2::Segment::m_innerHit
HitType * m_innerHit
pointer to hit forming the inner end of the Segment.
Definition: Segment.h:43
Belle2::Segment
The Segment class This class represents segments of track candidates needed for TrackFinderVXD-Module...
Definition: Segment.h:35
Belle2::Segment::getName
std::string getName() const
returns longer debugging name of this segment
Definition: Segment.h:97
Belle2::Segment::getInnerSecID
FullSecID::BaseType getInnerSecID() const
returns inner secID of current Segment
Definition: Segment.h:114
Belle2::Segment::getID
std::int64_t getID() const
************************* PUBLIC MEMBER FUNCTIONS *************************
Definition: Segment.h:94
Belle2::FullSecID
Class to identify a sector inside of the VXD.
Definition: FullSecID.h:43
Belle2::FullSecID::BaseType
unsigned int BaseType
defines the base type used for FullSecID
Definition: FullSecID.h:48
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Segment::m_identifier
const std::int64_t m_identifier
unique identifier
Definition: Segment.h:52
Belle2::Segment::getInnerHit
const HitType * getInnerHit() const
returns inner hit of current Segment
Definition: Segment.h:106
Belle2::Segment::m_innerSector
FullSecID::BaseType m_innerSector
iD of sector carrying inner hit
Definition: Segment.h:49
Belle2::Segment::getOuterSecID
FullSecID::BaseType getOuterSecID() const
returns outer secID of current Segment
Definition: Segment.h:118
Belle2::Segment::m_outerHit
HitType * m_outerHit
************************* DATA MEMBERS *************************
Definition: Segment.h:40
Belle2::Segment::Segment
Segment()
************************* CONSTRUCTORS *************************
Definition: Segment.h:58