AliAnalysisTask *AddTaskJPSIFilter_pp(TString cfg="ConfigJpsi_nano_pp.C",
Bool_t gridconf=kFALSE,
ULong64_t triggers=AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kMB,
TString period="",
Bool_t storeLS = kFALSE,
Bool_t hasMC_aod = kFALSE){
//get the current analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
Error("AddTaskJPSIFilter", "No analysis manager found.");
return 0;
}
//check for output aod handler
if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
Warning("AddTaskJPSIFilter","No AOD output handler available. Not adding the task!");
return 0;
}
//Do we have an MC handler?
Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)||hasMC_aod;
//Do we run on AOD?
Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
//Allow merging of the filtered aods on grid trains
if(mgr->GetGridHandler()) {
printf(" SET MERGE FILTERED AODs \n");
//mgr->GetGridHandler()->SetMergeAOD(kTRUE);
}
//set config file name
TString configFile("");
printf("%s \n",gSystem->pwd());
TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
if(cfg.IsNull()) cfg="ConfigJpsi_jb_PbPb.C";
// the different paths
TString alienPath("alien:///alice/cern.ch/user/j/jbook/PWGDQ/dielectron/macrosJPSI");
TString alirootPath("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/");
////////// >>>>>>>>>> alien config
if(gridconf && !gSystem->Exec(Form("alien_cp %s/%s .",alienPath.Data(),cfg.Data()))) {
gSystem->Exec(Form("ls -l %s",gSystem->pwd()));
configFile=gSystem->pwd();
}
else {
printf("ERROR: couldn't copy file %s/%s from grid \n", alienPath.Data(),cfg.Data() );
return;
}
///////// >>>>>>>>> aliroot config
if(!gridconf) configFile=alirootPath.Data();
///////// add config to path
configFile+="/";
configFile+=cfg.Data();
//gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macros/ConfigBJpsi_ff_PbPbFilter.C");
// gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigBJpsi_ff_PbPbFilter.C");
// gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_nano_PbPb.C");
//load dielectron configuration file (only once)
// TString checkconfig="ConfigJpsi_jb_PbPb";
if (!gROOT->GetListOfGlobalFunctions()->FindObject(cfg.Data()))
gROOT->LoadMacro(configFile.Data());
AliDielectron *jpsi=ConfigJpsi_nano_pp(0,hasMC,period);
if(isAOD) {
//add options to AliAODHandler to duplicate input event
AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler();
aodHandler->SetCreateNonStandardAOD();
aodHandler->SetNeedsHeaderReplication();
if(!period.Contains("LHC10h")) aodHandler->SetNeedsTOFHeaderReplication();
aodHandler->SetNeedsVZEROReplication();
/*aodHandler->SetNeedsTracksBranchReplication();
aodHandler->SetNeedsCaloClustersBranchReplication();
aodHandler->SetNeedsVerticesBranchReplication();
aodHandler->SetNeedsCascadesBranchReplication();
aodHandler->SetNeedsTrackletsBranchReplication();
aodHandler->SetNeedsPMDClustersBranchReplication();
aodHandler->SetNeedsJetsBranchReplication();
aodHandler->SetNeedsFMDClustersBranchReplication();
//aodHandler->SetNeedsMCParticlesBranchReplication();
aodHandler->SetNeedsDimuonsBranchReplication();*/
// if(hasMC) aodHandler->SetNeedsV0sBranchReplication();
if(hasMC) aodHandler->SetNeedsMCParticlesBranchReplication();
jpsi->SetHasMC(hasMC);
}
//Create task and add it to the analysis manager
AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter");
task->SetTriggerMask(triggers);
// task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral+AliVEvent::kEMCEGA+AliVEvent::kEMCEJE);
// task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
if (!hasMC) task->UsePhysicsSelection();
// //Add event filter
// AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
// if(!hasMC) eventCuts->SetRequireVertex();
// if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
// eventCuts->SetMinVtxContributors(1);
// eventCuts->SetVertexZ(-10.,10.);
// eventCuts->SetCentralityRange(0.0,90.0);
// task->SetEventFilter(eventCuts);
task->SetDielectron(jpsi);
if(storeLS) task->SetStoreLikeSignCandidates(storeLS);
task->SetCreateNanoAODs(kTRUE);
task->SetStoreEventsWithSingleTracks(kTRUE);
//task->SetStoreHeader(kTRUE);
mgr->AddTask(task);
//----------------------
//create data containers
//----------------------
TString containerName = mgr->GetCommonFileName();
containerName += ":PWGDQ_dielectronFilter";
//create output container
AliAnalysisDataContainer *cOutputHist1 =
mgr->CreateContainer("jpsi_FilterQA",
THashList::Class(),
AliAnalysisManager::kOutputContainer,
containerName.Data());
AliAnalysisDataContainer *cOutputHist2 =
mgr->CreateContainer("jpsi_FilterEventStat",
TH1D::Class(),
AliAnalysisManager::kOutputContainer,
containerName.Data());
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
mgr->ConnectOutput(task, 1, cOutputHist1);
mgr->ConnectOutput(task, 2, cOutputHist2);
return task;
}
AddTaskJPSIFilter_pp.C:10 AddTaskJPSIFilter_pp.C:11 AddTaskJPSIFilter_pp.C:12 AddTaskJPSIFilter_pp.C:13 AddTaskJPSIFilter_pp.C:14 AddTaskJPSIFilter_pp.C:15 AddTaskJPSIFilter_pp.C:16 AddTaskJPSIFilter_pp.C:17 AddTaskJPSIFilter_pp.C:18 AddTaskJPSIFilter_pp.C:19 AddTaskJPSIFilter_pp.C:20 AddTaskJPSIFilter_pp.C:21 AddTaskJPSIFilter_pp.C:22 AddTaskJPSIFilter_pp.C:23 AddTaskJPSIFilter_pp.C:24 AddTaskJPSIFilter_pp.C:25 AddTaskJPSIFilter_pp.C:26 AddTaskJPSIFilter_pp.C:27 AddTaskJPSIFilter_pp.C:28 AddTaskJPSIFilter_pp.C:29 AddTaskJPSIFilter_pp.C:30 AddTaskJPSIFilter_pp.C:31 AddTaskJPSIFilter_pp.C:32 AddTaskJPSIFilter_pp.C:33 AddTaskJPSIFilter_pp.C:34 AddTaskJPSIFilter_pp.C:35 AddTaskJPSIFilter_pp.C:36 AddTaskJPSIFilter_pp.C:37 AddTaskJPSIFilter_pp.C:38 AddTaskJPSIFilter_pp.C:39 AddTaskJPSIFilter_pp.C:40 AddTaskJPSIFilter_pp.C:41 AddTaskJPSIFilter_pp.C:42 AddTaskJPSIFilter_pp.C:43 AddTaskJPSIFilter_pp.C:44 AddTaskJPSIFilter_pp.C:45 AddTaskJPSIFilter_pp.C:46 AddTaskJPSIFilter_pp.C:47 AddTaskJPSIFilter_pp.C:48 AddTaskJPSIFilter_pp.C:49 AddTaskJPSIFilter_pp.C:50 AddTaskJPSIFilter_pp.C:51 AddTaskJPSIFilter_pp.C:52 AddTaskJPSIFilter_pp.C:53 AddTaskJPSIFilter_pp.C:54 AddTaskJPSIFilter_pp.C:55 AddTaskJPSIFilter_pp.C:56 AddTaskJPSIFilter_pp.C:57 AddTaskJPSIFilter_pp.C:58 AddTaskJPSIFilter_pp.C:59 AddTaskJPSIFilter_pp.C:60 AddTaskJPSIFilter_pp.C:61 AddTaskJPSIFilter_pp.C:62 AddTaskJPSIFilter_pp.C:63 AddTaskJPSIFilter_pp.C:64 AddTaskJPSIFilter_pp.C:65 AddTaskJPSIFilter_pp.C:66 AddTaskJPSIFilter_pp.C:67 AddTaskJPSIFilter_pp.C:68 AddTaskJPSIFilter_pp.C:69 AddTaskJPSIFilter_pp.C:70 AddTaskJPSIFilter_pp.C:71 AddTaskJPSIFilter_pp.C:72 AddTaskJPSIFilter_pp.C:73 AddTaskJPSIFilter_pp.C:74 AddTaskJPSIFilter_pp.C:75 AddTaskJPSIFilter_pp.C:76 AddTaskJPSIFilter_pp.C:77 AddTaskJPSIFilter_pp.C:78 AddTaskJPSIFilter_pp.C:79 AddTaskJPSIFilter_pp.C:80 AddTaskJPSIFilter_pp.C:81 AddTaskJPSIFilter_pp.C:82 AddTaskJPSIFilter_pp.C:83 AddTaskJPSIFilter_pp.C:84 AddTaskJPSIFilter_pp.C:85 AddTaskJPSIFilter_pp.C:86 AddTaskJPSIFilter_pp.C:87 AddTaskJPSIFilter_pp.C:88 AddTaskJPSIFilter_pp.C:89 AddTaskJPSIFilter_pp.C:90 AddTaskJPSIFilter_pp.C:91 AddTaskJPSIFilter_pp.C:92 AddTaskJPSIFilter_pp.C:93 AddTaskJPSIFilter_pp.C:94 AddTaskJPSIFilter_pp.C:95 AddTaskJPSIFilter_pp.C:96 AddTaskJPSIFilter_pp.C:97 AddTaskJPSIFilter_pp.C:98 AddTaskJPSIFilter_pp.C:99 AddTaskJPSIFilter_pp.C:100 AddTaskJPSIFilter_pp.C:101 AddTaskJPSIFilter_pp.C:102 AddTaskJPSIFilter_pp.C:103 AddTaskJPSIFilter_pp.C:104 AddTaskJPSIFilter_pp.C:105 AddTaskJPSIFilter_pp.C:106 AddTaskJPSIFilter_pp.C:107 AddTaskJPSIFilter_pp.C:108 AddTaskJPSIFilter_pp.C:109 AddTaskJPSIFilter_pp.C:110 AddTaskJPSIFilter_pp.C:111 AddTaskJPSIFilter_pp.C:112 AddTaskJPSIFilter_pp.C:113 AddTaskJPSIFilter_pp.C:114 AddTaskJPSIFilter_pp.C:115 AddTaskJPSIFilter_pp.C:116 AddTaskJPSIFilter_pp.C:117 AddTaskJPSIFilter_pp.C:118 AddTaskJPSIFilter_pp.C:119 AddTaskJPSIFilter_pp.C:120 AddTaskJPSIFilter_pp.C:121 AddTaskJPSIFilter_pp.C:122 AddTaskJPSIFilter_pp.C:123 AddTaskJPSIFilter_pp.C:124 AddTaskJPSIFilter_pp.C:125 AddTaskJPSIFilter_pp.C:126 AddTaskJPSIFilter_pp.C:127 AddTaskJPSIFilter_pp.C:128 AddTaskJPSIFilter_pp.C:129 AddTaskJPSIFilter_pp.C:130 AddTaskJPSIFilter_pp.C:131 AddTaskJPSIFilter_pp.C:132 AddTaskJPSIFilter_pp.C:133 AddTaskJPSIFilter_pp.C:134 AddTaskJPSIFilter_pp.C:135 AddTaskJPSIFilter_pp.C:136 AddTaskJPSIFilter_pp.C:137 AddTaskJPSIFilter_pp.C:138 AddTaskJPSIFilter_pp.C:139 AddTaskJPSIFilter_pp.C:140 AddTaskJPSIFilter_pp.C:141 AddTaskJPSIFilter_pp.C:142 AddTaskJPSIFilter_pp.C:143 AddTaskJPSIFilter_pp.C:144