]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/runProtonAnalysisQA.C
Coding conventions
[u/mrichter/AliRoot.git] / PWG2 / runProtonAnalysisQA.C
index a5b13f722341a462a35d5850f70692ae39bb03ed..037e599c27a2427206f186a57e690168fc0c6e87 100644 (file)
-void runProtonAnalysisQA() {
+void runProtonAnalysisQA(const char *analysisType = "TPC") {
+  //Macro to run the proton QA analysis tested for local, proof & GRID.
+  //Proof: Takes three arguments, the number of events, the dataset name 
+  //       and the analysis type
+  //Interactive: Takes two arguments, the name of the collection file with 
+  //             the event list for each file and the analysis type
+  //Batch: Takes two arguments, the name of the collection file with 
+  //             the ESDs and the analysis type
+  //Analysis type can be one of the three: "TPC", "Hybrid", "Global"
   TStopwatch timer;
   timer.Start();
   
-  runProof(200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T"); //use data sets
-  //runProof(200); //use ascii files
-  
+  //runProof(200000,"/COMMON/COMMON/LHC08c11_10TeV_0.5T",analysisType);
+  //runInteractive("wn.xml",analysisType);
+  runBatch("wn.xml",analysisType);
+  //runLocal(analysisType);
+
   timer.Stop();
   timer.Print();
 }
 
 //_________________________________________________//
-void runProof(Int_t stats = 0, const char* dataset = 0x0) {
-  TStopwatch timer;
-  timer.Start();
+void runLocal(const char* analysisType) {
+  TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
+  outputFilename1 += ".root"; //main QA file
+  TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
+  outputFilename2 += ".root"; //MC process QA
+  TString outputFilename3 = "Protons.QA.Histograms."; 
+  outputFilename3 += analysisType;
+  outputFilename3 += ".root"; //Accepted cut distributions
+  TString outputFilename4 = "Protons.Efficiency."; 
+  outputFilename4 += analysisType;
+  outputFilename4 += ".root"; //Reco and PID efficiency
+  TString outputFilename5 = "Vertex.QA.root"; //vertex QA
+
+  gSystem->Load("libProofPlayer.so");
+
+  //Setup the par files
+  setupPar("STEERBase");
+  gSystem->Load("libSTEERBase.so");
+  setupPar("ESD");
+  gSystem->Load("libESD.so");
+  setupPar("AOD");
+  gSystem->Load("libAOD.so");
+  setupPar("ANALYSIS");
+  gSystem->Load("libANALYSIS.so");
+  setupPar("ANALYSISalice");
+  gSystem->Load("libANALYSISalice.so");
+  setupPar("CORRFW");
+  gSystem->Load("libCORRFW.so");
+  setupPar("PWG2spectra");
+  gSystem->Load("libPWG2spectra.so");
+
+  gROOT->LoadMacro("AliAnalysisTaskProtonsQA.cxx+");
+  //____________________________________________//
+  //Create the chain from the xml collection of esd files
+  TChain *chain = new TChain("esdTree");  
+  chain->Add("AliESDs.root");
+  
+  //____________________________________________//
+  // Make the analysis manager
+  AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
+  AliVEventHandler* esdH = new AliESDInputHandler;
+  mgr->SetInputEventHandler(esdH);
+  AliMCEventHandler *mc = new AliMCEventHandler();
+  mgr->SetMCtruthEventHandler(mc);
+  
+  //____________________________________________//
+  // 1st Proton task
+  AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
+  taskProtonsQA->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
+  switch(analysisType) {
+  case "TPC":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
+    break;
+  case "Hybrid":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kHybrid);
+    break;
+  case "Global":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kGlobal);
+    break;
+  default:
+    break;
+  }
+  taskProtonsQA->SetAcceptedVertexDiamond(5.,5.,15.);
+  mgr->AddTask(taskProtonsQA);
+
+  // Create containers for input/output
+  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
+                                                          TChain::Class(),
+                                                          AliAnalysisManager::kInputContainer);
+  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename1.Data());
+  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename2.Data());
+  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename2.Data());
+  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename4.Data());
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename5.Data());
+
+  //____________________________________________//
+  mgr->ConnectInput(taskProtonsQA,0,cinput1);
+  mgr->ConnectOutput(taskProtonsQA,0,coutput1);
+  mgr->ConnectOutput(taskProtonsQA,1,coutput2);
+  mgr->ConnectOutput(taskProtonsQA,2,coutput3);
+  mgr->ConnectOutput(taskProtonsQA,3,coutput4);
+  mgr->ConnectOutput(taskProtonsQA,4,coutput5);
+  mgr->ConnectOutput(taskProtonsQA,5,coutput6);
+  mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
+  if (!mgr->InitAnalysis()) return;
+  mgr->PrintStatus();
+  mgr->StartAnalysis("local",chain);
+}
+
+//_________________________________________________//
+void runBatch(const char *collectionfile,
+             const char *analysisType) {
+  TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
+  outputFilename1 += ".root"; //main QA file
+  TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
+  outputFilename2 += ".root"; //MC process QA
+  TString outputFilename3 = "Protons.QA.Histograms."; 
+  outputFilename3 += analysisType;
+  outputFilename3 += ".root"; //Accepted cut distributions
+  TString outputFilename4 = "Protons.Efficiency."; 
+  outputFilename4 += analysisType;
+  outputFilename4 += ".root"; //Reco and PID efficiency
+  TString outputFilename5 = "Vertex.QA.root"; //vertex QA
+
+  TGrid::Connect("alien://");
+  gSystem->Load("libProofPlayer.so");
+
+  //Setup the par files
+  setupPar("STEERBase");
+  gSystem->Load("libSTEERBase.so");
+  setupPar("ESD");
+  gSystem->Load("libESD.so");
+  setupPar("AOD");
+  gSystem->Load("libAOD.so");
+  setupPar("ANALYSIS");
+  gSystem->Load("libANALYSIS.so");
+  setupPar("ANALYSISalice");
+  gSystem->Load("libANALYSISalice.so");
+  setupPar("CORRFW");
+  gSystem->Load("libCORRFW.so");
+  setupPar("PWG2spectra");
+  gSystem->Load("libPWG2spectra.so");
+
+  gROOT->LoadMacro("AliAnalysisTaskProtonsQA.cxx+");
+  //____________________________________________//
+  //Create the chain from the xml collection of esd files
+  TAlienCollection* coll = TAlienCollection::Open(collectionfile);
+  TGridResult* gridResult = coll->GetGridResult("",0,0);
+  Int_t nEntries = gridResult->GetEntries();
+  TChain *chain = new TChain("esdTree");  
+  TString alienUrl = 0;
+  for(Int_t i = 0; i < nEntries; i++) {
+    alienUrl = gridResult->GetKey(i,"turl");
+    chain->Add(alienUrl);
+  }
+  
+  //____________________________________________//
+  // Make the analysis manager
+  AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
+  AliVEventHandler* esdH = new AliESDInputHandler;
+  mgr->SetInputEventHandler(esdH);
+  AliMCEventHandler *mc = new AliMCEventHandler();
+  mgr->SetMCtruthEventHandler(mc);
+  
+  //____________________________________________//
+  // 1st Proton task
+  AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
+  taskProtonsQA->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
+  switch(analysisType) {
+  case "TPC":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
+    break;
+  case "Hybrid":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kHybrid);
+    break;
+  case "Global":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kGlobal);
+    break;
+  default:
+    break;
+  }
+  taskProtonsQA->SetAcceptedVertexDiamond(5.,5.,15.);
+  mgr->AddTask(taskProtonsQA);
+
+  // Create containers for input/output
+  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
+                                                          TChain::Class(),
+                                                          AliAnalysisManager::kInputContainer);
+  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename1.Data());
+  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename2.Data());
+  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename2.Data());
+  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename4.Data());
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename5.Data());
+
+  //____________________________________________//
+  mgr->ConnectInput(taskProtonsQA,0,cinput1);
+  mgr->ConnectOutput(taskProtonsQA,0,coutput1);
+  mgr->ConnectOutput(taskProtonsQA,1,coutput2);
+  mgr->ConnectOutput(taskProtonsQA,2,coutput3);
+  mgr->ConnectOutput(taskProtonsQA,3,coutput4);
+  mgr->ConnectOutput(taskProtonsQA,4,coutput5);
+  mgr->ConnectOutput(taskProtonsQA,5,coutput6);
+  mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
+  if (!mgr->InitAnalysis()) return;
+  mgr->PrintStatus();
+  mgr->StartAnalysis("local",chain);
+}
+
+//_________________________________________________//
+void runInteractive(const char *collectionfile,
+                   const char *analysisType) {
+  TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
+  outputFilename1 += ".root"; //main QA file
+  TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
+  outputFilename2 += ".root"; //MC process QA
+  TString outputFilename3 = "Protons.QA.Histograms."; 
+  outputFilename3 += analysisType;
+  outputFilename3 += ".root"; //Accepted cut distributions
+  TString outputFilename4 = "Protons.Efficiency."; 
+  outputFilename4 += analysisType;
+  outputFilename4 += ".root"; //Reco and PID efficiency
+  TString outputFilename5 = "Vertex.QA.root"; //vertex QA
+
+  TGrid::Connect("alien://");
+
+  //Setup the par files
+  setupPar("STEERBase");
+  gSystem->Load("libSTEERBase.so");
+  setupPar("ESD");
+  gSystem->Load("libESD.so");
+  setupPar("AOD");
+  gSystem->Load("libAOD.so");
+  setupPar("ANALYSIS");
+  gSystem->Load("libANALYSIS.so");
+  setupPar("ANALYSISalice");
+  gSystem->Load("libANALYSISalice.so");
+  setupPar("CORRFW");
+  gSystem->Load("libCORRFW.so");
+  setupPar("PWG2spectra");
+  gSystem->Load("libPWG2spectra.so");
+
+  gROOT->LoadMacro("AliAnalysisTaskProtonsQA.cxx+");
+  //____________________________________________//
+  //Usage of event tags
+  AliTagAnalysis *analysis = new AliTagAnalysis();
+  TChain *chain = 0x0;
+  chain = analysis->GetChainFromCollection(collectionfile,"esdTree");
+
+  //____________________________________________//
+  // Make the analysis manager
+  AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
+  AliVEventHandler* esdH = new AliESDInputHandler;
+  mgr->SetInputEventHandler(esdH);
+  AliMCEventHandler *mc = new AliMCEventHandler();
+  mgr->SetMCtruthEventHandler(mc);
   
-  TString outputFilename1 = "Protons.QA.root"; 
-  TString outputFilename2 = "Protons.MC.QA.root"; 
+  //____________________________________________//
+  // 1st Proton task
+  AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
+  taskProtonsQA->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
+  switch(analysisType) {
+  case "TPC":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
+    break;
+  case "Hybrid":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kHybrid);
+    break;
+  case "Global":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kGlobal);
+    break;
+  default:
+    break;
+  }
+  taskProtonsQA->SetAcceptedVertexDiamond(5.,5.,15.);
+  mgr->AddTask(taskProtonsQA);
+
+  // Create containers for input/output
+  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename1.Data());
+  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename2.Data());
+  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename2.Data());
+  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename4.Data());
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename5.Data());
+
+  //____________________________________________//
+  mgr->ConnectInput(taskProtonsQA,0,cinput1);
+  mgr->ConnectOutput(taskProtonsQA,0,coutput1);
+  mgr->ConnectOutput(taskProtonsQA,1,coutput2);
+  mgr->ConnectOutput(taskProtonsQA,2,coutput3);
+  mgr->ConnectOutput(taskProtonsQA,3,coutput4);
+  mgr->ConnectOutput(taskProtonsQA,4,coutput5);
+  mgr->ConnectOutput(taskProtonsQA,5,coutput6);
+  mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
+  if (!mgr->InitAnalysis()) return;
+  mgr->PrintStatus();
+  mgr->StartAnalysis("local",chain);
+}
+//_________________________________________________//
+void runProof(Int_t stats = 0, 
+             const char* dataset = 0x0,
+             const char *analysisType) {
+  TString outputFilename1 = "Protons.QA."; outputFilename1 += analysisType;
+  outputFilename1 += ".root"; //main QA file
+  TString outputFilename2 = "Protons.MC.QA."; outputFilename2 += analysisType;
+  outputFilename2 += ".root"; //MC process QA
+  TString outputFilename3 = "Protons.QA.Histograms."; 
+  outputFilename3 += analysisType;
+  outputFilename3 += ".root"; //Accepted cut distributions
+  TString outputFilename4 = "Protons.Efficiency."; 
+  outputFilename4 += analysisType;
+  outputFilename4 += ".root"; //Reco and PID efficiency
+  TString outputFilename5 = "Vertex.QA.root"; //vertex QA
 
   printf("****** Connect to PROOF *******\n");
   TProof::Open("alicecaf.cern.ch"); 
@@ -50,30 +431,68 @@ void runProof(Int_t stats = 0, const char* dataset = 0x0) {
   //____________________________________________//
   // 1st Proton task
   AliAnalysisTaskProtonsQA *taskProtonsQA = new AliAnalysisTaskProtonsQA("TaskProtonsQA");
+  taskProtonsQA->SetTriggerMode(AliAnalysisTaskProtonsQA::kMB2);
+  switch(analysisType) {
+  case "TPC":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kTPC);
+    break;
+  case "Hybrid":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kHybrid);
+    break;
+  case "Global":
+    taskProtonsQA->SetAnalysisMode(AliAnalysisTaskProtonsQA::kGlobal);
+    break;
+  default:
+    break;
+  }
+  taskProtonsQA->SetAcceptedVertexDiamond(5.,5.,15.);
   mgr->AddTask(taskProtonsQA);
 
   // Create containers for input/output
-  AliAnalysisDataContainer *cinput1 = mgr->CreateContainer("dataChain",
-                                                          TChain::Class(),
-                                                          AliAnalysisManager::kInputContainer);
-  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("outputList1", 
+  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
+  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("globalQAList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename1.Data());
-  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("outputList2", 
+  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("pdgCodeList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename2.Data());
-  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("outputList3", 
+  AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("mcProcessList", 
                                                            TList::Class(),
                                                            AliAnalysisManager::kOutputContainer,
                                                            outputFilename2.Data());
+  AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("acceptedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput5 = mgr->CreateContainer("rejectedCutList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput6 = mgr->CreateContainer("acceptedDCAList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename3.Data());
+  AliAnalysisDataContainer *coutput7 = mgr->CreateContainer("efficiencyList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename4.Data());
+  AliAnalysisDataContainer *coutput8 = mgr->CreateContainer("vertexList", 
+                                                           TList::Class(),
+                                                           AliAnalysisManager::kOutputContainer,
+                                                           outputFilename5.Data());
 
   //____________________________________________//
   mgr->ConnectInput(taskProtonsQA,0,cinput1);
   mgr->ConnectOutput(taskProtonsQA,0,coutput1);
   mgr->ConnectOutput(taskProtonsQA,1,coutput2);
   mgr->ConnectOutput(taskProtonsQA,2,coutput3);
+  mgr->ConnectOutput(taskProtonsQA,3,coutput4);
+  mgr->ConnectOutput(taskProtonsQA,4,coutput5);
+  mgr->ConnectOutput(taskProtonsQA,5,coutput6);
+  mgr->ConnectOutput(taskProtonsQA,6,coutput7);
+  mgr->ConnectOutput(taskProtonsQA,7,coutput8);
   if (!mgr->InitAnalysis()) return;
   mgr->PrintStatus();
 
@@ -90,9 +509,6 @@ void runProof(Int_t stats = 0, const char* dataset = 0x0) {
     mgr->StartAnalysis("proof",chain);
     //mgr->StartAnalysis("local",chain);
   }
-
-  timer.Stop();
-  timer.Print();
 }
 
 //_________________________________________________//