]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetResponse.C
Split: fix refs to AddTaskCentrality.C
[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                                                              Int_t       responseVar         = 0,
14                                                              Int_t       corrType            = AliAnalysisTaskEmcalDiJetBase::kCorrelateTwo,
15                                                              Float_t     nefCut              = 10.
16                                                              ) {
17   
18   enum AlgoType {kKT, kANTIKT};
19   enum JetType  {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
20
21   // #### Define manager and data container names
22   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23   if (!mgr) {
24     ::Error("AddTaskEmcalDiJet", "No analysis manager to connect to.");
25     return NULL;
26   }
27
28   // Check the analysis type using the event handlers connected to the analysis manager.
29   //==============================================================================
30   if (!mgr->GetInputEventHandler())
31     {
32       ::Error("AddTaskEmcalDiJet", "This task requires an input event handler");
33       return NULL;
34     }
35
36   // #### Add necessary jet finder tasks
37   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
38
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);
43
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);
48
49   TString strJetsFull = jetFinderTaskFull->GetName();
50   TString strJetsCh   = jetFinderTaskCharged->GetName();
51
52   TString strJetsFullMC = jetFinderTaskFullMC->GetName();
53   TString strJetsChMC   = jetFinderTaskChargedMC->GetName();
54
55
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);
57
58   //Configure DiJet task
59   AliAnalysisTaskEmcalDiJetResponse *taskDiJetResp = new AliAnalysisTaskEmcalDiJetResponse(wagonName.Data());
60  
61   Printf("strJetsFull: %s",strJetsFull.Data());
62   Printf("strJetsCh: %s",strJetsCh.Data());
63
64   taskDiJetResp->SetUseAliAnaUtils(kTRUE);
65   taskDiJetResp->SetVzRange(-10.,10.);
66   taskDiJetResp->SetIsPythia(kTRUE);
67
68   taskDiJetResp->SetJetCorrelationType(corrType);
69
70   taskDiJetResp->SetContainerFull(0);
71   taskDiJetResp->SetContainerCharged(1);
72   taskDiJetResp->SetContainerFullMC(2);
73   taskDiJetResp->SetContainerChargedMC(3);
74
75   taskDiJetResp->AddParticleContainer(kTracksName.Data());
76   taskDiJetResp->AddClusterContainer(kClusName.Data());
77    
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);
82
83   taskDiJetResp->SetZLeadingCut(0.98,0.98,0);
84   taskDiJetResp->SetZLeadingCut(0.98,0.98,2);
85
86   taskDiJetResp->SetNEFCut(0.,nefCut,0);
87   taskDiJetResp->SetNEFCut(0.,nefCut,2);
88
89   for(Int_t i=0; i<4; i++) {
90     taskDiJetResp->SetPercAreaCut(0.6, i);
91     taskDiJetResp->SetPtBiasJetTrack(ptTrackBias,i);
92   }
93
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.);
103
104   mgr->AddTask(taskDiJetResp);
105
106   //Connnect input
107   mgr->ConnectInput (taskDiJetResp, 0, mgr->GetCommonInputContainer() );
108
109   //Connect output
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);
116   
117   return taskDiJetResp;
118 }