]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskChargedJetsPA.C
8886aa5ca837977c3d172ad1bd9453ee1db0735f
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskChargedJetsPA.C
1 AliAnalysisTaskChargedJetsPA* AddTaskChargedJetsPA(
2   Double_t            jetRadius               = 0.4,
3   Int_t               trigger                 = AliVEvent::kINT7,
4   Bool_t              isMC                    = kFALSE,
5   Double_t            randomConeR             = 0.4,
6   Double_t            trackBgrdConeR          = 0.6,
7   const char*         usedTracks              = "PicoTracks",
8   const char*         usedClusters            = "CaloClustersCorr",
9   Double_t            trackEtaWindow          = 0.9,
10   Double_t            vertexWindow            = 10.0,
11   Double_t            vertexMaxR              = 1.0,
12   Double_t            minJetPt                = 5.0, // signal jet min pt
13   Double_t            dijetLeadingMinPt       = 10.0,
14   Double_t            dijetMaxAngleDev        = 10.0,
15   Int_t               numberOfPtHardBins      = 0
16 )
17 {
18   // #### Detect the demanded trigger with its readable name
19   TString triggerName(Form("Trigger_%i", trigger));
20   if (trigger == AliVEvent::kAnyINT)
21     triggerName = "kAnyINT";
22   else if (trigger == AliVEvent::kAny)
23     triggerName = "kAny";
24   else if(trigger == AliVEvent::kINT7)
25     triggerName = "kINT7";
26   else if(trigger == AliVEvent::kMB)
27     triggerName = "kMB";
28   else if(trigger == AliVEvent::kEMC7)
29     triggerName = "kEMC7";
30   else if(trigger == AliVEvent::kEMCEJE)
31     triggerName = "kEMCEJE";
32   else if(trigger == AliVEvent::kEMCEGA)
33     triggerName = "kEMCEGA";
34
35   // #### Define manager and data container names
36   const char*         kFileName               = "ChargedJetsPA.root"; // hard coded
37   AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
38   if (!manager) {
39     ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to.");
40     return NULL;
41   }
42   TString myContName("");
43   if(isMC)
44     myContName = Form("AnalysisR0%2.0f_%s_MC",jetRadius*100,triggerName.Data());
45   else
46     myContName = Form("AnalysisR0%2.0f_%s",jetRadius*100,triggerName.Data());
47
48   // #### Add necessary jet finder tasks
49   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
50   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300);// anti-kt
51   AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,jetRadius,1,0.150,0.300); // kt
52
53   // #### Define analysis task
54   AliAnalysisTaskChargedJetsPA *task = NULL;
55   contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
56   task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, usedClusters, jetFinderTask->GetName(),jetFinderTaskKT->GetName());
57
58   // #### Task preferences
59   task->SetAcceptanceWindows(trackEtaWindow, vertexWindow, vertexMaxR, jetRadius, jetRadius);
60   task->SetSignalJetMinPt(minJetPt);
61   task->SetSignalJetMinArea(0.6*jetRadius*jetRadius*TMath::Pi());
62   task->SetDijetLeadingMinPt(dijetLeadingMinPt);
63   task->SetDijetMaxAngleDeviation(dijetMaxAngleDev);
64   task->SetRandConeRadius(randomConeR);
65   task->SetTrackBackgroundConeRadius(trackBgrdConeR);
66   task->SelectCollisionCandidates(trigger);
67   if(numberOfPtHardBins)
68     task->SetNumberOfPtHardBins(numberOfPtHardBins);
69
70   // #### Add analysis task
71   manager->AddTask(task);
72   manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
73   manager->ConnectOutput(task, 1, contHistos);
74   return task;
75 }