|
ATLAS Offline Software
|
Go to the documentation of this file.
14 TRIGdistance(99999.,99999.);
19 unsigned long int debug) :
22 m_sector(sector),m_cma_parameters(cma),
35 m_cma_parameters(&
patterns.cma_parameters()),
91 int station =
digit->decoding().lvl1_station();
105 else if (IO ==
LowPt)
128 int cluster_size = 0;
129 do { ++cluster_size; }
while(
pattern.test(
i+cluster_size) );
132 int decl_upper = cluster_size;
134 switch (cluster_size%2)
137 for( ;decl_lower+1 < decl_upper && decl_lower<=3; ++decl_lower)
144 for( ;decl_lower+1 < decl_upper && decl_lower<=3; ++decl_lower)
151 i += (cluster_size - 1);
169 result |= layer0 & layer1;
170 for(
int i=0;
i<left;++
i)
result |= layer0 & (tmp1<<1);
192 if(fabsf(NEW.first) < fabsf(OLD.first)) OLD = NEW;
235 for(
int i=0;
i<pivot.
size();++
i)
237 if(
const RPCdigit* pivot_digit = pivot[
i])
239 for(
int j=0;j<
confirm.size();++j)
266 float Zprime = pivot->
z()*(conrad/pivrad);
275 if( pivot->
phi(pivphi) &&
280 float Sprime =
tan(pivphi-staphi)*conrad;
281 value.first =
tan(conphi-staphi)*conrad - Sprime;
304 if(
signatures.top().trigger().searchForHigh())
370 for(
int i=0;
i<pivot.
size();++
i)
372 if(
const RPCdigit* pivot_digit = pivot[
i])
377 for(
int j=0;j<
confirm.size();++j)
398 else if(trigType ==
High)
404 trigger_result += signature;
426 const int Kpatt = trigger_result.
Kpatt();
431 for(
int j=0;j<
confirm.size();++j)
451 else if(trigType ==
High)
457 trigger_result += signature;
473 if ( !pivot.
any() || !
lowPt.any() )
return trigger_result;
475 for(
int i=0;
i<pivot.
size();++
i)
477 if(
const RPCdigit* pivot_digit = pivot[
i])
480 for(
int j=0;j<
lowPt.size();++j)
488 trigger_result += signature;
502 trigger_result += signature;
513 return trigger_result;
524 if ( !pivot.
any() || !
lowPt.any() )
return trigger_result;
526 for(
int i=0;
i<pivot.
size();++
i)
528 if(
const RPCdigit* pivot_digit = pivot[
i])
531 for(
int j=0;j<
lowPt.size();++j)
539 trigger_result += signature;
553 trigger_result += signature;
570 trigger_result += signature;
581 return trigger_result;
593 int upper_threshold = (
type ==
Low)? 2 : 4;
594 int lower_threshold = (
type ==
Low)? 0 : 3;
596 for(
int i=upper_threshold;
i >= lower_threshold;--
i)
614 if(fabsf(dist.first)<10.0)
620 if(fabsf(dist.first)<10.0)
637 const bool* program = 0;
647 program =
prog->registers();
659 program =
prog->registers();
689 unsigned int upper = 95;
690 unsigned int lower = 45;
715 for(
int i=0;
i<80;++
i)
stream << (
char) lower;
732 int lohi = (
type ==
Low) ? 0 : 1;
741 address,localAdd, NOBXS, BCZERO);
757 matrix->setLocalDirection(0,7);
758 matrix->setLocalDirection(1,7);
787 for (
int ch=0;
ch<pivot_ch; ++
ch)
805 for (
int ch=0;
ch<pivot_ch; ++
ch)
826 for (
int ch=0;
ch<pivot_ch; ++
ch)
834 matrix->setMajority(0,maj_th0);
835 matrix->setMajority(1,maj_th1);
836 matrix->setMajority(2,maj_th2);
841 matrix->setMatOverlap(0, ovl1);
842 matrix->setMatOverlap(1, ovl2);
872 for (
int ch=0;
ch<pivot_ch; ++
ch)
888 for (
int ch=0;
ch<pivot_ch; ++
ch)
909 for (
int ch=0;
ch<pivot_ch; ++
ch)
916 matrix->setMajority(0,maj_th0);
917 matrix->setMajority(1,maj_th1);
918 matrix->setMajority(2,maj_th2);
921 matrix->setMatOverlap(0, ovl1);
922 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)