]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliTriggerAnalysis.cxx
Coverity Fix 16220
[u/mrichter/AliRoot.git] / ANALYSIS / AliTriggerAnalysis.cxx
index 42f4a05bf459823024a32abaf4d37586c0f8a5fb..b86b06368b18ba6c82c4d8541938199540b128f6 100644 (file)
@@ -536,11 +536,15 @@ Bool_t AliTriggerAnalysis::IsTriggerClassFired(const AliESDEvent* aEsd, const Ch
     else if (op == '|') tcl =tcl || inpnext;
     else {
        AliError(Form("Syntax error in %s", tclass));
-       tcltokens->Delete();
+       delete tcltokens;
+       tcltokens = 0;
+       //      tcltokens->Delete();
        return kFALSE;
     }
   }
-  tcltokens->Delete();
+  delete tcltokens;
+  tcltokens = 0;
+       //  tcltokens->Delete();
   return tcl;
 }
 
@@ -682,7 +686,7 @@ Int_t AliTriggerAnalysis::SPDFiredChips(const AliESDEvent* aEsd, Int_t origin, B
     if(layer == 2)
       firstChip = 400;
 
-    for (Int_t i=0; i<1200; i++)
+    for (Int_t i=firstChip; i<lastChip; i++)
     {
       if (mult->TestFastOrFiredChips(i) == kTRUE)
       {
@@ -979,28 +983,44 @@ Bool_t AliTriggerAnalysis::ZDCTimeTrigger(const AliESDEvent *aEsd, Bool_t fillHi
   // It can be used in order to eliminate
   // parasitic collisions
   Bool_t zdcAccept = kFALSE;
-
   AliESDZDC *esdZDC = aEsd->GetESDZDC();
 
-  const Float_t refSum = -568.5;
-  const Float_t refDelta = -2.1;
-  const Float_t sigmaSum = 3.25;
-  const Float_t sigmaDelta = 2.25;
-  for(Int_t i = 0; i < 4; ++i) {
-    if (esdZDC->GetZDCTDCData(10,i) != 0) {
-      Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i)); 
-      for(Int_t j = 0; j < 4; ++j) {
-       if (esdZDC->GetZDCTDCData(12,j) != 0) {
-         Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j));
-         if(fillHists) fHistTimeZDC->Fill(tdcC-tdcA,tdcC+tdcA);
-         if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) +
-              (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0)
-           zdcAccept = kTRUE;
+  if(fMC) {
+     UInt_t esdFlag =  esdZDC->GetESDQuality();
+
+     Bool_t znaFired=kFALSE, zpaFired=kFALSE;
+     Bool_t zem1Fired=kFALSE, zem2Fired=kFALSE;
+     Bool_t zncFired=kFALSE, zpcFired=kFALSE;
+     //
+     // **** Trigger patterns
+     if((esdFlag & 0x00000001) == 0x00000001) znaFired=kTRUE;
+     if((esdFlag & 0x00000002) == 0x00000002) zpaFired=kTRUE;
+     if((esdFlag & 0x00000004) == 0x00000004) zem1Fired=kTRUE;
+     if((esdFlag & 0x00000008) == 0x00000008) zem2Fired=kTRUE;
+     if((esdFlag & 0x00000010) == 0x00000010) zncFired=kTRUE;
+     if((esdFlag & 0x00000020) == 0x00000020) zpcFired=kTRUE;
+     zdcAccept = (znaFired | zncFired);
+  }
+  else {
+    const Float_t refSum = -568.5;
+    const Float_t refDelta = -2.1;
+    const Float_t sigmaSum = 3.25;
+    const Float_t sigmaDelta = 2.25;
+    for(Int_t i = 0; i < 4; ++i) {
+      if (esdZDC->GetZDCTDCData(10,i) != 0) {
+       Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i)); 
+       for(Int_t j = 0; j < 4; ++j) {
+         if (esdZDC->GetZDCTDCData(12,j) != 0) {
+           Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j));
+           if(fillHists) fHistTimeZDC->Fill(tdcC-tdcA,tdcC+tdcA);
+           if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) +
+                (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0)
+             zdcAccept = kTRUE;
+         }
        }
       }
     }
   }
-
   return zdcAccept;
 }
 
@@ -1149,7 +1169,7 @@ Long64_t AliTriggerAnalysis::Merge(TCollection* list)
     TObjString* obj2 = 0;
     while ((obj2 = dynamic_cast<TObjString*> (iter2->Next())))
     {
-      TParameter<Long64_t>* param2 = dynamic_cast<TParameter<Long64_t>*> (entry->fTriggerClasses->GetValue(obj2));
+      TParameter<Long64_t>* param2 = static_cast<TParameter<Long64_t>*> (entry->fTriggerClasses->GetValue(obj2));
       
       TParameter<Long64_t>* param1 = dynamic_cast<TParameter<Long64_t>*> (fTriggerClasses->GetValue(obj2));
       if (param1)
@@ -1173,7 +1193,10 @@ Long64_t AliTriggerAnalysis::Merge(TCollection* list)
   fHistV0C->Merge(&collections[n++]);
   fHistZDC->Merge(&collections[n++]);
   fHistTDCZDC->Merge(&collections[n++]);
-  fHistTimeZDC->Merge(&collections[n++]);
+  if (fHistTimeZDC)
+    fHistTimeZDC->Merge(&collections[n++]);
+  else
+    n++;
   fHistFMDA->Merge(&collections[n++]);
   fHistFMDC->Merge(&collections[n++]);
   fHistFMDSingle->Merge(&collections[n++]);
@@ -1220,7 +1243,7 @@ void AliTriggerAnalysis::SaveHistograms() const
   if (fHistFMDSum) fHistFMDSum->Write();
   else Printf("Cannot save fHistFMDSum");
   if (fSPDGFOEfficiency) fSPDGFOEfficiency->Write("fSPDGFOEfficiency");
-  else Printf("Cannot save fSPDGFOEfficiency");
+  //  else Printf("Cannot save fSPDGFOEfficiency");
   
   fTriggerClasses->Write("fTriggerClasses", TObject::kSingleKey);
 }