]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG1/AliComparisonTask.cxx
Removed hidden symbols (Marian)
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonTask.cxx
index def4f22e3f968611a15476408ba58054ab18ce5c..1d329f34695332bc63bd32318d664b61aabb1aaf 100644 (file)
-//------------------------------------------------------------------------------
-// Implementation of the AliComparisonTask class. It compares properties of the 
-// reconstructed and MC particle tracks under several conditions. 
-// As the input it requires the TTree with AliRecInfo and AliMCInfo branches. 
-// The comparison output histograms are stored 
-// in the comparison objects: AliComparisonRes, AliComparisonEff, 
-// AliComparisonDEdx and AliComparisonDCA. Each of these objects also contains 
-// selection cuts which were used during filling the histograms.
-// 
-// Author: J.Otwinowski 04/02/2008 
-//------------------------------------------------------------------------------
-
-#include "iostream"
-
-#include "TChain.h"
-#include "TTree.h"
-#include "TH1F.h"
-#include "TCanvas.h"
-#include "TList.h"
-#include "TFile.h"
-
-#include "AliAnalysisTask.h"
-#include "AliAnalysisManager.h"
-#include "AliESDEvent.h"
-#include "AliESDInputHandler.h"
-#include "AliESDVertex.h"
-#include "AliMagFMaps.h"
-#include "AliTracker.h"
-#include "AliGeomManager.h"
-
-#include "AliMCInfo.h"
-#include "AliESDRecInfo.h"
-#include "AliMCInfoCuts.h"
-#include "AliRecInfoCuts.h"
-#include "AliComparisonRes.h"
-#include "AliComparisonEff.h"
-#include "AliComparisonDEdx.h"
-#include "AliComparisonDCA.h"
-#include "AliComparisonTask.h"
-
-using namespace std;
-
-ClassImp(AliComparisonTask)
-
-Int_t AliComparisonTask::evtNumber = 0;
-
-//_____________________________________________________________________________
-AliComparisonTask::AliComparisonTask(const char *name) 
-  : AliAnalysisTask(name, "")
-  , fTree(0)
-  , fInfoMC(0)
-  , fInfoRC(0)
-  , fCompRes(0)
-  , fCompEff(0)
-  , fCompDEdx(0)
-  , fCompDCA(0)
-  , fOutput(0)
-  , fMagField(0)
-  , fMagFMap(0)
-  , fGeom(0)
-{
-  // Constructor
-
-  // Define input and output slots here
-  DefineInput(0, TChain::Class());
-  DefineOutput(0, TList::Class());
-
-  // set default mag. field
-  SetMagField();
-  
-  // set default geometry
-  SetGeometry();
-}
-
-//_____________________________________________________________________________
-AliComparisonTask::~AliComparisonTask()
-{
-  if(fOutput)   delete fOutput;  fOutput =0; 
-  if(fMagFMap)  delete fMagFMap;  fMagFMap =0; 
-}
-
-//_____________________________________________________________________________
-void AliComparisonTask::ConnectInputData(Option_t *) 
-{
-  // Connect input data 
-  // Called once
-
-  fTree = dynamic_cast<TTree*> (GetInputData(0));
-  if (!fTree) {
-    Printf("ERROR: Could not read chain from input slot 0");
-  } else {
-    fTree->SetBranchStatus("*",1);
-  }
-
-  if(fTree->GetBranch("MC") &&  fTree->GetBranch("RC")) {
-    fTree->GetBranch("MC")->SetAddress(&fInfoMC);
-    fTree->GetBranch("RC")->SetAddress(&fInfoRC);
-  } else {
-      Printf("ERROR: Could not get MC and RC branches");
-  }
-  
-  // set mag. field map 
-  fMagFMap = new AliMagFMaps("Maps","Maps", 2, 1., 10., fMagField);
-  AliTracker::SetFieldMap(fMagFMap,kFALSE);
-
-  // set geommetry
-  AliGeomManager::LoadGeometry(fGeom);
-}
-
-//_____________________________________________________________________________
-void AliComparisonTask::CreateOutputObjects()
-{
-  // Create histograms
-  // Called once
-  fOutput = new TList;
-  fOutput->SetOwner();
-
-  if(fCompRes) fOutput->Add(fCompRes);
-  else 
-     Printf("WARNING: AliComparisonRes is not added to the output");
-
-  if(fCompEff) fOutput->Add(fCompEff);
-  else 
-    Printf("WARNING: AliComparisonEff is not added to the output");
-
-  if(fCompDEdx) fOutput->Add(fCompDEdx);
-  else 
-    Printf("WARNING: AliComparisonDEdx is not added to the output");
-
-  if(fCompDCA) fOutput->Add(fCompDCA);
-  else 
-     Printf("WARNING: AliComparisonDCA is not added to the output");
-}
-
-//_____________________________________________________________________________
-Bool_t AliComparisonTask::ReadEntry(Int_t evt) 
-{
-  Long64_t centry = fTree->LoadTree(evt);
-  if(centry < 0) return kFALSE;
-
-  if(fTree->GetBranch("MC") &&  fTree->GetBranch("RC")) {
-    fTree->GetBranch("MC")->SetAddress(&fInfoMC);
-    fTree->GetBranch("RC")->SetAddress(&fInfoRC);
-  } else {
-      Printf("ERROR: Could not get MC and RC branches");
-         return kFALSE;
-  }
-  fTree->GetEntry(evt);
-
-return kTRUE;
-}
-//_____________________________________________________________________________
-void AliComparisonTask::Exec(Option_t *) 
-{
-  // Main loop
-  // Called for each event
-
-  if (!fInfoMC && !fInfoRC) {
-    Printf("ERROR: fInfoMC && fInfoRC not available");
-    return;
-  }
-
-  // Process comparison
-  Bool_t status = ReadEntry(evtNumber);
-  if(status == kTRUE) 
-  {
-     if(fCompRes)  fCompRes->Exec(fInfoMC,fInfoRC);
-     if(fCompEff)  fCompEff->Exec(fInfoMC,fInfoRC);
-     if(fCompDEdx) fCompDEdx->Exec(fInfoMC,fInfoRC);
-     if(fCompDCA)  fCompDCA->Exec(fInfoMC,fInfoRC);
-  }
-
-  if( !( evtNumber % 10000) ) { 
-    cout << evtNumber << endl;
-  }
-  evtNumber++;
-
-  // Post output data.
-  PostData(0, fOutput);
-}
-
-//_____________________________________________________________________________
-void AliComparisonTask::Terminate(Option_t *) 
-{
-  // Called once at the end of the event loop
-  cout << "Terminate " << endl;
-
-  TFile *out = new TFile("Output.root","RECREATE");
-  out->cd();
-
-  fOutput = dynamic_cast<TList*> (GetOutputData(0));
-  if (!fOutput) {
-    Printf("ERROR: fOutput not available");
-    return;
-  }
-
-  fCompRes = dynamic_cast<AliComparisonRes*> (fOutput->FindObject("AliComparisonRes"));
-  if (!fCompRes) {
-    Printf("WARNING: AliComparisonRes not available");
-    return;
-  }
-
-  fCompEff = dynamic_cast<AliComparisonEff*> (fOutput->FindObject("AliComparisonEff"));
-  if (!fCompEff) {
-    Printf("WARNING: AliComparisonEff not available");
-    return;
-  }
-   
-  fCompDEdx = dynamic_cast<AliComparisonDEdx*> (fOutput->FindObject("AliComparisonDEdx"));
-  if (!fCompDEdx) {
-    Printf("WARNING: AliComparisonDEdx not available");
-    return;
-  }
-
-  fCompDCA = dynamic_cast<AliComparisonDCA*> (fOutput->FindObject("AliComparisonDCA"));
-  if (!fCompDCA) {
-    Printf("WARNING: AliComparisonDCA not available");
-    return;
-  }
-
-  fOutput->Write();
-  out->Close();
-}
+//------------------------------------------------------------------------------\r
+// Implementation of the AliComparisonTask class. It compares properties of the \r
+// reconstructed and MC particle tracks under several conditions. \r
+// As the input it requires the TTree with AliRecInfo and AliMCInfo branches. \r
+// The comparison output histograms are stored \r
+// in the comparison objects: AliComparisonRes, AliComparisonEff, \r
+// AliComparisonDEdx and AliComparisonDCA. Each of these objects also contains \r
+// selection cuts which were used during filling the histograms.\r
+// \r
+// Author: J.Otwinowski 04/02/2008 \r
+//------------------------------------------------------------------------------\r
+\r
+#include "iostream"\r
+\r
+#include "TChain.h"\r
+#include "TTree.h"\r
+#include "TH1F.h"\r
+#include "TCanvas.h"\r
+#include "TList.h"\r
+#include "TFile.h"\r
+\r
+#include "AliAnalysisTask.h"\r
+#include "AliAnalysisManager.h"\r
+#include "AliESDEvent.h"\r
+#include "AliESDInputHandler.h"\r
+#include "AliESDVertex.h"\r
+#include "AliMagFMaps.h"\r
+#include "AliTracker.h"\r
+#include "AliGeomManager.h"\r
+\r
+#include "AliMCInfo.h"\r
+#include "AliESDRecInfo.h"\r
+#include "AliMCInfoCuts.h"\r
+#include "AliRecInfoCuts.h"\r
+#include "AliComparisonRes.h"\r
+#include "AliComparisonEff.h"\r
+#include "AliComparisonDEdx.h"\r
+#include "AliComparisonDCA.h"\r
+#include "AliComparisonTask.h"\r
+\r
+using namespace std;\r
+\r
+ClassImp(AliComparisonTask)\r
+\r
+Int_t AliComparisonTask::evtNumber = 0;\r
+\r
+//_____________________________________________________________________________\r
+AliComparisonTask::AliComparisonTask(const char *name) \r
+  : AliAnalysisTask(name, "")\r
+  , fTree(0)\r
+  , fInfoMC(0)\r
+  , fInfoRC(0)\r
+  , fCompRes(0)\r
+  , fCompEff(0)\r
+  , fCompDEdx(0)\r
+  , fCompDCA(0)\r
+  , fOutput(0)\r
+  , fMagField(0)\r
+  , fMagFMap(0)\r
+  , fGeom(0)\r
+{\r
+  // Constructor\r
+\r
+  // Define input and output slots here\r
+  DefineInput(0, TChain::Class());\r
+  DefineOutput(0, TList::Class());\r
+\r
+  // set default mag. field\r
+  SetMagField();\r
+  \r
+  // set default geometry\r
+  SetGeometry();\r
+}\r
+\r
+//_____________________________________________________________________________\r
+AliComparisonTask::~AliComparisonTask()\r
+{\r
+  if(fOutput)   delete fOutput;  fOutput =0; \r
+  if(fMagFMap)  delete fMagFMap;  fMagFMap =0; \r
+}\r
+\r
+//_____________________________________________________________________________\r
+void AliComparisonTask::ConnectInputData(Option_t *) \r
+{\r
+  // Connect input data \r
+  // Called once\r
+\r
+  fTree = dynamic_cast<TTree*> (GetInputData(0));\r
+  if (!fTree) {\r
+    Printf("ERROR: Could not read chain from input slot 0");\r
+  } else {\r
+    fTree->SetBranchStatus("*",1);\r
+  }\r
+\r
+  if(fTree->GetBranch("MC") &&  fTree->GetBranch("RC")) {\r
+    fTree->GetBranch("MC")->SetAddress(&fInfoMC);\r
+    fTree->GetBranch("RC")->SetAddress(&fInfoRC);\r
+  } else {\r
+      Printf("ERROR: Could not get MC and RC branches");\r
+  }\r
+  \r
+  // set mag. field map \r
+  fMagFMap = new AliMagFMaps("Maps","Maps", 2, 1., 10., fMagField);\r
+  AliTracker::SetFieldMap(fMagFMap,kFALSE);\r
+\r
+  // set geommetry\r
+  AliGeomManager::LoadGeometry(fGeom);\r
+}\r
+\r
+//_____________________________________________________________________________\r
+void AliComparisonTask::CreateOutputObjects()\r
+{\r
+  // Create histograms\r
+  // Called once\r
+\r
+  fOutput = new TList;\r
+  fOutput->SetOwner();\r
+\r
+  if(fCompRes) fOutput->Add(fCompRes);\r
+  else \r
+     Printf("WARNING: AliComparisonRes is not added to the output");\r
+\r
+  if(fCompEff) fOutput->Add(fCompEff);\r
+  else \r
+    Printf("WARNING: AliComparisonEff is not added to the output");\r
+\r
+  if(fCompDEdx) fOutput->Add(fCompDEdx);\r
+  else \r
+    Printf("WARNING: AliComparisonDEdx is not added to the output");\r
+\r
+  if(fCompDCA) fOutput->Add(fCompDCA);\r
+  else \r
+     Printf("WARNING: AliComparisonDCA is not added to the output");\r
+}\r
+\r
+//_____________________________________________________________________________\r
+Bool_t AliComparisonTask::ReadEntry(Int_t evt) \r
+{\r
+  Long64_t centry = fTree->LoadTree(evt);\r
+  if(centry < 0) return kFALSE;\r
+\r
+  if(fTree->GetBranch("MC") &&  fTree->GetBranch("RC")) {\r
+    fTree->GetBranch("MC")->SetAddress(&fInfoMC);\r
+    fTree->GetBranch("RC")->SetAddress(&fInfoRC);\r
+  } else {\r
+      Printf("ERROR: Could not get MC and RC branches");\r
+         return kFALSE;\r
+  }\r
+  fTree->GetEntry(evt);\r
+\r
+return kTRUE;\r
+}\r
+//_____________________________________________________________________________\r
+void AliComparisonTask::Exec(Option_t *) \r
+{\r
+  // Main loop\r
+  // Called for each event\r
+\r
+  if (!fInfoMC && !fInfoRC) {\r
+    Printf("ERROR: fInfoMC && fInfoRC not available");\r
+    return;\r
+  }\r
+\r
+  // Process comparison\r
+  Bool_t status = ReadEntry(evtNumber);\r
+  if(status == kTRUE) \r
+  {\r
+     if(fCompRes)  fCompRes->Exec(fInfoMC,fInfoRC);\r
+     if(fCompEff)  fCompEff->Exec(fInfoMC,fInfoRC);\r
+     if(fCompDEdx) fCompDEdx->Exec(fInfoMC,fInfoRC);\r
+     if(fCompDCA)  fCompDCA->Exec(fInfoMC,fInfoRC);\r
+  }\r
+\r
+  if( !( evtNumber % 10000) ) { \r
+    cout << evtNumber << endl;\r
+  }\r
+  evtNumber++;\r
+\r
+  // Post output data.\r
+  PostData(0, fOutput);\r
+}\r
+\r
+//_____________________________________________________________________________\r
+void AliComparisonTask::Terminate(Option_t *) \r
+{\r
+  // Called once at the end of the event loop\r
+  cout << "Terminate " << endl;\r
+\r
+  TFile *out = new TFile("Output.root","RECREATE");\r
+  out->cd();\r
+\r
+  fOutput = dynamic_cast<TList*> (GetOutputData(0));\r
+  if (!fOutput) {\r
+    Printf("ERROR: fOutput not available");\r
+    return;\r
+  }\r
+\r
+  fCompRes = dynamic_cast<AliComparisonRes*> (fOutput->FindObject("AliComparisonRes"));\r
+  if (!fCompRes) {\r
+    Printf("WARNING: AliComparisonRes not available");\r
+    return;\r
+  }\r
+\r
+  fCompEff = dynamic_cast<AliComparisonEff*> (fOutput->FindObject("AliComparisonEff"));\r
+  if (!fCompEff) {\r
+    Printf("WARNING: AliComparisonEff not available");\r
+    return;\r
+  }\r
+   \r
+  fCompDEdx = dynamic_cast<AliComparisonDEdx*> (fOutput->FindObject("AliComparisonDEdx"));\r
+  if (!fCompDEdx) {\r
+    Printf("WARNING: AliComparisonDEdx not available");\r
+    return;\r
+  }\r
+\r
+  fCompDCA = dynamic_cast<AliComparisonDCA*> (fOutput->FindObject("AliComparisonDCA"));\r
+  if (!fCompDCA) {\r
+    Printf("WARNING: AliComparisonDCA not available");\r
+    return;\r
+  }\r
+\r
+  fOutput->Write();\r
+  out->Close();\r
+}\r