1 AliAnalysisTaskEmcalDiJetAna* AddTaskEmcalDiJetAna(TString kTracksName = "PicoTracks",
2 TString kClusName = "caloClusterCorr",
4 Double_t ptminTrack = 0.15,
5 Double_t etminClus = 0.3,
7 TString trigClass = "",
8 const char *CentEst = "V0A",
9 Int_t pSel = AliVEvent::kINT7,
10 Int_t matchFullCh = AliAnalysisTaskEmcalDiJetBase::kNoMatching,
11 Double_t ptTrackBias = 0.,
12 Int_t corrType = AliAnalysisTaskEmcalDiJetBase::kCorrelateTwo,
15 Double_t scaleFact = 1.28
18 enum AlgoType {kKT, kANTIKT};
19 enum JetType {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
21 // #### Define manager and data container names
22 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
24 ::Error("AddTaskEmcalDiJet", "No analysis manager to connect to.");
28 // Check the analysis type using the event handlers connected to the analysis manager.
29 //==============================================================================
30 if (!mgr->GetInputEventHandler())
32 ::Error("AddTaskEmcalDiJet", "This task requires an input event handler");
36 // #### Add necessary jet finder tasks
37 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
39 AliEmcalJetTask* jetFinderTaskFull = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kFULLJETS, ptminTrack, etminClus,0.005,1,"Jet",1.);
40 AliEmcalJetTask* jetFinderTaskCharged = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,1,"Jet",1.);
41 jetFinderTaskFull->SelectCollisionCandidates(AliVEvent::kAny);
42 jetFinderTaskCharged->SelectCollisionCandidates(AliVEvent::kAny);
45 TString strJetsFull = jetFinderTaskFull->GetName();
46 TString strJetsCh = jetFinderTaskCharged->GetName();
48 // Add kt jet finder and rho task in case we want background subtraction
49 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
50 AliEmcalJetTask *jetFinderKt;
51 AliEmcalJetTask *jetFinderAKt;
52 AliAnalysisTaskRhoSparse *rhoTask;
54 jetFinderKt = AddTaskEmcalJet(kTracksName, kClusName, kKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,1,"Jet",0.);
55 jetFinderAKt = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus,0.005,1,"Jet",1.);
56 jetFinderKt->SelectCollisionCandidates(AliVEvent::kAny);
57 jetFinderAKt->SelectCollisionCandidates(AliVEvent::kAny);
59 TF1 *fScale = new TF1("fScale","[0]",0.,100.);
60 fScale->SetParameter(0,scaleFact);
61 TString rhoSparseName = Form("RhoSparseR%03d",(int)(100*R));
62 rhoTask = AddTaskRhoSparse(jetFinderKt->GetName(),
63 jetFinderAKt->GetName(),
78 rhoTask->SetCentralityEstimator(CentEst);
81 TString wagonName = Form("DiJet_%s_%s_Rho%dTC%sMatch%dHadTrig%d",strJetsFull.Data(),strJetsCh.Data(),rhoType,trigClass.Data(),matchFullCh,(Int_t)(ptTrackBias));
83 //Configure DiJet task
84 AliAnalysisTaskEmcalDiJetAna *taskDiJet = NULL;
85 taskDiJet = new AliAnalysisTaskEmcalDiJetAna(wagonName.Data());
87 taskDiJet->SetUseAliAnaUtils(kTRUE);
88 taskDiJet->SetVzRange(-10.,10.);
89 taskDiJet->SetTriggerClass(trigClass.Data());
92 taskDiJet->SetIsPythia(kTRUE);
93 taskDiJet->SetDoFullFull(kTRUE);
95 taskDiJet->SetJetCorrelationType(corrType);
98 Printf("strJetsFull: %s",strJetsFull.Data());
99 Printf("strJetsCh: %s",strJetsCh.Data());
101 taskDiJet->AddParticleContainer(kTracksName.Data());
102 taskDiJet->AddClusterContainer(kClusName.Data());
104 taskDiJet->SetContainerFull(0);
105 taskDiJet->SetContainerCharged(1);
106 taskDiJet->AddJetContainer(strJetsFull.Data(),"EMCAL",R);
107 taskDiJet->AddJetContainer(strJetsCh.Data(),"TPC",R);
109 taskDiJet->SetZLeadingCut(0.98,0.98,0);
110 taskDiJet->SetNEFCut(0.,nefCut,0);
112 for(Int_t i=0; i<2; i++) {
113 taskDiJet->SetPercAreaCut(0.6, i);
114 taskDiJet->SetPtBiasJetTrack(ptTrackBias,i);
117 taskDiJet->SetRhoType(rhoType);
119 taskDiJet->SetRhoName(rhoTask->GetOutRhoScaledName(),0);
120 taskDiJet->SetRhoName(rhoTask->GetOutRhoName(),1);
123 taskDiJet->SetCentralityEstimator(CentEst);
124 taskDiJet->SetCentRange(0.,100.);
125 taskDiJet->SetNCentBins(nCentBins);
127 taskDiJet->SelectCollisionCandidates(pSel);
129 taskDiJet->SetFullChargedMatchingType(matchFullCh);
131 taskDiJet->SetDoChargedCharged(kTRUE);
132 taskDiJet->SetDoFullCharged(kTRUE);
133 taskDiJet->SetMatchFullCharged(kFALSE);
135 mgr->AddTask(taskDiJet);
138 mgr->ConnectInput (taskDiJet, 0, mgr->GetCommonInputContainer() );
141 AliAnalysisDataContainer *coutput1 = 0x0;
143 TString contName(wagonName);
144 contName += "_histos";
146 // TString outputfile = Form("%s:%s",AliAnalysisManager::GetCommonFileName(),wagonName.Data());
147 TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
149 coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
151 mgr->ConnectOutput(taskDiJet,1,coutput1);