ROOT logo
AliAnalysisTaskQualityAssurancePA* AddTaskQualityAssurancePA(
  Double_t            jetRadius               = 0.4,
  Int_t               trigger                 = AliVEvent::kINT7,
  Bool_t              isMC                    = kFALSE,
  const char*         usedTracks              = "PicoTracks",
  const char*         usedClusters            = "CaloClustersCorr",
  Double_t            trackEtaWindow          = 0.9,
  Double_t            vertexWindow            = 10.0,
  Double_t            vertexMaxR              = 1.0,
  Double_t            minJetPt                = 5.0, // signal jet min pt
  Int_t               numberOfPtHardBins      = 0,
  TString             runNumbers              = "195344 195346 195351 195389 195390 195391 195478 195479 195480 195481 195482 195483",
  Bool_t              isEMCalTrain            = kTRUE
)
{
  // #### 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";

  // #### On EMCaltrain automatically determine the run numbers
  if (gSystem->Getenv("ETRAIN_RUNNO") && runNumbers == "")
    runNumbers = gSystem->Getenv("ETRAIN_RUNNO");


  Int_t numberOfAnalyzedRuns = runNumbers.Tokenize(" ")->GetEntries();

  ::Info("AddTaskQualityAssurancePA", Form("Running with event selection %s on N=%d runs (%s)",triggerName.Data(), numberOfAnalyzedRuns, runNumbers.Data()));

  // #### Define manager and data container names

  AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
  if (!manager) {
    ::Error("AddTaskQualityAssurancePA", "No analysis manager to connect to.");
    return NULL;
  }
  TString myContName("");
  if(isMC)
    myContName = Form("QualityAssurancePA_R0%2.0f_%s_MC",jetRadius*100,triggerName.Data());
  else
    myContName = Form("QualityAssurancePA_R0%2.0f_%s",jetRadius*100,triggerName.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

  // #### Define analysis task
  AliAnalysisTaskQualityAssurancePA *task = NULL;
  contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));

  task = new AliAnalysisTaskQualityAssurancePA(Form("QualityAssurancePA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, usedClusters, jetFinderTask->GetName());

  if(isEMCalTrain)
    RequestMemory(task,200*1024);

  // #### Task preferences
  task->SetAcceptanceWindows(trackEtaWindow, vertexWindow, vertexMaxR, jetRadius);
  task->SetRunNumbers(runNumbers);
  task->SetSignalJetMinPt(minJetPt);
  task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi());
  task->SelectCollisionCandidates(trigger);
  if(numberOfPtHardBins)
    task->SetNumberOfPtHardBins(numberOfPtHardBins);

  // #### Add analysis task
  manager->AddTask(task);

  manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
  manager->ConnectOutput(task, 1, contHistos);
  return task;
}
 AddTaskQualityAssurancePA.C:1
 AddTaskQualityAssurancePA.C:2
 AddTaskQualityAssurancePA.C:3
 AddTaskQualityAssurancePA.C:4
 AddTaskQualityAssurancePA.C:5
 AddTaskQualityAssurancePA.C:6
 AddTaskQualityAssurancePA.C:7
 AddTaskQualityAssurancePA.C:8
 AddTaskQualityAssurancePA.C:9
 AddTaskQualityAssurancePA.C:10
 AddTaskQualityAssurancePA.C:11
 AddTaskQualityAssurancePA.C:12
 AddTaskQualityAssurancePA.C:13
 AddTaskQualityAssurancePA.C:14
 AddTaskQualityAssurancePA.C:15
 AddTaskQualityAssurancePA.C:16
 AddTaskQualityAssurancePA.C:17
 AddTaskQualityAssurancePA.C:18
 AddTaskQualityAssurancePA.C:19
 AddTaskQualityAssurancePA.C:20
 AddTaskQualityAssurancePA.C:21
 AddTaskQualityAssurancePA.C:22
 AddTaskQualityAssurancePA.C:23
 AddTaskQualityAssurancePA.C:24
 AddTaskQualityAssurancePA.C:25
 AddTaskQualityAssurancePA.C:26
 AddTaskQualityAssurancePA.C:27
 AddTaskQualityAssurancePA.C:28
 AddTaskQualityAssurancePA.C:29
 AddTaskQualityAssurancePA.C:30
 AddTaskQualityAssurancePA.C:31
 AddTaskQualityAssurancePA.C:32
 AddTaskQualityAssurancePA.C:33
 AddTaskQualityAssurancePA.C:34
 AddTaskQualityAssurancePA.C:35
 AddTaskQualityAssurancePA.C:36
 AddTaskQualityAssurancePA.C:37
 AddTaskQualityAssurancePA.C:38
 AddTaskQualityAssurancePA.C:39
 AddTaskQualityAssurancePA.C:40
 AddTaskQualityAssurancePA.C:41
 AddTaskQualityAssurancePA.C:42
 AddTaskQualityAssurancePA.C:43
 AddTaskQualityAssurancePA.C:44
 AddTaskQualityAssurancePA.C:45
 AddTaskQualityAssurancePA.C:46
 AddTaskQualityAssurancePA.C:47
 AddTaskQualityAssurancePA.C:48
 AddTaskQualityAssurancePA.C:49
 AddTaskQualityAssurancePA.C:50
 AddTaskQualityAssurancePA.C:51
 AddTaskQualityAssurancePA.C:52
 AddTaskQualityAssurancePA.C:53
 AddTaskQualityAssurancePA.C:54
 AddTaskQualityAssurancePA.C:55
 AddTaskQualityAssurancePA.C:56
 AddTaskQualityAssurancePA.C:57
 AddTaskQualityAssurancePA.C:58
 AddTaskQualityAssurancePA.C:59
 AddTaskQualityAssurancePA.C:60
 AddTaskQualityAssurancePA.C:61
 AddTaskQualityAssurancePA.C:62
 AddTaskQualityAssurancePA.C:63
 AddTaskQualityAssurancePA.C:64
 AddTaskQualityAssurancePA.C:65
 AddTaskQualityAssurancePA.C:66
 AddTaskQualityAssurancePA.C:67
 AddTaskQualityAssurancePA.C:68
 AddTaskQualityAssurancePA.C:69
 AddTaskQualityAssurancePA.C:70
 AddTaskQualityAssurancePA.C:71
 AddTaskQualityAssurancePA.C:72
 AddTaskQualityAssurancePA.C:73
 AddTaskQualityAssurancePA.C:74
 AddTaskQualityAssurancePA.C:75
 AddTaskQualityAssurancePA.C:76
 AddTaskQualityAssurancePA.C:77
 AddTaskQualityAssurancePA.C:78
 AddTaskQualityAssurancePA.C:79
 AddTaskQualityAssurancePA.C:80
 AddTaskQualityAssurancePA.C:81
 AddTaskQualityAssurancePA.C:82
 AddTaskQualityAssurancePA.C:83
 AddTaskQualityAssurancePA.C:84