]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/RunAnalysisAODVertexingHF.C
Added event-level selection (Chiara)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / RunAnalysisAODVertexingHF.C
index 8ce60968ca92efda363ab3b05b1dd524946f7d69..547e831cc31a314d9f56d18026929f91efea3969 100644 (file)
@@ -1,4 +1,5 @@
 class AliAnalysisGrid;\r
+TString mySE="ALICE::CNAF::SE";\r
 \r
 void RunAnalysisAODVertexingHF()\r
 {\r
@@ -13,15 +14,20 @@ void RunAnalysisAODVertexingHF()
   // "grid" mode added by R.Bala, bala@to.infn.it\r
   //\r
 \r
+  gSystem->Setenv("alien_CLOSE_SE",mySE.Data());\r
+\r
   gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG3 -I$ALICE_ROOT/PWG3/vertexingHF -g"); \r
   //\r
+  TString trainName = "D2H";\r
   TString analysisMode = "grid"; // "local", "grid", or "proof"\r
   TString inputMode    = "list"; // "list", "xml", or "dataset"\r
-  Long64_t nentries=1234567890,firstentry=0;\r
+  Long64_t nentries=1000,firstentry=0;\r
   Bool_t useParFiles=kFALSE;\r
   Bool_t useAlienPlugin=kTRUE;\r
   TString pluginmode="test";\r
-  TString loadMacroPath="$ALICE_ROOT/PWG3/vertexingHF/";\r
+  Bool_t saveProofToAlien=kFALSE;\r
+  TString proofOutdir = "";\r
+  TString loadMacroPath="$ALICE_ROOT/PWG3/vertexingHF/macros/";\r
   //TString loadMacroPath="./"; // this is normally needed for CAF\r
   //\r
 \r
@@ -34,6 +40,23 @@ void RunAnalysisAODVertexingHF()
     gEnv->SetValue("XSec.GSI.DelegProxy","2");\r
     TProof::Open("alicecaf");\r
     //TProof::Reset("alicecaf");\r
+    if(saveProofToAlien) {\r
+      TGrid::Connect("alien://");\r
+      if(gGrid) {\r
+       TString homedir = gGrid->GetHomeDirectory();\r
+       TString workdir = homedir + trainName;\r
+       if(!gGrid->Cd(workdir)) {\r
+         gGrid->Cd(homedir);\r
+         if(gGrid->Mkdir(workdir)) {\r
+           gGrid->Cd(trainName);\r
+           ::Info("VertexingTrain::Connect()", "Directory %s created", gGrid->Pwd());\r
+         }\r
+       }          \r
+       gGrid->Mkdir("proof_output");\r
+       gGrid->Cd("proof_output");\r
+       proofOutdir = Form("alien://%s", gGrid->Pwd());\r
+      } \r
+    }\r
   }\r
 \r
 \r
@@ -47,6 +70,7 @@ void RunAnalysisAODVertexingHF()
     gSystem->Load("libGeom.so");\r
     gSystem->Load("libPhysics.so");\r
     gSystem->Load("libVMC.so");    \r
+    gSystem->Load("libMinuit.so");    \r
     // Enable the needed packages\r
     //gProof->ClearPackages();\r
     TString parDir="/afs/cern.ch/user/d/dainesea/code/";\r
@@ -91,22 +115,10 @@ void RunAnalysisAODVertexingHF()
       parFile="PWG3vertexingHF.par"; parFile.Prepend(parDir.Data());\r
       gProof->UploadPackage(parFile.Data());\r
       gProof->EnablePackage("PWG3vertexingHF");\r
-      // --- Enable the JETAN Package\r
-      parFile="JETAN.par"; parFile.Prepend(parDir.Data());\r
-      gProof->UploadPackage(parFile.Data());\r
-      gProof->EnablePackage("JETAN");\r
       // --- Enable the PWG3muon Package\r
       parFile="PWG3muon.par"; parFile.Prepend(parDir.Data());\r
       gProof->UploadPackage(parFile.Data());\r
       gProof->EnablePackage("PWG3muon");\r
-      // --- Enable the PWG4PartCorrBase Package\r
-      parFile="PWG4PartCorrBase.par"; parFile.Prepend(parDir.Data());\r
-      gProof->UploadPackage(parFile.Data());\r
-      gProof->EnablePackage("PWG4PartCorrBase");\r
-      // --- Enable the PWG4PartCorrDep Package\r
-      parFile="PWG4PartCorrDep.par"; parFile.Prepend(parDir.Data());\r
-      gProof->UploadPackage(parFile.Data());\r
-      gProof->EnablePackage("PWG4PartCorrDep");\r
     }\r
     gProof->ShowEnabledPackages(); // show a list of enabled packages\r
   }\r
@@ -132,6 +144,7 @@ void RunAnalysisAODVertexingHF()
       gROOT->LoadMacro(makeAODInputChain.Data());\r
       chainAOD = MakeAODInputChain();// with this it reads ./AliAOD.root and ./AliAOD.VertexingHF.root\r
       //chainAOD = MakeAODInputChain("alien:///alice/cern.ch/user/r/rbala/newtrain/out_lhc08x/180100/",1,1);\r
+      printf("ENTRIES %d\n",chainAOD->GetEntries());\r
     } else if(inputMode=="xml") {\r
       // xml\r
       gROOT->LoadMacro(makeAODInputChain.Data());\r
@@ -149,10 +162,12 @@ void RunAnalysisAODVertexingHF()
   // Connect plug-in to the analysis manager\r
   if(useAlienPlugin) mgr->SetGridHandler(alienHandler);\r
 \r
-\r
   // Input\r
   AliAODInputHandler *inputHandler = new AliAODInputHandler();\r
-  if(analysisMode=="proof") inputHandler->AddFriend("AliAOD.VertexingHF.root");\r
+  if(analysisMode=="proof" ) {\r
+    inputHandler->AddFriend("AliAOD.VertexingHF.root");\r
+    if(saveProofToAlien) mgr->SetSpecialOutputLocation(proofOutdir);\r
+  }\r
   mgr->SetInputEventHandler(inputHandler);\r
   //-------------------------------------------------------------------\r
 \r
@@ -161,24 +176,36 @@ void RunAnalysisAODVertexingHF()
   // Analysis tasks (wagons of the train)   \r
   //\r
   TString taskName;\r
-\r
-  taskName="AddTaskCompareHF.C"; taskName.Prepend(loadMacroPath.Data());\r
+  ////// ADD THE FULL D2H TRAIN\r
+  taskName="AddD2HTrain.C"; taskName.Prepend(loadMacroPath.Data());\r
   gROOT->LoadMacro(taskName.Data());\r
-  AliAnalysisTaskSECompareHF *cmpTask = AddTaskCompareHF();\r
+  Bool_t readMC=kFALSE;\r
+  AddD2HTrain(readMC);//,1,0,0,0,0,0,0,0,0,0,0);\r
+\r
+  ////// OR ADD INDIVIDUAL TASKS\r
+  /*\r
+  \r
+  //taskName="AddTaskCompareHF.C"; taskName.Prepend(loadMacroPath.Data());\r
+  //gROOT->LoadMacro(taskName.Data());\r
+  //AliAnalysisTaskSECompareHF *cmpTask = AddTaskCompareHF();\r
   \r
   taskName="AddTaskD0Mass.C"; taskName.Prepend(loadMacroPath.Data());\r
   gROOT->LoadMacro(taskName.Data());\r
   AliAnalysisTaskSED0Mass *d0massTask = AddTaskD0Mass();\r
-\r
+  AliAnalysisTaskSED0Mass *d0massLikeSignTask = AddTaskD0Mass(1); \r
   \r
   taskName="AddTaskDplus.C"; taskName.Prepend(loadMacroPath.Data());\r
   gROOT->LoadMacro(taskName.Data());\r
   AliAnalysisTaskSEDplus *dplusTask = AddTaskDplus();\r
   \r
+  taskName="AddTaskDs.C"; taskName.Prepend(loadMacroPath.Data());\r
+  gROOT->LoadMacro(taskName.Data());\r
+  AliAnalysisTaskSEDs *dsTask = AddTaskDs();\r
+\r
   //taskName="AddTaskSelectHF.C"; taskName.Prepend(loadMacroPath.Data());\r
   //gROOT->LoadMacro(taskName.Data());\r
   //AliAnalysisTaskSESelectHF *seleTask = AddTaskSelectHF();\r
-\r
+  \r
   taskName="AddTaskBkgLikeSignD0.C"; taskName.Prepend(loadMacroPath.Data());\r
   gROOT->LoadMacro(taskName.Data());\r
   AliAnalysisTaskSEBkgLikeSignD0 *lsD0Task = AddTaskBkgLikeSignD0();\r
@@ -187,9 +214,9 @@ void RunAnalysisAODVertexingHF()
   gROOT->LoadMacro(taskName.Data());\r
   AliAnalysisTaskSEBkgLikeSignJPSI *lsJPSITask = AddTaskBkgLikeSignJPSI();\r
 \r
-  taskName="AddTaskBtoJPSItoEle.C"; taskName.Prepend(loadMacroPath.Data());\r
-  gROOT->LoadMacro(taskName.Data());\r
-  AliAnalysisTaskSEBtoJPSItoEle *jpsiTask = AddTaskBtoJPSItoEle();\r
+  //taskName="AddTaskBtoJPSItoEle.C"; taskName.Prepend(loadMacroPath.Data());\r
+  //gROOT->LoadMacro(taskName.Data());\r
+  //AliAnalysisTaskSEBtoJPSItoEle *jpsiTask = AddTaskBtoJPSItoEle();\r
 \r
   taskName="AddTaskCFMultiVarMultiStep.C"; taskName.Prepend(loadMacroPath.Data());\r
   gROOT->LoadMacro(taskName.Data());\r
@@ -197,13 +224,9 @@ void RunAnalysisAODVertexingHF()
 \r
   taskName="AddTaskCharmFraction.C"; taskName.Prepend(loadMacroPath.Data());\r
   gROOT->LoadMacro(taskName.Data());\r
-  // The task is added several times with different settings:\r
-  AliAnalysisTaskCharmFraction *cFractTaskSignal   = AddTaskCharmFraction("d0D0_Signal.root");\r
-  AliAnalysisTaskCharmFraction *cFractTaskNoMCSel  = AddTaskCharmFraction("d0D0NoMCSel.root",kFALSE,kTRUE,kFALSE);\r
-  AliAnalysisTaskCharmFraction *cFractTaskNoMCSel  = AddTaskCharmFraction("d0D0NoMCSel_SideBand.root",kTRUE,kTRUE,kFALSE);\r
-  AliAnalysisTaskCharmFraction *cFractTaskPureBack = AddTaskCharmFraction("d0D0_PureBack.root",kFALSE,kTRUE,kTRUE,kTRUE,kFALSE,kTRUE,kTRUE,kFALSE,kTRUE);\r
-  AliAnalysisTaskCharmFraction *cFractTaskFromB    = AddTaskCharmFraction("d0D0_FromB.root",kFALSE,kTRUE,kTRUE,kFALSE,kTRUE);\r
-\r
+  Int_t switchMC[5]={1,1,1,1,1};\r
+  AliAnalysisTaskSECharmFraction *cFractTask = AddTaskCharmFraction("d0D0",switchMC);\r
+  */\r
   // attach a private task (not committed)\r
   // (the files MyTask.h MyTask.cxx AddMyTask.C have to be declared in plugin\r
   // configuration, see below)\r
@@ -216,7 +239,15 @@ void RunAnalysisAODVertexingHF()
   gROOT->LoadMacro("AddMyTask.C");\r
   MyTask *myTask = AddMyTask();\r
   */\r
-\r
+  /*\r
+  if(analysisMode.Data()=="proof") {\r
+    gProof->LoadMacro("AliDStarJets.cxx++g");\r
+  } else {\r
+    gROOT->LoadMacro("AliDStarJets.cxx++g");\r
+  }\r
+  gROOT->LoadMacro("AddTaskDStarJets.C");\r
+  AliDStarJets *myTask = AddTaskDStarJets();\r
+  */\r
   //-------------------------------------------------------------------\r
 \r
   //\r
@@ -252,16 +283,16 @@ AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test",Bool_t useParFiles
    // Set versions of used packages\r
    plugin->SetAPIVersion("V2.4");\r
    plugin->SetROOTVersion("v5-24-00");\r
-   plugin->SetAliROOTVersion("v4-18-01-AN");\r
+   plugin->SetAliROOTVersion("v4-18-07-AN");\r
    // Declare input data to be processed.\r
    // Method 1: Create automatically XML collections using alien 'find' command.\r
    // Define production directory LFN\r
-   //plugin->SetGridDataDir("/alice/cern.ch/user/r/rbala/newtrain/out_lhc08x/");\r
-   //plugin->SetGridDataDir("/alice/cern.ch/user/m/mgheata/analysisESD/output_train_default_28May2009_09h33/");\r
-   plugin->SetGridDataDir("/alice/sim/PDC_09/LHC09a6/AOD/");\r
+   plugin->SetGridDataDir("/alice/cern.ch/user/r/rbala/data_pass4_good_runCINT1B_8thfeb/");\r
+   //plugin->SetGridDataDir("/alice/sim/PDC_09/LHC09a4/AOD3/");\r
    // Set data search pattern\r
    plugin->SetDataPattern("AliAOD.root");\r
-   plugin->SetFriendChainName("AliAOD.VertexingHF.root");\r
+   plugin->SetFriendChainName("./AliAOD.VertexingHF.root");\r
+   //plugin->SetFriendChainName("deltas/AliAOD.VertexingHF.root");\r
    // ...then add run numbers to be considered\r
    //plugin->AddRunNumber(529007);\r
    //  or\r
@@ -273,15 +304,15 @@ AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test",Bool_t useParFiles
    //plugin->AddDataFile("/alice/cern.ch/user/r/rbala/newtrain/collection/collection_aod_lhc08w.xml");\r
    //   plugin->AddDataFile("/alice/data/2008/LHC08c/000057657/raw/Run57657.Merged.RAW.tag.root");\r
    // Define alien work directory where all files will be copied. Relative to alien $HOME.\r
-   plugin->SetGridWorkingDir("work");\r
+   plugin->SetGridWorkingDir("lhc09a5_231009");\r
    // Declare alien output directory. Relative to working directory.\r
    plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output\r
    // Declare the analysis source files names separated by blancs. To be compiled runtime\r
    // using ACLiC on the worker nodes.\r
-   //plugin->SetAnalysisSource("MyTask.cxx");\r
+   //plugin->SetAnalysisSource("AliDStarJets.cxx");\r
    // Declare all libraries (other than the default ones for the framework. These will be\r
    // loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.\r
-   plugin->SetAdditionalLibs("libPWG3vertexingHF.so libPWG3base.so libPWG3muon.so libPWG4PartCorrBase.so libPWG4PartCorrDep.so MakeAODInputChain.C"/* MyTask.cxx MyTask.h" */);\r
+   plugin->SetAdditionalLibs("libPWG3vertexingHF.so libPWG3base.so libPWG3muon.so");\r
    // use par files\r
    if(useParFiles) {\r
      plugin->EnablePackage("STEERBase.par");\r
@@ -293,8 +324,6 @@ AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test",Bool_t useParFiles
      plugin->EnablePackage("PWG3base.par");\r
      plugin->EnablePackage("PWG3vertexingHF.par");\r
      plugin->EnablePackage("PWG3muon.par");\r
-     plugin->EnablePackage("PWG4PartCorrBase.par");\r
-     plugin->EnablePackage("PWG4PartCorrDep.par");\r
    }\r
    plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG3 -I$ALICE_ROOT/PWG3/vertexingHF -g");\r
    // Declare the output file names separated by blancs.\r
@@ -323,7 +352,7 @@ AliAnalysisGrid* CreateAlienHandler(TString pluginmode="test",Bool_t useParFiles
    // Optionally modify split mode (default 'se')    \r
    plugin->SetSplitMode("se");\r
    // Optionally set the preferred SE    \r
-   plugin->SetPreferedSE("ALICE::Torino::DPM");\r
+   plugin->SetPreferedSE(mySE.Data());\r
    \r
    return plugin;\r
 }\r