: TObject(),
fSinglePlusLpt(0),
fSinglePlusHpt(0),
- fSinglePlusApt(0),
fSingleMinusLpt(0),
fSingleMinusHpt(0),
- fSingleMinusApt(0),
fSingleUndefLpt(0),
fSingleUndefHpt(0),
- fSingleUndefApt(0),
fPairUnlikeLpt(0),
fPairUnlikeHpt(0),
- fPairUnlikeApt(0),
fPairLikeLpt(0),
- fPairLikeHpt(0),
- fPairLikeApt(0)
+ fPairLikeHpt(0)
{
/// Default constructor
}
fSinglePlusLpt(theMUONGlobalTrig.fSinglePlusLpt),
fSinglePlusHpt(theMUONGlobalTrig.fSinglePlusHpt),
- fSinglePlusApt(theMUONGlobalTrig.fSinglePlusApt),
fSingleMinusLpt(theMUONGlobalTrig.fSingleMinusLpt),
fSingleMinusHpt(theMUONGlobalTrig.fSingleMinusHpt),
- fSingleMinusApt(theMUONGlobalTrig.fSingleMinusApt),
fSingleUndefLpt(theMUONGlobalTrig.fSingleUndefLpt),
fSingleUndefHpt(theMUONGlobalTrig.fSingleUndefHpt),
- fSingleUndefApt(theMUONGlobalTrig.fSingleUndefApt),
fPairUnlikeLpt(theMUONGlobalTrig.fPairUnlikeLpt),
fPairUnlikeHpt(theMUONGlobalTrig.fPairUnlikeHpt),
- fPairUnlikeApt(theMUONGlobalTrig.fPairUnlikeApt),
fPairLikeLpt(theMUONGlobalTrig.fPairLikeLpt),
- fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt),
- fPairLikeApt(theMUONGlobalTrig.fPairLikeApt)
+ fPairLikeHpt(theMUONGlobalTrig.fPairLikeHpt)
{
/// Copy constructor
}
fSinglePlusLpt = theMUONGlobalTrig.fSinglePlusLpt;
fSinglePlusHpt = theMUONGlobalTrig.fSinglePlusHpt;
- fSinglePlusApt = theMUONGlobalTrig.fSinglePlusApt;
fSingleMinusLpt = theMUONGlobalTrig.fSingleMinusLpt;
fSingleMinusHpt = theMUONGlobalTrig.fSingleMinusHpt;
- fSingleMinusApt = theMUONGlobalTrig.fSingleMinusApt;
fSingleUndefLpt = theMUONGlobalTrig.fSingleUndefLpt;
fSingleUndefHpt = theMUONGlobalTrig.fSingleUndefHpt;
- fSingleUndefApt = theMUONGlobalTrig.fSingleUndefApt;
fPairUnlikeLpt = theMUONGlobalTrig.fPairUnlikeLpt;
fPairUnlikeHpt = theMUONGlobalTrig.fPairUnlikeHpt;
- fPairUnlikeApt = theMUONGlobalTrig.fPairUnlikeApt;
fPairLikeLpt = theMUONGlobalTrig.fPairLikeLpt;
fPairLikeHpt = theMUONGlobalTrig.fPairLikeHpt;
- fPairLikeApt = theMUONGlobalTrig.fPairLikeApt;
return *this;
}
fSinglePlusLpt(singlePlus[0]),
fSinglePlusHpt(singlePlus[1]),
- fSinglePlusApt(singlePlus[2]),
fSingleMinusLpt(singleMinus[0]),
fSingleMinusHpt(singleMinus[1]),
- fSingleMinusApt(singleMinus[2]),
fSingleUndefLpt(singleUndef[0]),
fSingleUndefHpt(singleUndef[1]),
- fSingleUndefApt(singleUndef[2]),
fPairUnlikeLpt(pairUnlike[0]),
fPairUnlikeHpt(pairUnlike[1]),
- fPairUnlikeApt(pairUnlike[2]),
fPairLikeLpt(pairLike[0]),
- fPairLikeHpt(pairLike[1]),
- fPairLikeApt(pairLike[2])
+ fPairLikeHpt(pairLike[1])
{
/// Set the Global Trigger object
fSinglePlusLpt = (gloTrigPat ) & 0x1;
fSinglePlusHpt = (gloTrigPat >> 1) & 0x1;
- fSinglePlusApt = (gloTrigPat >> 2) & 0x1;
- fSingleMinusLpt = (gloTrigPat >> 3) & 0x1;
- fSingleMinusHpt = (gloTrigPat >> 4) & 0x1;
- fSingleMinusApt = (gloTrigPat >> 5) & 0x1;
+ fSingleMinusLpt = (gloTrigPat >> 2) & 0x1;
+ fSingleMinusHpt = (gloTrigPat >> 3) & 0x1;
- fSingleUndefLpt = (gloTrigPat >> 6) & 0x1;
- fSingleUndefHpt = (gloTrigPat >> 7) & 0x1;
- fSingleUndefApt = (gloTrigPat >> 8) & 0x1;
+ fSingleUndefLpt = (gloTrigPat >> 4) & 0x1;
+ fSingleUndefHpt = (gloTrigPat >> 5) & 0x1;
- fPairUnlikeLpt = (gloTrigPat >> 9) & 0x1;
- fPairUnlikeHpt = (gloTrigPat >> 10) & 0x1;
- fPairUnlikeApt = (gloTrigPat >> 11) & 0x1;
+ fPairUnlikeLpt = (gloTrigPat >> 6) & 0x1;
+ fPairUnlikeHpt = (gloTrigPat >> 7) & 0x1;
- fPairLikeLpt = (gloTrigPat >> 12) & 0x1;
- fPairLikeHpt = (gloTrigPat >> 13) & 0x1;
- fPairLikeApt = (gloTrigPat >> 14) & 0x1;
+ fPairLikeLpt = (gloTrigPat >> 8) & 0x1;
+ fPairLikeHpt = (gloTrigPat >> 9) & 0x1;
}
//-----------------------------------------------------------
/// Set class member from global response
/// coming from trigger electronics
/// should be unformized with rawdata (->oct 06)
- /// [Hpt, Lpt, Apt] with [+, -, US, LS]
- fSinglePlusLpt = ((globalResponse & 0xC0) >> 6) == 2;
- fSinglePlusHpt = ((globalResponse & 0xC00) >> 10) == 2;
- fSinglePlusApt = ((globalResponse & 0xC) >> 2) == 2;
-
- fSingleMinusLpt = ((globalResponse & 0xC0) >> 6) == 1;
- fSingleMinusHpt = ((globalResponse & 0xC00) >> 10) == 1;
- fSingleMinusApt = ((globalResponse & 0xC) >> 2) == 1;
-
- fSingleUndefLpt = ((globalResponse & 0xC0) >> 6) == 3;
- fSingleUndefHpt = ((globalResponse & 0xC00) >> 10) == 3;
- fSingleUndefApt = ((globalResponse & 0xC) >> 2) == 3;
-
- fPairUnlikeLpt = (globalResponse & 0x10) >> 4;
- fPairUnlikeHpt = (globalResponse & 0x100) >> 8;
- fPairUnlikeApt = (globalResponse & 0x1);
+ /// [Hpt, Lpt] with [+, -, US, LS]
+ fSinglePlusHpt = ((globalResponse & 0xC0) >> 6) == 2;
+ fSinglePlusLpt = ((globalResponse & 0xC) >> 2) == 2;
+
+ fSingleMinusHpt = ((globalResponse & 0xC0) >> 6) == 1;
+ fSingleMinusLpt = ((globalResponse & 0xC) >> 2) == 1;
+
+ fSingleUndefHpt = ((globalResponse & 0xC0) >> 6) == 3;
+ fSingleUndefLpt = ((globalResponse & 0xC) >> 2) == 3;
+
+ fPairUnlikeHpt = (globalResponse & 0x10) >> 4;
+ fPairUnlikeLpt = (globalResponse & 0x1);
- fPairLikeLpt = (globalResponse & 0x20) >> 5;
- fPairLikeHpt = (globalResponse & 0x200) >> 9;
- fPairLikeApt = (globalResponse & 0x2) >> 1;
+ fPairLikeHpt = (globalResponse & 0x20) >> 5;
+ fPairLikeLpt = (globalResponse & 0x2) >> 1;
}
//-----------------------------------------------------------
if (SinglePlusLpt()) gloTrigPat|= 0x1;
if (SinglePlusHpt()) gloTrigPat|= 0x2;
- if (SinglePlusApt()) gloTrigPat|= 0x4;
- if (SingleMinusLpt()) gloTrigPat|= 0x8;
- if (SingleMinusHpt()) gloTrigPat|= 0x10;
- if (SingleMinusApt()) gloTrigPat|= 0x20;
+ if (SingleMinusLpt()) gloTrigPat|= 0x4;
+ if (SingleMinusHpt()) gloTrigPat|= 0x8;
- if (SingleUndefLpt()) gloTrigPat|= 0x40;
- if (SingleUndefHpt()) gloTrigPat|= 0x80;
- if (SingleUndefApt()) gloTrigPat|= 0x100;
+ if (SingleUndefLpt()) gloTrigPat|= 0x10;
+ if (SingleUndefHpt()) gloTrigPat|= 0x20;
- if (PairUnlikeLpt()) gloTrigPat|= 0x200;
- if (PairUnlikeHpt()) gloTrigPat|= 0x400;
- if (PairUnlikeApt()) gloTrigPat|= 0x800;
+ if (PairUnlikeLpt()) gloTrigPat|= 0x40;
+ if (PairUnlikeHpt()) gloTrigPat|= 0x80;
- if (PairLikeLpt()) gloTrigPat|= 0x1000;
- if (PairLikeHpt()) gloTrigPat|= 0x2000;
- if (PairLikeApt()) gloTrigPat|= 0x4000;
+ if (PairLikeLpt()) gloTrigPat|= 0x100;
+ if (PairLikeHpt()) gloTrigPat|= 0x200;
return gloTrigPat;
if (SinglePlusHpt() || SingleMinusHpt()) respS |= 0x2;
if (PairLikeLpt()) respLS |= 0x1;
- if (PairLikeHpt()) respLS |= 0x1;
+ if (PairLikeHpt()) respLS |= 0x2;
respLS <<= 2;
if (PairUnlikeLpt()) respUS |= 0x1;
sopt.ToUpper();
if ( sopt.Contains("FULL") ) {
- printf("===================================================\n");
- printf(" Global Trigger output Low pt High pt All\n");
+ printf("=============================================\n");
+ printf(" Global Trigger output Low pt High pt\n");
printf(" number of Single Plus :\t");
- printf("%i\t%i\t%i\t",SinglePlusLpt(),SinglePlusHpt(),SinglePlusApt());
+ printf("%i\t%i\t",SinglePlusLpt(),SinglePlusHpt());
printf("\n");
printf(" number of Single Minus :\t");
- printf("%i\t%i\t%i\t",SingleMinusLpt(),SingleMinusHpt(),SingleMinusApt());
+ printf("%i\t%i\t",SingleMinusLpt(),SingleMinusHpt());
printf("\n");
printf(" number of Single Undefined :\t");
- printf("%i\t%i\t%i\t",SingleUndefLpt(),SingleUndefHpt(),SingleUndefApt());
+ printf("%i\t%i\t",SingleUndefLpt(),SingleUndefHpt());
printf("\n");
printf(" number of UnlikeSign pair :\t");
- printf("%i\t%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt(),PairUnlikeApt());
+ printf("%i\t%i\t",PairUnlikeLpt(),PairUnlikeHpt());
printf("\n");
printf(" number of LikeSign pair :\t");
- printf("%i\t%i\t%i\t",PairLikeLpt(),PairLikeHpt(),PairLikeApt());
+ printf("%i\t%i\t",PairLikeLpt(),PairLikeHpt());
printf("\n");
- printf("===================================================\n");
+ printf("=============================================\n");
}
}
Int_t SinglePlusLpt() const {return fSinglePlusLpt;}
/// Return number of Single Plus High pt
Int_t SinglePlusHpt() const {return fSinglePlusHpt ;}
- /// Return number of Single Plus All pt
- Int_t SinglePlusApt() const {return fSinglePlusApt ;}
/// Return number of Single Minus Low pt
Int_t SingleMinusLpt() const {return fSingleMinusLpt ;}
/// Return number of Single Minus High pt
Int_t SingleMinusHpt() const {return fSingleMinusHpt;}
- /// Return number of Single Minus All pt
- Int_t SingleMinusApt() const {return fSingleMinusApt;}
/// Return number of Single Undefined Low pt
Int_t SingleUndefLpt() const {return fSingleUndefLpt ;}
/// Return number of Single Undefined High pt
Int_t SingleUndefHpt() const {return fSingleUndefHpt ;}
- /// Return number of Single Undefined All pt
- Int_t SingleUndefApt() const {return fSingleUndefApt ;}
/// Return number of Unlike sign pair Low pt
Int_t PairUnlikeLpt() const {return fPairUnlikeLpt ;}
/// Return number of Unlike sign pair High pt
Int_t PairUnlikeHpt() const {return fPairUnlikeHpt ;}
- /// Return number of Unlike sign pair All pt
- Int_t PairUnlikeApt() const {return fPairUnlikeApt ;}
/// Return number of Like sign pair Low pt
Int_t PairLikeLpt() const {return fPairLikeLpt ;}
/// Return number of Like sign pair High pt
Int_t PairLikeHpt() const {return fPairLikeHpt ;}
- /// Return number of Like sign pair All pt
- Int_t PairLikeApt() const {return fPairLikeApt ;}
void SetGlobalPattern(Int_t globalPattern);
void SetGlobalPattern(UShort_t globalResponse);
private:
Int_t fSinglePlusLpt; ///< Number of Single Plus Low pt
Int_t fSinglePlusHpt; ///< Number of Single Plus High pt
- Int_t fSinglePlusApt; ///< Number of Single Plus All pt
Int_t fSingleMinusLpt; ///< Number of Single Minus Low pt
Int_t fSingleMinusHpt; ///< Number of Single Minus High pt
- Int_t fSingleMinusApt; ///< Number of Single Minus All pt
Int_t fSingleUndefLpt; ///< Number of Single Undefined Low pt
Int_t fSingleUndefHpt; ///< Number of Single Undefined High pt
- Int_t fSingleUndefApt; ///< Number of Single Undefined All pt
Int_t fPairUnlikeLpt; ///< Number of Unlike sign pair Low pt
Int_t fPairUnlikeHpt; ///< Number of Unlike sign pair High pt
- Int_t fPairUnlikeApt; ///< Number of Unlike sign pair All pt
Int_t fPairLikeLpt; ///< Number of Like sign pair Low pt
Int_t fPairLikeHpt; ///< Number of Like sign pair High pt
- Int_t fPairLikeApt; ///< Number of Like sign pair All pt
ClassDef(AliMUONGlobalTrigger,1) // reconstructed Global Trigger object
};
for (Int_t j=0;j<rank;j++)
{
- UShort_t athres = Algo(t[2*j],t[2*j+1],"APT");
+ UShort_t lthres = Algo(t[2*j],t[2*j+1],"LPT");
- UShort_t lthres = Algo(t[2*j],t[2*j+1],"LPT"); lthres <<= 4;
+ UShort_t hthres = Algo(t[2*j],t[2*j+1],"HPT"); hthres <<= 4;
- UShort_t hthres = Algo(t[2*j],t[2*j+1],"HPT"); hthres <<= 8;
-
- t[ip] = athres | lthres | hthres;
+ t[ip] = lthres | hthres;
ip++;
}
rank /= 2;
}
- fResponse = t[0]; // 12-bit [H4:L4:A4]
+ fResponse = t[0]; // 8-bit [H4:L4]
}
//___________________________________________
UShort_t AliMUONGlobalTriggerBoard::Algo(UShort_t i, UShort_t j, char *thres)
{
// GLOBAL TRIGGER ALGORITHM
- TBits a(12), b(12); a.Set(12,&i); b.Set(12,&j);
+ TBits a(8), b(8); a.Set(8,&i); b.Set(8,&j);
TBits trg1(2), trg2(2), trg(2);
- if (!strcmp(thres,"APT"))
+ if (!strcmp(thres,"LPT"))
{
trg1[0] = a[2]; trg1[1] = a[3];
trg2[0] = b[2]; trg2[1] = b[3];
}
- else if (!strcmp(thres,"LPT"))
- {
- trg1[0] = a[6]; trg1[1] = a[7];
- trg2[0] = b[6]; trg2[1] = b[7];
- }
else
{
- trg1[0] = a[10]; trg1[1] = a[11];
- trg2[0] = b[10]; trg2[1] = b[11];
+ 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 (!strcmp(thres,"APT"))
+ if (!strcmp(thres,"LPT"))
{
trgLS1[0] = a[1]; trgUS1[0] = a[0];
trgLS2[0] = b[1]; trgUS2[0] = b[0];
}
- else if (!strcmp(thres,"LPT"))
- {
- trgLS1[0] = a[5]; trgUS1[0] = a[4];
- trgLS2[0] = b[5]; trgUS2[0] = b[4];
- }
else
{
- trgLS1[0] = a[9]; trgUS1[0] = a[8];
- trgLS2[0] = b[9]; trgUS2[0] = b[8];
+ trgLS1[0] = a[5]; trgUS1[0] = a[4];
+ trgLS2[0] = b[5]; trgUS2[0] = b[4];
}
trgLS[0] = ( trg1[0] & trg2[0] ) | ( trg1[1] & trg2[1] ) | trgLS1[0] | trgLS2[0];
void AliMUONGlobalTriggerBoard::Scan(Option_t*) const
{
// PRINT GLOBAL TRIGGER OUTPUT
- TBits w(12); w.Set(12,&fResponse);
+ TBits w(8); w.Set(8,&fResponse);
// TRG[1:0]
// 00 noth
// 10 positive track
// 11 undef
- Int_t iSP[3] = {0,0,0}, iSM[3] = {0,0,0}, iSU[3] = {0,0,0};
+ Int_t iSP[2] = {0,0}, iSM[2] = {0,0}, iSU[2] = {0,0};
TBits a(2), n(2), p(2), u(2);
else if (a==n) iSM[1] = 1;
else if (a==u) iSU[1] = 1;
- a[0] = w[10];
- a[1] = w[11];
+ Int_t iPU[2] = {w[0],w[4]};
+ Int_t iPL[2] = {w[1],w[5]};
- if (a==p) iSP[2] = 1;
- else if (a==n) iSM[2] = 1;
- else if (a==u) iSU[2] = 1;
-
- Int_t iPU[3] = {w[0],w[4],w[8]};
- Int_t iPL[3] = {w[1],w[5],w[9]};
-
- printf("===================================================\n");
- printf(" Global Trigger output Low pt High pt All\n");
+ printf("============================================\n");
+ printf(" Global Trigger output Low pt High pt\n");
printf(" number of Single Plus :\t");
- for (Int_t i=0; i<3; i++) printf("%i\t",iSP[i]);
+ for (Int_t i=0; i<2; i++) printf("%i\t",iSP[i]);
printf("\n");
printf(" number of Single Minus :\t");
- for (Int_t i=0; i<3; i++) printf("%i\t",iSM[i]);
+ for (Int_t i=0; i<2; i++) printf("%i\t",iSM[i]);
printf("\n");
printf(" number of Single Undefined :\t");
- for (Int_t i=0; i<3; i++) printf("%i\t",iSU[i]);
+ for (Int_t i=0; i<2; i++) printf("%i\t",iSU[i]);
printf("\n");
printf(" number of UnlikeSign pair :\t");
- for (Int_t i=0; i<3; i++) printf("%i\t",iPU[i]);
+ for (Int_t i=0; i<2; i++) printf("%i\t",iPU[i]);
printf("\n");
printf(" number of LikeSign pair :\t");
- for (Int_t i=0; i<3; i++) printf("%i\t",iPL[i]);
+ for (Int_t i=0; i<2; i++) printf("%i\t",iPL[i]);
printf("\n");
printf("===================================================\n");
printf("\n");
fLoStripY(0),
fLoLpt(0),
fLoHpt(0),
- fLoApt(0),
fX1Pattern(0),
fX2Pattern(0),
fLoStripY(theMUONLocalTrig.fLoStripY),
fLoLpt(theMUONLocalTrig.fLoLpt),
fLoHpt(theMUONLocalTrig.fLoHpt),
- fLoApt(theMUONLocalTrig.fLoApt),
fX1Pattern(theMUONLocalTrig.fX1Pattern),
fX2Pattern(theMUONLocalTrig.fX2Pattern),
fLoStripY = theMUONLocalTrig.fLoStripY;
fLoLpt = theMUONLocalTrig.fLoLpt;
fLoHpt = theMUONLocalTrig.fLoHpt;
- fLoApt = theMUONLocalTrig.fLoApt;
fX1Pattern = theMUONLocalTrig.fX1Pattern;
fX2Pattern = theMUONLocalTrig.fX2Pattern;
fLoStripY(localtr[3]),
fLoLpt(localtr[4]),
fLoHpt(localtr[5]),
- fLoApt(localtr[6]),
- // keep on with this way
+ // keep on with this way
fX1Pattern((UShort_t)localtr[7]),
fX2Pattern((UShort_t)localtr[8]),
fX3Pattern((UShort_t)localtr[9]),
if ( sopt.Contains("FULL") ) {
- printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d Apt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt(),LoApt());
+ printf("<AliMUONLocalTrigger> Circuit %d StripX %d Dev %d StripY %d Lpt %d Hpt %d \n",LoCircuit(),LoStripX(),LoDev(),LoStripY(),LoLpt(),LoHpt());
}
}
Int_t LoLpt() const {return fLoLpt;}
/// Return High p
Int_t LoHpt() const {return fLoHpt;}
- /// Return All pt
- Int_t LoApt() const {return fLoApt;}
/// Return X strip pattern for chamber 11
UShort_t GetX1Pattern() const {return fX1Pattern;}
void SetLoLpt(Int_t loLpt) {fLoLpt = loLpt;}
/// Set High pt
void SetLoHpt(Int_t loHpt) {fLoHpt = loHpt;}
- /// Set All pt
- void SetLoApt(Int_t loApt) {fLoApt = loApt;}
/// Set X strip pattern for chamber 11
void SetX1Pattern(UShort_t pat) {fX1Pattern = pat;}
Int_t fLoStripY; ///< Y strip in MT11
Int_t fLoLpt; ///< Low pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
Int_t fLoHpt; ///< High pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
- Int_t fLoApt; ///< All pt 0 : nothing, 1 : Minus, 2 : Plus, 3 : Undef
UShort_t fX1Pattern; ///< X strip pattern for chamber 11
UShort_t fX2Pattern; ///< X strip pattern for chamber 12
Int_t fLutLpt[2]; ///< Low Pt cuts estimated from LUT
Int_t fLutHpt[2]; ///< High Pt cuts estimated from LUT
- Int_t fLutApt[2]; ///< All Pt cuts estimated from LUT
// Outputs of the local logic
Int_t fOutput; ///< Board has triggered
for (Int_t j=0;j<rank;j++)
{
- UShort_t athres = Algo(t[2*j],t[2*j+1],"APT",i);
+ UShort_t lthres = Algo(t[2*j],t[2*j+1],"LPT",i);
- UShort_t lthres = Algo(t[2*j],t[2*j+1],"LPT",i); lthres <<= 4;
+ UShort_t hthres = Algo(t[2*j],t[2*j+1],"HPT",i); hthres <<= 4;
- UShort_t hthres = Algo(t[2*j],t[2*j+1],"HPT",i); hthres <<= 8;
-
- t[ip] = athres | lthres | hthres;
+ t[ip] = lthres | hthres;
ip++;
}
rank /= 2;
}
- fResponse = t[0]; // 12-bit [H4:L4:A4]
+ fResponse = t[0]; // 8-bit [H4:L4]
}
//___________________________________________
// IMPLEMENTATION OF THE REGIONAL ALGORITHM
// SIMILAR TO THE GLOBAL ALGORITHM EXCEPT FOR THE
// INPUT LAYER
- TBits a(12), b(12); a.Set(12,&i); b.Set(12,&j);
+ TBits a(8), b(8); a.Set(8,&i); b.Set(8,&j);
TBits trg1(2), trg2(2), trg(2);
- if (!strcmp(thres,"APT"))
+ if (!strcmp(thres,"LPT"))
{
if (!level)
{
trg2[0] = b[2]; trg2[1] = b[3];
}
}
- else if (!strcmp(thres,"LPT"))
+ else
{
if (!level)
{
else
{
trg1[0] = a[6]; trg1[1] = a[7];
- trg2[0] = b[6]; trg2[1] = b[7];
- }
- }
- else
- {
- if (!level)
- {
- trg1[0] = a[4]; trg1[1] = a[5];
- trg2[0] = b[4]; trg2[1] = b[5];
- }
- else
- {
- trg1[0] = a[10]; trg1[1] = a[11];
- trg2[0] = b[10]; trg2[1] = b[11];
+ trg2[0] = b[6]; trg2[1] = b[7];
}
}
}
else
{
- if (!strcmp(thres,"APT"))
+ if (!strcmp(thres,"LPT"))
{
trgLS1[0] = a[1]; trgUS1[0] = a[0];
trgLS2[0] = b[1]; trgUS2[0] = b[0];
}
- else if (!strcmp(thres,"LPT"))
- {
- trgLS1[0] = a[5]; trgUS1[0] = a[4];
- trgLS2[0] = b[5]; trgUS2[0] = b[4];
- }
else
{
- trgLS1[0] = a[9]; trgUS1[0] = a[8];
- trgLS2[0] = b[9]; trgUS2[0] = b[8];
+ trgLS1[0] = a[5]; trgUS1[0] = a[4];
+ trgLS2[0] = b[5]; trgUS2[0] = b[4];
}
}
// set CTP
if (globalTrigger->SinglePlusLpt()) SetInput("MUON_SPlus_LPt_L0");
if (globalTrigger->SinglePlusHpt()) SetInput("MUON_SPlus_HPt_L0");
- if (globalTrigger->SinglePlusApt()) SetInput("MUON_SPlus_All_L0");
if (globalTrigger->SingleMinusLpt()) SetInput("MUON_SMinus_LPt_L0");
if (globalTrigger->SingleMinusHpt()) SetInput("MUON_SMinus_HPt_L0");
- if (globalTrigger->SingleMinusApt()) SetInput("MUON_SMinus_All_L0");
if (globalTrigger->SingleUndefLpt()) SetInput("MUON_SUndef_LPt_L0");
if (globalTrigger->SingleUndefHpt()) SetInput("MUON_SUndef_HPt_L0");
- if (globalTrigger->SingleUndefApt()) SetInput("MUON_SUndef_All_L0");
if (globalTrigger->PairUnlikeLpt()) SetInput("MUON_Unlike_LPt_L0");
if (globalTrigger->PairUnlikeHpt()) SetInput("MUON_Unlike_HPt_L0");
- if (globalTrigger->PairUnlikeApt()) SetInput("MUON_Unlike_All_L0");
if (globalTrigger->PairLikeLpt()) SetInput("MUON_Like_LPt_L0");
if (globalTrigger->PairLikeHpt()) SetInput("MUON_Like_HPt_L0");
- if (globalTrigger->PairLikeApt()) SetInput("MUON_Like_All_L0");
muonData->ResetTrigger();
muonLoader->UnloadDigits();
// SAVE LUT OUTPUT
UShort_t response = board->GetResponse();
- fLocalTrigger->SetLoLpt((response & 12) >> 2);
- fLocalTrigger->SetLoHpt((response & 48) >> 4);
- fLocalTrigger->SetLoApt(response & 3);
+ fLocalTrigger->SetLoHpt((response & 12) >> 2);
+ fLocalTrigger->SetLoLpt(response & 3);
// calculates regional inputs from local for the moment
UInt_t hPt = (response >> 4) & 0x3;
FILE *fdat=fopen(digitdat,"w");
- Int_t nevents,coincmuon,muonapt,muonlpt,muonhpt;
+ Int_t nevents,coincmuon,muonlpt,muonhpt;
Int_t CoincMuPlus,CoincMuMinus;
coincmuon=0;
- muonapt=0;
muonlpt=0;
muonhpt=0;
for (Int_t iglobal=0; iglobal<nglobals; iglobal++) { // Global Trigger
gloTrg = static_cast<AliMUONGlobalTrigger*>(globalTrigger->At(iglobal));
- if (gloTrg->PairUnlikeApt()>=1) muonapt++;
if (gloTrg->PairUnlikeLpt()>=1) muonlpt++;
if (gloTrg->PairUnlikeHpt()>=1) muonhpt++;
// calculate efficiency with as a ref. at least 3/4 planes fired
- Float_t efficiencyapt,efficiencylpt,efficiencyhpt;
- Double_t coincmu,aptmu,lptmu,hptmu;
+ Float_t efficiencylpt,efficiencyhpt;
+ Double_t coincmu,lptmu,hptmu;
Float_t error;
- coincmu=Double_t(coincmuon);
- aptmu=Double_t(muonapt);
+ coincmu=Double_t(coincmuon);
lptmu=Double_t(muonlpt);
hptmu=Double_t(muonhpt);
fprintf(fdat,"\n");
fprintf(fdat," Number of events = %d \n",nevents);
fprintf(fdat," Number of events with 3/4 coinc = %d \n",coincmuon);
- fprintf(fdat," Number of dimuons with 3/4 coinc Apt cut = %d \n",muonapt);
fprintf(fdat," Nomber of dimuons with 3/4 coinc Lpt cut = %d \n",muonlpt);
fprintf(fdat," Number of dimuons with 3/4 coinc Hpt cut = %d \n",muonhpt);
fprintf(fdat,"\n");
- efficiencyapt=aptmu/coincmu;
- error=efficiencyapt*TMath::Sqrt((aptmu+coincmu)/(aptmu*coincmu));
- fprintf(fdat," Efficiency Apt cut = %4.4f +/- %4.4f\n",efficiencyapt,error);
-
efficiencylpt=lptmu/coincmu;
error=efficiencylpt*TMath::Sqrt((lptmu+coincmu)/(lptmu*coincmu));
fprintf(fdat," Efficiency Lpt cut = %4.4f +/- %4.4f\n",efficiencylpt,error);