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