]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/Config_lowmasspp.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / Config_lowmasspp.C
Content-type: text/html ]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/Config_lowmasspp.C


500 - Internal Server Error

Malformed UTF-8 character (fatal) at (eval 5) line 1, <$fd> line 522.
CommitLineData
6e463db3 1
2void InitHistograms(AliDielectron *die, Int_t cutDefinition);
3void InitCF(AliDielectron* die, Int_t cutDefinition);
4
5void SetupCuts(AliDielectron *die, Int_t cutDefinition);
6
7AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition);
8AliDielectronPID *SetPIDcuts(Int_t cutDefinition);
9
10
11//start systematics
12TString names= ("Base;SPDboth;TPCshift;TOFtight;PhiVhard");
13
14
15 Bool_t kRot = 0;
16 Bool_t kMix = 1;
17
18TObjArray *arrNames=names.Tokenize(";");
19const Int_t nDie=arrNames->GetEntriesFast();
20
21AliDielectron* Config_lowmasspp(Int_t cutDefinition=1)
22{
23 //
24 // Setup the instance of AliDielectron
25 //
26
27 // create the actual framework object
28 TString name=Form("%02d",cutDefinition);
29 if (cutDefinition<arrNames->GetEntriesFast()){
30 name=arrNames->At(cutDefinition)->GetName();
31 }
32 AliDielectron *die =
33 new AliDielectron(Form("%s",name.Data()),
34 Form("Track cuts: %s",name.Data()));
35
36
37 if(kRot){
38 AliDielectronTrackRotator *rot = new AliDielectronTrackRotator;
39 rot->SetConeAnglePhi(TMath::Pi());
40 rot->SetIterations(10);
41 die->SetTrackRotator(rot);
42 }//kRot
43
44
45 if(kMix){
46 AliDielectronMixingHandler *mix = new AliDielectronMixingHandler;
47 mix->SetMixType(AliDielectronMixingHandler::kAll);
48 mix->AddVariable(AliDielectronVarManager::kZvPrim,"-10., -7.5, -5., -2.5 , 0., 2.5, 5., 7.5 , 10.");
49 mix->SetDepth(10);
50 die->SetMixingHandler(mix);
51 }//kMix
52
53
54 // set track cuts
55 SetupCuts(die,cutDefinition);
56
57
58
59 //
60 // histogram setup
61 // only if an AliDielectronHistos object is attached to the
62 // dielectron framework histograms will be filled
63 //
64
65 InitHistograms(die,cutDefinition);
66 InitCF(die,cutDefinition);
67
68
69 // eta correction
70// SetEtaCorrection();
71
72 return die;
73
74}
75
76//______________________________________________________________________________________
77void SetupCuts(AliDielectron *die, Int_t cutDefinition)
78{
79 //
80 // Setup the track cuts
81 //
82 //options
83 die->SetPreFilterAllSigns();
84
85 //pairing with TLorentzVector
86 die->SetUseKF(kFALSE);
87
88 //track cuts
89 die->GetTrackFilter().AddCuts(SetupESDtrackCuts(cutDefinition));
90 //pid cuts
91 die->GetTrackFilter().AddCuts(SetPIDcuts(cutDefinition));
92
93
94 if(cutDefinition >= 0){
95 AliDielectronTrackCuts *noconv=new AliDielectronTrackCuts("noConv","conversion tagging");
96 noconv->SetV0DaughterCut(AliPID::kElectron,kTRUE);
97 die->GetTrackFilter().AddCuts(noconv);
98
99 AliDielectronVarCuts *PhiV = new AliDielectronVarCuts("PhiV","PhiV");//mass and Phiv together
100 PhiV->AddCut(AliDielectronVarManager::kM, 0. , 0.15);
101 PhiV->AddCut(AliDielectronVarManager::kPhivPair, 2. , 3.2);
102 die->GetPairPreFilter().AddCuts(PhiV);
103
104
105 }
106
107
108 if(cutDefinition == 4){
109
110 AliDielectronVarCuts *PhiVhard = new AliDielectronVarCuts("PhiVhard","PhiVhard");//mass and PhiVhard together (hard PhiVhard)
111 PhiVhard->AddCut(AliDielectronVarManager::kM, 0. , 0.05);
112 PhiVhard->AddCut(AliDielectronVarManager::kPhivPair, 1.5 , 3.2);
113 die->GetPairPreFilter().AddCuts(PhiVhard);
114 }
115
116
117
118
119}
120//______________________________________________________________________________________
121//-----------------------------------pid------------------------------------------------
122
123AliDielectronPID *SetPIDcuts(Int_t cutDefinition){
124
125 AliDielectronPID *pid = new AliDielectronPID();
126
127 if(cutDefinition == 0 || cutDefinition == 1 || cutDefinition == 4){//TPC+TOF pT200
128 //stronger electron inclusion
129 pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);
130 pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);
131 //TOF
132 pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.,0.4, 5., kFALSE);
133 }//complete PID
134
135
136 if(cutDefinition == 2){//TPC+TOF pT200 shift in sigma_e (TPC)
137 //stronger electron inclusion
138 pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-2.,2.5,0.2,100.,kFALSE);
139 pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);
140 //TOF
141 pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-3.,3.,0.4, 5., kFALSE);
142 }//complete PID
143
144
145 if(cutDefinition == 3){//TPC+TOF pT200 tighter sigma_e (TOF)
146 //stronger electron inclusion
147 pid->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,100.,kFALSE);
148 pid->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-100.,4.,0.2,100.,kTRUE);
149 //TOF
150 pid->AddCut(AliDielectronPID::kTOF,AliPID::kElectron,-2.,2.,0.4, 5., kFALSE);
151 }//complete PID
152
153
154
155 return pid;
156
157}
158
159//______________________________________________________________________________________
160AliESDtrackCuts *SetupESDtrackCuts(Int_t cutDefinition)
161{
162
163 AliESDtrackCuts *fesdTrackCuts = new AliESDtrackCuts;
164
165
166 //global
167
168 fesdTrackCuts->SetPtRange( 0.2 , 100. );
169 fesdTrackCuts->SetAcceptKinkDaughters(kFALSE);
170 fesdTrackCuts->SetRequireSigmaToVertex(kFALSE);
171 fesdTrackCuts->SetDCAToVertex2D(kFALSE);
172 fesdTrackCuts->SetMaxDCAToVertexZ(3.);
173 fesdTrackCuts->SetMaxDCAToVertexXY(1.);
174 fesdTrackCuts->SetEtaRange( -0.8 , 0.8 );
175
176 //ITS
177 fesdTrackCuts->SetRequireITSRefit(kTRUE);
178 fesdTrackCuts->SetMinNClustersITS(3);
179 if(cutDefinition == 1)fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
180 else fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
181
182
183 //TPC
184 fesdTrackCuts->SetRequireTPCRefit(kTRUE);
185 fesdTrackCuts->SetMinNClustersTPC(80);
186 fesdTrackCuts->SetMinNCrossedRowsTPC(100);
187 fesdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.5);
188 fesdTrackCuts->SetMaxChi2PerClusterTPC(4);
189 return fesdTrackCuts;
190
191
192}
193
194//______________________________________________________________________________________
195void InitHistograms(AliDielectron *die, Int_t cutDefinition)
196{
197 //
198 // Initialise the histograms
199 //
200
201 //Setup histogram classes
202 AliDielectronHistos *histos=
203 new AliDielectronHistos(die->GetName(),
204 die->GetTitle());
205
206
207
208 //Initialise histogram classes
209 histos->SetReservedWords("Track;Pair");
210
211 //Event class
212 histos->AddClass("Event");
213
214
215 //Track classes
216 //to fill also track info from 2nd event loop until 2
217 for (Int_t i=0; i<2; ++i){
218 histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
219 }
220
221 //Pair classes
222 // to fill also mixed event histograms loop until 10
223
224 for (Int_t i=0; i<3; ++i){
225 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
226
227 }
228
229 if(kMix){
230 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(3))); //ME ++
231 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(4)));//ME -+
232 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(6)));//ME +-
233 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(7))); // ME --
234 }
235
236 if(kRot)histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(10)));//Rot
237
238
239 //add histograms to event class
240 histos->UserHistogram("Event","nEvents","Number of processed events after cuts;Number events",1,0,1,AliDielectronVarManager::kNevents);
241 histos->UserHistogram("Event","ZVertex","ZVertex;ZVertex/cm",480,-12.,12.,AliDielectronVarManager::kZvPrim);
242 histos->UserHistogram("Event","nESDTracks","ESD tracks;ESD tracks;Number events",100,0,200,AliDielectronVarManager::kTracks);
243 histos->UserHistogram("Event","Nacc","Number of accepted tracks;Number events",100,0,200,AliDielectronVarManager::kNacc);
244 histos->UserHistogram("Event","NVtxContrib","Number of Vertex Contributor;NVtx;Number events",100,0,100,AliDielectronVarManager::kNVtxContrib);
245
246
247 //add histograms to Track classes
248 histos->UserHistogram("Track","P","P;P [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPIn);
249 histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",500,0.,10.,AliDielectronVarManager::kPt);
250 histos->UserHistogram("Track","Eta","Eta; Eta ;#tracks",100,-1.,1.,AliDielectronVarManager::kEta);
251 histos->UserHistogram("Track","Phi","Phi; Phi ;#tracks",640,0.,6.4,AliDielectronVarManager::kPhi);
252
253
254 histos->UserHistogram("Track","Eta_phi","Eta vs Phi;Eta;Phi",100,-1.,1.,320,0.,6.4,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
255 histos->UserHistogram("Track","Eta_pt","Eta vs Pt;Eta;Pt",100,-1.,1.,500,0.,10.,AliDielectronVarManager::kEta,AliDielectronVarManager::kPt);
256