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