]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetResponse.C
Dijet user code (Marta)
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalDiJetResponse.C
CommitLineData
3773435b 1AliAnalysisTaskEmcalDiJetResponse* 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}