#include "AliRawReaderFile.h" // ALIRAWREADERFILE_H
#include "AliRawReaderRoot.h" // ALIRAWREADERROOT_H
#include "AliRawReaderDate.h" // ALIRAWREADERDATE_H
+#include "AliRawEventHeaderBase.h"
#include "AliFMD.h" // ALIFMD_H
#include "AliFMDHit.h" // ALIFMDHIT_H
#include "AliFMDDigit.h" // ALIFMDDigit_H
AliFMDInput::NEvents() const
{
// Get number of events
- if (TESTBIT(fTreeMask, kRaw)) return fReader->GetNumberOfEvents();
+ if (TESTBIT(fTreeMask, kRaw) ||
+ TESTBIT(fTreeMask, kRawCalib)) return fReader->GetNumberOfEvents();
if (fChainE) return fChainE->GetEntriesFast();
if (fTreeE) return fTreeE->GetEntries();
return -1;
"\tRecPoints: %d\n"
"\tESD: %d\n"
"\tRaw: %d\n"
+ "\tRawCalib: %d\n"
"\tGeometry: %d\n"
"\tTracks: %d\n"
"\tTracksRefs: %d",
TESTBIT(fTreeMask, kRecPoints),
TESTBIT(fTreeMask, kESD),
TESTBIT(fTreeMask, kRaw),
+ TESTBIT(fTreeMask, kRawCalib),
TESTBIT(fTreeMask, kGeometry),
TESTBIT(fTreeMask, kTracks),
TESTBIT(fTreeMask, kTrackRefs));
}
- if (TESTBIT(fTreeMask, kRaw)) {
+ if (TESTBIT(fTreeMask, kRaw) ||
+ TESTBIT(fTreeMask, kRawCalib)) {
AliInfo("Getting FMD raw data digits");
fArrayA = new TClonesArray("AliFMDDigit");
#if 0
}
// Possibly load FMD Digit information
- if (TESTBIT(fTreeMask, kRaw)) {
+ if (TESTBIT(fTreeMask, kRaw) || TESTBIT(fTreeMask, kRawCalib)) {
// AliInfo("Getting FMD raw data digits");
- if (!fReader->NextEvent()) return kFALSE;
+ std::cout << "Waiting for event ..." << std::endl;
+ do {
+ if (!fReader->NextEvent()) {
+ if (fRawFile.Contains("mem://")) {
+ gSystem->Sleep(3);
+ continue;
+ }
+ return kFALSE;
+ }
+ UInt_t eventType = fReader->GetType();
+ if(eventType == AliRawEventHeaderBase::kPhysicsEvent ||
+ eventType == AliRawEventHeaderBase::kCalibrationEvent)
+ break;
+ } while (true);
// AliFMDRawReader r(fReader, 0);
fArrayA->Clear();
fFMDReader->ReadAdcs(fArrayA);
if (!ProcessDigits()) return kFALSE;
if (TESTBIT(fTreeMask, kRaw))
if (!ProcessRawDigits()) return kFALSE;
+ if (TESTBIT(fTreeMask, kRawCalib))
+ if (!ProcessRawCalibDigits()) return kFALSE;
if (TESTBIT(fTreeMask, kRecPoints))
if (!ProcessRecPoints()) return kFALSE;
if (TESTBIT(fTreeMask, kESD))
return kTRUE;
}
+//____________________________________________________________________
+Bool_t
+AliFMDInput::ProcessRawCalibDigits()
+{
+ // Read the digit tree, and pass each digit to the member function
+ // ProcessDigit.
+ if (!fArrayA) {
+ AliError("No raw digit array defined");
+ return kFALSE;
+ }
+
+ Int_t nDigit = fArrayA->GetEntries();
+ if (nDigit <= 0) return kTRUE;
+ for (Int_t j = 0; j < nDigit; j++) {
+ AliFMDDigit* digit = static_cast<AliFMDDigit*>(fArrayA->At(j));
+ if (!digit) continue;
+ if (AliLog::GetDebugLevel("FMD","") >= 40 && j < 30)
+ digit->Print();
+ if (!ProcessRawCalibDigit(digit)) return kFALSE;
+ }
+ return kTRUE;
+}
+
//____________________________________________________________________
Bool_t
AliFMDInput::ProcessRecPoints()