]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/macros/runEMCalJetAnalysis.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / runEMCalJetAnalysis.C
index abd4f6c1e27ff9eaf7043dc2a497ae905d7262e4..f4388e17f98bd53d219fafa87f0e88629d5d89f8 100644 (file)
@@ -28,19 +28,19 @@ AliAnalysisGrid* CreateAlienHandler(const char* uniqueName, const char* gridDir,
                                     
 //______________________________________________________________________________
 void runEMCalJetAnalysis(
-         const char*    dataType            = "ESD",                       // set the analysis type, AOD, ESD or sESD
-         Bool_t         useGrid             = kFALSE,                      // local or grid
+         Bool_t         useGrid             = kTRUE,                      // local or grid
          const char*    gridMode            = "test",                      // set the grid run mode (can be "full", "test", "offline", "submit" or "terminate")
-         const char*    pattern             = "*ESDs/pass2/*ESDs.root",    // file pattern (here one can specify subdirs like passX etc.) (used on grid)
-         const char*    gridDir             = "/alice/data/2012/LHC12g",   // dir on alien, where the files live (used on grid)
-         const char*    runNumbers          = "188359 188362",             // considered run numbers (used on grid)
+         const char*    dataType            = "AOD",                       // set the analysis type, AOD, ESD or sESD
+         const char*    pattern             = "*ESDs/pass2/AOD145/*AOD.root",    // file pattern (here one can specify subdirs like passX etc.) (used on grid)
+         const char*    gridDir             = "/alice/data/2011/LHC11h_2",   // dir on alien, where the files live (used on grid)
+         const char*    runNumbers          = "167903 167915",             // considered run numbers (used on grid)
          UInt_t         numLocalFiles       = 50,                          // number of files analyzed locally  
-         const char*    runPeriod           = "LHC12g",                    // set the run period (used on grid)
-         const char*    uniqueName          = "EMCalJF_LEGOTrainTest",     // sets base string for the name of the task on the grid
-         UInt_t         pSel                = AliVEvent::kAny,             // used event selection for every task except for the analysis tasks
-         Bool_t         useTender           = kFALSE,                      // trigger, if tender task should be used
+         const char*    runPeriod           = "LHC11h",                    // set the run period (used on grid)
+         const char*    uniqueName          = "EMCalJF_LEGOTrainTest",     // sets base string for the name of the train on the grid
+         UInt_t         pSel                = AliVEvent::kAny,             // used event selection for every task
+         Bool_t         useTender           = kTRUE,                       // trigger, if tender, track and cluster selection should be used (always)
          Bool_t         isMC                = kFALSE,                      // trigger, if MC handler should be used
-
+         Bool_t         doBkg               = kTRUE,
          // Here you have to specify additional code files you want to use but that are not in aliroot
          const char*    addCXXs             = "",
          const char*    addHs               = "",
@@ -53,7 +53,6 @@ void runEMCalJetAnalysis(
 {
 
   // Some pre-settings and constants
-
   enum AlgoType {kKT, kANTIKT};
   enum JetType  {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
   gSystem->SetFPEMask();
@@ -105,7 +104,7 @@ void runEMCalJetAnalysis(
   {
     cout << "Data type not recognized! You have to specify ESD, AOD, or sESD!\n";
   }
-  
+
   if(!useGrid)
     cout << "Using " << localFiles.Data() << " as input file list.\n";
 
@@ -121,13 +120,13 @@ void runEMCalJetAnalysis(
   // ################# Now: Add some basic tasks
 
   // Physics selection task
-  gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPhysicsSelection.C");
-  AliPhysicsSelectionTask *physSelTask = AddTaskEmcalPhysicsSelection(kTRUE, kTRUE, pSel, 5, 5, 10, kTRUE, -1, -1, -1, -1);
-
-  if (!physSelTask) 
-  {
-    cout << "no physSelTask"
-    return; 
+  if(!isMC) {
+    gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPhysicsSelection.C");
+    AliPhysicsSelectionTask *physSelTask = AddTaskEmcalPhysicsSelection(kTRUE, kTRUE, pSel, 5, 5, 10, kTRUE, -1, -1, -1, -1);
+    if (!physSelTask) {
+      cout << "no physSelTask but running on data" << endl; 
+      return
+    }
   }
 
   // Centrality task
@@ -148,33 +147,44 @@ void runEMCalJetAnalysis(
   setupTask->SetGeoPath("$ALICE_ROOT/OADB/EMCAL");
   
   // Tender Supplies
-  if (useTender)
-  {
-    gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEMCALTender.C");
-    AliAnalysisTaskSE *tender = AddTaskEMCALTender(runPeriod, kTRUE, kTRUE, kTRUE, kTRUE, kTRUE, kFALSE, kTRUE, kTRUE, kTRUE,
-                                                   AliEMCALRecoUtils::kBeamTestCorrected,kTRUE,0.1,0.05,AliEMCALRecParam::kClusterizerv2,
-                                                  kFALSE,kFALSE,-1,1e6,1e6);
-    if (usedData != "AOD" && !useGrid) {
-      AliTender *alitender = dynamic_cast<AliTender*>(tender);
-      alitender->SetDefaultCDBStorage("local://$ALICE_ROOT/OCDB"); 
-    }
+  if (useTender) {
+    gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPreparation.C");
+    //adjust pass when running locally. On grid give empty string, will be picked up automatically from path to ESD/AOD file
+    AliAnalysisTaskSE *clusm = AddTaskEmcalPreparation(runPeriod,"pass1"); 
   }
 
+  // Names of the different objects passed around; these are the default names; added here mostly for documentation purposes
+  // rhoName is only set if the background calculation is switched on (doBkg)
+  TString tracksName = "PicoTracks";
+  TString clustersName = "EmcCaloClusters";
+  TString clustersCorrName = "CaloClustersCorr";
+  TString rhoName = "";
+
   // ################# Now: Call jet preparation macro (picotracks, hadronic corrected caloclusters, ...) 
-  
-  // Jet preparation
   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C");
-  AddTaskJetPreparation(dataType);
+  TString particlesMCName = "";
+  if(isMC) particlesMCName = "MCParticlesSelected";
+  AddTaskJetPreparation(runPeriod, tracksName, particlesMCName.Data(), clustersName, clustersCorrName);
 
   // ################# Now: Add jet finders+analyzers
-
   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
-  AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet("PicoTracks", "CaloClustersCorr", kANTIKT, 0.2, kCHARGEDJETS, 0.150, 0.300);
-
+  AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(tracksName, clustersCorrName, kANTIKT, 0.2, kCHARGEDJETS, 0.150, 0.300);
+
+  if (doBkg) {
+    rhoName = "Rho";
+    AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(tracksName, clustersCorrName, kKT, 0.2, kCHARGEDJETS, 0.150, 0.300);
+
+    TString kTpcKtJetsName = jetFinderTaskKT->GetName();
+    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRho.C");
+    rhotask = (AliAnalysisTaskRho*) AddTaskRho(kTpcKtJetsName, tracksName, clustersCorrName, rhoName, 0.2, "TPC", 0.01, 0, 0, 2, kTRUE);
+    //rhotask__->SetScaleFunction(sfunc);
+    //rhotask->SelectCollisionCandidates(kPhysSel);
+    rhotask->SetHistoBins(100,0,250);
+  }
   // Here you can put in your AddTaskMacro for your task
   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetSample.C");
-  AliAnalysisTaskEmcalJetSample* anaTask = AddTaskEmcalJetSample("PicoTracks", "CaloClustersCorr", jetFinderTask->GetName(), "");
-
+  AliAnalysisTaskEmcalJetSample* anaTask = 0;
+  AddTaskEmcalJetSample(tracksName, clustersCorrName, jetFinderTask->GetName(), rhoName, 4);
 
   // Set the physics selection for all given tasks
   TObjArray *toptasks = mgr->GetTasks();
@@ -254,18 +264,18 @@ void LoadLibs()
   gSystem->Load("libCORRFW");
   gSystem->Load("libTOFbase");
   //gSystem->Load("libTOFrec");
-  gSystem->Load("libRAWDatabase.so");
-  gSystem->Load("libRAWDatarec.so");
-  gSystem->Load("libTPCbase.so");
-  gSystem->Load("libTPCrec.so");
-  gSystem->Load("libITSbase.so");
-  gSystem->Load("libITSrec.so");
-  gSystem->Load("libTRDbase.so");
-  gSystem->Load("libTENDER.so");
-  gSystem->Load("libSTAT.so");
-  gSystem->Load("libTRDrec.so");
-  gSystem->Load("libHMPIDbase.so");
-  gSystem->Load("libPWGPP.so");
+  gSystem->Load("libRAWDatabase");
+  gSystem->Load("libRAWDatarec");
+  gSystem->Load("libTPCbase");
+  gSystem->Load("libTPCrec");
+  gSystem->Load("libITSbase");
+  gSystem->Load("libITSrec");
+  gSystem->Load("libTRDbase");
+  gSystem->Load("libTender");
+  gSystem->Load("libSTAT");
+  gSystem->Load("libTRDrec");
+  gSystem->Load("libHMPIDbase");
+  gSystem->Load("libPWGPP");
   gSystem->Load("libPWGHFbase");
   gSystem->Load("libPWGDQdielectron");
   gSystem->Load("libPWGHFhfe");
@@ -278,10 +288,11 @@ void LoadLibs()
   gSystem->Load("libTRDbase");
   gSystem->Load("libVZERObase");
   gSystem->Load("libVZEROrec");
-  gSystem->Load("libTENDER");
-  gSystem->Load("libTENDERSupplies");
+  gSystem->Load("libTender");
+  gSystem->Load("libTenderSupplies");
   gSystem->Load("libPWGTools");
   gSystem->Load("libPWGEMCAL");
+  gSystem->Load("libESDfilter");
   gSystem->Load("libPWGGAEMCALTasks");
   gSystem->Load("libPWGCFCorrelationsBase");
   gSystem->Load("libPWGCFCorrelationsDPhi");
@@ -290,12 +301,16 @@ void LoadLibs()
   gSystem->Load("libCGAL");
   gSystem->Load("libfastjet");
     //For FastJet 3.x use siscon*,fastjetplugins for 2.x use SISConePlugin
-  gSystem->Load("libSISConePlugin");
-  //  gSystem->Load("libsiscone");
-  //  gSystem->Load("libsiscone_spherical");
-  //  gSystem->Load("libfastjetplugins");
+  //  gSystem->Load("libSISConePlugin");
+  // gSystem->Load("libCDFConesPlugin");
+  gSystem->Load("libsiscone");
+  gSystem->Load("libsiscone_spherical");
+  gSystem->Load("libfastjetplugins");
+  gSystem->Load("libfastjettools");
+  gSystem->Load("libfastjetcontribfragile");
+  //
   gSystem->Load("libJETAN");
-  gSystem->Load("libFASTJETAN");
+//  gSystem->Load("libFASTJETAN");
   gSystem->Load("libPWGJEEMCALJetTasks");
 
 
@@ -323,7 +338,7 @@ AliAnalysisGrid* CreateAlienHandler(const char* uniqueName, const char* gridDir,
   }
 
   TString tmpAdditionalLibs("");
-  tmpAdditionalLibs = Form("libTree.so libVMC.so libGeom.so libGui.so libXMLParser.so libMinuit.so libMinuit2.so libProof.so libPhysics.so libSTEERBase.so libESD.so libAOD.so libOADB.so libANALYSIS.so libCDB.so libRAWDatabase.so libSTEER.so libANALYSISalice.so libCORRFW.so libTOFbase.so libRAWDatabase.so libRAWDatarec.so libTPCbase.so libTPCrec.so libITSbase.so libITSrec.so libTRDbase.so libTENDER.so libSTAT.so libTRDrec.so libHMPIDbase.so libPWGPP.so libPWGHFbase.so libPWGDQdielectron.so libPWGHFhfe.so libEMCALUtils.so libPHOSUtils.so libPWGCaloTrackCorrBase.so libEMCALraw.so libEMCALbase.so libEMCALrec.so libTRDbase.so libVZERObase.so libVZEROrec.so libTENDER.so libTENDERSupplies.so libPWGEMCAL.so libPWGGAEMCALTasks.so libPWGTools.so libPWGCFCorrelationsBase.so libPWGCFCorrelationsDPhi.so  libCGAL.so libJETAN.so libfastjet.so libSISConePlugin.so libFASTJETAN.so libPWGJE.so libPWGmuon.so libPWGJEEMCALJetTasks.so %s %s",additionalCode.Data(),additionalHeaders.Data());
+  tmpAdditionalLibs = Form("libTree.so libVMC.so libGeom.so libGui.so libXMLParser.so libMinuit.so libMinuit2.so libProof.so libPhysics.so libSTEERBase.so libESD.so libAOD.so libOADB.so libANALYSIS.so libCDB.so libRAWDatabase.so libSTEER.so libANALYSISalice.so libCORRFW.so libTOFbase.so libRAWDatabase.so libRAWDatarec.so libTPCbase.so libTPCrec.so libITSbase.so libITSrec.so libTRDbase.so libTender.so libSTAT.so libTRDrec.so libHMPIDbase.so libPWGPP.so libPWGHFbase.so libPWGDQdielectron.so libPWGHFhfe.so libEMCALUtils.so libPHOSUtils.so libPWGCaloTrackCorrBase.so libEMCALraw.so libEMCALbase.so libEMCALrec.so libTRDbase.so libVZERObase.so libVZEROrec.so libTender.so libTenderSupplies.so libESDfilter.so libPWGTools.so libPWGEMCAL.so libPWGGAEMCALTasks.so libPWGCFCorrelationsBase.so libPWGCFCorrelationsDPhi.so  libCGAL.so libJETAN.so libfastjet.so libsiscone.so libsiscone_spherical.so libfastjetplugins.so libfastjettools.so libfastjetcontribfragile.so libPWGJE.so libPWGmuon.so libPWGJEEMCALJetTasks.so %s %s",additionalCode.Data(),additionalHeaders.Data());
 
 
   TString macroName("");
@@ -339,8 +354,8 @@ AliAnalysisGrid* CreateAlienHandler(const char* uniqueName, const char* gridDir,
      
   // Here you can set the (Ali)ROOT version you want to use
   plugin->SetAPIVersion("V1.1x");
-  plugin->SetROOTVersion("v5-34-02-1");
-  plugin->SetAliROOTVersion("v5-04-21-AN-1");
+  plugin->SetROOTVersion("v5-34-08-6");
+  plugin->SetAliROOTVersion("vAN-20140525");
 
   plugin->SetGridDataDir(gridDir); // e.g. "/alice/sim/LHC10a6"
   plugin->SetDataPattern(pattern); //dir structure in run directory