Add the incomplete events identification, but not enable it for now (C.Cheskov)
authorzconesa <zconesa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 16 May 2013 10:00:38 +0000 (10:00 +0000)
committerzconesa <zconesa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 16 May 2013 10:00:38 +0000 (10:00 +0000)
ANALYSIS/AliTriggerAnalysis.cxx
ANALYSIS/AliTriggerAnalysis.h

index 580098a..4ae640f 100644 (file)
@@ -580,6 +580,12 @@ Int_t AliTriggerAnalysis::EvaluateTrigger(const AliESDEvent* aEsd, Trigger trigg
         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)
@@ -705,6 +711,19 @@ Bool_t AliTriggerAnalysis::IsHVdipTPCEvent(const AliESDEvent* esd) {
 
 }
 
+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)
 {
index 4b8a4c7..85dc2d2 100644 (file)
@@ -30,6 +30,7 @@ class AliTriggerAnalysis : public TObject
                   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 };
@@ -71,8 +72,10 @@ class AliTriggerAnalysis : public TObject
     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);
@@ -192,7 +195,7 @@ class AliTriggerAnalysis : public TObject
 
     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&);