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)
}
+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 ((esd->GetEventType() == 7) &&
+ (esd->GetDAQDetectorPattern() & (1<<4)) &&
+ !(esd->GetDAQAttributes() & (1<<7))) return kTRUE;
+
+ return kFALSE;
+}
+
Bool_t AliTriggerAnalysis::IsOfflineTriggerFired(const AliESDEvent* aEsd, Trigger trigger)
{
kSPDGFOL0, kSPDGFOL1, kZDCTDCA, kZDCTDCC, kZDCTime, kCTPV0A, kCTPV0C, kTPCLaserWarmUp, kSPDClsVsTrkBG,
kCentral,kSemiCentral, kT0, kT0BG, kT0Pileup, kEMCAL,kTPCHVdip,
kTRDHCO, kTRDHJT, kTRDHSE, kTRDHQU, kTRDHEE,
+ kIncompleteEvent,
kStartOfFlags = 0x0100, kOfflineFlag = 0x8000, kOneParticle = 0x10000, kOneTrack = 0x20000}; // MB1, MB2, MB3 definition from ALICE-INT-2005-025
enum AliceSide { kASide = 1, kCSide, kCentralBarrel };
enum V0Decision { kV0Invalid = -1, kV0Empty = 0, kV0BB, kV0BG, kV0Fake };
static const char* GetTriggerName(Trigger trigger);
Bool_t IsLaserWarmUpTPCEvent(const AliESDEvent* esd);
- Bool_t IsHVdipTPCEvent(const AliESDEvent* esd);
+ Bool_t IsHVdipTPCEvent(const AliESDEvent* esd);
Bool_t TRDTrigger(const AliESDEvent* esd, Trigger trigger);
+
+ Bool_t IsIncompleteEvent(const AliESDEvent* esd);
void FillHistograms(const AliESDEvent* aEsd);
void FillTriggerClasses(const AliESDEvent* aEsd);
Bool_t fTPCOnly; // flag to set whether TPC only tracks have to be used for the offline trigger
- ClassDef(AliTriggerAnalysis, 21)
+ ClassDef(AliTriggerAnalysis, 22)
private:
AliTriggerAnalysis(const AliTriggerAnalysis&);