3 AliAnalysisTaskEmcalJetSpectraMECpA* AddTaskEmcalJetSpectraMECpA(
4 const char *outfilename = "AnalysisOutput.root",
5 UInt_t type = AliAnalysisTaskEmcal::kTPC,
6 const char *nRhosCh = "rhoCh",
7 const char *nRhosChEm = "rhoChEm",
8 const char *nRhosEm = "rhoEm",
10 const Double_t radius = 0.2,
11 const Double_t minPhi = 1.8,
12 const Double_t maxPhi = 2.74,
13 const Double_t minEta = -0.3,
14 const Double_t maxEta = 0.3,
15 const char* usedTracks = "PicoTracks",
16 const char* outClusName = "CaloClustersCorr",
17 const Double_t minTrackPt = 0.15,
18 const Double_t minClusterPt = 0.30,
19 const char *CentEst = "V0A"
22 // Get the pointer to the existing analysis manager via the static access method.
23 //==============================================================================
24 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
27 ::Error("AddTasEmcalJetSpectraMECpA", "No analysis manager to connect to.");
31 // Check the analysis type using the event handlers connected to the analysis manager.
32 //==============================================================================
33 if (!mgr->GetInputEventHandler())
35 ::Error("AddTaskEmcalJetSpectraMECpA", "This task requires an input event handler");
39 //Run the jet finder and rho tasks first
41 // Some constants for the jet finders
43 const Int_t cANTIKT = 1;
44 const Int_t cFULLJETS = 0;
45 const Int_t cCHARGEDJETS = 1;
46 const Int_t cNEUTRALJETS = 2;
48 float AreaCut = 0.6*radius*radius*TMath::Pi();
50 sfunc=new TF1("sfunc","[0]*x*x+[1]*x+[2]",-1,100);
51 sfunc->SetParameter(0,0.0);
52 sfunc->SetParameter(1,0.0);
53 sfunc->SetParameter(2,1.5);
56 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
57 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRho.C");
62 TString scaledname(Form("%s_Scaled", nRhosCh));
65 if(!(usedTracks=="")){
66 cout << "USEDTRACKS EXISTS" << usedTracks <<endl;
67 AliEmcalJetTask* jetFinderTaskChBack = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt);
69 AliEmcalJetTask* jetFinderTaskChEmBack = AddTaskEmcalJet(usedTracks,outClusName,cKT,radius,cFULLJETS,minTrackPt, minClusterPt);
71 AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,radius, cFULLJETS,minTrackPt,minClusterPt);
73 AliAnalysisTaskRho *rhochtask = AddTaskRho(jetFinderTaskChBack->GetName(),usedTracks,outClusName,nRhosCh,radius,0,0.01,0,sfunc,2,kTRUE,nRhosCh);
74 rhochtask->SetCentralityEstimator(CentEst);
76 AliAnalysisTaskRho *rhochemtask = AddTaskRho(jetFinderTaskChEmBack->GetName(),usedTracks,outClusName,nRhosChEm,radius,0,0.01,0,0,1,kTRUE,nRhosChEm);
77 rhochemtask->SetCentralityEstimator(CentEst);
79 //nJets=jetFinderTask->GetName();
80 nJets+=jetFinderTask->GetName();
82 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskDeltaPt.C");
84 TString deltaname(Form("DeltaPt_%s_Scaled", nRhosCh));
85 AliAnalysisTaskDeltaPt* deltapt = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",scaledname,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,deltaname);
86 deltapt->SetCentralityEstimator(CentEst);
88 TString emcdeltaname(Form("DeltaPt_%s", nRhosChEm));
89 AliAnalysisTaskDeltaPt* deltaptEMC = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",nRhosChEm,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,emcdeltaname);
90 deltapt->SetCentralityEstimator(CentEst);
92 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskScale.C");
95 Int_t radlabel=(Int_t)floor(radius*100+0.5);
96 Int_t mincluslabel=(Int_t)floor(minClusterPt*1000+0.5);
97 Int_t mintracklabel=(Int_t)floor(minTrackPt*1000+0.5);
98 TString scalename(Form("Scale_R0%d", radlabel));
100 AliAnalysisTaskScale* scaletask = AddTaskScale(usedTracks,outClusName,minTrackPt,minClusterPt,scalename);
101 scaletask->SetCentralityEstimator(CentEst);
102 scaletask->SetScaleFunction(sfunc);
107 cout << "Running non charged jet finders..." <<endl;
108 AliEmcalJetTask* jetFinderTaskEm = AddTaskEmcalJet("",outClusName,cANTIKT,radius,cNEUTRALJETS,minTrackPt,minClusterPt);
110 AliEmcalJetTask* jetFinderTaskEmBack = AddTaskEmcalJet("",outClusName,cKT,radius,cNEUTRALJETS,minTrackPt, minClusterPt);
112 cout << "Running non charged rho task..." <<endl;
114 AliAnalysisTaskRho *rhoemtask = AddTaskRho(jetFinderTaskEmBack->GetName(),usedTracks,outClusName,nRhosEm,radius,0,0.01,0,0,1,kTRUE,nRhosEm);
115 rhoemtask->SetCentralityEstimator(CentEst);
117 //if((!usedTracks=="")) nJets = jetFinderTaskEm->GetName();
118 if(usedTracks=="") nJets +=jetFinderTaskEm->GetName();
121 //-------------------------------------------------------
122 // Init the task and do settings
123 //-------------------------------------------------------
126 cout << "Ready to run my task..." << nJets <<endl;
128 TString name(Form("SpectraMECpA_%s", nJets.Data()));
129 AliAnalysisTaskEmcalJetSpectraMECpA *spectratask = new AliAnalysisTaskEmcalJetSpectraMECpA(name);
130 spectratask->SetJetsName(nJets.Data());
131 spectratask->SetCentralityEstimator(CentEst);
132 spectratask->SetAnaType(type);
133 if(!(usedTracks=="")) spectratask->SetRhoName(nRhosCh);
134 else spectratask->SetRhoName(nRhosEm);
135 spectratask->SetJetPhiLimits(minPhi,maxPhi);
136 spectratask->SetJetEtaLimits(minEta,maxEta);
137 spectratask->SetJetAreaCut(AreaCut);
138 spectratask->SetTracksName(usedTracks);
140 //-------------------------------------------------------
141 // Final settings, pass to manager and set the containers
142 //-------------------------------------------------------
144 mgr->AddTask(spectratask);
146 // Create containers for input/output
147 mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer() );
148 AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name,
150 AliAnalysisManager::kOutputContainer,
152 mgr->ConnectOutput(spectratask,1,cospectra);