AliAnalysisTask *AddTaskDielectronTaku(Float_t centrMin, Float_t centrMax,
TString fileName, TString suffixName="",
Bool_t hasMC_aod = kFALSE)
{
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskDielectron", "No analysis manager found.");
return NULL;
}
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskDielectron", "This task requires an input event handler");
return NULL;
}
//Do we have an MC handler?
Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0);
/*
TString configFile("./ConfigJpsi2eeDataTaku.C");
if (hasMC){
configFile="$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeEff.C";
}
*/
Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
//Add event filter
AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts(
Form("eventCuts_%s",suffixName.Data()),
"Vertex Track && |vtxZ|<10 && ncontrib>0"
);
eventCuts->SetCentralityRange(centrMin,centrMax);
eventCuts->SetRequireVertex();
eventCuts->SetMinVtxContributors(1);
eventCuts->SetVertexZ(-10.,10.);
//create task and add it to the manager
//cout<<"AliAnalysisTaskMultiDielectron : "<<configFile.Data()<<endl;
AliAnalysisTaskMultiDielectronNewTaku *task=new AliAnalysisTaskMultiDielectronNewTaku(
Form("MultiDie_%s",
suffixName.Data()),
eventCuts
);
//load dielectron configuration file
//cout<<"LoadMacro="<<configFile.Data()<<endl;
//gROOT->LoadMacro(configFile.Data());
//cout<<"LoadMacro End="<<configFile.Data()<<endl;
//add dielectron analysis with different cuts to the task
for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
AliDielectronTaku *jpsi=ConfigJpsi2ee(i,isAOD);
//jpsi->SetPreFilterAllSigns(kTRUE);
if (isAOD) jpsi->SetHasMC(hasMC_aod);
if (jpsi) task->AddDielectron(jpsi);
}
// add event filter
task->SetEventFilter(eventCuts);
// pileup rejection
task->SetRejectPileup();
//========= Add tender to the ANALYSIS manager and set default storage =====
AliTender *tender=new AliTender("AnalysisTender");
tender->SetCheckEventSelection(kFALSE);
//tender->SetDefaultCDBStorage("raw://");
tender->SetDefaultCDBStorage("alien://folder=/alice/data/2011/OCDB");
//========= Attach TOF supply ======
AliTOFTenderSupply *TOFtender = new AliTOFTenderSupply("TOFtender");
TOFtender->SetTOFres(80);
TOFtender->SetCorrectExpTimes(kFALSE);
//TOFtender->SetTheorExpTimes(kTRUE);
///tender->AddSupply(TOFtender);
//========= Attach TPC supply ======
AliTPCTenderSupply *tpcSupply=new AliTPCTenderSupply("TPCtender");
tpcSupply->SetDebugLevel(2);
//tpcSupply->SetMip(50.);
///tender->AddSupply(tpcSupply);
///mgr->AddTask(tender);
//======== Event plane =============
AliEPSelectionTask *eventplaneTask = new AliEPSelectionTask("EventplaneSelection");
eventplaneTask->SelectCollisionCandidates(AliVEvent::kMB);
eventplaneTask->SetTrackType("TPC");
eventplaneTask->SetUsePtWeight();
///mgr->AddTask(eventplaneTask);
///mgr->AddTask(task);
//----------------------
//create data containers
//----------------------
//cout<<"----- "<<mgr->GetCommonFileName()<<" + "<<fileName<<endl;
TString containerName = fileName+mgr->GetCommonFileName();
containerName += ":PWG3_dielectron";
//create output container
AliAnalysisDataContainer *cOutputHist1 =
mgr->CreateContainer(Form("jpsi_QA_%s",suffixName.Data()), TList::Class(), AliAnalysisManager::kOutputContainer,
containerName.Data());
AliAnalysisDataContainer *cOutputHist2 =
mgr->CreateContainer(Form("jpsi_CF_%s",suffixName.Data()), TList::Class(), AliAnalysisManager::kOutputContainer,
containerName.Data());
AliAnalysisDataContainer *cOutputHist3 =
mgr->CreateContainer(Form("jpsi_EventStat_%s",suffixName.Data()),
TH1D::Class(),
AliAnalysisManager::kOutputContainer,
containerName.Data());
AliAnalysisDataContainer *coutput1 =
mgr->CreateContainer(Form("single_tree_%s", suffixName.Data()),
//TList::Class(),
TTree::Class(),
AliAnalysisManager::kOutputContainer,
containerName.Data());
AliAnalysisDataContainer *coutput_ep1 = mgr->CreateContainer("EPStat",
TList::Class(), AliAnalysisManager::kOutputContainer,
"EventStat_temp.root");
AliAnalysisDataContainer *coutput_td1 =
mgr->CreateContainer("tender_event", AliESDEvent::Class(),
AliAnalysisManager::kExchangeContainer,"default_tender");
cout<<"containerName.Data = "<<containerName.Data()<<endl;
// mgr->ConnectInput(eventplaneTask, 0, mgr->GetCommonInputContainer());
//mgr->ConnectOutput(eventplaneTask,1,coutput_ep1);
// mgr->ConnectInput(tender, 0, mgr->GetCommonInputContainer());
// mgr->ConnectOutput(tender,1,coutput_td1);
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(task, 1, cOutputHist1);
mgr->ConnectOutput(task, 2, cOutputHist2);
mgr->ConnectOutput(task, 3, cOutputHist3);
mgr->ConnectOutput(task, 4, coutput1);
return task;
}
AddTaskDielectronTaku.C:1 AddTaskDielectronTaku.C:2 AddTaskDielectronTaku.C:3 AddTaskDielectronTaku.C:4 AddTaskDielectronTaku.C:5 AddTaskDielectronTaku.C:6 AddTaskDielectronTaku.C:7 AddTaskDielectronTaku.C:8 AddTaskDielectronTaku.C:9 AddTaskDielectronTaku.C:10 AddTaskDielectronTaku.C:11 AddTaskDielectronTaku.C:12 AddTaskDielectronTaku.C:13 AddTaskDielectronTaku.C:14 AddTaskDielectronTaku.C:15 AddTaskDielectronTaku.C:16 AddTaskDielectronTaku.C:17 AddTaskDielectronTaku.C:18 AddTaskDielectronTaku.C:19 AddTaskDielectronTaku.C:20 AddTaskDielectronTaku.C:21 AddTaskDielectronTaku.C:22 AddTaskDielectronTaku.C:23 AddTaskDielectronTaku.C:24 AddTaskDielectronTaku.C:25 AddTaskDielectronTaku.C:26 AddTaskDielectronTaku.C:27 AddTaskDielectronTaku.C:28 AddTaskDielectronTaku.C:29 AddTaskDielectronTaku.C:30 AddTaskDielectronTaku.C:31 AddTaskDielectronTaku.C:32 AddTaskDielectronTaku.C:33 AddTaskDielectronTaku.C:34 AddTaskDielectronTaku.C:35 AddTaskDielectronTaku.C:36 AddTaskDielectronTaku.C:37 AddTaskDielectronTaku.C:38 AddTaskDielectronTaku.C:39 AddTaskDielectronTaku.C:40 AddTaskDielectronTaku.C:41 AddTaskDielectronTaku.C:42 AddTaskDielectronTaku.C:43 AddTaskDielectronTaku.C:44 AddTaskDielectronTaku.C:45 AddTaskDielectronTaku.C:46 AddTaskDielectronTaku.C:47 AddTaskDielectronTaku.C:48 AddTaskDielectronTaku.C:49 AddTaskDielectronTaku.C:50 AddTaskDielectronTaku.C:51 AddTaskDielectronTaku.C:52 AddTaskDielectronTaku.C:53 AddTaskDielectronTaku.C:54 AddTaskDielectronTaku.C:55 AddTaskDielectronTaku.C:56 AddTaskDielectronTaku.C:57 AddTaskDielectronTaku.C:58 AddTaskDielectronTaku.C:59 AddTaskDielectronTaku.C:60 AddTaskDielectronTaku.C:61 AddTaskDielectronTaku.C:62 AddTaskDielectronTaku.C:63 AddTaskDielectronTaku.C:64 AddTaskDielectronTaku.C:65 AddTaskDielectronTaku.C:66 AddTaskDielectronTaku.C:67 AddTaskDielectronTaku.C:68 AddTaskDielectronTaku.C:69 AddTaskDielectronTaku.C:70 AddTaskDielectronTaku.C:71 AddTaskDielectronTaku.C:72 AddTaskDielectronTaku.C:73 AddTaskDielectronTaku.C:74 AddTaskDielectronTaku.C:75 AddTaskDielectronTaku.C:76 AddTaskDielectronTaku.C:77 AddTaskDielectronTaku.C:78 AddTaskDielectronTaku.C:79 AddTaskDielectronTaku.C:80 AddTaskDielectronTaku.C:81 AddTaskDielectronTaku.C:82 AddTaskDielectronTaku.C:83 AddTaskDielectronTaku.C:84 AddTaskDielectronTaku.C:85 AddTaskDielectronTaku.C:86 AddTaskDielectronTaku.C:87 AddTaskDielectronTaku.C:88 AddTaskDielectronTaku.C:89 AddTaskDielectronTaku.C:90 AddTaskDielectronTaku.C:91 AddTaskDielectronTaku.C:92 AddTaskDielectronTaku.C:93 AddTaskDielectronTaku.C:94 AddTaskDielectronTaku.C:95 AddTaskDielectronTaku.C:96 AddTaskDielectronTaku.C:97 AddTaskDielectronTaku.C:98 AddTaskDielectronTaku.C:99 AddTaskDielectronTaku.C:100 AddTaskDielectronTaku.C:101 AddTaskDielectronTaku.C:102 AddTaskDielectronTaku.C:103 AddTaskDielectronTaku.C:104 AddTaskDielectronTaku.C:105 AddTaskDielectronTaku.C:106 AddTaskDielectronTaku.C:107 AddTaskDielectronTaku.C:108 AddTaskDielectronTaku.C:109 AddTaskDielectronTaku.C:110 AddTaskDielectronTaku.C:111 AddTaskDielectronTaku.C:112 AddTaskDielectronTaku.C:113 AddTaskDielectronTaku.C:114 AddTaskDielectronTaku.C:115 AddTaskDielectronTaku.C:116 AddTaskDielectronTaku.C:117 AddTaskDielectronTaku.C:118 AddTaskDielectronTaku.C:119 AddTaskDielectronTaku.C:120 AddTaskDielectronTaku.C:121 AddTaskDielectronTaku.C:122 AddTaskDielectronTaku.C:123 AddTaskDielectronTaku.C:124 AddTaskDielectronTaku.C:125 AddTaskDielectronTaku.C:126 AddTaskDielectronTaku.C:127 AddTaskDielectronTaku.C:128 AddTaskDielectronTaku.C:129 AddTaskDielectronTaku.C:130 AddTaskDielectronTaku.C:131 AddTaskDielectronTaku.C:132 AddTaskDielectronTaku.C:133 AddTaskDielectronTaku.C:134 AddTaskDielectronTaku.C:135 AddTaskDielectronTaku.C:136 AddTaskDielectronTaku.C:137 AddTaskDielectronTaku.C:138 AddTaskDielectronTaku.C:139 AddTaskDielectronTaku.C:140 AddTaskDielectronTaku.C:141 AddTaskDielectronTaku.C:142 AddTaskDielectronTaku.C:143 AddTaskDielectronTaku.C:144 AddTaskDielectronTaku.C:145 AddTaskDielectronTaku.C:146 AddTaskDielectronTaku.C:147 AddTaskDielectronTaku.C:148 AddTaskDielectronTaku.C:149 AddTaskDielectronTaku.C:150 AddTaskDielectronTaku.C:151 AddTaskDielectronTaku.C:152 AddTaskDielectronTaku.C:153 AddTaskDielectronTaku.C:154 AddTaskDielectronTaku.C:155 AddTaskDielectronTaku.C:156 AddTaskDielectronTaku.C:157 AddTaskDielectronTaku.C:158 AddTaskDielectronTaku.C:159 AddTaskDielectronTaku.C:160 AddTaskDielectronTaku.C:161 AddTaskDielectronTaku.C:162 AddTaskDielectronTaku.C:163 AddTaskDielectronTaku.C:164 AddTaskDielectronTaku.C:165 AddTaskDielectronTaku.C:166