]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskEmcalDiJetAna.C
From Chris
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalDiJetAna.C
CommitLineData
3773435b 1Double_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];
4
5 TF1 *f0 = new TF1("f0","pol0",0,trans);
6 TF1 *f2 = new TF1("f2","pol2",trans,100);
7
8 Double_t fitval = 0.;
9 if(x[0]<par[0])
10 fitval = par[1];
11 else
12 fitval = par[2]+x[0]*par[3]+x[0]*x[0]*par[4];
13
14 return fitval;
15
16}
17
18AliAnalysisTaskEmcalDiJetAna* AddTaskEmcalDiJetAna(TString kTracksName = "PicoTracks",
19 TString kClusName = "caloClusterCorr",
20 Double_t R = 0.4,
21 Double_t ptminTrack = 0.15,
22 Double_t etminClus = 0.3,
23 Int_t rhoType = 0,
24 TString trigClass = "",
25 const char *CentEst = "V0A",
26 Int_t pSel = AliVEvent::kINT7,
bb84b374 27 Int_t matchFullCh = AliAnalysisTaskEmcalDiJetBase::kNoMatching,
4bd08270 28 Double_t ptTrackBias = 0.,
e50460de 29 Int_t corrType = AliAnalysisTaskEmcalDiJetBase::kCorrelateTwo,
30 Float_t nefCut = 0.95
3773435b 31 ) {
32
33 enum AlgoType {kKT, kANTIKT};
34 enum JetType {kFULLJETS, kCHARGEDJETS, kNEUTRALJETS};
35
36 // #### Define manager and data container names
37 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
38 if (!mgr) {
39 ::Error("AddTaskEmcalDiJet", "No analysis manager to connect to.");
40 return NULL;
41 }
42
43 // Check the analysis type using the event handlers connected to the analysis manager.
44 //==============================================================================
45 if (!mgr->GetInputEventHandler())
46 {
47 ::Error("AddTaskEmcalDiJet", "This task requires an input event handler");
48 return NULL;
49 }
50
51 // #### Add necessary jet finder tasks
52 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
53
54 AliEmcalJetTask* jetFinderTaskFull = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kFULLJETS, ptminTrack, etminClus);
55 AliEmcalJetTask* jetFinderTaskCharged = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus);
56
57 TString strJetsFull = jetFinderTaskFull->GetName();
58 TString strJetsCh = jetFinderTaskCharged->GetName();
59
60 // Add kt jet finder and rho task in case we want background subtraction
61 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
62 AliEmcalJetTask *jetFinderKt;
63 AliEmcalJetTask *jetFinderAKt;
64 AliAnalysisTaskRhoSparse *rhoTask;
65 if(rhoType==1) {
66 jetFinderKt = AddTaskEmcalJet(kTracksName, kClusName, kKT, R, kCHARGEDJETS, ptminTrack, etminClus);
67 jetFinderKt->SetMinJetPt(0.);
68 jetFinderAKt = AddTaskEmcalJet(kTracksName, kClusName, kANTIKT, R, kCHARGEDJETS, ptminTrack, etminClus);
69
70 TF1 *fScale = new TF1("fScale","1.42",0.,100.);
71 /*
72 TF1 *fScale = new TF1("fit",fitf,0,100,5);
73 fScale->SetParameters(60.,1.41363e+00,7.95329e-01,1.95281e-02,-1.55196e-04);
74 */
9e5eee5d 75 TString rhoSparseName = Form("RhoSparseR%03d",(int)(100*R));
76 rhoTask = AddTaskRhoSparse(jetFinderKt->GetName(),
3773435b 77 jetFinderAKt->GetName(),
9e5eee5d 78 kTracksName.Data(),
79 kClusName.Data(),
80 rhoSparseName.Data(),
3773435b 81 R,
9e5eee5d 82 "TPC",
3773435b 83 0.01,
84 0.15,
85 0,
86 fScale,
87 0,
88 kTRUE,
9e5eee5d 89 rhoSparseName.Data(),
3773435b 90 kTRUE
91 );
92 rhoTask->SetCentralityEstimator(CentEst);
93
94 }
bb84b374 95 TString wagonName = Form("DiJet_%s_%s_Rho%dTC%sMatch%dHadTrig%d",strJetsFull.Data(),strJetsCh.Data(),rhoType,trigClass.Data(),matchFullCh,(Int_t)(ptTrackBias));
3773435b 96
97 //Configure DiJet task
98 AliAnalysisTaskEmcalDiJetAna *taskDiJet = NULL;
99 taskDiJet = new AliAnalysisTaskEmcalDiJetAna(wagonName.Data());
100
4bd08270 101 taskDiJet->SetTriggerClass(trigClass.Data());
102 if(ptminTrack==0.) {
103 taskDiJet->SetIsPythiaPtHard(kTRUE);
104 taskDiJet->SetDoFullFull(kTRUE);
105 }
c66364a6 106 taskDiJet->SetJetCorrelationType(corrType);
4bd08270 107
108
3773435b 109 Printf("strJetsFull: %s",strJetsFull.Data());
110 Printf("strJetsCh: %s",strJetsCh.Data());
111
112 taskDiJet->AddParticleContainer(kTracksName.Data());
113 taskDiJet->AddClusterContainer(kClusName.Data());
114
eca9052c 115 //taskDiJet->SetAnaType(AliAnalysisTaskEmcalDev::kEMCAL);
3773435b 116
117 taskDiJet->SetContainerFull(0);
118 taskDiJet->SetContainerCharged(1);
119 taskDiJet->AddJetContainer(strJetsFull.Data(),"EMCAL",R);
120 taskDiJet->AddJetContainer(strJetsCh.Data(),"TPC",R);
121
9e5eee5d 122 taskDiJet->SetZLeadingCut(0.98,0.98,0);
e50460de 123 taskDiJet->SetNEFCut(0.,nefCut,0);
9e5eee5d 124
3773435b 125 for(Int_t i=0; i<2; i++) {
eca9052c 126 taskDiJet->SetPercAreaCut(0.6, i);
bb84b374 127 taskDiJet->SetPtBiasJetTrack(ptTrackBias,i);
3773435b 128 }
129
130 taskDiJet->SetRhoType(rhoType);
131 if(rhoType==1) {
9e5eee5d 132 taskDiJet->SetRhoName(rhoTask->GetOutRhoScaledName(),0);
133 taskDiJet->SetRhoName(rhoTask->GetOutRhoName(),1);
3773435b 134 }
135
136 taskDiJet->SetCentralityEstimator(CentEst);
137
138 taskDiJet->SelectCollisionCandidates(pSel);
139
140 taskDiJet->SetFullChargedMatchingType(matchFullCh);
141
142 taskDiJet->SetDoChargedCharged(kTRUE);
143 taskDiJet->SetDoFullCharged(kTRUE);
144 taskDiJet->SetMatchFullCharged(kTRUE);
145
146
147 mgr->AddTask(taskDiJet);
148
149 //Connnect input
150 mgr->ConnectInput (taskDiJet, 0, mgr->GetCommonInputContainer() );
151
152 //Connect output
153 AliAnalysisDataContainer *coutput1 = 0x0;
154
6ab30d5f 155 TString contName(wagonName);
156 contName += "_histos";
3773435b 157
6ab30d5f 158 // TString outputfile = Form("%s:%s",AliAnalysisManager::GetCommonFileName(),wagonName.Data());
159 TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
3773435b 160
6ab30d5f 161 coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
3773435b 162
163 mgr->ConnectOutput(taskDiJet,1,coutput1);
164
165 return taskDiJet;
166}