ATLAS Offline Software
Loading...
Searching...
No Matches
Lvl1MuSectorLogicDataPhase1.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef TRIGT1INTERFACES_LVL1MUSECTORLOGICDATAPHASE1_H
5#define TRIGT1INTERFACES_LVL1MUSECTORLOGICDATAPHASE1_H
6
7// System include(s):
8#include <iosfwd>
9#include <utility>
10#include <vector>
11
21namespace LVL1MUONIF {
22
36
37 public:
41
43
44 // assume unsigned long int is 8 bytes, unsigned short int is 2 bytes:
45 typedef std::pair<unsigned long int, unsigned short int> SectorLogicWord;
46
47 bool is2candidatesInSector() const { return m_2candidatesInSector; } // MORE than two candidates per sector
48 int bcid() const { return m_bcid; }
49 int nsw() const {return m_nsw; } // NSW monitoring bit
50 int roi( size_t id ) const { return m_roi[ id ]; }
51 int ovl( size_t id ) const { return m_ovl[ id ]; }
52 int pt( size_t id ) const { return m_pt[ id ]; }
53 int charge( size_t id ) const { return m_charge[ id ]; }
54 bool is2candidates( size_t id ) const { return m_2candidates[ id ]; } // per ROI (not used for mult counting)
55 int goodmf( size_t id) const { return m_goodmf[ id ]; }
56 int innercoin( size_t id) const { return m_innercoin[ id ]; }
57 int bw2or3( size_t id) const { return m_bw2or3[ id ]; }
58 int veto( size_t id) const {return m_veto[ id ]; } // veto candidate for multiplicity counting due to overlap removal
59
62 void bcid( int value ) { m_bcid = value; }
63 void nsw( int value) {m_nsw = value; }
64 void roi( size_t id, int value ) { m_roi[ id ] = value; }
65 void ovl( size_t id, int value ) { m_ovl[ id ] = value; }
66 void pt( size_t id, int value ) { m_pt[ id ] = value; }
67 void charge( size_t id, int value ) { m_charge[ id ] = value; }
68 void set2candidates( size_t id ) { m_2candidates[ id ] = true; }
69 void clear2candidates( size_t id ) { m_2candidates[ id ] = false; }
70 void goodmf( size_t id, int value) {m_goodmf[ id ] = value; }
71 void innercoin( size_t id, int value) {m_innercoin[ id ] = value; }
72 void bw2or3( size_t id, int value) {m_bw2or3[ id ] = value; }
73 void veto( size_t id, int value) {m_veto[ id ] = value; }
74
75 void clear();
76
77 friend std::ostream& operator<<( std::ostream&, const Lvl1MuSectorLogicDataPhase1& );
78
80 virtual SectorLogicWord getWordFormat() const = 0;
83
84 int getSystemId() const { return m_id_system; }
85
86 protected:
88 virtual void printOut( std::ostream& out ) const=0;
89 void initialize();
90
92 std::vector<int> m_roi; //[m_ncand]
93 std::vector<int> m_ovl; //[m_ncand]
94 std::vector<int> m_pt; //[m_ncand]
95 std::vector<bool> m_2candidates; //[m_ncand]
96 int m_bcid;
97 int m_nsw;
98 std::vector<int> m_charge; //[m_ncand]
100 std::vector<int> m_goodmf; //[m_ncand]
101 std::vector<int> m_innercoin; //[m_ncand]
102 std::vector<int> m_bw2or3; //[m_ncand]
103 std::vector<int> m_veto; //[m_ncand]
104
105 }; // class Lvl1MuSectorLogicDataPhase1
106
107} // namespace LVL1MUONIF
108
109#endif // TRIGT1INTERFACES_LVL1MUSECTORLOGICDATAPHASE1_H
Base class for the data coming from one SL board.
friend std::ostream & operator<<(std::ostream &, const Lvl1MuSectorLogicDataPhase1 &)
virtual void printOut(std::ostream &out) const =0
print out data
Lvl1MuSectorLogicDataPhase1 & operator=(const Lvl1MuSectorLogicDataPhase1 &right)
virtual const Lvl1MuSectorLogicDataPhase1 & convertFromWordFormat(const SectorLogicWord &)=0
Convert SectorLogicDataPhase1 from 32 bit word data.
virtual SectorLogicWord getWordFormat() const =0
Get data in 32 bit word format:
std::pair< unsigned long int, unsigned short int > SectorLogicWord
Namespace for the LVL1 muon interface classes.