]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdEta/testAnalysis2.C
implemented analysis using 3d information (vtx_z, eta, pt)
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / testAnalysis2.C
index 3f19677a93b3ce034f5aea30b2abb252961c1c49..fb0f467b332fe20c9db5ae79b5d4033313902af9 100644 (file)
 
 #include "../CreateESDChain.C"
 
-testAnalysis2(Char_t* dataDir, Int_t nRuns=20, Int_t offset=0, Bool_t aMC = kFALSE, Bool_t aDebug = kFALSE)
+void testAnalysis2(Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aMC = kFALSE, Bool_t aDebug = kFALSE, Bool_t aProof = kFALSE)
 {
+  gSystem->Load("libEG");
+  gSystem->Load("libGeom");
+  gSystem->Load("libESD");
   gSystem->Load("libPWG0base");
+  if (aMC != kFALSE)
+    gSystem->Load("libPWG0dep");
 
-  TChain* chain = CreateESDChainFromDir(dataDir, nRuns, offset);
+  gROOT->ProcessLine(".L CreatedNdEta.C");
+  gROOT->ProcessLine(".L CreateCuts.C");
 
-  // ########################################################
-  // selection of esd tracks
-  AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts();
-  esdTrackCuts->DefineHistograms(1);
+  TChain* chain = 0;
+  TVirtualProof* proof = 0;
+  if (aProof == kFALSE)
+    chain = CreateESDChainFromDir(data, nRuns, offset);
+  else
+  {
+    chain = CreateESDChainFromList(data, nRuns, offset);
+    proof = gROOT->Proof("jgrosseo@lxb6046");
+
+    if (!proof)
+    {
+      printf("ERROR: PROOF connection not established.\n");
+      return;
+    }
+
+    if (proof->EnablePackage("ESD"))
+    {
+      printf("ERROR: ESD package could not be enabled.\n");
+      return;
+    }
 
-  esdTrackCuts->SetMinNClustersTPC(50);
-  esdTrackCuts->SetMaxChi2PerClusterTPC(3.5);
-  esdTrackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
-  esdTrackCuts->SetRequireTPCRefit(kTRUE);
+    if (proof->EnablePackage("PWG0base"))
+    {
+      printf("ERROR: PWG0base package could not be enabled.\n");
+      return;
+    }
 
-  esdTrackCuts->SetMinNsigmaToVertex(3);
-  esdTrackCuts->SetAcceptKingDaughters(kFALSE);
+    if (aMC != kFALSE)
+    {
+      if (proof->EnablePackage("PWG0dep"))
+      {
+        printf("ERROR: PWG0dep package could not be enabled.\n");
+        return;
+      }
+    }
+
+    //chain->SetProof(proof);
+  }
+
+  // ########################################################
+  // selection of esd tracks
+  AliESDtrackCuts* esdTrackCuts = CreateTrackCuts();
+  if (!esdTrackCuts)
+  {
+    printf("ERROR: esdTrackCuts could not be created\n");
+    return;
+  }
 
   chain->GetUserInfo()->Add(esdTrackCuts);
+  if (proof)
+    proof->AddInput(esdTrackCuts);
 
   if (aMC == kFALSE)
   {
-    dNdEtaCorrection* dNdEtaCorrection = new dNdEtaCorrection();
+    AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection();
     dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction");
-    dNdEtaCorrection->RemoveEdges(2, 0, 2);
+    //dNdEtaCorrection->RemoveEdges(2, 0, 2);
 
     chain->GetUserInfo()->Add(dNdEtaCorrection);
+    if (proof)
+      proof->AddInput(dNdEtaCorrection);
   }
 
   TString selectorName = ((aMC == kFALSE) ? "AlidNdEtaAnalysisESDSelector" : "AlidNdEtaAnalysisMCSelector");
   AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
 
-  selectorName += ".cxx++";
+  // workaround for a bug in PROOF that only allows header files for .C files
+  // please create symlink from <selector>.cxx to <selector>.C
+  if (proof != kFALSE)
+    selectorName += ".C+";
+  else
+    selectorName += ".cxx+";
+
   if (aDebug != kFALSE)
     selectorName += "g";
 
   TStopwatch timer;
   timer.Start();
 
-  chain->Process(selectorName);
+  Long64_t result = -1;
+
+  if (proof != kFALSE)
+    result = chain->MakeTDSet()->Process(selectorName);
+  else
+    result = chain->Process(selectorName);
+
+  if (result != 0)
+  {
+    printf("ERROR: Executing process failed with %d.\n", result);
+    return;
+  }
 
   timer.Stop();
   timer.Print();
+
+  CreatedNdEta(aMC ? kFALSE : kTRUE, aMC ? "analysis_mc.root" : "analysis_esd.root");
 }
+