// Return:
// Reference to this
//
+ if (&qadm == this) return *this;
fRecPointsArray = qadm.fRecPointsArray;
fReconstructor = qadm.fReconstructor;
fUseReconstructor = qadm.fUseReconstructor;
{
// create Raws histograms in Raws subdir
Info("InitRaws", "Initializing Raws");
- const Bool_t expert = kTRUE ;
- const Bool_t saveCorr = kTRUE ;
- const Bool_t image = kTRUE ;
+ const Bool_t expert = kTRUE ; // Flag - not the setting
+ const Bool_t saveCorr = kTRUE ; // Flag - not setting
+ const Bool_t image = kTRUE ; // Flag - not the setting
TH2I* hErrors = new TH2I("readoutErrors", "Read out errors", 3, .5, 3.5,
160, -.5, 159.5);
hErrors->GetXaxis()->SetBinLabel(1, "FMD1");
hErrors->GetXaxis()->SetBinLabel(2, "FMD2");
hErrors->GetXaxis()->SetBinLabel(3, "FMD3");
- hErrors->SetYTitle("# errors");
+ hErrors->SetYTitle("# errors [log]");
hErrors->SetZTitle("Events [log]");
hErrors->SetDirectory(0);
Add2RawsList(hErrors, 1, !expert, image, !saveCorr);
// AliLog::SetModuleDebugLevel("FMD", oldDbg);
}
+ TH2* status = new TH2D("status", "Fit status per cycle",
+ 5, .5, 5.5, 4, -.5, 3.5);
+ status->SetDirectory(0);
+ // status->SetXTitle("Detector");
+ // status->SetYTitle("Status");
+ status->SetZTitle("N_{cycles} [LOG]");
+ status->GetXaxis()->SetBinLabel(1, "FMD1i");
+ status->GetXaxis()->SetBinLabel(2, "FMD2i");
+ status->GetXaxis()->SetBinLabel(3, "FMD2o");
+ status->GetXaxis()->SetBinLabel(4, "FMD3i");
+ status->GetXaxis()->SetBinLabel(5, "FMD3o");
+ status->GetYaxis()->SetBinLabel(1, "OK");
+ status->GetYaxis()->SetBinLabel(2, "Problem");
+ status->GetYaxis()->SetBinLabel(3, "Bad");
+ status->GetYaxis()->SetBinLabel(4, "What the ...?");
+ status->GetXaxis()->SetLabelSize(0.16);
+ status->GetYaxis()->SetLabelSize(0.16);
+ status->SetStats(0);
+ Add2RawsList(status, GetHalfringIndex(4, 'i', 0, 0),
+ !expert, image, !saveCorr);
+
TH1* hist;
Int_t idx = 0;
for(UShort_t d = 1; d<=3; d++) {
//_____________________________________________________________________
void AliFMDQADataMakerRec::StartOfDetectorCycle()
{
- // What
- // to
- // do?
+ // Do an init on the reconstructor. If we have the
+ // same run nothing happens, but if we have a new run, we update our
+ // parameters.
+ if (fUseReconstructor && fReconstructor) fReconstructor->Init();
+ if (fRawsQAList) {
+ for (Int_t index = 0 ; index < AliRecoParam::kNSpecies ; index++) {
+ if (!fRawsQAList[index]) continue;
+ AliRecoParam::EventSpecie_t specie = AliRecoParam::ConvertIndex(index);
+ if (specie == AliRecoParam::kCalib || specie == AliRecoParam::kCosmic)
+ continue;
+
+ TIter nextObject(fRawsQAList[index]);
+ TObject* object = 0;
+ while ((object = nextObject())) {
+ if (!object->InheritsFrom(TH1::Class())) continue;
+ TH1* hist = static_cast<TH1*>(object);
+ if (!hist->TestBit(kResetBit)) continue;
+
+ AliInfoF("Resetting histogram %s", hist->GetName());
+ hist->Reset("M");
+ hist->SetBit(kResetBit, false);
+ }
+ }
+ }
}
//_____________________________________________________________________
Int_t AliFMDQADataMakerRec::GetHalfringIndex(UShort_t det,
Char_t ring,
UShort_t board,
- UShort_t monitor) const
+ UShort_t monitor)
{
//
// Get the half-ring index
#endif
return index-2;
}
+//_____________________________________________________________________
+void AliFMDQADataMakerRec::GetHalfringFromIndex(Int_t idx,
+ UShort_t& det,
+ Char_t& ring,
+ UShort_t& board,
+ UShort_t& monitor)
+{
+ det = ((idx >> 3) & 0x3) + 1;
+ ring = ((idx >> 2) & 0x1) == 1 ? 'I' : 'O';
+ board = ((idx >> 1) & 0x1);
+ monitor = ((idx >> 0) & 0x1);
+}
+
//_____________________________________________________________________