 |
ATLAS Offline Software
|
Go to the documentation of this file.
15 TRIGdistance(99999.,99999.);
20 unsigned long int debug) :
23 m_sector(sector),m_cma_parameters(cma),
36 m_cma_parameters(&
patterns.cma_parameters()),
92 int station =
digit->decoding().lvl1_station();
106 else if (IO ==
LowPt)
129 int cluster_size = 0;
130 do { ++cluster_size; }
while(
pattern.test(
i+cluster_size) );
133 int decl_upper = cluster_size;
135 switch (cluster_size%2)
138 for( ;decl_lower+1 < decl_upper && decl_lower<=3; ++decl_lower)
146 for( ;decl_lower+1 < decl_upper && decl_lower<=3; ++decl_lower)
153 i += (cluster_size - 1);
171 result |= layer0 & layer1;
172 for(
int i=0;
i<left;++
i)
result |= layer0 & (tmp1<<1);
194 if(std::fabs(NEW.first) < std::fabs(OLD.first)) OLD = NEW;
237 for(
int i=0;
i<pivot.
size();++
i)
239 if(
const RPCdigit* pivot_digit = pivot[
i])
241 for(
int j=0;j<
confirm.size();++j)
268 float Zprime = pivot->
z()*(conrad/pivrad);
277 if( pivot->
phi(pivphi) &&
282 float Sprime =
std::tan(pivphi-staphi)*conrad;
306 if(
signatures.top().trigger().searchForHigh())
372 for(
int i=0;
i<pivot.
size();++
i)
374 if(
const RPCdigit* pivot_digit = pivot[
i])
379 for(
int j=0;j<
confirm.size();++j)
400 else if(trigType ==
High)
406 trigger_result += signature;
428 const int Kpatt = trigger_result.
Kpatt();
433 for(
int j=0;j<
confirm.size();++j)
453 else if(trigType ==
High)
459 trigger_result += signature;
475 if ( !pivot.
any() || !
lowPt.any() )
return trigger_result;
477 for(
int i=0;
i<pivot.
size();++
i)
479 if(
const RPCdigit* pivot_digit = pivot[
i])
482 for(
int j=0;j<
lowPt.size();++j)
490 trigger_result += signature;
504 trigger_result += signature;
515 return trigger_result;
526 if ( !pivot.
any() || !
lowPt.any() )
return trigger_result;
528 for(
int i=0;
i<pivot.
size();++
i)
530 if(
const RPCdigit* pivot_digit = pivot[
i])
533 for(
int j=0;j<
lowPt.size();++j)
541 trigger_result += signature;
555 trigger_result += signature;
572 trigger_result += signature;
583 return trigger_result;
595 int upper_threshold = (
type ==
Low)? 2 : 4;
596 int lower_threshold = (
type ==
Low)? 0 : 3;
598 for(
int i=upper_threshold;
i >= lower_threshold;--
i)
616 if(fabsf(dist.first)<10.0)
622 if(fabsf(dist.first)<10.0)
639 const bool* program = 0;
649 program =
prog->registers();
661 program =
prog->registers();
691 unsigned int upper = 95;
692 unsigned int lower = 45;
717 for(
int i=0;
i<80;++
i)
stream << (
char) lower;
734 int lohi = (
type ==
Low) ? 0 : 1;
743 address,localAdd, NOBXS, BCZERO);
759 matrix->setLocalDirection(0,7);
760 matrix->setLocalDirection(1,7);
789 for (
int ch=0;
ch<pivot_ch; ++
ch)
807 for (
int ch=0;
ch<pivot_ch; ++
ch)
828 for (
int ch=0;
ch<pivot_ch; ++
ch)
836 matrix->setMajority(0,maj_th0);
837 matrix->setMajority(1,maj_th1);
838 matrix->setMajority(2,maj_th2);
843 matrix->setMatOverlap(0, ovl1);
844 matrix->setMatOverlap(1, ovl2);
874 for (
int ch=0;
ch<pivot_ch; ++
ch)
890 for (
int ch=0;
ch<pivot_ch; ++
ch)
911 for (
int ch=0;
ch<pivot_ch; ++
ch)
918 matrix->setMajority(0,maj_th0);
919 matrix->setMajority(1,maj_th1);
920 matrix->setMajority(2,maj_th2);
923 matrix->setMatOverlap(0, ovl1);
924 matrix->setMatOverlap(1, ovl2);
bool station_radius(float &) const
CMAtrigger find_trigger(const bitPATTERN &, const bitPATTERN &, const bitPATTERN &) const
bool operator<(const CMApatterns &) const
char data[hepevt_bytes_allocation_ATLAS]
const std::string & name() const
std::unique_ptr< Matrix > m_low_pt_matrix
void set_Kpatt(int Kpatt)
bitPATTERN majority(bitPATTERN &, bitPATTERN &) const
std::vector< std::string > patterns
const CMAprogram * lowPt_program() const
void set(const RPCdigit *, int)
void Print(std::ostream &, bool detail) const
const PATTERNidentity & id(void) const
void load_data(int, int, const bitPATTERN &, Matrix *)
static const TRIGdistance no_distance
Matrix * give_high_pt_matrix(uint NOBXS, uint BCZERO)
const CMAidentity & id() const
const bitPATTERN & highPt0(void) const
std::pair< float, float > TRIGdistance
const bitPATTERN & pivot0(void) const
std::unique_ptr< Matrix > m_high_pt_matrix
void set_highPt(const RPCdigit *)
bool operator==(const CMApatterns &) const
static constexpr int confirm_channels
CMApatterns & operator<<(const RPCdigit *)
void set_pivot(const RPCdigit *)
const RPCdigit * pivot_hit(void) const
CMAtrigger trigger_threshold(int, int, TrigType) const
const CMAparameters & cma_parameters(void) const
uint8_t trig_thr0_maj_reg() const
CMApatterns operator=(const CMApatterns &)
void coincidence_distance(TRIGdistance &, TRIGdistance &) const
POOL::TEvent event(POOL::TEvent::kClassAccess)
bool station_phi(float &) const
uint8_t trig_thr1_maj_reg() const
CMAtrigger trigger_window(TRIGdistance, TrigType) const
const CMAprogram * highPt_program() const
void create_hardware(TrigType, uint NOBXS, uint BCZERO)
const CMAparameters * m_cma_parameters
unsigned long int m_debug
void load_digit(const RPCdigit *)
const bitPATTERN & highPt1(void) const
void update_distance(const TRIGdistance &, TRIGdistance &) const
unsigned long int debug(void) const
bool give_connection(int, int, CMAinput &, int &, int &) const
const uint32_t * bytes(void) const
void Print(std::ostream &, bool) const
const bitPATTERN & lowPt1(void) const
uint32_t overlap1(void) const
std::vector< std::string > signatures(const std::string &chain)
const bitPATTERN & lowPt0(void) const
std::priority_queue< CMAtrigger > TrigSigns
void set_width(const float width)
bool highest(TrigType) const
uint8_t trig_thr2_maj_reg() const
const TRIGGERidentity & trigger(void) const
def time(flags, cells_name, *args, **kw)
ViewType view(void) const
bool searchForHigh(void) const
void search_for_lowPt(Lvl1RPCalgo, TrigSigns &) const
const RPCdecoder & decoding(void) const
void search_signatures(Lvl1RPCalgo, TrigType, TrigSigns &, const bitPATTERN &, const bitPATTERN &) const
const TRIGdistance lowest_distance(const bitPATTERN &, const bitPATTERN &) const
static constexpr int pivot_channels
uint32_t overlap2(void) const
const bitPATTERN & pivot1(void) const
bitPATTERN decluster(const bitPATTERN &) const
TrigType type(void) const
const TRIGdistance distance(const RPCdigit *, const RPCdigit *) const
void set_lowPt(const RPCdigit *)
CMApatterns(int, const CMAparameters *, unsigned long int)
bool operator!=(const CMApatterns &) const
void search_for_highPt(Lvl1RPCalgo, TrigSigns &) const
const CMAtrigger give_trigger(Lvl1RPCalgo) const
Matrix * give_low_pt_matrix(uint NOBXS, uint BCZERO)
bool station_eta(float &) const
int windows(float distance, float eta_pivot, int thr, int sector)