- for (Int_t i = 0; i < fRegionSize->X(); i++)
- for (Int_t j = 0; j < fRegionSize->Y(); j++)
- for (Int_t k = 0; k < kNup + kNdown; k++) buffer[i][j][k] = 0;
-
+ AliDebug(999,Form("=== TRU PF: %x",fDCSConfig->GetSELPF()));
+
+ UInt_t ma = fDCSConfig->GetSELPF() & 0xffff;
+
+ // Set default peak finder if null
+ if (!ma) ma = 0x1e1f;
+
+ int nb = ma & 0x7f;
+
+ ma = (ma >> 8) & 0x7f;
+
+ AliDebug(999,Form("=== TRU fw version %x ===",fDCSConfig->GetFw()));
+
+ if (fDCSConfig->GetFw() < 0x4d) {
+ return L0v0(nb, ma);
+ } else {
+ return L0v1(nb, ma);
+ }
+}
+
+//________________
+Int_t AliEMCALTriggerTRU::L0v0(int mask, int pattern)
+{
+ // L0 issuing condition is: (2x2 PF) AND (4x4 > thres)
+
+ AliDebug(999,"=== Running TRU L0 algorithm version 0 ===");
+
+ const Int_t xsize = Int_t(fRegionSize->X());
+ const Int_t ysize = Int_t(fRegionSize->Y());
+
+ Int_t **othr = new Int_t*[xsize];
+ Int_t **patt = new Int_t*[xsize];
+ Int_t **buff = new Int_t*[xsize];
+
+ for (Int_t x = 0; x < xsize; x++) {
+ othr[x] = new Int_t[ysize];
+ patt[x] = new Int_t[ysize];
+ buff[x] = new Int_t[ysize];
+ }
+
+ for (Int_t i = 0; i < xsize; i++) {
+ for (Int_t j = 0; j < ysize; j++) {
+ othr[i][j] = 0;
+ patt[i][j] = 0;
+ buff[i][j] = 0;
+ }
+ }
+