]>
Commit | Line | Data |
---|---|---|
3773435b | 1 | AliAnalysisTaskEmcalDiJetResponse* AddTaskEmcalDiJetResponse(TString kTracksName = "PicoTracks", |
2 | TString kClusName = "caloClusterCorr", | |
3 | TString kMCTracksName = "MCParticles", | |
4 | Double_t R = 0.4, | |
5 | Double_t ptminTrack = 0.15, | |
6 | Double_t etminClus = 0.3, | |
7 | Int_t rhoType = 0, | |
8 | TString trigClass = "", | |
9 | const char *CentEst = "V0A", | |
10 | Int_t pSel = AliVEvent::kINT7, | |
bb84b374 | 11 | Int_t matchFullCh = AliAnalysisTaskEmcalDiJetBase::kNoMatching, |
6ab30d5f | 12 | Double_t ptTrackBias = 0., |
13 | Int_t responseVar = 0, | |
14 | Int_t corrType = AliAnalysisTaskEmcalDiJetBase::kCorrelateTwo | |
3773435b | 15 | ) { |
16 | ||
17 | enum AlgoType {kKT, kANTIKT}; | |
18 | enum JetType {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS}; | |
19 | ||
20 | // #### Define manager and data container names | |
21 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
22 | if (!mgr) { | |
23 | ::Error("AddTaskEmcalDiJet", "No analysis manager to connect to."); | |
24 | return NULL; | |
25 | } | |
26 | ||
27 | // Check the analysis type using the event handlers connected to the analysis manager. | |
28 | //============================================================================== | |
29 | if (!mgr->GetInputEventHandler()) | |
30 | { | |
31 | ::Error("AddTaskEmcalDiJet", "This task requires an input event handler"); | |
32 | return NULL; | |
33 | } | |
34 | ||
35 | // #### Add necessary jet finder tasks | |
36 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C"); | |
37 | ||
38 | AliEmcalJetTask* jetFinderTaskFull = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kFULLJETS, ptminTrack, etminClus); | |
39 | AliEmcalJetTask* jetFinderTaskCharged = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus); | |
40 | ||
41 | AliEmcalJetTask* jetFinderTaskFullMC = AddTaskEmcalJet(kMCTracksName ,"", kANTIKT, R, kFULLJETS, kPartLevPtCut, kPartLevPtCut); | |
42 | AliEmcalJetTask* jetFinderTaskChargedMC = AddTaskEmcalJet(kMCTracksName ,"", kANTIKT, R, kCHARGEDJETS, kPartLevPtCut, kPartLevPtCut); | |
43 | ||
44 | ||
45 | TString strJetsFull = jetFinderTaskFull->GetName(); | |
46 | TString strJetsCh = jetFinderTaskCharged->GetName(); | |
47 | ||
48 | TString strJetsFullMC = jetFinderTaskFullMC->GetName(); | |
49 | TString strJetsChMC = jetFinderTaskChargedMC->GetName(); | |
50 | ||
51 | ||
6ab30d5f | 52 | TString wagonName = Form("DiJetResponse_%s_%s_Rho%dTC%sMatch%dHadTrig%dRV%d",strJetsFull.Data(),strJetsFullMC.Data(),rhoType,trigClass.Data(),matchFullCh,(Int_t)(ptTrackBias),responseVar); |
3773435b | 53 | |
54 | //Configure DiJet task | |
55 | AliAnalysisTaskEmcalDiJetResponse *taskDiJet = NULL; | |
56 | taskDiJet = new AliAnalysisTaskEmcalDiJetResponse(wagonName.Data()); | |
57 | ||
58 | Printf("strJetsFull: %s",strJetsFull.Data()); | |
59 | Printf("strJetsCh: %s",strJetsCh.Data()); | |
60 | ||
6ab30d5f | 61 | taskDiJet->SetIsPythiaPtHard(kTRUE); |
62 | ||
63 | taskDiJet->SetJetCorrelationType(corrType); | |
64 | ||
3773435b | 65 | taskDiJet->SetContainerFull(0); |
66 | taskDiJet->SetContainerCharged(1); | |
67 | taskDiJet->SetContainerFullMC(2); | |
68 | taskDiJet->SetContainerChargedMC(3); | |
69 | ||
70 | taskDiJet->AddParticleContainer(kTracksName.Data()); | |
71 | taskDiJet->AddClusterContainer(kClusName.Data()); | |
72 | ||
3773435b | 73 | taskDiJet->AddJetContainer(strJetsFull.Data(),"EMCAL",R); |
74 | taskDiJet->AddJetContainer(strJetsCh.Data(),"TPC",R); | |
75 | taskDiJet->AddJetContainer(strJetsFullMC.Data(),"EMCAL",R); | |
76 | taskDiJet->AddJetContainer(strJetsChMC.Data(),"TPC",R); | |
77 | ||
9e5eee5d | 78 | taskDiJet->SetZLeadingCut(0.98,0.98,0); |
79 | taskDiJet->SetZLeadingCut(0.98,0.98,2); | |
80 | ||
bb84b374 | 81 | for(Int_t i=0; i<4; i++) { |
eca9052c | 82 | taskDiJet->SetPercAreaCut(0.6, i); |
bb84b374 | 83 | taskDiJet->SetPtBiasJetTrack(ptTrackBias,i); |
84 | } | |
3773435b | 85 | |
86 | taskDiJet->SetRhoType(rhoType); | |
87 | ||
88 | taskDiJet->SetCentralityEstimator(CentEst); | |
89 | ||
90 | taskDiJet->SelectCollisionCandidates(pSel); | |
91 | ||
92 | taskDiJet->SetFullChargedMatchingType(matchFullCh); | |
93 | ||
94 | taskDiJet->SetDoChargedCharged(kTRUE); | |
95 | taskDiJet->SetDoFullCharged(kTRUE); | |
96 | taskDiJet->SetMatchFullCharged(kTRUE); | |
97 | ||
98 | taskDiJet->SetIsPythiaPtHard(kTRUE); | |
99 | ||
6ab30d5f | 100 | taskDiJet->SetResponseVar(responseVar); |
101 | ||
3773435b | 102 | |
103 | mgr->AddTask(taskDiJet); | |
104 | ||
105 | //Connnect input | |
106 | mgr->ConnectInput (taskDiJet, 0, mgr->GetCommonInputContainer() ); | |
107 | ||
108 | //Connect output | |
109 | AliAnalysisDataContainer *coutput1 = 0x0; | |
110 | ||
6ab30d5f | 111 | TString contName(wagonName); |
112 | contName += "_histos"; | |
3773435b | 113 | |
6ab30d5f | 114 | // TString outputfile = Form("%s:%s",AliAnalysisManager::GetCommonFileName(),wagonName.Data()); |
115 | TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName()); | |
3773435b | 116 | |
6ab30d5f | 117 | coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile); |
3773435b | 118 | |
119 | mgr->ConnectOutput(taskDiJet,1,coutput1); | |
120 | ||
121 | return taskDiJet; | |
122 | } |