]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskChargedJetsPA.C
Removing printout (Davide)
[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   Int_t               ptHardBin               = -1,
6   Double_t            randomConeR             = 0.4,
7   Double_t            trackBgrdConeR          = 0.6,
8   const char*         containerSuffix         = "",
9   const char*         usedTracks              = "PicoTracks",
10   const char*         centralityType          = "V0A",
11   Double_t            trackEtaWindow          = 0.9,
12   Double_t            minJetPt                = 5.0, // signal jet min pt
13   Double_t            minBackgroundJetPt      = 0.0, // background jet min pt
14   Double_t            dijetLeadingMinPt       = 10.0,
15   Double_t            dijetMaxAngleDev        = 10.0,
16   Int_t               numberOfPtHardBins      = 0,
17   const char*         externalMacro           = NULL,
18   Bool_t              useVertexCut            = kTRUE,
19   Bool_t              usePileUpCut            = kTRUE,
20   Bool_t              isEMCalTrain            = kFALSE,
21   Bool_t              calculateExternalRho    = kTRUE,
22   Bool_t              analyzeDeprecatedBackgrounds = kTRUE,
23   Int_t               numberOfCentralityBins  = 20,
24   const char*         externalRhoName         = "ExternalRhoTask",
25   Double_t            ktJetRadius             = 0.4,
26   Double_t            areaPercentage          = 0.6,
27 )
28 {
29   // #### Detect the demanded trigger with its readable name
30   TString triggerName(Form("Trigger_%i", trigger));
31   if (trigger == AliVEvent::kAnyINT)
32     triggerName = "kAnyINT";
33   else if (trigger == AliVEvent::kAny)
34     triggerName = "kAny";
35   else if(trigger == AliVEvent::kINT7)
36     triggerName = "kINT7";
37   else if(trigger == AliVEvent::kMB)
38     triggerName = "kMB";
39   else if(trigger == AliVEvent::kEMC7)
40     triggerName = "kEMC7";
41   else if(trigger == AliVEvent::kEMCEJE)
42     triggerName = "kEMCEJE";
43   else if(trigger == AliVEvent::kEMCEGA)
44     triggerName = "kEMCEGA";
45
46   // #### Define manager and data container names
47   AliAnalysisManager *manager = AliAnalysisManager::GetAnalysisManager();
48   if (!manager) {
49     ::Error("AddTaskChargedJetsPA", "No analysis manager to connect to.");
50     return NULL;
51   }
52
53   TString stringPtHard("");
54   TString containerNameSuffix("");
55
56   if (ptHardBin!=-1)
57     stringPtHard = Form("_PtHard_%d",ptHardBin);
58   if (strcmp(containerSuffix,""))
59     containerNameSuffix = Form("_%s", containerSuffix);
60
61   TString myContName("");
62   if(isMC)
63     myContName = Form("AnalysisR0%2.0f_%s_MC%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
64   else
65     myContName = Form("AnalysisR0%2.0f_%s%s%s", jetRadius*100, triggerName.Data(), stringPtHard.Data(), containerNameSuffix.Data());
66
67   // #### Add necessary jet finder tasks
68   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
69   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,"",1,jetRadius,1,0.150,0.300); // anti-kt
70   AliEmcalJetTask* jetFinderTaskKT = AddTaskEmcalJet(usedTracks,"",0,ktJetRadius,1,0.150,0.300); // kt
71
72   if(jetRadius < 0.1)
73   {
74     jetFinderTask->SetMinJetArea(0.0);
75     jetFinderTaskKT->SetMinJetArea(0.0);
76     jetFinderTask->SetMinJetPt(0.15);
77     jetFinderTaskKT->SetMinJetPt(0.15);
78     jetFinderTask->SetGhostArea(0.001);
79     jetFinderTaskKT->SetGhostArea(0.001);
80   }
81
82   if(minBackgroundJetPt == -1.0)
83   {
84     if(analyzeDeprecatedBackgrounds)
85       minBackgroundJetPt = 0.0;
86     else
87       minBackgroundJetPt = 0.15;
88   }
89
90
91   jetFinderTaskKT->SetMinJetPt(minBackgroundJetPt);
92
93   // #### Define extern rho task
94   if(calculateExternalRho)
95   {
96     TString myRhoName(externalRhoName);
97
98     AliEmcalJetTask* jetFinderRho = AddTaskEmcalJet(usedTracks,"",1,0.4,1,0.150,0.300); // anti-kt
99     AliEmcalJetTask* jetFinderRhoKT = AddTaskEmcalJet(usedTracks,"",0,0.4,1,0.150,0.300); // kt
100     jetFinderRhoKT->SetMinJetPt(0);
101
102     gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
103     AliAnalysisTaskRhoSparse* rhotask = AddTaskRhoSparse(jetFinderRhoKT->GetName(), NULL, usedTracks, "", myRhoName.Data(), 0.4,"TPC", 0., 5., 0, 0,2,kFALSE,myRhoName.Data(),kTRUE);
104   }
105
106   // #### Define analysis task
107   AliAnalysisTaskChargedJetsPA *task = NULL;
108   contHistos = manager->CreateContainer(myContName.Data(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:ChargedJetsPA", AliAnalysisManager::GetCommonFileName()));
109   task = new AliAnalysisTaskChargedJetsPA(Form("AnalysisPA_%s_%s", jetFinderTask->GetName(), triggerName.Data()), usedTracks, jetFinderTask->GetName(),jetFinderTaskKT->GetName());
110
111   // #### Task preferences
112   task->SetAcceptanceEta(-trackEtaWindow,+trackEtaWindow);
113   task->SetAcceptanceJetEta(-trackEtaWindow+jetRadius,+trackEtaWindow-jetRadius);
114   task->SetSignalJetRadius(jetRadius);
115   task->SetBackgroundJetRadius(jetRadius);
116   task->SetAnalyzeQA(kTRUE);
117   task->SetAnalyzeBackground(kTRUE);
118   task->SetAnalyzeDeprecatedBackgrounds(analyzeDeprecatedBackgrounds);
119   task->SetUsePileUpCut(usePileUpCut);
120   task->SetUseDefaultVertexCut(useVertexCut);
121   task->SetSignalJetMinPt(minJetPt);
122   task->SetSignalJetMinArea(areaPercentage*jetRadius*jetRadius*TMath::Pi());
123   task->SetDijetLeadingMinPt(dijetLeadingMinPt);
124   task->SetDijetMaxAngleDeviation(dijetMaxAngleDev);
125   task->SetRandConeRadius(randomConeR);
126   task->SetBackgroundJetMinPt(minBackgroundJetPt);
127   task->SetTRBackgroundConeRadius(trackBgrdConeR);
128   task->SelectCollisionCandidates(trigger);
129   task->SetCentralityType(centralityType);
130   task->SetNumberOfCentralityBins(numberOfCentralityBins);
131   task->SetUsePtHardBin(ptHardBin);
132   if(calculateExternalRho)
133     task->SetExternalRhoTaskName(myRhoName.Data());
134
135   if(numberOfPtHardBins)
136     task->SetNumberOfPtHardBins(numberOfPtHardBins);
137
138   // #### Add analysis task
139   manager->AddTask(task);
140   manager->ConnectInput(task, 0, manager->GetCommonInputContainer());
141   manager->ConnectOutput(task, 1, contHistos);
142
143   if(isEMCalTrain)
144     RequestMemory(task,200*1024);
145
146   // #### Do some nasty piggybacking on demand
147   if (externalMacro)
148     gROOT->Macro(externalMacro);
149
150   return task;
151 }