#include "AliMUONRegionalTriggerBoard.h"
#include "AliLog.h"
#include "TBits.h"
#include <Riostream.h>
using std::endl;
using std::cout;
ClassImp(AliMUONRegionalTriggerBoard)
AliMUONRegionalTriggerBoard::AliMUONRegionalTriggerBoard()
: AliMUONTriggerBoard(),
fMask(0x0)
{
for (Int_t i=0; i<16; i++) fLocalResponse[i] = 0;
}
AliMUONRegionalTriggerBoard::AliMUONRegionalTriggerBoard(const char *name, Int_t a)
: AliMUONTriggerBoard(name, a),
fMask(0x0)
{
for (Int_t i=0; i<16; i++) fLocalResponse[i] = 0;
}
AliMUONRegionalTriggerBoard::~AliMUONRegionalTriggerBoard()
{
}
void AliMUONRegionalTriggerBoard::Response()
{
if ( IsNull() ) return;
Int_t t[16];
for (Int_t i = 0; i < 16; ++i)
{
if ((fMask >> i) & 0x1)
t[i] = fLocalResponse[i];
else
t[i] = 0;
}
Int_t rank = 8;
for (Int_t i = 0; i < 4; ++i)
{
Int_t ip = 0;
for (Int_t j = 0; j < rank; ++j)
{
UShort_t lthres = Algo(t[2*j],t[2*j+1],"LPT",i);
UShort_t hthres = Algo(t[2*j],t[2*j+1],"HPT",i); hthres <<= 4;
t[ip] = lthres | hthres;
ip++;
}
rank /= 2;
}
fResponse = t[0];
}
UShort_t AliMUONRegionalTriggerBoard::Algo(UShort_t i, UShort_t j, const char *thres, Int_t level)
{
TBits a(8), b(8); a.Set(8,&i); b.Set(8,&j);
TBits trg1(2), trg2(2), trg(2);
if (!strcmp(thres,"LPT"))
{
if (!level)
{
trg1[0] = a[0]; trg1[1] = a[1];
trg2[0] = b[0]; trg2[1] = b[1];
}
else
{
trg1[0] = a[2]; trg1[1] = a[3];
trg2[0] = b[2]; trg2[1] = b[3];
}
}
else
{
if (!level)
{
trg1[0] = a[2]; trg1[1] = a[3];
trg2[0] = b[2]; trg2[1] = b[3];
}
else
{
trg1[0] = a[6]; trg1[1] = a[7];
trg2[0] = b[6]; trg2[1] = b[7];
}
}
TBits trgLS1(1), trgUS1(1), trgLS2(1), trgUS2(1), trgLS(1), trgUS(1);
if (!level)
{
trgLS1[0] = trgUS1[0] = trgLS2[0] = trgUS2[0] = 0;
}
else
{
if (!strcmp(thres,"LPT"))
{
trgLS1[0] = a[0]; trgUS1[0] = a[1];
trgLS2[0] = b[0]; trgUS2[0] = b[1];
}
else
{
trgLS1[0] = a[4]; trgUS1[0] = a[5];
trgLS2[0] = b[4]; trgUS2[0] = b[5];
}
}
trgLS[0] = ( trg1[0] & trg2[0] ) | ( trg1[1] & trg2[1] ) | trgLS1[0] | trgLS2[0];
trgUS[0] = ( trg1[0] & trg2[1] ) | ( trg1[1] & trg2[0] ) | trgUS1[0] | trgUS2[0];
trg[0] = trg1[0] | trg2[0];
trg[1] = trg1[1] | trg2[1];
TBits v(4);
v[0] = trgLS[0];
v[1] = trgUS[0];
v[2] = trg[0];
v[3] = trg[1];
UShort_t rv = 0;
v.Get(&rv);
return rv;
}
void AliMUONRegionalTriggerBoard::Scan(Option_t*) const
{
for (Int_t i=0; i<16; i++)
{
TBits b;
b.Set(6,&fLocalResponse[i]);
cout << "Entry " << i << " is " << b << endl;
}
}
void AliMUONRegionalTriggerBoard::Mask(UShort_t mask)
{
fMask = mask;
}
Bool_t AliMUONRegionalTriggerBoard::IsNull()
{
for (Int_t i=0; i<16; i++) {
if ( fLocalResponse[i] ) return kFALSE;
}
return kTRUE;
}
void AliMUONRegionalTriggerBoard::Reset()
{
for (Int_t i=0; i<16; ++i) fLocalResponse[i] = 0;
fResponse = 0;
}
AliMUONRegionalTriggerBoard.cxx:1 AliMUONRegionalTriggerBoard.cxx:2 AliMUONRegionalTriggerBoard.cxx:3 AliMUONRegionalTriggerBoard.cxx:4 AliMUONRegionalTriggerBoard.cxx:5 AliMUONRegionalTriggerBoard.cxx:6 AliMUONRegionalTriggerBoard.cxx:7 AliMUONRegionalTriggerBoard.cxx:8 AliMUONRegionalTriggerBoard.cxx:9 AliMUONRegionalTriggerBoard.cxx:10 AliMUONRegionalTriggerBoard.cxx:11 AliMUONRegionalTriggerBoard.cxx:12 AliMUONRegionalTriggerBoard.cxx:13 AliMUONRegionalTriggerBoard.cxx:14 AliMUONRegionalTriggerBoard.cxx:15 AliMUONRegionalTriggerBoard.cxx:16 AliMUONRegionalTriggerBoard.cxx:17 AliMUONRegionalTriggerBoard.cxx:18 AliMUONRegionalTriggerBoard.cxx:19 AliMUONRegionalTriggerBoard.cxx:20 AliMUONRegionalTriggerBoard.cxx:21 AliMUONRegionalTriggerBoard.cxx:22 AliMUONRegionalTriggerBoard.cxx:23 AliMUONRegionalTriggerBoard.cxx:24 AliMUONRegionalTriggerBoard.cxx:25 AliMUONRegionalTriggerBoard.cxx:26 AliMUONRegionalTriggerBoard.cxx:27 AliMUONRegionalTriggerBoard.cxx:28 AliMUONRegionalTriggerBoard.cxx:29 AliMUONRegionalTriggerBoard.cxx:30 AliMUONRegionalTriggerBoard.cxx:31 AliMUONRegionalTriggerBoard.cxx:32 AliMUONRegionalTriggerBoard.cxx:33 AliMUONRegionalTriggerBoard.cxx:34 AliMUONRegionalTriggerBoard.cxx:35 AliMUONRegionalTriggerBoard.cxx:36 AliMUONRegionalTriggerBoard.cxx:37 AliMUONRegionalTriggerBoard.cxx:38 AliMUONRegionalTriggerBoard.cxx:39 AliMUONRegionalTriggerBoard.cxx:40 AliMUONRegionalTriggerBoard.cxx:41 AliMUONRegionalTriggerBoard.cxx:42 AliMUONRegionalTriggerBoard.cxx:43 AliMUONRegionalTriggerBoard.cxx:44 AliMUONRegionalTriggerBoard.cxx:45 AliMUONRegionalTriggerBoard.cxx:46 AliMUONRegionalTriggerBoard.cxx:47 AliMUONRegionalTriggerBoard.cxx:48 AliMUONRegionalTriggerBoard.cxx:49 AliMUONRegionalTriggerBoard.cxx:50 AliMUONRegionalTriggerBoard.cxx:51 AliMUONRegionalTriggerBoard.cxx:52 AliMUONRegionalTriggerBoard.cxx:53 AliMUONRegionalTriggerBoard.cxx:54 AliMUONRegionalTriggerBoard.cxx:55 AliMUONRegionalTriggerBoard.cxx:56 AliMUONRegionalTriggerBoard.cxx:57 AliMUONRegionalTriggerBoard.cxx:58 AliMUONRegionalTriggerBoard.cxx:59 AliMUONRegionalTriggerBoard.cxx:60 AliMUONRegionalTriggerBoard.cxx:61 AliMUONRegionalTriggerBoard.cxx:62 AliMUONRegionalTriggerBoard.cxx:63 AliMUONRegionalTriggerBoard.cxx:64 AliMUONRegionalTriggerBoard.cxx:65 AliMUONRegionalTriggerBoard.cxx:66 AliMUONRegionalTriggerBoard.cxx:67 AliMUONRegionalTriggerBoard.cxx:68 AliMUONRegionalTriggerBoard.cxx:69 AliMUONRegionalTriggerBoard.cxx:70 AliMUONRegionalTriggerBoard.cxx:71 AliMUONRegionalTriggerBoard.cxx:72 AliMUONRegionalTriggerBoard.cxx:73 AliMUONRegionalTriggerBoard.cxx:74 AliMUONRegionalTriggerBoard.cxx:75 AliMUONRegionalTriggerBoard.cxx:76 AliMUONRegionalTriggerBoard.cxx:77 AliMUONRegionalTriggerBoard.cxx:78 AliMUONRegionalTriggerBoard.cxx:79 AliMUONRegionalTriggerBoard.cxx:80 AliMUONRegionalTriggerBoard.cxx:81 AliMUONRegionalTriggerBoard.cxx:82 AliMUONRegionalTriggerBoard.cxx:83 AliMUONRegionalTriggerBoard.cxx:84 AliMUONRegionalTriggerBoard.cxx:85 AliMUONRegionalTriggerBoard.cxx:86 AliMUONRegionalTriggerBoard.cxx:87 AliMUONRegionalTriggerBoard.cxx:88 AliMUONRegionalTriggerBoard.cxx:89 AliMUONRegionalTriggerBoard.cxx:90 AliMUONRegionalTriggerBoard.cxx:91 AliMUONRegionalTriggerBoard.cxx:92 AliMUONRegionalTriggerBoard.cxx:93 AliMUONRegionalTriggerBoard.cxx:94 AliMUONRegionalTriggerBoard.cxx:95 AliMUONRegionalTriggerBoard.cxx:96 AliMUONRegionalTriggerBoard.cxx:97 AliMUONRegionalTriggerBoard.cxx:98 AliMUONRegionalTriggerBoard.cxx:99 AliMUONRegionalTriggerBoard.cxx:100 AliMUONRegionalTriggerBoard.cxx:101 AliMUONRegionalTriggerBoard.cxx:102 AliMUONRegionalTriggerBoard.cxx:103 AliMUONRegionalTriggerBoard.cxx:104 AliMUONRegionalTriggerBoard.cxx:105 AliMUONRegionalTriggerBoard.cxx:106 AliMUONRegionalTriggerBoard.cxx:107 AliMUONRegionalTriggerBoard.cxx:108 AliMUONRegionalTriggerBoard.cxx:109 AliMUONRegionalTriggerBoard.cxx:110 AliMUONRegionalTriggerBoard.cxx:111 AliMUONRegionalTriggerBoard.cxx:112 AliMUONRegionalTriggerBoard.cxx:113 AliMUONRegionalTriggerBoard.cxx:114 AliMUONRegionalTriggerBoard.cxx:115 AliMUONRegionalTriggerBoard.cxx:116 AliMUONRegionalTriggerBoard.cxx:117 AliMUONRegionalTriggerBoard.cxx:118 AliMUONRegionalTriggerBoard.cxx:119 AliMUONRegionalTriggerBoard.cxx:120 AliMUONRegionalTriggerBoard.cxx:121 AliMUONRegionalTriggerBoard.cxx:122 AliMUONRegionalTriggerBoard.cxx:123 AliMUONRegionalTriggerBoard.cxx:124 AliMUONRegionalTriggerBoard.cxx:125 AliMUONRegionalTriggerBoard.cxx:126 AliMUONRegionalTriggerBoard.cxx:127 AliMUONRegionalTriggerBoard.cxx:128 AliMUONRegionalTriggerBoard.cxx:129 AliMUONRegionalTriggerBoard.cxx:130 AliMUONRegionalTriggerBoard.cxx:131 AliMUONRegionalTriggerBoard.cxx:132 AliMUONRegionalTriggerBoard.cxx:133 AliMUONRegionalTriggerBoard.cxx:134 AliMUONRegionalTriggerBoard.cxx:135 AliMUONRegionalTriggerBoard.cxx:136 AliMUONRegionalTriggerBoard.cxx:137 AliMUONRegionalTriggerBoard.cxx:138 AliMUONRegionalTriggerBoard.cxx:139 AliMUONRegionalTriggerBoard.cxx:140 AliMUONRegionalTriggerBoard.cxx:141 AliMUONRegionalTriggerBoard.cxx:142 AliMUONRegionalTriggerBoard.cxx:143 AliMUONRegionalTriggerBoard.cxx:144 AliMUONRegionalTriggerBoard.cxx:145 AliMUONRegionalTriggerBoard.cxx:146 AliMUONRegionalTriggerBoard.cxx:147 AliMUONRegionalTriggerBoard.cxx:148 AliMUONRegionalTriggerBoard.cxx:149 AliMUONRegionalTriggerBoard.cxx:150 AliMUONRegionalTriggerBoard.cxx:151 AliMUONRegionalTriggerBoard.cxx:152 AliMUONRegionalTriggerBoard.cxx:153 AliMUONRegionalTriggerBoard.cxx:154 AliMUONRegionalTriggerBoard.cxx:155 AliMUONRegionalTriggerBoard.cxx:156 AliMUONRegionalTriggerBoard.cxx:157 AliMUONRegionalTriggerBoard.cxx:158 AliMUONRegionalTriggerBoard.cxx:159 AliMUONRegionalTriggerBoard.cxx:160 AliMUONRegionalTriggerBoard.cxx:161 AliMUONRegionalTriggerBoard.cxx:162 AliMUONRegionalTriggerBoard.cxx:163 AliMUONRegionalTriggerBoard.cxx:164 AliMUONRegionalTriggerBoard.cxx:165 AliMUONRegionalTriggerBoard.cxx:166 AliMUONRegionalTriggerBoard.cxx:167 AliMUONRegionalTriggerBoard.cxx:168 AliMUONRegionalTriggerBoard.cxx:169 AliMUONRegionalTriggerBoard.cxx:170 AliMUONRegionalTriggerBoard.cxx:171 AliMUONRegionalTriggerBoard.cxx:172 AliMUONRegionalTriggerBoard.cxx:173 AliMUONRegionalTriggerBoard.cxx:174 AliMUONRegionalTriggerBoard.cxx:175 AliMUONRegionalTriggerBoard.cxx:176 AliMUONRegionalTriggerBoard.cxx:177 AliMUONRegionalTriggerBoard.cxx:178 AliMUONRegionalTriggerBoard.cxx:179 AliMUONRegionalTriggerBoard.cxx:180 AliMUONRegionalTriggerBoard.cxx:181 AliMUONRegionalTriggerBoard.cxx:182 AliMUONRegionalTriggerBoard.cxx:183 AliMUONRegionalTriggerBoard.cxx:184 AliMUONRegionalTriggerBoard.cxx:185 AliMUONRegionalTriggerBoard.cxx:186 AliMUONRegionalTriggerBoard.cxx:187 AliMUONRegionalTriggerBoard.cxx:188 AliMUONRegionalTriggerBoard.cxx:189 AliMUONRegionalTriggerBoard.cxx:190 AliMUONRegionalTriggerBoard.cxx:191 AliMUONRegionalTriggerBoard.cxx:192 AliMUONRegionalTriggerBoard.cxx:193 AliMUONRegionalTriggerBoard.cxx:194 AliMUONRegionalTriggerBoard.cxx:195 AliMUONRegionalTriggerBoard.cxx:196 AliMUONRegionalTriggerBoard.cxx:197 AliMUONRegionalTriggerBoard.cxx:198 AliMUONRegionalTriggerBoard.cxx:199 AliMUONRegionalTriggerBoard.cxx:200 AliMUONRegionalTriggerBoard.cxx:201 AliMUONRegionalTriggerBoard.cxx:202 AliMUONRegionalTriggerBoard.cxx:203 AliMUONRegionalTriggerBoard.cxx:204 AliMUONRegionalTriggerBoard.cxx:205 AliMUONRegionalTriggerBoard.cxx:206 AliMUONRegionalTriggerBoard.cxx:207 AliMUONRegionalTriggerBoard.cxx:208 AliMUONRegionalTriggerBoard.cxx:209 AliMUONRegionalTriggerBoard.cxx:210 AliMUONRegionalTriggerBoard.cxx:211 AliMUONRegionalTriggerBoard.cxx:212 AliMUONRegionalTriggerBoard.cxx:213 AliMUONRegionalTriggerBoard.cxx:214 AliMUONRegionalTriggerBoard.cxx:215 AliMUONRegionalTriggerBoard.cxx:216 AliMUONRegionalTriggerBoard.cxx:217 AliMUONRegionalTriggerBoard.cxx:218 AliMUONRegionalTriggerBoard.cxx:219 AliMUONRegionalTriggerBoard.cxx:220 AliMUONRegionalTriggerBoard.cxx:221 AliMUONRegionalTriggerBoard.cxx:222 AliMUONRegionalTriggerBoard.cxx:223 AliMUONRegionalTriggerBoard.cxx:224 AliMUONRegionalTriggerBoard.cxx:225 AliMUONRegionalTriggerBoard.cxx:226 AliMUONRegionalTriggerBoard.cxx:227 AliMUONRegionalTriggerBoard.cxx:228 AliMUONRegionalTriggerBoard.cxx:229 AliMUONRegionalTriggerBoard.cxx:230 AliMUONRegionalTriggerBoard.cxx:231 AliMUONRegionalTriggerBoard.cxx:232 AliMUONRegionalTriggerBoard.cxx:233 AliMUONRegionalTriggerBoard.cxx:234 AliMUONRegionalTriggerBoard.cxx:235 AliMUONRegionalTriggerBoard.cxx:236 AliMUONRegionalTriggerBoard.cxx:237 AliMUONRegionalTriggerBoard.cxx:238