X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG4%2Fmacros%2FAnalysisTrainPWG4Jets.C;h=b36a96864e238042e0dc7682f0156184d42b94c7;hb=3456f527243764882c765da62e3e36d81a0c232d;hp=b281b58f7c4c25a16f0f28fb804e4104f6f20ca9;hpb=c265853537a5d54fc91b39dfb9bc6f29a36f0a46;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG4/macros/AnalysisTrainPWG4Jets.C b/PWG4/macros/AnalysisTrainPWG4Jets.C index b281b58f7c4..b36a96864e2 100644 --- a/PWG4/macros/AnalysisTrainPWG4Jets.C +++ b/PWG4/macros/AnalysisTrainPWG4Jets.C @@ -39,6 +39,7 @@ Int_t iAODanalysis = 1; // Analysis on input AOD's Int_t iAODhandler = 1; // Analysis produces an AOD or dAOD's Int_t iESDfilter = 0; // ESD to AOD filter (barrel + muon tracks) Int_t iPhysicsSelection = 1; // ESD to AOD filter (barrel + muon tracks) +Bool_t useTender = kFALSE; // use tender wagon Bool_t kUseKinefilter = kFALSE; // use Kinematics filter Bool_t kUseMuonfilter = kFALSE; // use Kinematics filter TString kCommonOutputFileName = "PWG4_JetTasksOutput.root"; @@ -135,7 +136,7 @@ Int_t kProofOffset = 0; //== grid plugin setup variables Bool_t kPluginUse = kTRUE; // do not change Bool_t kPluginUseProductionMode = kFALSE; // use the plugin in production mode -TString kPluginRootVersion = "v5-26-00b-6"; // *CHANGE ME IF MORE RECENT IN GRID* +TString kPluginRootVersion = "v5-27-06"; // *CHANGE ME IF MORE RECENT IN GRID* TString kPluginAliRootVersion = "v4-19-15-AN"; // *CHANGE ME IF MORE RECENT IN GRID* Bool_t kPluginMergeViaJDL = kTRUE; // merge via JDL Bool_t kPluginFastReadOption = kFALSE; // use xrootd tweaks @@ -170,6 +171,7 @@ TString kLocalXMLDataset = ""; // Change local xml dataset for local inter TString kLocalDataList = "local_deltaaod.txt"; // Change local xml dataset for local interactive analysis // == local process variables +TString kPluginMode; // Temporaries. @@ -188,13 +190,16 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", // Main analysis train macro. If a configuration file is provided, all parameters // are taken from there but may be altered by CheckModuleFlags. - if (strlen(config_file) && !LoadConfig(config_file)) return; + // these flag may be needed by the config file + kPluginMode = plugin_mode; + + if (strlen(config_file) && !LoadConfig(config_file)) return; if(iOffset)kProofOffset = iOffset; TString smode(analysis_mode); smode.ToUpper(); if (kSaveTrain)WriteConfig(); - // Check compatibility of selected modules + // Check compatibility of selected modules CheckModuleFlags(smode); // gROOT->ProcessLine(".trace"); @@ -205,6 +210,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", if (iAODanalysis) printf("= AOD analysis =\n"); else printf("= ESD analysis =\n"); if (iPhysicsSelection) printf("= Physics selection =\n"); + if (useTender) printf("= Using tender =\n"); if (iESDfilter) printf("= ESD filter =\n"); if (iJETAN) printf("= Jet analysis =\n"); printf("==================================================================\n"); @@ -346,6 +352,19 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", // For now connection to top input container and common AOD output container // is done in this macro, but in future these containers will be connected // from each task configuration macro. + + // + // Tender and supplies. Needs to be called for every event. + // + if (useTender) { + gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/TenderSupplies/AddTaskTender.C"); + AliAnalysisTaskSE *tender = AddTaskTender(kTRUE); + // tender->SelectCollisionCandidates(); + tender->SetDebugLevel(2); + } + + + if(iPhysicsSelection && !iAODanalysis){ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kIsMC,kTRUE,kTRUE); // last flag also adds information on @@ -399,7 +418,11 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskJetCluster.C"); AliAnalysisTaskJetCluster *taskCl = 0; if(iPWG4Cluster&1){ - taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"KT"); + taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"KT",0.4,0,1); // this one is for the background jets + taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"KT",0.5,0,1); // this one is for the background jets + taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"KT",0.6,0,1); // this one is for the background jets + taskCl = AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"KT",0.7,0,1); // this one is for the background jets + if (!taskCl) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskCluster cannot run for this train conditions - EXCLUDED"); } if(iPWG4Cluster&2){ @@ -417,7 +440,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", } else selection = 1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<7|1<<8|1<<9; AddTaskJetClusterDelta(kHighPtFilterMask,kUseAODMC,iPhysicsSelection,"ANTIKT",selection); - AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"ANTIKT",0.4,1); + // AddTaskJetCluster("AOD","",kHighPtFilterMask,iPhysicsSelection,"ANTIKT",0.4,0,1); } } @@ -458,7 +481,8 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", taskFrag = AddTaskFragmentationFunction(1<<1,kHighPtFilterMask); taskFrag = AddTaskFragmentationFunction(1<<2,kHighPtFilterMask); taskFrag = AddTaskFragmentationFunction(1<<3,kHighPtFilterMask); - taskFrag = AddTaskFragmentationFunction(1<<11); // w/o acceptance cuts + taskFrag = AddTaskFragmentationFunction(1<<5,kHighPtFilterMask); + taskFrag = AddTaskFragmentationFunction(1<<11); // w/o acceptance cuts taskFrag = AddTaskFragmentationFunction(1<<12); // with acceptance cuts // anti-kt taskFrag = AddTaskFragmentationFunction(1<<21); // w/o acceptance cuts @@ -488,8 +512,8 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", taskjetServ = AddTaskJetServices(); if (!taskjetServ) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskJetServices cannot run for this train conditions - EXCLUDED"); if(kGridRunRange[0]>0)taskjetServ->SetRunRange(kGridRunRange[0],kGridRunRange[1]); - else taskjetServ->SetRunRange(100000,150000); - if(!kIsMC) taskjetServ->SetRealData(kTRUE); + else taskjetServ->SetRunRange(110000,160000); + taskjetServ->SetMCData(kIsMC); taskjetServ->SetUsePhysicsSelection((Bool_t)iPhysicsSelection); taskjetServ->SetDebugLevel(0); } @@ -578,7 +602,7 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskLeadingTrackUE.C"); AliAnalysisTaskLeadingTrackUE *taskLeadingUE = AddTaskLeadingTrackUE(kUseMC); if (!taskLeadingUE) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTasLeadingTrackkUE cannot run for this train conditions - EXCLUDED"); - taskLeadingUE->SetFilterBit(64); + // taskLeadingUE->SetFilterBit(64); } @@ -596,7 +620,11 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", } if(iPWG4PtQAMC){ gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/AddTaskPWG4HighPtQAMC.C"); - AliPWG4HighPtQAMC *taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data()); + AliPWG4HighPtQAMC *taskQAMC = 0; + if(kUseMC){ + if(iPWG4PtQAMC&1)taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data(),0); + if(iPWG4PtQAMC&1)taskQAMC = AddTaskPWG4HighPtQAMC(kGridDataSet.Data(),1); + } if (!taskQAMC) ::Warning("AnalysisTrainPWG4Jets", "AliAnalysisTaskQAMC cannot run for this train conditions - EXCLUDED"); } @@ -677,9 +705,10 @@ void AnalysisTrainPWG4Jets(const char *analysis_mode="local", // TString gcArguments = "-run-on-train -run-jet -run-chic -run-neutralmeson -run-cf"; // TString gcArguments = "-run-on-train -run-jet -run-neutralmeson -run-cf -use-own-xyz"; // TString gcArguments = "-run-on-train -run-jet -run-neutralmeson -run-cf -use-own-xyz"; - TString gcArguments = "-run-on-train -run-jet -run-omega-meson -run-neutralmeson -no-aod"; - TString kGCAnalysisCutSelectionId="900356200010031"; - gcArguments.Append(Form(" -set-cut-selection %s ",kGCAnalysisCutSelectionId.Data())); + TString gcArguments = "-run-on-train -run-jet -run-omega-meson -use-own-xyz -run-neutralmeson -no-aod"; + // TString kGCAnalysisCutSelectionId="9003562000100310"; + // TString kGCAnalysisCutSelectionId="9003562000100312"; + // gcArguments.Append(Form(" -set-cut-selection %s ",kGCAnalysisCutSelectionId.Data())); if(!kIsMC)gcArguments += " -mc-off"; AliAnalysisTaskGammaConversion * taskGammaConversion = AddTaskGammaConversion(gcArguments,mgr->GetCommonInputContainer()); gSystem->ChangeDirectory(cdir); @@ -1098,9 +1127,15 @@ Bool_t LoadAnalysisLibraries(const char *mode) { // Load common analysis libraries. Bool_t success = kTRUE; + if (useTender) { + if (!LoadLibrary("TENDER", mode, kTRUE) || + !LoadLibrary("TENDERSupplies", mode, kTRUE)) return kFALSE; + } if (iESDfilter) { + /* if (!LoadLibrary("PWG3base", mode, kTRUE) || !LoadLibrary("PWG3muon", mode, kTRUE)) return kFALSE; + */ } // JETAN if (iJETANLib) { @@ -1436,7 +1471,7 @@ AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode) // Check if user has a valid token, otherwise make one. This has limitations. // One can always follow the standard procedure of calling alien-token-init then // source /tmp/gclient_env_$UID in the current shell. - if (!AliAnalysisGrid::CreateToken()) return NULL; +// if (!AliAnalysisGrid::CreateToken()) return NULL; AliAnalysisAlien *plugin = new AliAnalysisAlien(); // Set the run mode (can be "full", "test", "offline", "submit" or "terminate") plugin->SetRunMode(plugin_mode); @@ -1456,7 +1491,8 @@ AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode) plugin->SetGridDataDir(kGridDatadir.Data()); // Set data search pattern if (iAODanalysis) plugin->SetDataPattern(" *AliAOD.root"); - else plugin->SetDataPattern(Form(" %s/*/*ESD.tag.root",kGridPassPattern.Data())); + // else plugin->SetDataPattern(Form(" %s/*/*ESD.tag.root",kGridPassPattern.Data())); + else plugin->SetDataPattern(Form(" %s/*/*AliESDs.root",kGridPassPattern.Data())); // ...then add run numbers to be considered // plugin->SetRunRange(kGridRunRange[0], kGridRunRange[1]); for (Int_t i=kGridRunRange[0]; i<=kGridRunRange[1]; i++) { @@ -1674,9 +1710,9 @@ AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode) // Optionally set maximum number of input files/subjob (default 100, put 0 to ignore) plugin->SetSplitMaxInputFileNumber(kGridFilesPerJob); // Optionally set number of failed jobs that will trigger killing waiting sub-jobs. - plugin->SetMaxInitFailed(5); + // plugin->SetMaxInitFailed(5); // Optionally resubmit threshold. - // plugin->SetMasterResubmitThreshold(90); + // plugin->SetMasterResubmitThreshold(90); // Optionally set time to live (default 30000 sec) plugin->SetTTL(50400); // 14h... // Optionally set input format (default xml-single)