ATLAS Offline Software
Loading...
Searching...
No Matches
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"
16#include <vector>
17
29{
30public:
50
52
53 // decision bits
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; };
84 int GetNumOneSidedTight() const { return m_numOneSidedTight; };
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
133private:
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
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
166CLASS_DEF(BeamBackgroundData, 208768555, 1)
167
168#endif
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Class holding the results of the Beam Background Identification Method.
float GetDrdzClus(int i) const
int GetNumNoTimeLoose() const
int GetResultClus(int i) const
int GetNumSegmentEarly() const
void SetNumClusterShape(int numClusterShape)
int GetNumTwoSidedNoTime() const
int GetNumOneSidedTight() const
std::vector< int > m_resultJet
int GetResultSeg(int i) const
const xAOD::CaloCluster * GetIndexClus(int i) const
const Trk::Segment * GetIndexSeg(int i) const
void SetNumMatched(int numMatched)
void SetNumNoTimeLoose(int numNoTimeLoose)
void SetDecision(int decision)
void FillMatchMatrix(std::vector< std::vector< int > > *matchMatrix)
void SetNumOneSidedMedium(int numOneSidedMedium)
void FillResultJet(std::vector< int > *resultJet)
void SetNumSegment(int numSegment)
void SetNumJet(int numJet)
void SetNumNoTimeMedium(int numNoTimeMedium)
int GetIndexJet(const xAOD::Jet *jet) const
This function looks for the jet among the fake jets candidates.
int GetNumSegmentACNoTime() const
void SetNumSegmentEarly(int numSegmentEarly)
int GetIndexSeg(const Trk::Segment *seg) const
This function looks for the muon segment among the beam halo muon candidates.
std::vector< int > m_resultClus
void FillIndexSeg(ElementLinkVector< Trk::SegmentCollection > indexSeg)
const xAOD::Jet * GetIndexJet(int i) const
void SetDirection(int direction)
ElementLinkVector< xAOD::CaloClusterContainer > m_indexClus
void SetNumTwoSidedNoTime(int numTwoSidedNoTime)
int GetResultJet(int i) const
void SetNumNoTimeTight(int numNoTimeTight)
int GetIndexClus(const xAOD::CaloCluster *clus) const
This function looks for the calorimeter cluster among the beam halo muon candidates.
std::vector< std::vector< int > > m_matchMatrix
void FillDrdzClus(std::vector< float > *drdzClus)
void FillIndexClus(ElementLinkVector< xAOD::CaloClusterContainer > indexClus)
ElementLinkVector< Trk::SegmentCollection > m_indexSeg
void SetNumSegmentAC(int numSegmentAC)
void SetNumOneSidedLoose(int numOneSidedLoose)
void SetNumOneSidedTight(int numOneSidedTight)
void FillResultSeg(std::vector< int > *resultSeg)
int GetNumNoTimeMedium() const
int GetNumNoTimeTight() const
std::vector< float > m_drdzClus
void SetNumSegmentACNoTime(int numSegmentACNoTime)
int GetNumOneSidedMedium() const
ElementLinkVector< xAOD::JetContainer > m_indexJet
void FillResultClus(std::vector< int > *resultClus)
std::vector< int > m_resultSeg
int GetNumOneSidedLoose() const
void FillIndexJet(ElementLinkVector< xAOD::JetContainer >indexJet)
void SetNumTwoSided(int numTwoSided)
int GetNumClusterShape() const
ElementLinkVector implementation for standalone ROOT.
Base class for all TrackSegment implementations, extends the common MeasurementBase.
Jet_v1 Jet
Definition of the current "jet version".
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.