}
}
-void AliTriggerAnalysis::EnableHistograms()
+void AliTriggerAnalysis::EnableHistograms(Bool_t isLowFlux)
{
- // creates the monitoring histograms
+ // creates the monitoring histograms (dynamical range of histograms can be adapted for pp and pPb via isLowFlux flag)
// do not add this hists to the directory
Bool_t oldStatus = TH1::AddDirectoryStatus();
TH1::AddDirectory(kFALSE);
-
- fHistBitsSPD = new TH2F("fHistBitsSPD", "SPD GFO;number of fired chips (offline);number of fired chips (hardware)", 1202, -1.5, 1200.5, 1202, -1.5, 1200.5);
+ //
+ Int_t nBins = isLowFlux ? 600 : 1202;
+ fHistBitsSPD = new TH2F("fHistBitsSPD", "SPD GFO;number of fired chips (offline);number of fired chips (hardware)", nBins, -1.5, -1.5 + nBins, nBins, -1.5, -1.5+nBins);
+ //
fHistFiredBitsSPD = new TH1F("fHistFiredBitsSPD", "SPD GFO Hardware;chip number;events", 1200, -0.5, 1199.5);
- fHistSPDClsVsTrk = new TH2F("fHistSPDClsVsTrk", "SPD Clusters vs Tracklets", 300, -0.5, 2999.5, 1000, -0.5, 9999.5);
+ //
+ Int_t nBinsX = isLowFlux ? 100 : 300;
+ Int_t nBinsY = isLowFlux ? 500 : 1000;
+ Float_t xMax = isLowFlux ? 400 : 2999.5;
+ Float_t yMax = isLowFlux ? 4000 : 9999.5;
+ fHistSPDClsVsTrk = new TH2F("fHistSPDClsVsTrk", "SPD Clusters vs Tracklets; n tracklets; n clusters", nBinsX, -0.5, xMax, nBinsY, -0.5, yMax);
+ //
fHistV0A = new TH1F("fHistV0A", "V0A;leading time (ns);events", 400, -100, 100);
fHistV0C = new TH1F("fHistV0C", "V0C;leading time (ns);events", 400, -100, 100);
fHistZDC = new TH1F("fHistZDC", "ZDC;trigger bits;events", 8, -1.5, 6.5);
AliFatal(Form("Online trigger not available for trigger %d", triggerNoFlags));
return IsHVdipTPCEvent(aEsd);
}
+ case kIncompleteEvent:
+ {
+ if (!offline)
+ AliFatal(Form("Online trigger not available for trigger %d", triggerNoFlags));
+ return IsIncompleteEvent(aEsd);
+ }
case kCentral:
{
if (offline)
//
// This function flags events in which the TPC chamber HV is not at its nominal value
//
+ if (fMC) return kFALSE; // there are no dip events in MC
if (!esd->IsDetectorOn(AliDAQ::kTPC)) return kTRUE;
return kFALSE;
}
+Bool_t AliTriggerAnalysis::IsIncompleteEvent(const AliESDEvent* esd)
+{
+ //
+ // Check whether the event is incomplete
+ // (due to DAQ-HLT issues, it could be only part of the event was saved)
+ //
+ if (fMC) return kFALSE; // there are no incomplete events on MC
+ if ((esd->GetEventType() == 7) &&
+ (esd->GetDAQDetectorPattern() & (1<<4)) &&
+ !(esd->GetDAQAttributes() & (1<<7))) return kTRUE;
+
+ return kFALSE;
+}
+
Bool_t AliTriggerAnalysis::IsOfflineTriggerFired(const AliESDEvent* aEsd, Trigger trigger)
{
if (fHistBitsSPD) {
fHistBitsSPD->Write();
- fHistBitsSPD->ProjectionX();
- fHistBitsSPD->ProjectionY();
+ //fHistBitsSPD->ProjectionX();
+ //fHistBitsSPD->ProjectionY();
}
else Printf("Cannot save fHistBitsSPD");
if (fHistFiredBitsSPD) fHistFiredBitsSPD->Write();