]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/AliPWG0Helper.cxx
coverity
[u/mrichter/AliRoot.git] / PWG0 / AliPWG0Helper.cxx
index 4ce88d4b4ca35a26887c2513942880d2cb34a70f..07af95600c4bd1f11e8f8fb3e6bc3b3fa015b371 100644 (file)
@@ -40,7 +40,7 @@ Bool_t AliPWG0Helper::TestVertex(const AliESDVertex* vertex, AnalysisMode analys
     // Checks if a vertex meets the needed quality criteria
 
   Float_t requiredZResolution = -1;
-  if (analysisMode & kSPD || analysisMode & kTPCITS)
+  if (analysisMode & kSPD || analysisMode & kTPCITS || analysisMode & kTPCSPD)
   {
     // disable cut on resolution
     requiredZResolution = 1000;
@@ -85,12 +85,12 @@ const AliESDVertex* AliPWG0Helper::GetVertex(const AliESDEvent* aEsd, AnalysisMo
     if (debug)
       Printf("AliPWG0Helper::GetVertex: Returning SPD vertex");
   }
-  else if (analysisMode & kTPCITS)
+  else if (analysisMode & kTPCITS || analysisMode & kTPCSPD)
   {
     vertex = aEsd->GetPrimaryVertexTracks();
     if (debug)
       Printf("AliPWG0Helper::GetVertex: Returning vertex from tracks");
-    if (vertex && vertex->GetNContributors() <= 0)
+    if (!vertex || vertex->GetNContributors() <= 0)
     {
       if (debug)
         Printf("AliPWG0Helper::GetVertex: Vertex from tracks has no contributors. Falling back to SPD vertex.");
@@ -261,7 +261,7 @@ void AliPWG0Helper::CreateDividedProjections(TH3* hist, TH3* hist2, const char*
   else if (strlen(axis) == 1)
     proj2->SetXTitle(GetAxisTitle(hist2, axis[0]));
 
-  TH1* division = dynamic_cast<TH1*> (proj->Clone(Form("%s_div_%s", proj->GetName(), proj2->GetName())));
+  TH1* division = static_cast<TH1*> (proj->Clone(Form("%s_div_%s", proj->GetName(), proj2->GetName())));
   //printf("doing axis: %s, x axis has %d %d bins, min %f %f max %f %f\n", axis, division->GetNbinsX(), proj2->GetNbinsX(), division->GetXaxis()->GetBinLowEdge(1), proj2->GetXaxis()->GetBinLowEdge(1), division->GetXaxis()->GetBinUpEdge(division->GetNbinsX()), proj2->GetXaxis()->GetBinUpEdge(proj2->GetNbinsX()));
   //printf("doing axis: %s, y axis has %d %d bins, min %f %f max %f %f\n", axis, division->GetNbinsY(), proj2->GetNbinsY(), division->GetYaxis()->GetBinLowEdge(1), proj2->GetYaxis()->GetBinLowEdge(1), division->GetYaxis()->GetBinUpEdge(division->GetNbinsY()), proj2->GetYaxis()->GetBinUpEdge(proj2->GetNbinsY()));
   division->Divide(proj, proj2, 1, 1, "B");
@@ -532,6 +532,9 @@ void AliPWG0Helper::PrintConf(AnalysisMode analysisMode, AliTriggerAnalysis::Tri
     
   if (analysisMode & kTPCITS)
      str += "Global tracking";
+  
+  if (analysisMode & kTPCSPD) 
+    str += "Tracks and tracklets";
 
   if (analysisMode & kFieldOn)
   {
@@ -702,6 +705,12 @@ AliPWG0Helper::MCProcessType AliPWG0Helper::GetEventProcessType(AliESDEvent* esd
   if (diffTreatment == kMCFlags)
     return mcProcessType;
     
+  if (!esd)
+  {
+    Printf("ERROR: AliPWG0Helper::GetEventProcessType: diffTreatment != kMCFlags and esd == 0");
+    return kInvalidProcess;
+  }
+    
   Float_t cms = esd->GetESDRun()->GetBeamEnergy();
   if (esd->GetESDRun()->IsBeamEnergyIsSqrtSHalfGeV())
     cms *= 2;