ATLAS Offline Software
BeamBackgroundData.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // $Id: BeamBackgroundData.h 659084 2015-04-06 03:39:10Z ssnyder $
6 #ifndef RECBACKGROUNDEVENT_BEAMBACKGROUNDDATA
7 #define RECBACKGROUNDEVENT_BEAMBACKGROUNDDATA
8 
10 #include "AthLinks/ElementLinkVector.h"
11 #include "TrkSegment/Segment.h"
15 #include "xAODJet/JetContainer.h"
16 #include <vector>
17 
29 {
30 public:
32  m_decision(0),
33  m_numSegment(0),
36  m_numSegmentAC(0),
37  m_numMatched(0),
45  m_numTwoSided(0),
47  m_numJet(0),
48  m_direction(0)
49  {}
50 
52 
53  // decision bits
54  enum Decision {
55  Segment = 1024,
56  SegmentEarly = 2048,
58  SegmentAC = 4096,
59  Matched = 1,
67  TwoSided = 128,
68  ClusterShape = 256
69  };
70 
71 
72  int GetDecision() const { return m_decision; };
73 
74  int GetNumSegment() const { return m_numSegment; };
75  int GetNumSegmentEarly() const { return m_numSegmentEarly; };
77  int GetNumSegmentAC() const { return m_numSegmentAC; };
78  int GetNumMatched() const { return m_numMatched; };
79  int GetNumNoTimeLoose() const { return m_numNoTimeLoose; };
80  int GetNumNoTimeMedium() const { return m_numNoTimeMedium; };
81  int GetNumNoTimeTight() const { return m_numNoTimeTight; };
82  int GetNumOneSidedLoose() const { return m_numOneSidedLoose; };
83  int GetNumOneSidedMedium() const { return m_numOneSidedMedium; };
84  int GetNumOneSidedTight() const { return m_numOneSidedTight; };
85  int GetNumTwoSidedNoTime() const { return m_numTwoSidedNoTime; };
86  int GetNumTwoSided() const { return m_numTwoSided; };
87  int GetNumClusterShape() const { return m_numClusterShape; };
88  int GetNumJet() const { return m_numJet; };
89 
90  int GetResultSeg(int i) const { return m_resultSeg[i]; };
91  int GetResultClus(int i) const { return m_resultClus[i]; };
92  int GetResultJet(int i) const { return m_resultJet[i]; };
93  int GetIndexSeg(const Trk::Segment* seg) const;
94  int GetIndexClus(const xAOD::CaloCluster* clus) const;
95  int GetIndexJet(const xAOD::Jet* jet) const;
96  const Trk::Segment* GetIndexSeg(int i) const { return *m_indexSeg[i]; };
97  const xAOD::CaloCluster* GetIndexClus(int i) const { return *m_indexClus[i]; };
98  const xAOD::Jet* GetIndexJet(int i) const { return *m_indexJet[i]; };
99  float GetDrdzClus(int i) const { return m_drdzClus[i]; };
100 
101  int GetDirection() const { return m_direction; };
102 
103 
104  void SetDecision(int decision) { m_decision = decision; };
105 
106  void SetNumSegment(int numSegment) { m_numSegment = numSegment; };
107  void SetNumSegmentEarly(int numSegmentEarly) { m_numSegmentEarly = numSegmentEarly; };
108  void SetNumSegmentACNoTime(int numSegmentACNoTime) { m_numSegmentACNoTime = numSegmentACNoTime; };
109  void SetNumSegmentAC(int numSegmentAC) { m_numSegmentAC = numSegmentAC; };
110  void SetNumMatched(int numMatched) { m_numMatched = numMatched; };
111  void SetNumNoTimeLoose(int numNoTimeLoose) { m_numNoTimeLoose = numNoTimeLoose; };
112  void SetNumNoTimeMedium(int numNoTimeMedium) { m_numNoTimeMedium = numNoTimeMedium; };
113  void SetNumNoTimeTight(int numNoTimeTight) { m_numNoTimeTight = numNoTimeTight; };
114  void SetNumOneSidedLoose(int numOneSidedLoose) { m_numOneSidedLoose = numOneSidedLoose; };
115  void SetNumOneSidedMedium(int numOneSidedMedium) { m_numOneSidedMedium = numOneSidedMedium; };
116  void SetNumOneSidedTight(int numOneSidedTight) { m_numOneSidedTight = numOneSidedTight; };
117  void SetNumTwoSidedNoTime(int numTwoSidedNoTime) { m_numTwoSidedNoTime = numTwoSidedNoTime; };
118  void SetNumTwoSided(int numTwoSided) { m_numTwoSided = numTwoSided; };
119  void SetNumClusterShape(int numClusterShape) { m_numClusterShape = numClusterShape; };
120  void SetNumJet(int numJet) { m_numJet = numJet; };
121 
122  void SetDirection(int direction) { m_direction = direction; };
123 
127  void FillResultSeg(std::vector<int>* resultSeg) { m_resultClus = *resultSeg; };
128  void FillResultClus(std::vector<int>* resultClus) { m_resultClus = *resultClus; };
129  void FillResultJet(std::vector<int>* resultJet) { m_resultJet = *resultJet; };
130  void FillMatchMatrix(std::vector<std::vector<int> >* matchMatrix) { m_matchMatrix = *matchMatrix; };
131  void FillDrdzClus(std::vector<float>* drdzClus) { m_drdzClus = *drdzClus; };
132 
133 private:
134  // bit-wise results of Beam Background Identification Methods
136 
137  int m_numSegment; // number of segments with the direction parallel to the beam pipe
138  int m_numSegmentEarly; // number of early segments
139  int m_numSegmentACNoTime; // number of mathced pairs of segments on side A and side C
140  int m_numSegmentAC; // number of mathced pairs of segments with corresponding time difference
141  int m_numMatched; // number of clusters matched with the segments
142  int m_numNoTimeLoose; // number of clusters identified by the "No-Time Method"
145  int m_numOneSidedLoose; // number of clusters identified by the "One-Sided Method"
148  int m_numTwoSidedNoTime; // number of clusters identified by the "Two-Sided No-Time Method"
149  int m_numTwoSided; // number of clusters identified by the "Two-Sided Method"
150  int m_numClusterShape; // number of clusters identified by the "Cluster-Shape Method"
151  int m_numJet; // number of fake jets
152 
153  int m_direction; // direction of beam halo from the "Two-Sided Method" (positive for A->C, negative for C->A)
154 
155  ElementLinkVector<xAOD::CaloClusterContainer> m_indexClus; // link to the calorimeter cluster
157  std::vector<std::vector<int> > m_matchMatrix; // matching matrix (stores results for each muon segment and calorimeter cluster)
158  std::vector<int> m_resultSeg; // summary of the results for each muon segment
159  std::vector<int> m_resultClus; // summary of the results for each cluster segment
160  std::vector<float> m_drdzClus; // shape of the cluster
161 
163  std::vector<int> m_resultJet; // summary of the results for each jet
164 };
165 
166 CLASS_DEF(BeamBackgroundData, 208768555, 1)
167 
168 #endif
BeamBackgroundData::SetNumNoTimeMedium
void SetNumNoTimeMedium(int numNoTimeMedium)
Definition: BeamBackgroundData.h:112
BeamBackgroundData::m_resultClus
std::vector< int > m_resultClus
Definition: BeamBackgroundData.h:159
BeamBackgroundData::SetNumSegmentAC
void SetNumSegmentAC(int numSegmentAC)
Definition: BeamBackgroundData.h:109
BeamBackgroundData::GetNumNoTimeMedium
int GetNumNoTimeMedium() const
Definition: BeamBackgroundData.h:80
BeamBackgroundData::GetResultJet
int GetResultJet(int i) const
Definition: BeamBackgroundData.h:92
BeamBackgroundData::SetNumClusterShape
void SetNumClusterShape(int numClusterShape)
Definition: BeamBackgroundData.h:119
BeamBackgroundData::FillDrdzClus
void FillDrdzClus(std::vector< float > *drdzClus)
Definition: BeamBackgroundData.h:131
BeamBackgroundData::ClusterShape
@ ClusterShape
Definition: BeamBackgroundData.h:68
BeamBackgroundData::GetIndexJet
const xAOD::Jet * GetIndexJet(int i) const
Definition: BeamBackgroundData.h:98
BeamBackgroundData::GetNumSegment
int GetNumSegment() const
Definition: BeamBackgroundData.h:74
BeamBackgroundData::SetNumMatched
void SetNumMatched(int numMatched)
Definition: BeamBackgroundData.h:110
BeamBackgroundData::FillIndexJet
void FillIndexJet(ElementLinkVector< xAOD::JetContainer >indexJet)
Definition: BeamBackgroundData.h:126
BeamBackgroundData::SetNumNoTimeTight
void SetNumNoTimeTight(int numNoTimeTight)
Definition: BeamBackgroundData.h:113
BeamBackgroundData::SetNumOneSidedLoose
void SetNumOneSidedLoose(int numOneSidedLoose)
Definition: BeamBackgroundData.h:114
BeamBackgroundData::OneSidedTight
@ OneSidedTight
Definition: BeamBackgroundData.h:65
BeamBackgroundData::SetNumOneSidedTight
void SetNumOneSidedTight(int numOneSidedTight)
Definition: BeamBackgroundData.h:116
BeamBackgroundData
Class holding the results of the Beam Background Identification Method.
Definition: BeamBackgroundData.h:29
BeamBackgroundData::OneSidedLoose
@ OneSidedLoose
Definition: BeamBackgroundData.h:63
BeamBackgroundData::GetIndexSeg
int GetIndexSeg(const Trk::Segment *seg) const
This function looks for the muon segment among the beam halo muon candidates.
Definition: BeamBackgroundData.cxx:13
BeamBackgroundData::SetNumSegmentACNoTime
void SetNumSegmentACNoTime(int numSegmentACNoTime)
Definition: BeamBackgroundData.h:108
BeamBackgroundData::SetNumNoTimeLoose
void SetNumNoTimeLoose(int numNoTimeLoose)
Definition: BeamBackgroundData.h:111
BeamBackgroundData::GetNumJet
int GetNumJet() const
Definition: BeamBackgroundData.h:88
BeamBackgroundData::GetNumOneSidedTight
int GetNumOneSidedTight() const
Definition: BeamBackgroundData.h:84
BeamBackgroundData::FillResultClus
void FillResultClus(std::vector< int > *resultClus)
Definition: BeamBackgroundData.h:128
BeamBackgroundData::Matched
@ Matched
Definition: BeamBackgroundData.h:59
BeamBackgroundData::m_numNoTimeTight
int m_numNoTimeTight
Definition: BeamBackgroundData.h:144
BeamBackgroundData::GetNumNoTimeLoose
int GetNumNoTimeLoose() const
Definition: BeamBackgroundData.h:79
BeamBackgroundData::SegmentAC
@ SegmentAC
Definition: BeamBackgroundData.h:58
BeamBackgroundData::GetIndexJet
int GetIndexJet(const xAOD::Jet *jet) const
This function looks for the jet among the fake jets candidates.
Definition: BeamBackgroundData.cxx:51
BeamBackgroundData::FillResultJet
void FillResultJet(std::vector< int > *resultJet)
Definition: BeamBackgroundData.h:129
BeamBackgroundData::TwoSidedNoTime
@ TwoSidedNoTime
Definition: BeamBackgroundData.h:66
BeamBackgroundData::m_numMatched
int m_numMatched
Definition: BeamBackgroundData.h:141
BeamBackgroundData::Segment
@ Segment
Definition: BeamBackgroundData.h:55
BeamBackgroundData::m_numNoTimeMedium
int m_numNoTimeMedium
Definition: BeamBackgroundData.h:143
BeamBackgroundData::m_numJet
int m_numJet
Definition: BeamBackgroundData.h:151
BeamBackgroundData::SetNumTwoSided
void SetNumTwoSided(int numTwoSided)
Definition: BeamBackgroundData.h:118
BeamBackgroundData::m_numTwoSidedNoTime
int m_numTwoSidedNoTime
Definition: BeamBackgroundData.h:148
BeamBackgroundData::BeamBackgroundData
BeamBackgroundData()
Definition: BeamBackgroundData.h:31
BeamBackgroundData::m_numTwoSided
int m_numTwoSided
Definition: BeamBackgroundData.h:149
BeamBackgroundData::FillResultSeg
void FillResultSeg(std::vector< int > *resultSeg)
Definition: BeamBackgroundData.h:127
BeamBackgroundData::GetNumOneSidedMedium
int GetNumOneSidedMedium() const
Definition: BeamBackgroundData.h:83
BeamBackgroundData::m_decision
int m_decision
Definition: BeamBackgroundData.h:131
BeamBackgroundData::NoTimeLoose
@ NoTimeLoose
Definition: BeamBackgroundData.h:60
BeamBackgroundData::GetDirection
int GetDirection() const
Definition: BeamBackgroundData.h:101
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
BeamBackgroundData::NoTimeMedium
@ NoTimeMedium
Definition: BeamBackgroundData.h:61
BeamBackgroundData::SetDirection
void SetDirection(int direction)
Definition: BeamBackgroundData.h:122
lumiFormat.i
int i
Definition: lumiFormat.py:92
CaloCluster.h
BeamBackgroundData::GetResultSeg
int GetResultSeg(int i) const
Definition: BeamBackgroundData.h:90
BeamBackgroundData::SetDecision
void SetDecision(int decision)
Definition: BeamBackgroundData.h:104
Segment.h
BeamBackgroundData::GetNumTwoSided
int GetNumTwoSided() const
Definition: BeamBackgroundData.h:86
Trk::Segment
Definition: TrkEvent/TrkSegment/TrkSegment/Segment.h:56
BeamBackgroundData::GetNumClusterShape
int GetNumClusterShape() const
Definition: BeamBackgroundData.h:87
BeamBackgroundData::m_resultJet
std::vector< int > m_resultJet
Definition: BeamBackgroundData.h:163
BeamBackgroundData::GetIndexClus
const xAOD::CaloCluster * GetIndexClus(int i) const
Definition: BeamBackgroundData.h:97
BeamBackgroundData::Decision
Decision
Definition: BeamBackgroundData.h:54
BeamBackgroundData::m_numOneSidedTight
int m_numOneSidedTight
Definition: BeamBackgroundData.h:147
BeamBackgroundData::m_numSegmentACNoTime
int m_numSegmentACNoTime
Definition: BeamBackgroundData.h:139
BeamBackgroundData::TwoSided
@ TwoSided
Definition: BeamBackgroundData.h:67
BeamBackgroundData::m_numOneSidedLoose
int m_numOneSidedLoose
Definition: BeamBackgroundData.h:145
BeamBackgroundData::GetNumNoTimeTight
int GetNumNoTimeTight() const
Definition: BeamBackgroundData.h:81
BeamBackgroundData::m_matchMatrix
std::vector< std::vector< int > > m_matchMatrix
Definition: BeamBackgroundData.h:157
BeamBackgroundData::GetIndexSeg
const Trk::Segment * GetIndexSeg(int i) const
Definition: BeamBackgroundData.h:96
BeamBackgroundData::m_numSegment
int m_numSegment
Definition: BeamBackgroundData.h:137
ElementLinkVector
ElementLinkVector implementation for standalone ROOT.
Definition: AthLinks/ElementLinkVector.h:27
BeamBackgroundData::GetNumMatched
int GetNumMatched() const
Definition: BeamBackgroundData.h:78
BeamBackgroundData::m_indexClus
ElementLinkVector< xAOD::CaloClusterContainer > m_indexClus
Definition: BeamBackgroundData.h:155
BeamBackgroundData::SetNumTwoSidedNoTime
void SetNumTwoSidedNoTime(int numTwoSidedNoTime)
Definition: BeamBackgroundData.h:117
BeamBackgroundData::m_drdzClus
std::vector< float > m_drdzClus
Definition: BeamBackgroundData.h:160
BeamBackgroundData::NoTimeTight
@ NoTimeTight
Definition: BeamBackgroundData.h:62
BeamBackgroundData::m_numSegmentAC
int m_numSegmentAC
Definition: BeamBackgroundData.h:140
BeamBackgroundData::SetNumJet
void SetNumJet(int numJet)
Definition: BeamBackgroundData.h:120
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
BeamBackgroundData::m_numClusterShape
int m_numClusterShape
Definition: BeamBackgroundData.h:150
BeamBackgroundData::SetNumSegment
void SetNumSegment(int numSegment)
Definition: BeamBackgroundData.h:106
JetContainer.h
BeamBackgroundData::FillMatchMatrix
void FillMatchMatrix(std::vector< std::vector< int > > *matchMatrix)
Definition: BeamBackgroundData.h:130
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:64
BeamBackgroundData::FillIndexSeg
void FillIndexSeg(ElementLinkVector< Trk::SegmentCollection > indexSeg)
Definition: BeamBackgroundData.h:124
BeamBackgroundData::GetNumSegmentEarly
int GetNumSegmentEarly() const
Definition: BeamBackgroundData.h:75
BeamBackgroundData::m_direction
int m_direction
Definition: BeamBackgroundData.h:153
CaloClusterContainer.h
BeamBackgroundData::m_numNoTimeLoose
int m_numNoTimeLoose
Definition: BeamBackgroundData.h:142
BeamBackgroundData::SetNumSegmentEarly
void SetNumSegmentEarly(int numSegmentEarly)
Definition: BeamBackgroundData.h:107
BeamBackgroundData::GetNumOneSidedLoose
int GetNumOneSidedLoose() const
Definition: BeamBackgroundData.h:82
BeamBackgroundData::GetNumSegmentACNoTime
int GetNumSegmentACNoTime() const
Definition: BeamBackgroundData.h:76
BeamBackgroundData::GetIndexClus
int GetIndexClus(const xAOD::CaloCluster *clus) const
This function looks for the calorimeter cluster among the beam halo muon candidates.
Definition: BeamBackgroundData.cxx:32
BeamBackgroundData::~BeamBackgroundData
~BeamBackgroundData()
Definition: BeamBackgroundData.h:51
BeamBackgroundData::GetDrdzClus
float GetDrdzClus(int i) const
Definition: BeamBackgroundData.h:99
BeamBackgroundData::OneSidedMedium
@ OneSidedMedium
Definition: BeamBackgroundData.h:64
BeamBackgroundData::m_indexJet
ElementLinkVector< xAOD::JetContainer > m_indexJet
Definition: BeamBackgroundData.h:162
BeamBackgroundData::GetNumSegmentAC
int GetNumSegmentAC() const
Definition: BeamBackgroundData.h:77
BeamBackgroundData::GetResultClus
int GetResultClus(int i) const
Definition: BeamBackgroundData.h:91
BeamBackgroundData::GetDecision
int GetDecision() const
Definition: BeamBackgroundData.h:72
BeamBackgroundData::SetNumOneSidedMedium
void SetNumOneSidedMedium(int numOneSidedMedium)
Definition: BeamBackgroundData.h:115
CLASS_DEF.h
macros to associate a CLID to a type
BeamBackgroundData::SegmentEarly
@ SegmentEarly
Definition: BeamBackgroundData.h:56
BeamBackgroundData::GetNumTwoSidedNoTime
int GetNumTwoSidedNoTime() const
Definition: BeamBackgroundData.h:85
BeamBackgroundData::m_indexSeg
ElementLinkVector< Trk::SegmentCollection > m_indexSeg
Definition: BeamBackgroundData.h:156
SegmentCollection.h
BeamBackgroundData::m_numSegmentEarly
int m_numSegmentEarly
Definition: BeamBackgroundData.h:138
BeamBackgroundData::m_numOneSidedMedium
int m_numOneSidedMedium
Definition: BeamBackgroundData.h:146
BeamBackgroundData::SegmentACNoTime
@ SegmentACNoTime
Definition: BeamBackgroundData.h:57
BeamBackgroundData::m_resultSeg
std::vector< int > m_resultSeg
Definition: BeamBackgroundData.h:158
BeamBackgroundData::FillIndexClus
void FillIndexClus(ElementLinkVector< xAOD::CaloClusterContainer > indexClus)
Definition: BeamBackgroundData.h:125