]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/macros/AddTaskChargedJetsPA.C
Change trigger selection logic to include overlaps between J1 and J2 (from Marta)
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskChargedJetsPA.C
index 58b9e628359a10fc85bb7586303b37ee7613361b..73e77731fa1e720459a29913996dc944570a56d9 100644 (file)
@@ -5,19 +5,22 @@ AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA(
   Int_t               ptHardBin               = -1,
   Double_t            randomConeR             = 0.4,
   Double_t            trackBgrdConeR          = 0.6,
+  const char*         containerSuffix         = "",
   const char*         usedTracks              = "PicoTracks",
   const char*         centralityType          = "V0A",
   Double_t            trackEtaWindow          = 0.9,
-  Double_t            vertexWindow            = 10.0,
-  Double_t            vertexMaxR              = 1.0,
-  Double_t            minJetPt                = 5.0, // signal jet min pt
+  Double_t            minJetPt                = 0.15, // signal jet min pt
   Double_t            minBackgroundJetPt      = 0.0, // background jet min pt
   Double_t            dijetLeadingMinPt       = 10.0,
   Double_t            dijetMaxAngleDev        = 10.0,
   Int_t               numberOfPtHardBins      = 0,
-  const char*         fileEtaCorrectionFactors= "alien:///alice/cern.ch/user/r/rhaake/pA/EtaCorrectionFactors.root",
   const char*         externalMacro           = NULL,
-  Bool_t              isEMCalTrain            = kTRUE
+  Bool_t              useVertexCut            = kTRUE,
+  Bool_t              usePileUpCut            = kTRUE,
+  Bool_t              isEMCalTrain            = kFALSE,
+  Bool_t              calculateExternalRho    = kFALSE,
+  Bool_t              analyzeDeprecatedBackgrounds = kTRUE,
+  Int_t               numberOfCentralityBins  = 20
 )
 {
   // #### Detect the demanded trigger with its readable name
@@ -45,31 +48,87 @@ AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA(
   }
 
   TString stringPtHard("");
+  TString containerNameSuffix("");
+
   if (ptHardBin!=-1)
     stringPtHard = Form("_PtHard_%d",ptHardBin);
+  if (strcmp(containerSuffix,""))
+    containerNameSuffix = Form("_%s", containerSuffix);
+
   TString myContName("");
   if(isMC)
-    myContName = Form("AnalysisR0%2.0f_%s_MC%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
+    myContName = Form("AnalysisR0%2.0f_%s_MC%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
   else
-    myContName = Form("AnalysisR0%2.0f_%s%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
+    myContName = Form("AnalysisR0%2.0f_%s%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
 
   // #### Add necessary jet finder tasks
   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt
   AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,jetRadius,1,0.150,0.300); // kt
 
+//  jetFinderTask->SetRecombSheme(0);
+//  jetFinderTaskKT->SetRecombSheme(0);
+
+  if(jetRadius < 0.1)
+  {
+    jetFinderTask->SetMinJetArea(0.0);
+    jetFinderTaskKT->SetMinJetArea(0.0);
+    jetFinderTask->SetMinJetPt(0.15);
+    jetFinderTaskKT->SetMinJetPt(0.15);
+    jetFinderTask->SetGhostArea(0.001);
+    jetFinderTaskKT->SetGhostArea(0.001);
+  }
+
+  if(minBackgroundJetPt == -1.0)
+  {
+    if(analyzeDeprecatedBackgrounds)
+      minBackgroundJetPt = 0.0;
+    else
+      minBackgroundJetPt = 0.15;
+  }
+
+
   jetFinderTaskKT->SetMinJetPt(minBackgroundJetPt);
+
+  // #### Define extern rho task
+  if(calculateExternalRho)
+  {
+    TString myRhoName("");
+    if(isMC)
+      myRhoName = Form("RhoR0%2.0f_%s_MC%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
+    else
+      myRhoName = Form("RhoR0%2.0f_%s%s",jetRadius*100,triggerName.Data(), stringPtHard.Data());
+
+    contRhoHistos = manager->CreateContainer(myRhoName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
+    AliAnalysisTaskRhoSparse *rhotask = new AliAnalysisTaskRhoSparse(myRhoName.Data(), kTRUE);
+    rhotask->SetAnaType(AliAnalysisTaskEmcal::kTPC);
+    rhotask->SetJetsName(jetFinderTaskKT->GetName());
+    rhotask->SetSigJetsName(jetFinderTask->GetName());
+    rhotask->SetTracksName(usedTracks);
+    rhotask->SetRhoName(myRhoName.Data());
+    rhotask->SetJetAreaCut(0);
+    rhotask->SetJetPtCut(0.150);
+    rhotask->SetJetRadius(jetRadius);
+    rhotask->SetRhoCMS(kTRUE);
+    rhotask->SelectCollisionCandidates(trigger);
+    manager->AddTask(rhotask);
+    manager->ConnectInput(rhotask, 0, manager->GetCommonInputContainer());
+    manager->ConnectOutput(rhotask, 1, contRhoHistos);
+
+  }
+
   // #### Define analysis task
   AliAnalysisTaskChargedJetsPA *task = NULL;
   contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
   task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName());
 
   // #### Task preferences
-  task->SetAcceptanceWindows(trackEtaWindow, vertexWindow, vertexMaxR, jetRadius, jetRadius);
+  task->SetAcceptanceWindows(trackEtaWindow, jetRadius, jetRadius);
   task->SetAnalyzeQA(kTRUE);
   task->SetAnalyzeBackground(kTRUE);
-  task->SetAnalyzeDeprecatedBackgrounds(kTRUE);
-  
+  task->SetAnalyzeDeprecatedBackgrounds(analyzeDeprecatedBackgrounds);
+  task->SetUsePileUpCut(usePileUpCut);
+  task->SetUseDefaultVertexCut(useVertexCut);
   task->SetSignalJetMinPt(minJetPt);
   task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi());
   task->SetDijetLeadingMinPt(dijetLeadingMinPt);
@@ -79,7 +138,10 @@ AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA(
   task->SetTRBackgroundConeRadius(trackBgrdConeR);
   task->SelectCollisionCandidates(trigger);
   task->SetCentralityType(centralityType);
+  task->SetNumberOfCentralityBins(numberOfCentralityBins);
   task->SetUsePtHardBin(ptHardBin);
+  if(calculateExternalRho)
+    task->SetExternalRhoTaskName(myRhoName.Data());
 
   if(numberOfPtHardBins)
     task->SetNumberOfPtHardBins(numberOfPtHardBins);