fCrate(0),
fTC(kTRUE),
fStripX11(0),
- fStripY11(0),
+ fStripY11(15),
fDev(0),
+ fTrigY(1),
fOutput(0),
fLUT(0x0),
fCoinc44(0)
fCrate(0),
fTC(kTRUE),
fStripX11(0),
- fStripY11(0),
+ fStripY11(15),
fDev(0),
+ fTrigY(1),
fOutput(0),
fLUT(lut),
fCoinc44(0)
fOutput = 0;
- fStripX11 = fStripY11 = fDev = 0;
+ fStripX11 = 0;
+ fStripY11 = 15;
+ fDev = 0;
+ fTrigY = 1;
for (Int_t i=0; i<2; i++) fLutLpt[i] = fLutHpt[i] = 0;
}
{
/// L0 trigger after LUT
///
- Int_t deviation=0, iStripY=0, iStripX=0;
+ Int_t deviation=0;
+ Int_t iStripY=0;
+ Int_t iStripX=0;
+ Bool_t xOutput=kFALSE;
+ Bool_t yOutput=kFALSE;
for (Int_t i=0; i<4; i++) deviation += static_cast<int>( fMinDev[i] << i );
for (Int_t i=0; i<4; i++) iStripY += static_cast<int>( fCoordY[i] << i );
- if (fMinDev[4]==1 && !deviation) fOutput=0; // No trigger
- else
- {
- if (fCoordY[4]==1 && iStripY==15) fOutput=0; // No trigger
- else
- fOutput=1;
- }
-
- if (fOutput)
- {
- for (Int_t i=0; i<5; i++) iStripX += static_cast<int>( fMinDevStrip[i] << i );
+ if (fMinDev[4]==1 && !deviation) xOutput=kFALSE; // no trigger in X
+ else xOutput=kTRUE; // trigger in X
+ if (fCoordY[4]==1 && iStripY==15) yOutput=kFALSE; // no trigger in Y
+ else yOutput=kTRUE; // trigger in Y
+ if (xOutput) {
+ for (Int_t i=0; i<5; i++) iStripX += static_cast<int>( fMinDevStrip[i] << i );
fDev = deviation;
- fStripY11 = iStripY;
fStripX11 = iStripX;
-
- Int_t sign = 0;
-
- if ( !fMinDev[4] && deviation ) sign=-1;
- if ( !fMinDev[4] && !deviation ) sign= 0;
- if ( fMinDev[4] == 1 ) sign=+1;
-
- fDev *= sign;
-
+ }
+ if (yOutput) {
+ fStripY11 = iStripY;
+ fTrigY = fCoordY[4];
+ }
+
+// cout << " Local Trigger " << " " << fNumber << " " <<
+// xOutput << " " << yOutput << " " << fDev << " " << fStripX11 << " " <<
+// fTrigY << " " << fStripY11 << "\n";
+
+ if (xOutput && yOutput){ // trigger in X and Y
+ fOutput =1;
+
+ Int_t sign = 0;
+ if ( !fMinDev[4] && deviation ) sign=-1;
+ if ( !fMinDev[4] && !deviation ) sign= 0;
+ if ( fMinDev[4] == 1 ) sign=+1;
+
+ deviation *= sign;
+
// calculate deviation in [0;+30]
- fDev += 15;
-
+ deviation += 15;
+
// GET LUT OUTPUT FOR icirc/istripX1/deviation/istripY
- fLUT->GetLutOutput(fNumber, fStripX11, fDev, fStripY11, fLutLpt, fLutHpt);
+ fLUT->GetLutOutput(fNumber, fStripX11, deviation, fStripY11, fLutLpt, fLutHpt);
}
}
TrigY(yY1, yY2, yY3, yY4, yY3U, yY3D, yY4U, yY4D);
// ASIGN fLutLpt, fLutHpt
- LocalTrigger();
+ LocalTrigger();
fResponse = fLutLpt[0] +
static_cast<int>(fLutLpt[1]<<1) +