]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskHJetSpectra.C
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskHJetSpectra.C
1 AliAnalysisTaskHJetSpectra* AddTaskHJetSpectra(
2   Double_t            jetRadius               = 0.4,  //radius of analyzed jets
3   Double_t            jetRadiusBg             = 0.3,  //radius of jets to be removed when estimating cell median bg
4   Int_t               trigger                 = AliVEvent::kINT7,  //trigger
5   Int_t               isMC                    = 0,  //MC flag
6   Double_t            randomConeR             = 0.4,  //random cone for deltaPt + perp cone bg
7   const char*         containerSuffix         = "",   //tag to the name of container
8   const char*         usedTracks              = "PicoTracks",  //tracks
9   const char*         centralityType          = "V0A",   //centrality
10   Double_t            trackEtaWindow          = 0.9,   //pseudorapidity range for tracks
11   Bool_t              useVertexCut            = kTRUE,  // vertex cut
12   Bool_t              usePileUpCut            = kTRUE, // discard pile up event
13   Int_t               numberOfCentralityBins  = 1,     // the number of centrality bins
14   Double_t            ttLow                   = 8.0,      // trigger hardron low pT
15   Double_t            ttHigh                  = 50.0,     // trigger hadron high pT
16   Int_t               ttType                  = 0,        // 0= single inclusive hadron trigger, else inclusive hadron trigger
17   Double_t            dphi                    = 0.6, // |Delta phi_jet, trigger|< pi-0.6
18   Bool_t              binning                 = 0    //binning of jet histograms 0=2GeV width  1=1GeV width
19 ){
20
21
22    // #### Detect the demanded trigger with its readable name
23    TString triggerName(Form("Trigger_%i", trigger));
24    if(trigger == AliVEvent::kAnyINT)
25       triggerName = "kAnyINT";
26    else if(trigger == AliVEvent::kAny)
27       triggerName = "kAny";
28    else if(trigger == AliVEvent::kINT7)
29       triggerName = "kINT7";
30    else if(trigger == AliVEvent::kMB)
31       triggerName = "kMB";
32    else if(trigger == AliVEvent::kEMC7)
33       triggerName = "kEMC7";
34    else if(trigger == AliVEvent::kEMCEJE)
35       triggerName = "kEMCEJE";
36    else if(trigger == AliVEvent::kEMCEGA)
37       triggerName = "kEMCEGA";
38  
39    // #### DEFINE MANAGER AND DATA CONTAINER NAMES
40    AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
41    if (!manager) {
42      ::Error("AddTaskHJetSpectra.C", "No analysis manager to connect to.");
43      return NULL;
44    }
45  
46    TString containerNameSuffix("");
47    if(strcmp(containerSuffix,""))  containerNameSuffix = Form("_%s", containerSuffix);
48  
49    TString myContName("");
50    if(isMC){
51       myContName = Form("AnalysisR0%2.0f_%s_MC%s_Dphi%02d_T%d_Ptt%d_%d", 
52          jetRadius*100, triggerName.Data(), containerNameSuffix.Data(),
53          TMath::Nint(10*dphi), ttType, TMath::Nint(ttLow), TMath::Nint(ttHigh));
54    }else{
55       myContName = Form("AnalysisR0%2.0f_%s%s_Dphi%02d_T%d_Ptt%d_%d",    
56          jetRadius*100, triggerName.Data(), containerNameSuffix.Data(),
57          TMath::Nint(10*dphi), ttType, TMath::Nint(ttLow), TMath::Nint(ttHigh));
58    }
59
60    // #### ADD NECESSARY JET FINDER TASKS
61    enum AlgoType {kKT, kANTIKT};
62    enum JetType  {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
63
64    if(jetRadius < 0.1 || jetRadiusBg < 0.1) return NULL;
65  
66    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
67    AliEmcalJetTask* jetFinderTask   = AddTaskEmcalJet(usedTracks,"",kANTIKT,jetRadius,  kCHARGEDJETS,0.150,0.300); //FK//
68    AliEmcalJetTask* jetFinderTaskBg = AddTaskEmcalJet(usedTracks,"",kANTIKT,jetRadiusBg,kCHARGEDJETS,0.150,0.300); //FK//excl from bg
69
70    // #### DEFINE EXTERN CMS RHO TASK
71    TString myRhoName("ExternalRhoTask");
72    AliEmcalJetTask* jetFinderRho   = AddTaskEmcalJet(usedTracks,"", kANTIKT, 0.4, kCHARGEDJETS,0.150,0.300); // anti-kt
73    AliEmcalJetTask* jetFinderRhoKT = AddTaskEmcalJet(usedTracks,"", kKT,     0.4, kCHARGEDJETS,0.150,0.300); // kt
74    jetFinderRhoKT->SetMinJetPt(0);
75
76    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
77    AliAnalysisTaskRhoSparse* rhotask = AddTaskRhoSparse(jetFinderRhoKT->GetName(), 
78                                                         jetFinderRho->GetName(), 
79                                                         usedTracks,   //pico trakcs
80                                                                 "",   //calo clusters
81                                                         myRhoName.Data(), 
82                                                                0.4,  //jet radius
83                                                              "TPC",  //cut type
84                                                                 0.,  //jet area cut
85                                                                15.,  //jet pt cut ????????
86                                                                  0,  //enareacut 
87                                                                  0,  //sfunc
88                                                                  1,  //excl Jets  //FK// ????????
89                                                             kFALSE,   //no histo
90                                                    myRhoName.Data(),  //task name
91                                                              kTRUE); //claculate rho CMS
92
93    // #### DEFINE ANALYSIS TASK
94    AliAnalysisTaskHJetSpectra *task = new AliAnalysisTaskHJetSpectra(
95                                            Form("HJetSpectra_%s_%s_TT", jetFinderTask->GetName(), triggerName.Data()), 
96                                            usedTracks, 
97                                            jetFinderTask->GetName(), 
98                                            jetFinderTaskBg->GetName());
99  
100    // #### Task preferences
101    task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadiusBg);
102    task->SetUsePileUpCut(usePileUpCut);
103    task->SetUseDefaultVertexCut(useVertexCut);
104    task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi()); //To same puziva Mata
105    task->SetRandConeRadius(randomConeR);
106    task->SelectCollisionCandidates(trigger);
107    task->SetCentralityType(centralityType); 
108    task->SetNumberOfCentralityBins(numberOfCentralityBins);
109    task->SetExternalRhoTaskName(myRhoName.Data());
110  
111    task->SetTT(ttLow, ttHigh);
112    task->SetTTType(ttType); 
113    task->SetDphi(dphi); // |Delta phi_jet, trigger|< pi-0.6
114    task->SetDoubleBinPrecision(binning); 
115    task->SetMinPtOfJetsToBeRemovedInBg(15.0); 
116    //task->SetMC(isMC);
117    task->SetNofRandomCones(1);
118
119    if(isMC) task->SetAnalyzeMC(isMC);
120
121    // output container
122    contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChJetSpectra%s", AliAnalysisManager::GetCommonFileName(), myContName.Data()));
123  
124  
125    // #### ADD ANALYSIS TASK
126    manager->AddTask(task);
127    manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
128    manager->ConnectOutput(task, 1, contHistos);
129  
130    return task;
131 }