fAux(0),
fReturn(kFALSE),
fContinous(kFALSE),
- fTimeout("gApplication->StopIdleing()", 10)
+ fTimeout("gApplication->StopIdleing()", 10),
+ fInitialMin(0),
+ fInitialMax(1),
+ fInitialFactor(3/10.)
{
// Constructor of an FMD display object.
// Must be called
xb = .66;
fFactor = new TSlider("pedFactor", "Pedestal Factor", xb+.01, 0, 1, yb);
fFactor->SetMethod("AliFMDDisplay::Instance()->ChangeFactor()");
- fFactor->SetRange(3./10, 1);
+ fFactor->SetRange(fInitialFactor, 1);
fFactor->Draw();
+ fFactor->SetMinimum(fInitialFactor);
TSliderBox *sbox =
static_cast<TSliderBox*>(fFactor->GetListOfPrimitives()->
FindObject("TSliderBox"));
yb = .05;
fSlider = new TSlider("genCut", "Multiplicity cut", 0, 0, xb, yb);
fSlider->SetMethod("AliFMDDisplay::Instance()->ChangeCut()");
- fSlider->SetRange(0,1);
+ fSlider->SetRange(fInitialMin,fInitialMax);
fSlider->Draw();
TSliderBox *sbox =
static_cast<TSliderBox*>(fSlider->GetListOfPrimitives()->
sbox->SetToolTipText("Adjust lower and upper limit on data signal");
}
}
+ // fCanvas->Modified();
+ // fCanvas->Update();
+ // fCanvas->cd();
Float_t x0 = 0;
Float_t dx = 1. / n;
p = which;
if (!range) return;
if (!fAux) {
- fAux = new TCanvas("aux", "Aux");
+ fAux = new TCanvas(Form("aux_%s", GetName()),
+ Form("Aux - %s", GetTitle()));
fAux->SetLogy();
fAux->SetFillColor(kWhite);
fAux->SetBorderMode(0);
fSpec = new TH1D("spec", "Spectra", range->fNbins,
range->fLow-dBin/2, range->fHigh+dBin/2);
fSpecCut = static_cast<TH1*>(fSpec->Clone("specCut"));
- fSpec->SetXTitle("signal");
+ TString xTitle((TESTBIT(fTreeMask, kRawCalib) ||
+ TESTBIT(fTreeMask, kESD)) ? "#Delta E/#Delta E_{mip}" :
+ (TESTBIT(fTreeMask, kDigits) ||
+ TESTBIT(fTreeMask, kSDigits) ||
+ TESTBIT(fTreeMask, kRaw)) ? "ADC [counts]" :
+ TESTBIT(fTreeMask, kHits) ? "Hits" : "signal");
+ fSpec->SetXTitle(xTitle.Data());
fSpec->SetYTitle("events");
fSpec->SetFillColor(2);
fSpec->SetFillStyle(3001);
- fSpecCut->SetXTitle("signal");
+ fSpecCut->SetXTitle(xTitle.Data());
fSpecCut->SetYTitle("events");
fSpecCut->SetFillColor(4);
fSpecCut->SetFillStyle(3001);
AliFMDDisplay::SetCut(Float_t l, Float_t h)
{
// Change the cut on the slider.
- fSlider->SetMinimum(l);
- fSlider->SetMaximum(h);
+ fInitialMin = l;
+ fInitialMax = h;
+ if (!fSlider) return;
+ fSlider->SetMinimum(fInitialMin);
+ fSlider->SetMaximum(fInitialMax);
ChangeCut();
}
+//____________________________________________________________________
+void
+AliFMDDisplay::SetFactor(Float_t f)
+{
+ // Change the cut on the slider.
+ fInitialFactor = f / 10;
+ if (!fFactor) return;
+ fFactor->SetMinimum(fInitialFactor);
+ ChangeFactor();
+}
+
//____________________________________________________________________
void
AliFMDDisplay::ChangeCut()
// Double_t edep = ((counts * parm->GetEdepMip() /
// (gain * parm->GetDACPerMIP()));
Double_t mult = (counts-ped) / (gain * parm->GetDACPerMIP());
+ if (gain < 0.1 || gain > 10) mult = 0;
AliFMDDebug(10, ("FMD%d%c[%02d,%03d] adc %4d "
#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
if (TESTBIT(fTreeMask, kRaw) || TESTBIT(fTreeMask, kRawCalib)) {
// AliInfo("Getting FMD raw data digits");
std::cout << "Waiting for event ..." << std::endl;
- if (!fReader->NextEvent()) return kFALSE;
+ 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);
fFMD1.End();
fFMD1Pad->Modified();
- fFMD1Sum.SetTitle(Form("# hits in FMD1: %5d (%7.5f /cm^{2})",
+ fFMD1Sum.SetTitle(Form("# hits in FMD1: %5d (%4.2f /cm^{2})",
fFMD1.Total(), fFMD1.Total()/fFMD1Area));
total += fFMD1.Total();
fFMD2.End();
fFMD2Pad->Modified();
- fFMD2Sum.SetTitle(Form("# hits in FMD2: %5d (%7.5f /cm^{2})",
+ fFMD2Sum.SetTitle(Form("# hits in FMD2: %5d (%4.2f /cm^{2})",
fFMD2.Total(), fFMD2.Total()/fFMD2Area));
total += fFMD2.Total();
fFMD3.End();
fFMD3Pad->Modified();
- fFMD3Sum.SetTitle(Form("# hits in FMD3: %5d (%7.5f /cm^{2})",
+ fFMD3Sum.SetTitle(Form("# hits in FMD3: %5d (%4.2f /cm^{2})",
fFMD3.Total(), fFMD3.Total()/fFMD3Area));
total += fFMD3.Total();