LOG muondep:
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Feb 2011 19:54:44 +0000 (19:54 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 Feb 2011 19:54:44 +0000 (19:54 +0000)
- Coverity fix

LOG muon:
- Coverity fix
- Fixes to cope with new alien plugin
- Store Event_Stat info in output

Diego

PWG3/muon/AliAnalysisTaskSingleMu.cxx
PWG3/muondep/AliAnalysisTaskPileup.cxx
PWG3/muondep/AliAnalysisTaskPileup.h

index 1ade6a3..67132ae 100644 (file)
@@ -197,6 +197,27 @@ void AliAnalysisTaskSingleMu::FinishTaskOutput()
     histo2D->GetXaxis()->SetLimits(minX, maxX);
     AliInfo(Form("Histogram %s run limits (%f, %f)",histo2D->GetName(), minX, maxX));
   }
+
+  // Add stat. info from physics selection
+  // (usefull when running on AODs)
+  AliInputEventHandler* inputHandler = dynamic_cast<AliInputEventHandler*>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
+  TString histoName = "";
+  if ( inputHandler ) {
+    for ( Int_t istat=0; istat<2; istat++ ) {
+      TString statType = ( istat == 0 ) ? "ALL" : "BIN0";
+      TH2* hStat = dynamic_cast<TH2*>(inputHandler->GetStatistics(statType.Data()));
+      if ( hStat ) {
+        histoName = Form("%s_SingleMuon", hStat->GetName());
+        TH2* cloneStat = dynamic_cast<TH2*>(hStat->Clone(histoName.Data()));
+        cloneStat->SetDirectory(0);
+        fHistoList->Add(cloneStat);
+      }
+      else {
+        AliWarning("Stat histogram not available");
+        break;
+      }
+    } // loop on stat type
+  }
 }
 
 
@@ -209,9 +230,12 @@ void AliAnalysisTaskSingleMu::UserCreateOutputObjects()
   AliInfo(Form("   CreateOutputObjects of task %s\n", GetName()));
 
   // initialize histogram lists
-  if ( ! fHistoList ) fHistoList = new TList();
-  if ( ! fHistoListMC ) fHistoListMC = new TList();
-  if ( ! fHistoListQA ) fHistoListQA = new TList();
+  fHistoList = new TList();
+  fHistoList->SetOwner();
+  fHistoListMC = new TList();
+  fHistoListMC->SetOwner();
+  fHistoListQA = new TList();
+  fHistoListQA->SetOwner();
 
   // Init variables
   fVarFloat = new Float_t [kNvarFloat];
@@ -883,7 +907,7 @@ void AliAnalysisTaskSingleMu::Terminate(Option_t *) {
     TCanvas *c1_SingleMu = new TCanvas(currName.Data(),"Vz vs Pt",10,10,310,310);
     c1_SingleMu->SetFillColor(10); c1_SingleMu->SetHighLightColor(10);
     c1_SingleMu->SetLeftMargin(0.15); c1_SingleMu->SetBottomMargin(0.15);
-    TH2* histo = dynamic_cast<TH2*>(container->Project(kStepReconstructed,kHvarPt,kHvarVz));
+    TH2* histo = static_cast<TH2*>(container->Project(kStepReconstructed,kHvarPt,kHvarVz));
     currName = GetName();
     currName.Prepend("hPtVz_");
     histo->SetName(currName.Data());
index 2d3f91d..8fca45c 100644 (file)
@@ -145,7 +145,7 @@ AliAnalysisTaskPileup::~AliAnalysisTaskPileup()
   delete fTriggerClassIndex;
 
 #if defined(READOCDB)
-  delete fTriggerRunScalers;
+  //delete fTriggerRunScalers; // Not owner -> Owned by OCDB
   delete fStorageList;
 #endif
 
@@ -216,8 +216,7 @@ void AliAnalysisTaskPileup::NotifyRun()
   entry = AliCDBManager::Instance()->Get("GRP/CTP/Scalers");
   if ( ! entry ) return;
   AliInfo("Found an AliTriggerRunScalers in GRP/CTP/Scalers, reading it");
-  fTriggerRunScalers = dynamic_cast<AliTriggerRunScalers*> (entry->GetObject());
-  entry->SetOwner(0);
+  fTriggerRunScalers = static_cast<AliTriggerRunScalers*> (entry->GetObject());
   if (fTriggerRunScalers->CorrectScalersOverflow() == 0) AliInfo("32bit Trigger counters corrected for overflow");
 
   fIsInitCDB = kTRUE;
@@ -361,7 +360,7 @@ void AliAnalysisTaskPileup::UserExec(Option_t *)
 #if defined(READOCDB)
   Double_t deltaScalersBeam = 0., deltaScalers = 0.;
 #endif
-  Bool_t isFiredOnce = kFALSE;
+  //Bool_t isFiredOnce = kFALSE;
   for (Int_t itrig=0; itrig<nTriggerClasses+1; itrig++) {
 
     Double_t correctFactorL0 = 1.;
@@ -401,11 +400,11 @@ void AliAnalysisTaskPileup::UserExec(Option_t *)
     else {
       classIndex = -1;
       trigName = "any";
-      isClassFired = isFiredOnce;
+      isClassFired = kTRUE; // isFiredOnce;
     }
 
     if ( ! isClassFired ) continue;
-    isFiredOnce = kTRUE;
+    //isFiredOnce = kTRUE;
 
     //const AliTriggerScalersESD* trigScaler = trigScalerRecords->GetTriggerScalersForClass(classIndex+1); // REMEMBER TO CUT
     //if ( classIndex > 1 ) printf("Index: trigger %i  scaler %i\n", classIndex+1, trigScaler->GetClassIndex()); // REMEMBER TO CUT
index 25194dc..ba5493d 100644 (file)
@@ -11,7 +11,7 @@
 /// Based on the work by L. Aphecetche - SUBATECH Nantes
 //Author: Diego Stocco - SUBATECH Nantes
 
-#define READOCDB
+//#define READOCDB
 
 #include "AliAnalysisTaskSE.h"