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