+ /// Apply masks to global input and recalculate regional inputs before
+ /// applying the global response
+
+ UInt_t gitmp[4];
+ for (Int_t i = 0; i < 4; i++) {
+ fGlobalInput[i] &= fMask[i];
+ gitmp[i] = fGlobalInput[i];
+ }
+
+ RecomputeRegional(gitmp);
+}
+
+
+//___________________________________________
+void AliMUONGlobalTriggerBoard::RecomputeRegional(UInt_t gitmp[4])
+{
+ //
+ /// Recomput regional response from global input
+ //
+ for (Int_t iReg = 0; iReg < 16; iReg++) {
+ fRegionalResponse[iReg] = 0;
+ if (iReg < 8) { // right
+ // Lpt
+ fRegionalResponse[iReg] |= (gitmp[0] >> (4*iReg)) & 0xF;
+ // Hpt
+ fRegionalResponse[iReg] |= ((gitmp[2] >> (4*iReg)) & 0xF) << 4;
+ } else { // left
+ // Lpt
+ fRegionalResponse[iReg] |= (gitmp[1] >> (4*(iReg-8))) & 0xF;
+ // Hpt
+ fRegionalResponse[iReg] |= ((gitmp[3] >> (4*(iReg-8))) & 0xF) << 4;
+ }
+
+ fRegionalResponse[iReg] = InvertPairBits(iReg);
+ }
+}
+
+//___________________________________________
+void AliMUONGlobalTriggerBoard::Scan(Option_t*) const
+{
+ /// print global trigger output
+ TBits w(7); w.Set(7,&fResponse);