ATLAS Offline Software
Loading...
Searching...
No Matches
CMApatterns.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CMAPATTERNS_H
6#define CMAPATTERNS_H
7
8#include <string>
9#include <list>
10#include <queue>
11#include <functional>
13
16
18
19
21{
22 public:
23 typedef std::pair < float, float > TRIGdistance;
25
26 typedef std::list < CMAtrigger > TRIGlist;
27 typedef std::priority_queue< CMAtrigger > TrigSigns;
28
29 private:
30 unsigned long int m_debug;
31
34
41
42 std::unique_ptr<Matrix> m_low_pt_matrix;
43 std::unique_ptr<Matrix> m_high_pt_matrix;
44
45
46 bitPATTERN decluster(const bitPATTERN&) const;
48
49 void update_distance(const TRIGdistance&,TRIGdistance&) const;
50
52 const bitPATTERN&)const;
54 const bitPATTERN&,const bitPATTERN&)const;
57
60
62 const bitPATTERN&,const bitPATTERN&) const;
63
65 const bitPATTERN&) const;
66
67
68 void create_hardware(TrigType, uint NOBXS, uint BCZERO);
69 void load_data(int,int,const bitPATTERN&,Matrix*);
70
71 public:
72 CMApatterns(int,const CMAparameters*,unsigned long int);
74
76
77 bool operator==(const CMApatterns&) const;
78 bool operator!=(const CMApatterns&) const;
79 bool operator< (const CMApatterns&) const;
80
81 void load_digit(const RPCdigit*);
83
84 unsigned long int debug(void) const {return m_debug;}
85
86 int sector(void) const {return m_sector;}
87 const CMAparameters& cma_parameters(void) const {return *m_cma_parameters;}
88
89 const bitPATTERN& pivot0(void) const {return m_pivot0;}
90 const bitPATTERN& pivot1(void) const {return m_pivot1;}
91 const bitPATTERN& lowPt0(void) const {return m_lowPt0;}
92 const bitPATTERN& lowPt1(void) const {return m_lowPt1;}
93 const bitPATTERN& highPt0(void) const {return m_highPt0;}
94 const bitPATTERN& highPt1(void) const {return m_highPt1;}
95
97 const
99 const TRIGdistance distance (const RPCdigit*,const RPCdigit*) const;
100
102
103 Matrix* give_low_pt_matrix(uint NOBXS, uint BCZERO);
104 Matrix* give_high_pt_matrix(uint NOBXS, uint BCZERO);
105
106 void Print (std::ostream&,bool) const;
107};
108
109template <class X> X& operator<<(X& stream,const CMApatterns& data)
110{
111 std::ostringstream display;
112 data.Print(display,false);
113 stream << display.str();
114 return stream;
115}
116
117
118#endif
X & operator<<(X &stream, const CMApatterns &data)
Lvl1RPCalgo
Definition CMAtrigger.h:20
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
unsigned int uint
TrigType
bool operator==(const CMApatterns &) const
bitPATTERN m_highPt0
Definition CMApatterns.h:39
void Print(std::ostream &, bool) const
std::unique_ptr< Matrix > m_low_pt_matrix
Definition CMApatterns.h:42
const TRIGdistance lowest_distance(const bitPATTERN &, const bitPATTERN &) const
bitPATTERN m_pivot1
Definition CMApatterns.h:36
const bitPATTERN & pivot1(void) const
Definition CMApatterns.h:90
unsigned long int debug(void) const
Definition CMApatterns.h:84
CMAtrigger find_trigger(const bitPATTERN &, const bitPATTERN &, const bitPATTERN &) const
std::unique_ptr< Matrix > m_high_pt_matrix
Definition CMApatterns.h:43
std::list< CMAtrigger > TRIGlist
Definition CMApatterns.h:26
static const TRIGdistance no_distance
Definition CMApatterns.h:24
bitPATTERN decluster(const bitPATTERN &) const
bitPATTERN m_lowPt1
Definition CMApatterns.h:38
Matrix * give_high_pt_matrix(uint NOBXS, uint BCZERO)
void coincidence_distance(TRIGdistance &, TRIGdistance &) const
void search_for_lowPt(Lvl1RPCalgo, TrigSigns &) const
bool operator<(const CMApatterns &) const
bool operator!=(const CMApatterns &) const
const bitPATTERN & lowPt0(void) const
Definition CMApatterns.h:91
std::priority_queue< CMAtrigger > TrigSigns
Definition CMApatterns.h:27
CMApatterns operator=(const CMApatterns &)
bitPATTERN majority(bitPATTERN &, bitPATTERN &) const
int sector(void) const
Definition CMApatterns.h:86
CMAtrigger trigger_threshold(int, int, TrigType) const
const bitPATTERN & pivot0(void) const
Definition CMApatterns.h:89
bitPATTERN m_highPt1
Definition CMApatterns.h:40
const CMAparameters * m_cma_parameters
Definition CMApatterns.h:33
CMApatterns & operator<<(const RPCdigit *)
const bitPATTERN & highPt0(void) const
Definition CMApatterns.h:93
const CMAparameters & cma_parameters(void) const
Definition CMApatterns.h:87
bitPATTERN m_pivot0
Definition CMApatterns.h:35
const TRIGdistance distance(const RPCdigit *, const RPCdigit *) const
void load_digit(const RPCdigit *)
void search_signatures(Lvl1RPCalgo, TrigType, TrigSigns &, const bitPATTERN &, const bitPATTERN &) const
const CMAtrigger give_trigger(Lvl1RPCalgo) const
CMAtrigger trigger_window(TRIGdistance, TrigType) const
void search_for_highPt(Lvl1RPCalgo, TrigSigns &) const
CMApatterns(int, const CMAparameters *, unsigned long int)
void create_hardware(TrigType, uint NOBXS, uint BCZERO)
void update_distance(const TRIGdistance &, TRIGdistance &) const
Matrix * give_low_pt_matrix(uint NOBXS, uint BCZERO)
unsigned long int m_debug
Definition CMApatterns.h:30
void load_data(int, int, const bitPATTERN &, Matrix *)
const bitPATTERN & highPt1(void) const
Definition CMApatterns.h:94
bitPATTERN m_lowPt0
Definition CMApatterns.h:37
std::pair< float, float > TRIGdistance
Definition CMApatterns.h:23
const bitPATTERN & lowPt1(void) const
Definition CMApatterns.h:92
RPCtrigDataObject(int, const std::string &)