1 Double_t fitf(Double_t *x, Double_t *par) {
2 //5 parameters, 0: transition from f0 to f2, 1: pol0, 2-4: pol2
3 Double_t trans = par[0];
5 TF1 *f0 = new TF1("f0","pol0",0,trans);
6 TF1 *f2 = new TF1("f2","pol2",trans,100);
12 fitval = par[2]+x[0]*par[3]+x[0]*x[0]*par[4];
18 AliAnalysisTaskEmcalDiJetAna* AddTaskEmcalDiJetAna(TString kTracksName = "PicoTracks",
19 TString kClusName = "caloClusterCorr",
21 Double_t ptminTrack = 0.15,
22 Double_t etminClus = 0.3,
24 TString trigClass = "",
25 const char *CentEst = "V0A",
26 Int_t pSel = AliVEvent::kINT7,
27 Int_t matchFullCh = AliAnalysisTaskEmcalDiJetBase::kNoMatching,
28 Double_t ptTrackBias = 0.,
29 Int_t corrType = AliAnalysisTaskEmcalDiJetBase::kCorrelateTwo
32 enum AlgoType {kKT, kANTIKT};
33 enum JetType {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
35 // #### Define manager and data container names
36 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
38 ::Error("AddTaskEmcalDiJet", "No analysis manager to connect to.");
42 // Check the analysis type using the event handlers connected to the analysis manager.
43 //==============================================================================
44 if (!mgr->GetInputEventHandler())
46 ::Error("AddTaskEmcalDiJet", "This task requires an input event handler");
50 // #### Add necessary jet finder tasks
51 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
53 AliEmcalJetTask* jetFinderTaskFull = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kFULLJETS, ptminTrack, etminClus);
54 AliEmcalJetTask* jetFinderTaskCharged = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus);
56 TString strJetsFull = jetFinderTaskFull->GetName();
57 TString strJetsCh = jetFinderTaskCharged->GetName();
59 // Add kt jet finder and rho task in case we want background subtraction
60 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
61 AliEmcalJetTask *jetFinderKt;
62 AliEmcalJetTask *jetFinderAKt;
63 AliAnalysisTaskRhoSparse *rhoTask;
65 jetFinderKt = AddTaskEmcalJet(kTracksName, kClusName, kKT, R, kCHARGEDJETS, ptminTrack, etminClus);
66 jetFinderKt->SetMinJetPt(0.);
67 jetFinderAKt = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus);
69 TF1 *fScale = new TF1("fScale","1.42",0.,100.);
71 TF1 *fScale = new TF1("fit",fitf,0,100,5);
72 fScale->SetParameters(60.,1.41363e+00,7.95329e-01,1.95281e-02,-1.55196e-04);
74 TString rhoSparseName = Form("RhoSparseR%03d",(int)(100*R));
75 rhoTask = AddTaskRhoSparse(jetFinderKt->GetName(),
76 jetFinderAKt->GetName(),
91 rhoTask->SetCentralityEstimator(CentEst);
94 TString wagonName = Form("DiJet_%s_%s_Rho%dTC%sMatch%dHadTrig%d",strJetsFull.Data(),strJetsCh.Data(),rhoType,trigClass.Data(),matchFullCh,(Int_t)(ptTrackBias));
96 //Configure DiJet task
97 AliAnalysisTaskEmcalDiJetAna *taskDiJet = NULL;
98 taskDiJet = new AliAnalysisTaskEmcalDiJetAna(wagonName.Data());
100 taskDiJet->SetTriggerClass(trigClass.Data());
102 taskDiJet->SetIsPythiaPtHard(kTRUE);
103 taskDiJet->SetDoFullFull(kTRUE);
105 taskDiJet->SetJetCorrelationType(corrType);
108 Printf("strJetsFull: %s",strJetsFull.Data());
109 Printf("strJetsCh: %s",strJetsCh.Data());
111 taskDiJet->AddParticleContainer(kTracksName.Data());
112 taskDiJet->AddClusterContainer(kClusName.Data());
114 //taskDiJet->SetAnaType(AliAnalysisTaskEmcalDev::kEMCAL);
116 taskDiJet->SetContainerFull(0);
117 taskDiJet->SetContainerCharged(1);
118 taskDiJet->AddJetContainer(strJetsFull.Data(),"EMCAL",R);
119 taskDiJet->AddJetContainer(strJetsCh.Data(),"TPC",R);
121 taskDiJet->SetZLeadingCut(0.98,0.98,0);
123 for(Int_t i=0; i<2; i++) {
124 taskDiJet->SetPercAreaCut(0.6, i);
125 taskDiJet->SetPtBiasJetTrack(ptTrackBias,i);
128 taskDiJet->SetRhoType(rhoType);
130 taskDiJet->SetRhoName(rhoTask->GetOutRhoScaledName(),0);
131 taskDiJet->SetRhoName(rhoTask->GetOutRhoName(),1);
134 taskDiJet->SetCentralityEstimator(CentEst);
136 taskDiJet->SelectCollisionCandidates(pSel);
138 taskDiJet->SetFullChargedMatchingType(matchFullCh);
140 taskDiJet->SetDoChargedCharged(kTRUE);
141 taskDiJet->SetDoFullCharged(kTRUE);
142 taskDiJet->SetMatchFullCharged(kTRUE);
145 mgr->AddTask(taskDiJet);
148 mgr->ConnectInput (taskDiJet, 0, mgr->GetCommonInputContainer() );
151 AliAnalysisDataContainer *coutput1 = 0x0;
153 TString contName(wagonName);
154 contName += "_histos";
156 // TString outputfile = Form("%s:%s",AliAnalysisManager::GetCommonFileName(),wagonName.Data());
157 TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
159 coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
161 mgr->ConnectOutput(taskDiJet,1,coutput1);