]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/FORWARD/analysis2/AliForwardMCMultiplicityTask.cxx
Coverity fixes
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliForwardMCMultiplicityTask.cxx
index f5831157b3ed20fe3d0a399e2e4788283e872c75..2d52956590f553b812bae399810d24826f923231 100644 (file)
@@ -73,59 +73,6 @@ AliForwardMCMultiplicityTask::AliForwardMCMultiplicityTask(const char* name)
   //
 }
 
-//____________________________________________________________________
-AliForwardMCMultiplicityTask::AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o)
-  : AliForwardMultiplicityBase(o),
-    fESDFMD(o.fESDFMD),
-    fMCESDFMD(o.fMCESDFMD),
-    fMCHistos(o.fMCHistos),
-    fMCAODFMD(o.fMCAODFMD),
-    fMCRingSums(o.fMCRingSums),
-    fPrimary(o.fPrimary),
-    fEventInspector(o.fEventInspector),
-    fSharingFilter(o.fSharingFilter),
-    fDensityCalculator(o.fDensityCalculator),
-    fCorrections(o.fCorrections),
-    fHistCollector(o.fHistCollector),
-    fEventPlaneFinder(o.fEventPlaneFinder)
-{
-  // 
-  // Copy constructor 
-  // 
-  // Parameters:
-  //    o Object to copy from 
-  //
-}
-
-//____________________________________________________________________
-AliForwardMCMultiplicityTask&
-AliForwardMCMultiplicityTask::operator=(const AliForwardMCMultiplicityTask& o)
-{
-  // 
-  // Assignment operator 
-  // 
-  // Parameters:
-  //    o Object to assign from 
-  // 
-  // Return:
-  //    Reference to this object 
-  //
-  if (&o == this) return *this;
-  AliForwardMultiplicityBase::operator=(o);
-
-  fEventInspector    = o.fEventInspector;
-  fSharingFilter     = o.fSharingFilter;
-  fDensityCalculator = o.fDensityCalculator;
-  fCorrections       = o.fCorrections;
-  fHistCollector     = o.fHistCollector;
-  fEventPlaneFinder  = o.fEventPlaneFinder;
-  fMCHistos          = o.fMCHistos;
-  fMCAODFMD          = o.fMCAODFMD;
-  fMCRingSums        = o.fMCRingSums;
-  fPrimary           = o.fPrimary;
-  return *this;
-}
-
 //____________________________________________________________________
 void
 AliForwardMCMultiplicityTask::SetOnlyPrimary(Bool_t use)
@@ -161,19 +108,27 @@ AliForwardMCMultiplicityTask::CreateBranches(AliAODHandler* ah)
 
 //____________________________________________________________________
 void
-AliForwardMCMultiplicityTask::InitMembers(const TAxis* pe, const TAxis* pv)
+AliForwardMCMultiplicityTask::InitMembers(const TAxis& eta, const TAxis& vertex)
 {
   // 
   // Initialise the sub objects and stuff.  Called on first event 
   // 
   //
-  AliForwardMultiplicityBase::InitMembers(pe, pv);
+  AliForwardMultiplicityBase::InitMembers(eta, vertex);
 
-  fMCHistos.Init(*pe);
-  fMCAODFMD.Init(*pe);
-  fMCRingSums.Init(*pe);
+  fMCHistos.Init(eta);
+  fMCAODFMD.Init(eta);
+  fMCRingSums.Init(eta);
+
+  AliForwardUtil::Histos::RebinEta(fPrimary, eta);
+  DMSG(fDebug,0,"Primary histogram rebinned to %d,%f,%f eta axis %d,%f,%f", 
+       fPrimary->GetXaxis()->GetNbins(), 
+       fPrimary->GetXaxis()->GetXmin(),
+       fPrimary->GetXaxis()->GetXmax(),
+       eta.GetNbins(), 
+       eta.GetXmin(),
+       eta.GetXmax());
 
-  AliForwardUtil::Histos::RebinEta(fPrimary, *pe);
 
   TList* mcRings = new TList;
   mcRings->SetName("mcRingSums");
@@ -193,8 +148,25 @@ AliForwardMCMultiplicityTask::InitMembers(const TAxis* pe, const TAxis* pv)
 }
 
 //____________________________________________________________________
-void
-AliForwardMCMultiplicityTask::UserExec(Option_t*)
+Bool_t
+AliForwardMCMultiplicityTask::PreEvent()
+{
+ if (fFirstEvent) 
+    fEventInspector.ReadProductionDetails(MCEvent());
+  // Clear stuff 
+  fHistos.Clear();
+  fESDFMD.Clear();
+  fAODFMD.Clear();
+  fAODEP.Clear();
+  fMCHistos.Clear();
+  fMCESDFMD.Clear();
+  fMCAODFMD.Clear();
+  fPrimary->Reset();
+  return true;
+}
+//____________________________________________________________________
+Bool_t
+AliForwardMCMultiplicityTask::Event(AliESDEvent& esd)
 {
   // 
   // Process each event 
@@ -204,23 +176,10 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   //  
 
   // Read production details 
-  if (fFirstEvent) 
-    fEventInspector.ReadProductionDetails(MCEvent());
     
   // Get the input data 
-  AliESDEvent* esd     = GetESDEvent();
   AliMCEvent*  mcEvent = MCEvent();
-  if (!esd || !mcEvent) return;
-
-  // Clear stuff 
-  fHistos.Clear();
-  fESDFMD.Clear();
-  fAODFMD.Clear();
-  fAODEP.Clear();
-  fMCHistos.Clear();
-  fMCESDFMD.Clear();
-  fMCAODFMD.Clear();
-  fPrimary->Reset();
+  if (!mcEvent) return false;
 
   Bool_t   lowFlux   = kFALSE;
   UInt_t   triggers  = 0;
@@ -228,7 +187,7 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   TVector3 ip(1024, 1024, 0);
   Double_t cent      = -1;
   UShort_t nClusters = 0;
-  UInt_t   found     = fEventInspector.Process(esd, triggers, lowFlux, 
+  UInt_t   found     = fEventInspector.Process(&esd, triggers, lowFlux, 
                                               ivz, ip, cent, nClusters);
   UShort_t ivzMC    = 0;
   Double_t vzMC     = 0;
@@ -264,9 +223,6 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   fMCAODFMD.SetCentrality(cent);
   fMCAODFMD.SetNClusters(nClusters);
   
-  //All events should be stored - HHD
-  //if (isAccepted) MarkEventForStore();
-
   // Disable this check on SPD - will bias data 
   // if (found & AliFMDEventInspector::kNoSPD)  isAccepted = false; // return;
   if (found & AliFMDEventInspector::kNoFMD)     isAccepted = false; // return;
@@ -284,16 +240,16 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   
 
   // Get FMD data 
-  AliESDFMD*  esdFMD  = esd->GetFMDData();
+  AliESDFMD*  esdFMD  = esd.GetFMDData();
 
   // Apply the sharing filter (or hit merging or clustering if you like)
-  if (isAccepted && !fSharingFilter.Filter(*esdFMD, lowFlux, fESDFMD,ip.Z())) { 
+  if (isAccepted && !fSharingFilter.Filter(*esdFMD, lowFlux, fESDFMD,ip.Z())){
     AliWarning("Sharing filter failed!");
-    return;
+    return false;
   }
-  if (!fSharingFilter.FilterMC(*esdFMD, *mcEvent, ip.Z(),fMCESDFMD,fPrimary)) { 
+  if (!fSharingFilter.FilterMC(*esdFMD, *mcEvent, ip.Z(),fMCESDFMD,fPrimary)){
     AliWarning("MC Sharing filter failed!");
-    return;
+    return false;
   }
 
   // Store some MC parameters in corners of histogram :-)
@@ -302,8 +258,10 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   fPrimary->SetBinContent(fPrimary->GetNbinsX()+1,fPrimary->GetNbinsY(),cMC);
   
 
-  if (!isAccepted) return; // Exit on MC event w/o trigger, vertex, data
-  // HHD if (!isAccepted) return; // Exit on MC event w/o trigger, vertex, data
+  if (!isAccepted) 
+    // Exit on MC event w/o trigger, vertex, data - since there's no more 
+    // to be done for MC 
+    return false; 
   
   //MarkEventForStore();
   fSharingFilter.CompareResults(fESDFMD, fMCESDFMD);
@@ -311,28 +269,28 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   // Calculate the inclusive charged particle density 
   if (!fDensityCalculator.Calculate(fESDFMD, fHistos, lowFlux, cent, ip)) { 
     AliWarning("Density calculator failed!");
-    return;
+    return false;
   }
   if (!fDensityCalculator.CalculateMC(fMCESDFMD, fMCHistos)) { 
     AliWarning("MC Density calculator failed!");
-    return;
+    return false;
   }
   fDensityCalculator.CompareResults(fHistos, fMCHistos);
   
   if (fEventInspector.GetCollisionSystem() == AliFMDEventInspector::kPbPb) {
-    if (!fEventPlaneFinder.FindEventplane(esd, fAODEP, 
-                                         &(fAODFMD.GetHistogram()) , &fHistos))
+    if (!fEventPlaneFinder.FindEventplane(&esd, fAODEP, 
+                                         &(fAODFMD.GetHistogram()), &fHistos))
       AliWarning("Eventplane finder failed!");
   }
 
   // Do the secondary and other corrections. 
   if (!fCorrections.Correct(fHistos, ivz)) { 
     AliWarning("Corrections failed");
-    return;
+    return false;
   }
   if (!fCorrections.CorrectMC(fMCHistos, ivz)) { 
     AliWarning("MC Corrections failed");
-    return;
+    return false;
   }
   fCorrections.CompareResults(fHistos, fMCHistos);
     
@@ -340,13 +298,14 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
                              ivz, fAODFMD.GetHistogram(),
                              fAODFMD.GetCentrality())) {
     AliWarning("Histogram collector failed");
-    return;
+    return false;
   }
   if (!fHistCollector.Collect(fMCHistos, fMCRingSums, 
-                             ivz, fMCAODFMD.GetHistogram())) {
+                             ivz, fMCAODFMD.GetHistogram(), -1, true)) {
     AliWarning("MC Histogram collector failed");
-    return;
+    return false;
   }
+#if 0
   // Copy underflow bins to overflow bins - always full phi coverage 
   TH2&  hMC  = fMCAODFMD.GetHistogram();
   Int_t nEta = hMC.GetNbinsX();
@@ -354,11 +313,12 @@ AliForwardMCMultiplicityTask::UserExec(Option_t*)
   for (Int_t iEta = 1; iEta <= nEta; iEta++) {
     hMC.SetBinContent(iEta, nY+1, hMC.GetBinContent(iEta, 0));
   }
+#endif
 
   if (fAODFMD.IsTriggerBits(AliAODForwardMult::kInel))
     fHData->Add(&(fAODFMD.GetHistogram()));
 
-  PostData(1, fList);
+  return true;
 }
 
 //____________________________________________________________________