class AliAnalysisGrid;\r
+TString mySE="ALICE::CNAF::SE";\r
\r
void RunAnalysisAODVertexingHF()\r
{\r
// "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 analysisMode = "grid"; // "local", "grid", or "proof" (not yet)\r
- TString inputMode = "list"; // "list", "xml", or "dataset" (not yet)\r
- Long64_t nentries=1234567890,firstentry=0;\r
+ TString trainName = "D2H";\r
+ TString analysisMode = "grid"; // "local", "grid", or "proof"\r
+ TString inputMode = "list"; // "list", "xml", or "dataset"\r
+ Long64_t nentries=1000,firstentry=0;\r
Bool_t useParFiles=kFALSE;\r
Bool_t useAlienPlugin=kTRUE;\r
- TString pluginmode="full";\r
+ TString pluginmode="test";\r
+ Bool_t saveProofToAlien=kFALSE;\r
+ TString proofOutdir = "";\r
TString loadMacroPath="$ALICE_ROOT/PWG3/vertexingHF/";\r
+ //TString loadMacroPath="./"; // this is normally needed for CAF\r
//\r
\r
if(analysisMode=="grid") {\r
TGrid::Connect("alien://");\r
} else if(analysisMode=="proof") {\r
// Connect to the PROOF cluster\r
- printf("PROOF mode not yet functional..\n");\r
- return;\r
+ if(inputMode!="dataset") {printf("Input mode must be dataset, for proof analysis\n"); return;}\r
+ 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
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
+ TString parFile;\r
if(!useParFiles) {\r
- gProof->UploadPackage("AF-v4-16");\r
- gProof->EnablePackage("AF-v4-16");\r
+ gProof->UploadPackage("AF-v4-17");\r
+ gProof->EnablePackage("AF-v4-17");\r
+ // --- Enable the PWG3vertexingHF Package\r
+ parFile="PWG3vertexingHF.par"; parFile.Prepend(parDir.Data());\r
+ gProof->UploadPackage(parFile.Data());\r
+ gProof->EnablePackage("PWG3vertexingHF");\r
} else {\r
- TString parDir="/afs/cern.ch/user/d/dainesea/code/";\r
- TString parFile;\r
// --- Enable the STEERBase Package\r
parFile="STEERBase.par"; parFile.Prepend(parDir.Data());\r
gProof->UploadPackage(parFile.Data());\r
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
\r
// Create Alien plugin, if requested\r
if(useAlienPlugin) { \r
+ if(analysisMode!="grid") {printf("Analysis mode must be grid, to use alien plugin\n"); return;}\r
AliAnalysisGrid *alienHandler = CreateAlienHandler(pluginmode,useParFiles); \r
if(!alienHandler) return;\r
}\r
\r
\r
//-------------------------------------------------------------------\r
- // Prepare input chain\r
+ // Prepare input\r
TChain *chainAOD = 0;\r
TString dataset; // for proof\r
\r
if(!useAlienPlugin) {\r
TString makeAODInputChain="MakeAODInputChain.C"; makeAODInputChain.Prepend(loadMacroPath.Data());\r
- gROOT->LoadMacro(makeAODInputChain.Data());\r
if(inputMode=="list") {\r
// Local files\r
+ 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
chainAOD = MakeAODInputChain("collection_aod.xml","collection_aodHF.xml");\r
} else if(inputMode=="dataset") {\r
// CAF dataset\r
- //gProof->ShowDataSet();\r
- dataset="/ITS/dainesea/AODVertexingHF_LHC08x_180100_small";\r
- chainAOD = MakeAODInputChainCAF(dataset.Data());\r
+ //gProof->ShowDataSets();\r
+ dataset="/ITS/dainesea/AODVertexingHF_LHC08x_180100";\r
}\r
}\r
\r
// 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" ) {\r
+ inputHandler->AddFriend("AliAOD.VertexingHF.root");\r
+ if(saveProofToAlien) mgr->SetSpecialOutputLocation(proofOutdir);\r
+ }\r
mgr->SetInputEventHandler(inputHandler);\r
//-------------------------------------------------------------------\r
\r
// 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
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
\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,kTRUE,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
+ /*\r
+ if(analysisMode.Data()=="proof") {\r
+ gProof->LoadMacro("MyTask.cxx++g");\r
+ } else {\r
+ gROOT->LoadMacro("MyTask.cxx++g");\r
+ }\r
+ gROOT->LoadMacro("AddMyTask.C");\r
+ MyTask *myTask = AddMyTask();\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
if(!mgr->InitAnalysis()) return;\r
mgr->PrintStatus();\r
if(analysisMode=="grid" && !useAlienPlugin) analysisMode="local";\r
- mgr->StartAnalysis(analysisMode.Data(),chainAOD,nentries,firstentry);\r
+ if(analysisMode!="proof") {\r
+ mgr->StartAnalysis(analysisMode.Data(),chainAOD,nentries,firstentry);\r
+ } else {\r
+ // proof\r
+ mgr->StartAnalysis(analysisMode.Data(),dataset.Data(),nentries,firstentry);\r
+ }\r
\r
return;\r
}\r
plugin->SetNtestFiles(1);\r
// Set versions of used packages\r
plugin->SetAPIVersion("V2.4");\r
- plugin->SetROOTVersion("v5-23-02");\r
- plugin->SetAliROOTVersion("v4-17-00");\r
+ plugin->SetROOTVersion("v5-24-00");\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/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
+ //plugin->AddRunNumber(529007);\r
// or\r
//plugin->SetRunRange(529000,529007);\r
// Method 2: Declare existing data files (raw collections, xml collections, root file)\r
//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("$ALICE_ROOT/PWG3/vertexingHF/AliAnalysisTaskSECompareHF.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");\r
+ plugin->SetAdditionalLibs("libPWG3vertexingHF.so libPWG3base.so libPWG3muon.so");\r
// use par files\r
if(useParFiles) {\r
plugin->EnablePackage("STEERBase.par");\r
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
// (can be like: file.root or file.root@ALICE::Niham::File)\r
- plugin->SetOutputFiles("CmpHF.root");\r
+ plugin->SetDefaultOutputs(kTRUE);\r
+ //plugin->SetOutputFiles("output.root CmpHF.root CmpHFnt.root D0InvMass.root InvMassDplus.root InvMassDplus_nt1.root InvMassDplus_nt2.root");\r
// Optionally define the files to be archived.\r
// plugin->SetOutputArchive("log_archive.zip:stdout,stderr@ALICE::NIHAM::File root_archive.zip:*.root@ALICE::NIHAM::File");\r
plugin->SetOutputArchive("log_archive.zip:stdout,stderr");\r
// Optionally modify split mode (default 'se') \r
plugin->SetSplitMode("se");\r
// Optionally set the preferred SE \r
- plugin->SetPreferedSE("ALICE::Legnaro::SE");\r
+ plugin->SetPreferedSE(mySE.Data());\r
\r
return plugin;\r
}\r