]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskQualityAssurancePA.C
331c0abb23180ab6585d8bdd71083172289a3ae4
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskQualityAssurancePA.C
1 AliAnalysisTaskQualityAssurancePA* AddTaskQualityAssurancePA(
2   Double_t            jetRadius               = 0.4,
3   Int_t               trigger                 = AliVEvent::kINT7,
4   Bool_t              isMC                    = kFALSE,
5   const char*         usedTracks              = "PicoTracks",
6   const char*         usedClusters            = "CaloClustersCorr",
7   Double_t            trackEtaWindow          = 0.9,
8   Double_t            vertexWindow            = 10.0,
9   Double_t            vertexMaxR              = 1.0,
10   Double_t            minJetPt                = 5.0, // signal jet min pt
11   Int_t               numberOfPtHardBins      = 0,
12   TString             runNumbers              = "",
13   Bool_t              isEMCalTrain            = kFALSE
14 )
15 {
16   // #### Detect the demanded trigger with its readable name
17   TString triggerName(Form("Trigger_%i", trigger));
18   if (trigger == AliVEvent::kAnyINT)
19     triggerName = "kAnyINT";
20   else if (trigger == AliVEvent::kAny)
21     triggerName = "kAny";
22   else if(trigger == AliVEvent::kINT7)
23     triggerName = "kINT7";
24   else if(trigger == AliVEvent::kMB)
25     triggerName = "kMB";
26   else if(trigger == AliVEvent::kEMC7)
27     triggerName = "kEMC7";
28   else if(trigger == AliVEvent::kEMCEJE)
29     triggerName = "kEMCEJE";
30   else if(trigger == AliVEvent::kEMCEGA)
31     triggerName = "kEMCEGA";
32
33   // #### On EMCaltrain automatically determine the run numbers
34   if (gSystem->Getenv("ETRAIN_RUNNO") && runNumbers == "")
35     runNumbers = gSystem->Getenv("ETRAIN_RUNNO");
36
37
38   Int_t numberOfAnalyzedRuns = runNumbers.Tokenize(" ")->GetEntries();
39
40   ::Info("AddTaskQualityAssurancePA", Form("Running with event selection %s on N=%d runs (%s)",triggerName.Data(), numberOfAnalyzedRuns, runNumbers.Data()));
41
42   // #### Define manager and data container names
43
44   AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
45   if (!manager) {
46     ::Error("AddTaskQualityAssurancePA", "No analysis manager to connect to.");
47     return NULL;
48   }
49   TString myContName("");
50   if(isMC)
51     myContName = Form("QualityAssurancePA_R0%2.0f_%s_MC",jetRadius*100,triggerName.Data());
52   else
53     myContName = Form("QualityAssurancePA_R0%2.0f_%s",jetRadius*100,triggerName.Data());
54
55   // #### Add necessary jet finder tasks
56   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
57   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300);// anti-kt
58
59   // #### Define analysis task
60   AliAnalysisTaskQualityAssurancePA *task = NULL;
61   contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
62
63   task = new AliAnalysisTaskQualityAssurancePA(Form("QualityAssurancePA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, usedClusters, jetFinderTask->GetName());
64
65   if(isEMCalTrain)
66     RequestMemory(task,100*1024);
67
68   // #### Task preferences
69   task->SetAcceptanceWindows(trackEtaWindow, vertexWindow, vertexMaxR, jetRadius);
70   task->SetRunNumbers(runNumbers);
71   task->SetSignalJetMinPt(minJetPt);
72   task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi());
73   task->SelectCollisionCandidates(trigger);
74   if(numberOfPtHardBins)
75     task->SetNumberOfPtHardBins(numberOfPtHardBins);
76
77   // #### Add analysis task
78   manager->AddTask(task);
79   manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
80   manager->ConnectOutput(task, 1, contHistos);
81   return task;
82 }