ROOT logo
AliAnalysisTaskHJetSpectra* AddTaskHJetSpectra(
  Double_t            jetRadius               = 0.4,  //radius of analyzed jets
  Double_t            jetRadiusBg             = 0.3,  //radius of jets to be removed when estimating cell median bg
  Int_t               trigger                 = AliVEvent::kINT7,  //trigger
  Int_t               isMC                    = 0,  //MC flag
  Double_t            randomConeR             = 0.4,  //random cone for deltaPt + perp cone bg
  const char*         containerSuffix         = "",   //tag to the name of container
  const char*         usedTracks              = "PicoTracks",  //tracks
  const char*         centralityType          = "V0A",   //centrality
  Double_t            trackEtaWindow          = 0.9,   //pseudorapidity range for tracks
  Bool_t              useVertexCut            = kTRUE,  // vertex cut
  Bool_t              usePileUpCut            = kTRUE, // discard pile up event
  Int_t               numberOfCentralityBins  = 1,     // the number of centrality bins
  Double_t            ttLow                   = 8.0,      // trigger hardron low pT
  Double_t            ttHigh                  = 50.0,     // trigger hadron high pT
  Int_t               ttType                  = 0,        // 0= single inclusive hadron trigger, else inclusive hadron trigger
  Double_t            dphi                    = 0.6, // |Delta phi_jet, trigger|< pi-0.6
  Bool_t              binning                 = 0    //binning of jet histograms 0=2GeV width  1=1GeV width
){


   // #### Detect the demanded trigger with its readable name
   TString triggerName(Form("Trigger_%i", trigger));
   if(trigger == AliVEvent::kAnyINT)
      triggerName = "kAnyINT";
   else if(trigger == AliVEvent::kAny)
      triggerName = "kAny";
   else if(trigger == AliVEvent::kINT7)
      triggerName = "kINT7";
   else if(trigger == AliVEvent::kMB)
      triggerName = "kMB";
   else if(trigger == AliVEvent::kEMC7)
      triggerName = "kEMC7";
   else if(trigger == AliVEvent::kEMCEJE)
      triggerName = "kEMCEJE";
   else if(trigger == AliVEvent::kEMCEGA)
      triggerName = "kEMCEGA";
 
   // #### DEFINE MANAGER AND DATA CONTAINER NAMES
   AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
   if (!manager) {
     ::Error("AddTaskHJetSpectra.C", "No analysis manager to connect to.");
     return NULL;
   }
 
   TString containerNameSuffix("");
   if(strcmp(containerSuffix,""))  containerNameSuffix = Form("_%s", containerSuffix);
 
   TString myContName("");
   if(isMC){
      myContName = Form("AnalysisR0%2.0f_%s_MC%s_Dphi%02d_T%d_Ptt%d_%d", 
         jetRadius*100, triggerName.Data(), containerNameSuffix.Data(),
         TMath::Nint(10*dphi), ttType, TMath::Nint(ttLow), TMath::Nint(ttHigh));
   }else{
      myContName = Form("AnalysisR0%2.0f_%s%s_Dphi%02d_T%d_Ptt%d_%d",    
         jetRadius*100, triggerName.Data(), containerNameSuffix.Data(),
         TMath::Nint(10*dphi), ttType, TMath::Nint(ttLow), TMath::Nint(ttHigh));
   }

   // #### ADD NECESSARY JET FINDER TASKS
   enum AlgoType {kKT, kANTIKT};
   enum JetType  {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};

   if(jetRadius < 0.1 || jetRadiusBg < 0.1) return NULL;
 
   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
   AliEmcalJetTask* jetFinderTask   = AddTaskEmcalJet(usedTracks,"",kANTIKT,jetRadius,  kCHARGEDJETS,0.150,0.300); //FK//
   AliEmcalJetTask* jetFinderTaskBg = AddTaskEmcalJet(usedTracks,"",kANTIKT,jetRadiusBg,kCHARGEDJETS,0.150,0.300); //FK//excl from bg

   // #### DEFINE EXTERN CMS RHO TASK
   TString myRhoName("ExternalRhoTask");
   AliEmcalJetTask* jetFinderRho   = AddTaskEmcalJet(usedTracks,"", kANTIKT, 0.4, kCHARGEDJETS,0.150,0.300); // anti-kt
   AliEmcalJetTask* jetFinderRhoKT = AddTaskEmcalJet(usedTracks,"", kKT,     0.4, kCHARGEDJETS,0.150,0.300); // kt
   jetFinderRhoKT->SetMinJetPt(0);

   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
   AliAnalysisTaskRhoSparse* rhotask = AddTaskRhoSparse(jetFinderRhoKT->GetName(), 
                                                        jetFinderRho->GetName(), 
                                                        usedTracks,   //pico trakcs
                                                                "",   //calo clusters
                                                        myRhoName.Data(), 
                                                               0.4,  //jet radius
                                                             "TPC",  //cut type
                                                                0.,  //jet area cut
                                                               15.,  //jet pt cut ????????
                                                                 0,  //enareacut 
                                                                 0,  //sfunc
                                                                 1,  //excl Jets  //FK// ????????
                                                            kFALSE,   //no histo
                                                   myRhoName.Data(),  //task name
                                                             kTRUE); //claculate rho CMS

   // #### DEFINE ANALYSIS TASK
   AliAnalysisTaskHJetSpectra *task = new AliAnalysisTaskHJetSpectra(
                                           Form("HJetSpectra_%s_%s_TT", jetFinderTask->GetName(), triggerName.Data()), 
                                           usedTracks, 
                                           jetFinderTask->GetName(), 
                                           jetFinderTaskBg->GetName());
 
   // #### Task preferences
   task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadiusBg);
   task->SetUsePileUpCut(usePileUpCut);
   task->SetUseDefaultVertexCut(useVertexCut);
   task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi()); //To same puziva Mata
   task->SetRandConeRadius(randomConeR);
   task->SelectCollisionCandidates(trigger);
   task->SetCentralityType(centralityType); 
   task->SetNumberOfCentralityBins(numberOfCentralityBins);
   task->SetExternalRhoTaskName(myRhoName.Data());
 
   task->SetTT(ttLow, ttHigh);
   task->SetTTType(ttType); 
   task->SetDphi(dphi); // |Delta phi_jet, trigger|< pi-0.6
   task->SetDoubleBinPrecision(binning); 
   task->SetMinPtOfJetsToBeRemovedInBg(15.0); 
   //task->SetMC(isMC);
   task->SetNofRandomCones(1);

   if(isMC) task->SetAnalyzeMC(isMC);

   // output container
   contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChJetSpectra%s", AliAnalysisManager::GetCommonFileName(), myContName.Data()));
 
 
   // #### ADD ANALYSIS TASK
   manager->AddTask(task);
   manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
   manager->ConnectOutput(task, 1, contHistos);
 
   return task;
}
 AddTaskHJetSpectra.C:1
 AddTaskHJetSpectra.C:2
 AddTaskHJetSpectra.C:3
 AddTaskHJetSpectra.C:4
 AddTaskHJetSpectra.C:5
 AddTaskHJetSpectra.C:6
 AddTaskHJetSpectra.C:7
 AddTaskHJetSpectra.C:8
 AddTaskHJetSpectra.C:9
 AddTaskHJetSpectra.C:10
 AddTaskHJetSpectra.C:11
 AddTaskHJetSpectra.C:12
 AddTaskHJetSpectra.C:13
 AddTaskHJetSpectra.C:14
 AddTaskHJetSpectra.C:15
 AddTaskHJetSpectra.C:16
 AddTaskHJetSpectra.C:17
 AddTaskHJetSpectra.C:18
 AddTaskHJetSpectra.C:19
 AddTaskHJetSpectra.C:20
 AddTaskHJetSpectra.C:21
 AddTaskHJetSpectra.C:22
 AddTaskHJetSpectra.C:23
 AddTaskHJetSpectra.C:24
 AddTaskHJetSpectra.C:25
 AddTaskHJetSpectra.C:26
 AddTaskHJetSpectra.C:27
 AddTaskHJetSpectra.C:28
 AddTaskHJetSpectra.C:29
 AddTaskHJetSpectra.C:30
 AddTaskHJetSpectra.C:31
 AddTaskHJetSpectra.C:32
 AddTaskHJetSpectra.C:33
 AddTaskHJetSpectra.C:34
 AddTaskHJetSpectra.C:35
 AddTaskHJetSpectra.C:36
 AddTaskHJetSpectra.C:37
 AddTaskHJetSpectra.C:38
 AddTaskHJetSpectra.C:39
 AddTaskHJetSpectra.C:40
 AddTaskHJetSpectra.C:41
 AddTaskHJetSpectra.C:42
 AddTaskHJetSpectra.C:43
 AddTaskHJetSpectra.C:44
 AddTaskHJetSpectra.C:45
 AddTaskHJetSpectra.C:46
 AddTaskHJetSpectra.C:47
 AddTaskHJetSpectra.C:48
 AddTaskHJetSpectra.C:49
 AddTaskHJetSpectra.C:50
 AddTaskHJetSpectra.C:51
 AddTaskHJetSpectra.C:52
 AddTaskHJetSpectra.C:53
 AddTaskHJetSpectra.C:54
 AddTaskHJetSpectra.C:55
 AddTaskHJetSpectra.C:56
 AddTaskHJetSpectra.C:57
 AddTaskHJetSpectra.C:58
 AddTaskHJetSpectra.C:59
 AddTaskHJetSpectra.C:60
 AddTaskHJetSpectra.C:61
 AddTaskHJetSpectra.C:62
 AddTaskHJetSpectra.C:63
 AddTaskHJetSpectra.C:64
 AddTaskHJetSpectra.C:65
 AddTaskHJetSpectra.C:66
 AddTaskHJetSpectra.C:67
 AddTaskHJetSpectra.C:68
 AddTaskHJetSpectra.C:69
 AddTaskHJetSpectra.C:70
 AddTaskHJetSpectra.C:71
 AddTaskHJetSpectra.C:72
 AddTaskHJetSpectra.C:73
 AddTaskHJetSpectra.C:74
 AddTaskHJetSpectra.C:75
 AddTaskHJetSpectra.C:76
 AddTaskHJetSpectra.C:77
 AddTaskHJetSpectra.C:78
 AddTaskHJetSpectra.C:79
 AddTaskHJetSpectra.C:80
 AddTaskHJetSpectra.C:81
 AddTaskHJetSpectra.C:82
 AddTaskHJetSpectra.C:83
 AddTaskHJetSpectra.C:84
 AddTaskHJetSpectra.C:85
 AddTaskHJetSpectra.C:86
 AddTaskHJetSpectra.C:87
 AddTaskHJetSpectra.C:88
 AddTaskHJetSpectra.C:89
 AddTaskHJetSpectra.C:90
 AddTaskHJetSpectra.C:91
 AddTaskHJetSpectra.C:92
 AddTaskHJetSpectra.C:93
 AddTaskHJetSpectra.C:94
 AddTaskHJetSpectra.C:95
 AddTaskHJetSpectra.C:96
 AddTaskHJetSpectra.C:97
 AddTaskHJetSpectra.C:98
 AddTaskHJetSpectra.C:99
 AddTaskHJetSpectra.C:100
 AddTaskHJetSpectra.C:101
 AddTaskHJetSpectra.C:102
 AddTaskHJetSpectra.C:103
 AddTaskHJetSpectra.C:104
 AddTaskHJetSpectra.C:105
 AddTaskHJetSpectra.C:106
 AddTaskHJetSpectra.C:107
 AddTaskHJetSpectra.C:108
 AddTaskHJetSpectra.C:109
 AddTaskHJetSpectra.C:110
 AddTaskHJetSpectra.C:111
 AddTaskHJetSpectra.C:112
 AddTaskHJetSpectra.C:113
 AddTaskHJetSpectra.C:114
 AddTaskHJetSpectra.C:115
 AddTaskHJetSpectra.C:116
 AddTaskHJetSpectra.C:117
 AddTaskHJetSpectra.C:118
 AddTaskHJetSpectra.C:119
 AddTaskHJetSpectra.C:120
 AddTaskHJetSpectra.C:121
 AddTaskHJetSpectra.C:122
 AddTaskHJetSpectra.C:123
 AddTaskHJetSpectra.C:124
 AddTaskHJetSpectra.C:125
 AddTaskHJetSpectra.C:126
 AddTaskHJetSpectra.C:127
 AddTaskHJetSpectra.C:128
 AddTaskHJetSpectra.C:129
 AddTaskHJetSpectra.C:130
 AddTaskHJetSpectra.C:131
 AddTaskHJetSpectra.C:132