]>
Commit | Line | Data |
---|---|---|
0c09cae4 | 1 | AliAnalysisTask *AddTaskJPSIFilter(Bool_t storeLS = kTRUE, Bool_t hasMC_aod = kFALSE, Bool_t storeTR = kTRUE){ |
8df8e382 | 2 | //get the current analysis manager |
3 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
4 | if (!mgr) { | |
164bfb53 | 5 | Error("AddTaskJPSIFilter", "No analysis manager found."); |
8df8e382 | 6 | return 0; |
7 | } | |
164bfb53 | 8 | |
8df8e382 | 9 | //check for output aod handler |
10 | if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) { | |
2a14a7b1 | 11 | Warning("AddTaskJPSIFilter","No AOD output handler available. Not adding the task!"); |
8df8e382 | 12 | return 0; |
13 | } | |
14 | ||
15 | //Do we have an MC handler? | |
fb7d2d99 | 16 | Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)||hasMC_aod; |
164bfb53 | 17 | |
18 | //Do we run on AOD? | |
19 | Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class(); | |
2a14a7b1 | 20 | |
0c09cae4 | 21 | gROOT->LoadMacro("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeFilter.C"); |
fb7d2d99 | 22 | AliDielectron *jpsi=ConfigJpsi2eeFilter(isAOD); |
23 | ||
2a14a7b1 | 24 | if(isAOD) { |
25 | //add options to AliAODHandler to duplicate input event | |
26 | AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler(); | |
27 | aodHandler->SetCreateNonStandardAOD(); | |
28 | aodHandler->SetNeedsHeaderReplication(); | |
29 | aodHandler->SetNeedsTracksBranchReplication(); | |
30 | aodHandler->SetNeedsVerticesBranchReplication(); | |
31 | aodHandler->SetNeedsV0sBranchReplication(); | |
32 | aodHandler->SetNeedsCascadesBranchReplication(); | |
33 | aodHandler->SetNeedsTrackletsBranchReplication(); | |
34 | aodHandler->SetNeedsPMDClustersBranchReplication(); | |
35 | aodHandler->SetNeedsJetsBranchReplication(); | |
36 | aodHandler->SetNeedsFMDClustersBranchReplication(); | |
37 | aodHandler->SetNeedsCaloClustersBranchReplication(); | |
38 | //aodHandler->SetNeedsMCParticlesBranchReplication(); | |
39 | aodHandler->SetNeedsDimuonsBranchReplication(); | |
ffbede40 | 40 | if(hasMC) aodHandler->SetNeedsMCParticlesBranchReplication(); |
fb7d2d99 | 41 | jpsi->SetHasMC(hasMC); |
2a14a7b1 | 42 | } |
164bfb53 | 43 | |
8df8e382 | 44 | //Create task and add it to the analysis manager |
45 | AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter"); | |
46 | ||
8df8e382 | 47 | if (!hasMC) task->UsePhysicsSelection(); |
48 | task->SetDielectron(jpsi); | |
fb7d2d99 | 49 | if(storeLS) task->SetStoreLikeSignCandidates(storeLS); |
0c09cae4 | 50 | task->SetStoreRotatedPairs(storeTR); |
8df8e382 | 51 | mgr->AddTask(task); |
52 | ||
53 | //---------------------- | |
54 | //create data containers | |
55 | //---------------------- | |
56 | ||
57 | ||
58 | TString containerName = mgr->GetCommonFileName(); | |
a14d0b3e | 59 | containerName += ":PWGDQ_dielectronFilter"; |
8df8e382 | 60 | |
61 | //create output container | |
62 | ||
63 | AliAnalysisDataContainer *cOutputHist1 = | |
61d106d3 | 64 | mgr->CreateContainer("jpsi_FilterQA", |
65 | THashList::Class(), | |
66 | AliAnalysisManager::kOutputContainer, | |
8df8e382 | 67 | containerName.Data()); |
68 | ||
69 | AliAnalysisDataContainer *cOutputHist2 = | |
61d106d3 | 70 | mgr->CreateContainer("jpsi_FilterEventStat", |
71 | TH1D::Class(), | |
72 | AliAnalysisManager::kOutputContainer, | |
8df8e382 | 73 | containerName.Data()); |
74 | ||
164bfb53 | 75 | |
8df8e382 | 76 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); |
77 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
78 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
164bfb53 | 79 | |
8df8e382 | 80 | return task; |
81 | } |