]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosJPSI/AddTaskJPSIFilter.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTaskJPSIFilter.C
CommitLineData
01e6cabe 1AliAnalysisTask *AddTaskJPSIFilter(TString period="", Bool_t storeLS = kFALSE, Bool_t hasMC_aod = kFALSE){
15f4cb18 2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 if (!mgr) {
5 Error("AddTaskJPSIFilter", "No analysis manager found.");
6 return 0;
7 }
8
9 //check for output aod handler
10 if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
11 Warning("AddTaskJPSIFilter","No AOD output handler available. Not adding the task!");
12 return 0;
13 }
14
15 //Do we have an MC handler?
16 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)||hasMC_aod;
17
18 //Do we run on AOD?
19 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
20
fbc09d5d 21 //Allow merging of the filtered aods on grid trains
22 if(mgr->GetGridHandler()) {
23 printf(" SET MERGE FILTERED AODs \n");
e0d98c30 24 //mgr->GetGridHandler()->SetMergeAOD(kTRUE);
fbc09d5d 25 }
26
27
28
15f4cb18 29 //gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macros/ConfigBJpsi_ff_PbPbFilter.C");
f1be3e2e 30 // gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigBJpsi_ff_PbPbFilter.C");
31 gROOT->LoadMacro("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_nano_PbPb.C");
01e6cabe 32 AliDielectron *jpsi=ConfigJpsi_nano_PbPb(0,hasMC,period);
15f4cb18 33
34 if(isAOD) {
35 //add options to AliAODHandler to duplicate input event
36 AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler();
37 aodHandler->SetCreateNonStandardAOD();
38 aodHandler->SetNeedsHeaderReplication();
01e6cabe 39 if(!period.Contains("LHC10h")) aodHandler->SetNeedsTOFHeaderReplication();
15f4cb18 40 aodHandler->SetNeedsVZEROReplication();
41 /*aodHandler->SetNeedsTracksBranchReplication();
42 aodHandler->SetNeedsCaloClustersBranchReplication();
43 aodHandler->SetNeedsVerticesBranchReplication();
15f4cb18 44 aodHandler->SetNeedsCascadesBranchReplication();
45 aodHandler->SetNeedsTrackletsBranchReplication();
46 aodHandler->SetNeedsPMDClustersBranchReplication();
47 aodHandler->SetNeedsJetsBranchReplication();
48 aodHandler->SetNeedsFMDClustersBranchReplication();
49 //aodHandler->SetNeedsMCParticlesBranchReplication();
50 aodHandler->SetNeedsDimuonsBranchReplication();*/
2d00c7d3 51 // if(hasMC) aodHandler->SetNeedsV0sBranchReplication();
15f4cb18 52 if(hasMC) aodHandler->SetNeedsMCParticlesBranchReplication();
53 jpsi->SetHasMC(hasMC);
54 }
55
56 //Create task and add it to the analysis manager
57 AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter");
e0d98c30 58 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral+AliVEvent::kEMCEGA+AliVEvent::kEMCEJE);
59 // task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
15f4cb18 60 if (!hasMC) task->UsePhysicsSelection();
61
f1be3e2e 62 // //Add event filter
63 // AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
64 // if(!hasMC) eventCuts->SetRequireVertex();
65 // if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
66 // eventCuts->SetMinVtxContributors(1);
67 // eventCuts->SetVertexZ(-10.,10.);
68 // eventCuts->SetCentralityRange(0.0,90.0);
69 // task->SetEventFilter(eventCuts);
15f4cb18 70
71 task->SetDielectron(jpsi);
72 if(storeLS) task->SetStoreLikeSignCandidates(storeLS);
53e69dc3 73 task->SetCreateNanoAODs(kTRUE);
74 task->SetStoreEventsWithSingleTracks(kTRUE);
75 //task->SetStoreHeader(kTRUE);
15f4cb18 76 mgr->AddTask(task);
77
78 //----------------------
79 //create data containers
80 //----------------------
81
82
83 TString containerName = mgr->GetCommonFileName();
84 containerName += ":PWGDQ_dielectronFilter";
85
86 //create output container
87
88 AliAnalysisDataContainer *cOutputHist1 =
89 mgr->CreateContainer("jpsi_FilterQA",
90 THashList::Class(),
91 AliAnalysisManager::kOutputContainer,
92 containerName.Data());
93
94 AliAnalysisDataContainer *cOutputHist2 =
95 mgr->CreateContainer("jpsi_FilterEventStat",
96 TH1D::Class(),
97 AliAnalysisManager::kOutputContainer,
98 containerName.Data());
99
100
101 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
fbc09d5d 102 mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer());
15f4cb18 103 mgr->ConnectOutput(task, 1, cOutputHist1);
104 mgr->ConnectOutput(task, 2, cOutputHist2);
105
106 return task;
107}