]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskFullpAJets.C
Add protection against ghostArea==0
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskFullpAJets.C
1 AliAnalysisTaskFullpAJets *AddTaskFullpAJets(const char* proj_name, const Double_t jetRadius=0.4, Bool_t IsMC=kFALSE, const char* track_name="PicoTracks", const char* clus_name="caloClusters", const char* corrclus_name="caloClustersCorr", const char* mcpart_name="MCParticles", const char* Centrality_name="V0A", Double_t scaleFactor = 1.28, Double_t nefJetCut = 1.0, Bool_t doNEF=kFALSE, Bool_t signalTrackBias=kFALSE, Bool_t doTrackQA=kFALSE, Bool_t doClusterQA=kFALSE, Int_t calcRhoJet=0, Bool_t doNEFSignalOnly=kTRUE, Bool_t doVertexRCut=kTRUE, Bool_t isMCParticleLevel=kFALSE)
2 {
3     char *usedTracks = track_name;
4     char *usedClusters = clus_name;
5     char *outClusName = corrclus_name;
6     char *usedMCParticles = mcpart_name;
7     char *centEst = Centrality_name;
8     char *projName = proj_name;
9     const Double_t minTrackPt=0.15;
10     const Double_t minClusterPt=0.30;
11     const Double_t minMCPartPt=0.00;
12     Double_t scaleFac = scaleFactor; // Obtained from previous runs...
13     Double_t NEFSignalJetCut = nefJetCut; // Require signal jet to not exceed a Neutral Energy Fraction of this setting...
14     
15     // Some constants for the jet finders
16     const Int_t cKT=0;
17     const Int_t cANTIKT=1;
18     const Int_t cFULLJETS=0;
19     const Int_t cCHARGEDJETS=1;
20     const Int_t cNEUTRALJETS=2;
21
22     AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23     if (!mgr)
24     {
25         Error("AddTaskJetCommon","No analysis manager found.");
26         return 0;
27     }
28
29     // Determine the int of the jet radius for naming purposes
30     Int_t drjet=Int_t(100*jetRadius);
31     if (drjet%10 == 0)
32     {
33         drjet/=10;
34     }
35     
36     TString taskName = Form("AnalysisFullpAJetsR%d",drjet);
37     TString listName = Form("List%sR%d",projName,drjet);
38     TString fileName = Form("%s:FullpAJets", AliAnalysisManager::GetCommonFileName());
39     
40     // Jet finders (RECONSTRUCTED DATA)
41     TString tmpTaskName("");
42     AliEmcalJetTask* jetFinderTask = NULL;
43
44     gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
45     
46     // Add User Task
47     AliAnalysisTaskFullpAJets *task = new AliAnalysisTaskFullpAJets(taskName);
48
49     // Used for physics selection
50     task->SetUseAliAnaUtils(kTRUE);
51     task->DoVertexRCut(doVertexRCut);
52
53     if (IsMC == kTRUE)
54     {
55         task->SetTrackName(usedMCParticles);
56         task->SetClusterName("");
57         task->SetTrackPtCut(minMCPartPt);
58         task->SetClusterPtCut(minMCPartPt);
59         task->SetMCParticleLevel(isMCParticleLevel);
60         
61         // ########## CHARGED JETS ##########
62         jetFinderTask = AddTaskEmcalJet(usedMCParticles,"",cKT,jetRadius,cCHARGEDJETS,minMCPartPt,minMCPartPt,0.01,1,"Jet");
63         task->SetkTChargedJetName(jetFinderTask->GetName());
64         
65         jetFinderTask = AddTaskEmcalJet(usedMCParticles,"",cANTIKT,jetRadius,cCHARGEDJETS,minMCPartPt,minMCPartPt,0.01,1,"Jet");
66         task->SetAkTChargedJetName(jetFinderTask->GetName());
67         
68         // ########## FULL JETS ##########
69         // No Full jets or clusters are used if run over MCParticles!
70         task->SetkTFullJetName("");
71         task->SetAkTFullJetName("");
72     }
73     else
74     {
75         task->SetTrackName(usedTracks);
76         task->SetClusterName(outClusName);
77         task->SetTrackPtCut(minTrackPt);
78         task->SetClusterPtCut(minClusterPt);
79
80         // ########## CHARGED JETS ##########
81         jetFinderTask = AddTaskEmcalJet(usedTracks,"",cKT,jetRadius,cCHARGEDJETS,minTrackPt,minClusterPt,0.01,1,"Jet");
82         task->SetkTChargedJetName(jetFinderTask->GetName());
83         
84         jetFinderTask = AddTaskEmcalJet(usedTracks,"",cANTIKT,jetRadius,cCHARGEDJETS,minTrackPt,minClusterPt,0.01,1,"Jet");
85         task->SetAkTChargedJetName(jetFinderTask->GetName());
86         
87         // ########## FULL JETS ##########
88         jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cKT,jetRadius,cFULLJETS,minTrackPt,minClusterPt,0.01,1,"Jet");
89         task->SetkTFullJetName(jetFinderTask->GetName());
90
91         jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,jetRadius,cFULLJETS,minTrackPt,minClusterPt,0.01,1,"Jet");
92         task->SetAkTFullJetName(jetFinderTask->GetName());
93     }
94
95     task->SetRjet(drjet);
96     task->SetCentralityTag(centEst);
97     task->SetScaleFactor(scaleFac);
98     task->SelectCollisionCandidates(AliVEvent::kINT7);
99     task->SetNColl(7);
100     task->SetNEFSignalJetCut(NEFSignalJetCut);
101     task->DoNEFCalibration(doNEF);
102     task->DoNEFSignalOnly(doNEFSignalOnly);
103     task->SetJetChargeBias(signalTrackBias);
104     task->DoTrackQA(doTrackQA);
105     task->DoClusterQA(doClusterQA);
106     task->CalculateRhoJet(calcRhoJet);
107     
108     mgr->AddTask(task);
109
110     AliAnalysisDataContainer *coutput = mgr->CreateContainer(listName,TList::Class(),AliAnalysisManager::kOutputContainer,fileName);
111     mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
112     mgr->ConnectOutput(task,1,coutput);
113
114     return task;
115 }