ROOT logo
//
// Test of the "NextSignal" interface of the AliFMDRawReader
//
// w/ZS:	08000059807016.10.root
// w/o ZS:	08000053726000.10.root

Int_t ReadEvent(AliRawReader* reader)
{
  if (!reader)              return -1;
  if (!reader->NextEvent()) return -1;
  Int_t evno = reader->GetEventIndex();
  // if (evno % 10 == 0) std::cout << "." << std::flush;
  std::cout << "In event # " << evno << "/" 
	    << reader->GetNumberOfEvents() << std::endl;  
  return evno;
}

void
TestRawReader(const char* file=
	      //"/media/cholm_data/alice/data/08000053726000.10.root" // w/o ZS
	      "/media/cholm_data/alice/data/08000059807016.10.root" // w/ZS
	      )
{
  AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  AliCDBManager::Instance()->SetRun(59807);
  AliFMDParameters::Instance()->Init();
  AliLog::SetModuleDebugLevel("FMD", 2);

  AliRawReader* rawReader = AliRawReader::Create(file);
  if (!rawReader) return;
  
  AliFMDRawReader* fmdReader = new AliFMDRawReader(rawReader, 0);
  
  AliFMDBoolMap seen;
  
  Int_t evno = -1;
  while ((evno = ReadEvent(rawReader)) >= 0) { 
    if (evno <  25) continue;
    if (evno > 120) break;
    
    UShort_t det, sec, str, fac;
    Short_t adc;
    Bool_t zs;
    Char_t rng;
    seen.Reset(kFALSE);
    
    while (fmdReader->NextSignal(det, rng, sec, str, adc, zs, fac)) { 
      Printf("FMD%d%c[%02d,%03d]: %4d", det,rng,sec,str,adc);
      seen(det,rng,sec,str) = kTRUE;
    }
#if 0
    for (det = 1; det <= 3; det++) { 
      UShort_t nrng = (det == 1 ? 1 : 2);
      for (UShort_t ir = 0; ir < nrng; ir++) { 
	Char_t   rng  = (ir == 0 ? 'I' : 'O');
	UShort_t nsec = (ir == 0 ?  20 :  40);
	UShort_t nstr = (ir == 0 ? 512 : 256);
	for (sec = 0; sec < nsec; sec++) { 
	  for (str = 0; str < nstr; str++) {
	    if (!seen(det,rng,sec,str)) 
	      Printf("FMD%d%c[%02d,%03d] not seen", det,rng,sec,str);
	  }
	}
      }
    }
#endif
  }
}

    
    
 TestRawReader.C:1
 TestRawReader.C:2
 TestRawReader.C:3
 TestRawReader.C:4
 TestRawReader.C:5
 TestRawReader.C:6
 TestRawReader.C:7
 TestRawReader.C:8
 TestRawReader.C:9
 TestRawReader.C:10
 TestRawReader.C:11
 TestRawReader.C:12
 TestRawReader.C:13
 TestRawReader.C:14
 TestRawReader.C:15
 TestRawReader.C:16
 TestRawReader.C:17
 TestRawReader.C:18
 TestRawReader.C:19
 TestRawReader.C:20
 TestRawReader.C:21
 TestRawReader.C:22
 TestRawReader.C:23
 TestRawReader.C:24
 TestRawReader.C:25
 TestRawReader.C:26
 TestRawReader.C:27
 TestRawReader.C:28
 TestRawReader.C:29
 TestRawReader.C:30
 TestRawReader.C:31
 TestRawReader.C:32
 TestRawReader.C:33
 TestRawReader.C:34
 TestRawReader.C:35
 TestRawReader.C:36
 TestRawReader.C:37
 TestRawReader.C:38
 TestRawReader.C:39
 TestRawReader.C:40
 TestRawReader.C:41
 TestRawReader.C:42
 TestRawReader.C:43
 TestRawReader.C:44
 TestRawReader.C:45
 TestRawReader.C:46
 TestRawReader.C:47
 TestRawReader.C:48
 TestRawReader.C:49
 TestRawReader.C:50
 TestRawReader.C:51
 TestRawReader.C:52
 TestRawReader.C:53
 TestRawReader.C:54
 TestRawReader.C:55
 TestRawReader.C:56
 TestRawReader.C:57
 TestRawReader.C:58
 TestRawReader.C:59
 TestRawReader.C:60
 TestRawReader.C:61
 TestRawReader.C:62
 TestRawReader.C:63
 TestRawReader.C:64
 TestRawReader.C:65
 TestRawReader.C:66
 TestRawReader.C:67
 TestRawReader.C:68
 TestRawReader.C:69
 TestRawReader.C:70
 TestRawReader.C:71
 TestRawReader.C:72