//-*- Mode: C++ -*-
// $Id$
#ifndef __CINT__
//#include "AliESDtrackCuts.h"
//#include "AliAnalysisCuts.h"
//#include "AliFlowTrackSimple.h" // added as hint for hidden library dependency to libPWGflowBase
//#include "AliFlowCandidateTrack.h" // added as hint for hidden library dependency to libPWGflowTasks
//#include "AliCFContainer.h" // added as hint for hidden library dependency to libCORRFW
//#include "AliAODRecoDecayHF2Prong.h" // added as hint for hidden library dependency to libPWGHFvertexingHF
#include "AliAnalysisTaskDxHFECorrelation.h"
#include "AliDxHFECorrelation.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"
#include "AliHFEcuts.h"
#include "AliLog.h"
#include "TObject.h"
#include "TClass.h"
#include "TDirectory.h"
#include "TROOT.h"
#include "AliRDHFCutsD0toKpi.h"
#include "AliHFAssociatedTrackCuts.h"
using namespace std;
#endif
/// @file AddTaskDxHFECorrelation.C
/// @author Matthias.Richter@ift.uib.no, Hege.Erdal@ift.uib.no
/// @date 2013-02-12
/// @brief Add two instances of D0-HFE correlation task to the manager, SE and ME
///
int AddTaskDxHFECorrelationME(TString configuration="")
{
//First check to see if user wants to see help
if (configuration.BeginsWith("help") ||
configuration.BeginsWith("--help") ||
configuration.BeginsWith("-h") ||
configuration.BeginsWith("options") ) {
cout <<"\n\n============================================" << endl;
cout << "Keywords for AddTaskDxHFECorrelationME.C:\n"
<< "file= - Filename to store output in\n"
<< "name= - Name of analysis, will correspond to directory inside the file \n"
<< "cutname= - Filename where information on event pool for event-mixing is stored (if use external file)\n"
<< "runD0MassReference - If you also want to include D2H task for D0selection (for comparison purposes)\n"
<< "mc - Run on MC\n"
<< "usekine - To run on kinematical level \n"
<< "PbPb - To run on PbPb \n"
<< "trigger=D/D0/electron - Which particle to trigger on \n"
<< "\nD0 settings: \n"
<< "fillD0scheme=both/D0/D0bar - Which fillsheme to use for D0\n"
<< "\nelectron settings: \n"
<< "useinvmasscut - If you want to use invariant mass cut (default is 100MeV/c)\n"
<< "invmasscut= - If you want to specify a different invariant mass cut \n"
<< "extraname= - extraname for directory and list if you run several tasks at once\n"
<< "tpcclusters= - How many TPC clusters to use on single track cuts for electrons (default=120)\n"
<< "itsclusters= - How many itsclusters to be used in single track cuts for electrons (default=4) \n"
<< "itsreq= - (kFirst,kAny,kNone) Which ITSpixel requirement you want to impose\n"
<< "elmcreco= - (aftertrackcuts/aftertofpid/afterfullpid) Where you want to stop in track selection to look for electrons for mc \n\n";
return;
}
TString taskOptions="";
Bool_t nameset=kFALSE;
Bool_t triggerset=kFALSE;
Int_t system=0;
// look for configuration arguments if nothing specified
// in the function call
if (configuration.IsNull() && gDirectory) {
const char* confObjectName="run_single_task_configuration";
TObject* confObject=gDirectory->FindObject(confObjectName);
if (confObject) {
configuration=confObject->GetTitle();
}
}
// argument scan
// TODO: currently the name and trigger type are fixed, this requirement
// can be loosened later
TString delimiter(" ");
TStringToken configurationToken(configuration, delimiter);
while (configurationToken.NextToken()) {
TString argument=configurationToken;
if (argument.BeginsWith("name=")) {
//To remove various instances of name, and force directory to be DxHFE
if(!nameset){
taskOptions+=" "+argument;
nameset=kTRUE;
}
}
//At the moment: Make sure trigger is D0
else if (argument.BeginsWith("trigger=")) {
if(!triggerset){
taskOptions+=" trigger=D0";
triggerset=kTRUE;
}
}
else if(argument.BeginsWith("PbPb") ||
argument.BeginsWith("system=1") ||
argument.BeginsWith("Pb-Pb")){
system=1;
taskOptions+=" PbPb";
}
else {
// simply pass argument
taskOptions+=" "+argument;
}
}
TString path;
path="AddTaskDxHFECorrelation.C";
if (gSystem->AccessPathName(path)!=0) {
// first try local macro, than AliRoot default path
path="$ALICE_ROOT/PWGHF/correlationHF/macros/AddTaskDxHFECorrelation.C";
}
gROOT->LoadMacro(path);
if (!nameset) taskOptions+=" name=DxHFE";
if (!taskOptions) taskOptions+=" trigger=D0";
if(!AddTaskDxHFECorrelation(taskOptions)) {
printf("Problem setting up the single event correlation task, returning\n");
return 0;
}
taskOptions+=" event-mixing";
if(!AddTaskDxHFECorrelation(taskOptions)) {
printf("Problem setting up the mixed event correlation task, returning\n");
return 0;
}
return 1;
}
AddTaskDxHFECorrelationME.C:1 AddTaskDxHFECorrelationME.C:2 AddTaskDxHFECorrelationME.C:3 AddTaskDxHFECorrelationME.C:4 AddTaskDxHFECorrelationME.C:5 AddTaskDxHFECorrelationME.C:6 AddTaskDxHFECorrelationME.C:7 AddTaskDxHFECorrelationME.C:8 AddTaskDxHFECorrelationME.C:9 AddTaskDxHFECorrelationME.C:10 AddTaskDxHFECorrelationME.C:11 AddTaskDxHFECorrelationME.C:12 AddTaskDxHFECorrelationME.C:13 AddTaskDxHFECorrelationME.C:14 AddTaskDxHFECorrelationME.C:15 AddTaskDxHFECorrelationME.C:16 AddTaskDxHFECorrelationME.C:17 AddTaskDxHFECorrelationME.C:18 AddTaskDxHFECorrelationME.C:19 AddTaskDxHFECorrelationME.C:20 AddTaskDxHFECorrelationME.C:21 AddTaskDxHFECorrelationME.C:22 AddTaskDxHFECorrelationME.C:23 AddTaskDxHFECorrelationME.C:24 AddTaskDxHFECorrelationME.C:25 AddTaskDxHFECorrelationME.C:26 AddTaskDxHFECorrelationME.C:27 AddTaskDxHFECorrelationME.C:28 AddTaskDxHFECorrelationME.C:29 AddTaskDxHFECorrelationME.C:30 AddTaskDxHFECorrelationME.C:31 AddTaskDxHFECorrelationME.C:32 AddTaskDxHFECorrelationME.C:33 AddTaskDxHFECorrelationME.C:34 AddTaskDxHFECorrelationME.C:35 AddTaskDxHFECorrelationME.C:36 AddTaskDxHFECorrelationME.C:37 AddTaskDxHFECorrelationME.C:38 AddTaskDxHFECorrelationME.C:39 AddTaskDxHFECorrelationME.C:40 AddTaskDxHFECorrelationME.C:41 AddTaskDxHFECorrelationME.C:42 AddTaskDxHFECorrelationME.C:43 AddTaskDxHFECorrelationME.C:44 AddTaskDxHFECorrelationME.C:45 AddTaskDxHFECorrelationME.C:46 AddTaskDxHFECorrelationME.C:47 AddTaskDxHFECorrelationME.C:48 AddTaskDxHFECorrelationME.C:49 AddTaskDxHFECorrelationME.C:50 AddTaskDxHFECorrelationME.C:51 AddTaskDxHFECorrelationME.C:52 AddTaskDxHFECorrelationME.C:53 AddTaskDxHFECorrelationME.C:54 AddTaskDxHFECorrelationME.C:55 AddTaskDxHFECorrelationME.C:56 AddTaskDxHFECorrelationME.C:57 AddTaskDxHFECorrelationME.C:58 AddTaskDxHFECorrelationME.C:59 AddTaskDxHFECorrelationME.C:60 AddTaskDxHFECorrelationME.C:61 AddTaskDxHFECorrelationME.C:62 AddTaskDxHFECorrelationME.C:63 AddTaskDxHFECorrelationME.C:64 AddTaskDxHFECorrelationME.C:65 AddTaskDxHFECorrelationME.C:66 AddTaskDxHFECorrelationME.C:67 AddTaskDxHFECorrelationME.C:68 AddTaskDxHFECorrelationME.C:69 AddTaskDxHFECorrelationME.C:70 AddTaskDxHFECorrelationME.C:71 AddTaskDxHFECorrelationME.C:72 AddTaskDxHFECorrelationME.C:73 AddTaskDxHFECorrelationME.C:74 AddTaskDxHFECorrelationME.C:75 AddTaskDxHFECorrelationME.C:76 AddTaskDxHFECorrelationME.C:77 AddTaskDxHFECorrelationME.C:78 AddTaskDxHFECorrelationME.C:79 AddTaskDxHFECorrelationME.C:80 AddTaskDxHFECorrelationME.C:81 AddTaskDxHFECorrelationME.C:82 AddTaskDxHFECorrelationME.C:83 AddTaskDxHFECorrelationME.C:84 AddTaskDxHFECorrelationME.C:85 AddTaskDxHFECorrelationME.C:86 AddTaskDxHFECorrelationME.C:87 AddTaskDxHFECorrelationME.C:88 AddTaskDxHFECorrelationME.C:89 AddTaskDxHFECorrelationME.C:90 AddTaskDxHFECorrelationME.C:91 AddTaskDxHFECorrelationME.C:92 AddTaskDxHFECorrelationME.C:93 AddTaskDxHFECorrelationME.C:94 AddTaskDxHFECorrelationME.C:95 AddTaskDxHFECorrelationME.C:96 AddTaskDxHFECorrelationME.C:97 AddTaskDxHFECorrelationME.C:98 AddTaskDxHFECorrelationME.C:99 AddTaskDxHFECorrelationME.C:100 AddTaskDxHFECorrelationME.C:101 AddTaskDxHFECorrelationME.C:102 AddTaskDxHFECorrelationME.C:103 AddTaskDxHFECorrelationME.C:104 AddTaskDxHFECorrelationME.C:105 AddTaskDxHFECorrelationME.C:106 AddTaskDxHFECorrelationME.C:107 AddTaskDxHFECorrelationME.C:108 AddTaskDxHFECorrelationME.C:109 AddTaskDxHFECorrelationME.C:110 AddTaskDxHFECorrelationME.C:111 AddTaskDxHFECorrelationME.C:112 AddTaskDxHFECorrelationME.C:113 AddTaskDxHFECorrelationME.C:114 AddTaskDxHFECorrelationME.C:115 AddTaskDxHFECorrelationME.C:116 AddTaskDxHFECorrelationME.C:117 AddTaskDxHFECorrelationME.C:118 AddTaskDxHFECorrelationME.C:119 AddTaskDxHFECorrelationME.C:120 AddTaskDxHFECorrelationME.C:121 AddTaskDxHFECorrelationME.C:122 AddTaskDxHFECorrelationME.C:123 AddTaskDxHFECorrelationME.C:124 AddTaskDxHFECorrelationME.C:125 AddTaskDxHFECorrelationME.C:126 AddTaskDxHFECorrelationME.C:127 AddTaskDxHFECorrelationME.C:128 AddTaskDxHFECorrelationME.C:129 AddTaskDxHFECorrelationME.C:130 AddTaskDxHFECorrelationME.C:131 AddTaskDxHFECorrelationME.C:132 AddTaskDxHFECorrelationME.C:133 AddTaskDxHFECorrelationME.C:134 AddTaskDxHFECorrelationME.C:135