1 AliAnalysisTaskEmcalDiJetResponse* AddTaskEmcalDiJetResponse(TString kTracksName = "PicoTracks",
2 TString kClusName = "caloClusterCorr",
3 TString kMCTracksName = "MCParticles",
5 Double_t ptminTrack = 0.15,
6 Double_t etminClus = 0.3,
8 TString trigClass = "",
9 const char *CentEst = "V0A",
10 Int_t pSel = AliVEvent::kINT7,
11 Int_t matchFullCh = AliAnalysisTaskEmcalDiJetBase::kNoMatching,
12 Double_t ptTrackBias = 0.,
13 Int_t responseVar = 0,
14 Int_t corrType = AliAnalysisTaskEmcalDiJetBase::kCorrelateTwo,
18 enum AlgoType {kKT, kANTIKT};
19 enum JetType {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
21 // #### Define manager and data container names
22 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24 ::Error("AddTaskEmcalDiJet", "No analysis manager to connect to.");
28 // Check the analysis type using the event handlers connected to the analysis manager.
29 //==============================================================================
30 if (!mgr->GetInputEventHandler())
32 ::Error("AddTaskEmcalDiJet", "This task requires an input event handler");
36 // #### Add necessary jet finder tasks
37 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
39 AliEmcalJetTask* jetFinderTaskFull = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kFULLJETS, ptminTrack, etminClus);
40 AliEmcalJetTask* jetFinderTaskCharged = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus);
41 jetFinderTaskFull->SelectCollisionCandidates(AliVEvent::kAny);
42 jetFinderTaskCharged->SelectCollisionCandidates(AliVEvent::kAny);
44 AliEmcalJetTask* jetFinderTaskFullMC = AddTaskEmcalJet(kMCTracksName ,"", kANTIKT, R, kFULLJETS, kPartLevPtCut, kPartLevPtCut);
45 AliEmcalJetTask* jetFinderTaskChargedMC = AddTaskEmcalJet(kMCTracksName ,"", kANTIKT, R, kCHARGEDJETS, kPartLevPtCut, kPartLevPtCut);
46 jetFinderTaskFullMC->SelectCollisionCandidates(AliVEvent::kAny);
47 jetFinderTaskChargedMC->SelectCollisionCandidates(AliVEvent::kAny);
49 TString strJetsFull = jetFinderTaskFull->GetName();
50 TString strJetsCh = jetFinderTaskCharged->GetName();
52 TString strJetsFullMC = jetFinderTaskFullMC->GetName();
53 TString strJetsChMC = jetFinderTaskChargedMC->GetName();
56 TString wagonName = Form("DiJetResponse_%s_%s_Rho%dTC%sMatch%dHadTrig%dRV%d",strJetsFull.Data(),strJetsFullMC.Data(),rhoType,trigClass.Data(),matchFullCh,(Int_t)(ptTrackBias),responseVar);
58 //Configure DiJet task
59 AliAnalysisTaskEmcalDiJetResponse *taskDiJetResp = new AliAnalysisTaskEmcalDiJetResponse(wagonName.Data());
61 Printf("strJetsFull: %s",strJetsFull.Data());
62 Printf("strJetsCh: %s",strJetsCh.Data());
64 taskDiJetResp->SetUseAliAnaUtils(kTRUE);
65 taskDiJetResp->SetVzRange(-10.,10.);
66 taskDiJetResp->SetIsPythia(kTRUE);
68 taskDiJetResp->SetJetCorrelationType(corrType);
70 taskDiJetResp->SetContainerFull(0);
71 taskDiJetResp->SetContainerCharged(1);
72 taskDiJetResp->SetContainerFullMC(2);
73 taskDiJetResp->SetContainerChargedMC(3);
75 taskDiJetResp->AddParticleContainer(kTracksName.Data());
76 taskDiJetResp->AddClusterContainer(kClusName.Data());
78 taskDiJetResp->AddJetContainer(strJetsFull.Data(),"EMCAL",R);
79 taskDiJetResp->AddJetContainer(strJetsCh.Data(),"TPC",R);
80 taskDiJetResp->AddJetContainer(strJetsFullMC.Data(),"EMCAL",R);
81 taskDiJetResp->AddJetContainer(strJetsChMC.Data(),"TPC",R);
83 taskDiJetResp->SetZLeadingCut(0.98,0.98,0);
84 taskDiJetResp->SetZLeadingCut(0.98,0.98,2);
86 taskDiJetResp->SetNEFCut(0.,nefCut,0);
87 taskDiJetResp->SetNEFCut(0.,nefCut,2);
89 for(Int_t i=0; i<4; i++) {
90 taskDiJetResp->SetPercAreaCut(0.6, i);
91 taskDiJetResp->SetPtBiasJetTrack(ptTrackBias,i);
94 taskDiJetResp->SetRhoType(rhoType);
95 taskDiJetResp->SetCentralityEstimator(CentEst);
96 taskDiJetResp->SelectCollisionCandidates(pSel);
97 taskDiJetResp->SetFullChargedMatchingType(matchFullCh);
98 taskDiJetResp->SetDoChargedCharged(kTRUE);
99 taskDiJetResp->SetDoFullCharged(kTRUE);
100 taskDiJetResp->SetMatchFullCharged(kTRUE);
101 taskDiJetResp->SetResponseVar(responseVar);
102 taskDiJetResp->SetPtMinTriggerJet(0.);
104 mgr->AddTask(taskDiJetResp);
107 mgr->ConnectInput (taskDiJetResp, 0, mgr->GetCommonInputContainer() );
110 AliAnalysisDataContainer *coutput1 = 0x0;
111 TString contName(wagonName);
112 contName += "_histos";
113 TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
114 coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
115 mgr->ConnectOutput(taskDiJetResp,1,coutput1);
117 return taskDiJetResp;