]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macros/ConfigJpsi2eeFilterPbPb.C
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macros / ConfigJpsi2eeFilterPbPb.C
CommitLineData
ffbede40 1void SetupTrackCutsDieleFilter(AliDielectron *diele, Bool_t isAOD);
2void SetupPairCutsDieleFilter(AliDielectron *diele, Bool_t isAOD);
3void SetupEventCutsDieleFilter(AliDielectron *diele, Int_t cutDefinition);
4
5void InitHistogramsDieleFilter(AliDielectron *diele);
6
7AliESDtrackCuts *SetupESDtrackCutsDieleFilter();
8
9
10AliDielectron* ConfigJpsi2eeFilter(Bool_t isAOD=kFALSE)
11{
12 //
13 // Setup the instance of AliDielectron
14 //
15
16 // create the actual framework object
17 TString name="trackQ+Pt>1.+65<dEdx<90&&MInv>2&&|Y|<0.9";
18 AliDielectron *diele = new AliDielectron(Form("%s",name.Data()),
19 Form("Track cuts: %s",name.Data()));
20
21 // cut setup
22 SetupEventCutsDieleFilter(diele);
23
24 SetupTrackCutsDieleFilter(diele, isAOD);
25 SetupPairCutsDieleFilter(diele, isAOD);
26
27 //
28 // QA histogram setup
29 //
30 InitHistogramsDieleFilter(diele, isAOD);
31
32 return diele;
33}
34
35//______________________________________________________________________________________
36void SetupEventCutsDieleFilter(AliDielectron *diele)
37{
38 //
39 // Setup the event cuts
40 //
41 AliDielectronVarCuts *vtxZ = new AliDielectronVarCuts("vtxZ","Vertex z cut");
42 vtxZ->AddCut(AliDielectronVarManager::kZvPrim,-15.,15.);
43 diele->GetEventFilter().AddCuts(vtxZ);
44}
45
46//______________________________________________________________________________________
47void SetupTrackCutsDieleFilter(AliDielectron *diele, Bool_t isAOD)
48{
49 //
50 // Setup the track cuts
51 //
52
53 //ESD quality cuts DielectronTrackCuts
54 if (!isAOD) {
55 diele->GetTrackFilter().AddCuts(SetupESDtrackCutsDieleFilter());
56 } else {
57 AliDielectronTrackCuts *trackCuts=new AliDielectronTrackCuts("trackCuts","trackCuts");
58 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
59 trackCuts->SetRequireTPCRefit(kTRUE);
60 trackCuts->SetRequireITSRefit(kTRUE);
61 diele->GetTrackFilter().AddCuts(trackCuts);
62 }
63
64 //Pt cut
65 AliDielectronVarCuts *pt = new AliDielectronVarCuts("Pt>.5+60<dEdx<100","Pt>1. && 65<dEdx<90");
66 pt->AddCut(AliDielectronVarManager::kPt,1.,1e30);
67 pt->AddCut(AliDielectronVarManager::kTPCsignal,65.,90.);
68
69 if (isAOD){
70 // TPC #clusteres cut
71 pt->AddCut(AliDielectronVarManager::kNclsTPC,90.,160.);
72// pt->AddCut(AliDielectronVarManager::kEta,-0.88,0.88);
73 //TODO: DCA cuts to be investigated!!!
74// pt->AddCut(AliDielectronVarManager::kImpactParXY,-1.,1.);
75// pt->AddCut(AliDielectronVarManager::kImpactParZ,-3.,3.);
76 }
77
78 diele->GetTrackFilter().AddCuts(pt);
79}
80
81//______________________________________________________________________________________
82void SetupPairCutsDieleFilter(AliDielectron *diele, Bool_t isAOD)
83{
84 //
85 // Setup the pair cuts
86 //
87
88
89 //Invarian mass selection
90 AliDielectronVarCuts *invMassCut=new AliDielectronVarCuts("InvMassY","2<M<4 && |Y|<0.9");
91 invMassCut->AddCut(AliDielectronVarManager::kM,2.,1e30);
92 invMassCut->AddCut(AliDielectronVarManager::kY,-0.9,0.9);
93
94// invMassCut->AddCut(AliDielectronVarManager::kPairType,1.);
95 diele->GetPairFilter().AddCuts(invMassCut);
96
97}
98
99//______________________________________________________________________________________
100AliESDtrackCuts *SetupESDtrackCutsDieleFilter()
101{
102 //
103 // Setup default AliESDtrackCuts
104 //
105 AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts;
106
107 esdTrackCuts->SetEtaRange( -0.9 , 0.9 );
108
109 esdTrackCuts->SetMaxDCAToVertexZ(3.0);
110 esdTrackCuts->SetMaxDCAToVertexXY(1.0);
111 esdTrackCuts->SetRequireTPCRefit(kTRUE);
112 esdTrackCuts->SetRequireITSRefit(kTRUE);
113 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
114 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
115
116 esdTrackCuts->SetMinNClustersTPC(100);
117 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
118
119 return esdTrackCuts;
120}
121
122
123//______________________________________________________________________________________
124void InitHistogramsDieleFilter(AliDielectron *diele, Bool_t isAOD)
125{
126 //
127 // Initialise the histograms
128 //
129
130//Setup histogram classes
131 AliDielectronHistos *histos=
132 new AliDielectronHistos(diele->GetName(),
133 diele->GetTitle());
134
135 //Initialise histogram classes
136 histos->SetReservedWords("Track;Pair");
137
138 histos->AddClass("Event");
139 //Track classes
140 //to fill also track info from 2nd event loop until 2
141 for (Int_t i=0; i<2; ++i){
142 histos->AddClass(Form("Track_%s",AliDielectron::TrackClassName(i)));
143 }
144
145 //Pair classes
146 // to fill also mixed event histograms loop until 10
147 for (Int_t i=0; i<3; ++i){
148 histos->AddClass(Form("Pair_%s",AliDielectron::PairClassName(i)));
149 }
150
151 //add histograms to event class
152 histos->UserHistogram("Event","VtxZ","Vertex Z;Z[cm]",300,-15.,15.,AliDielectronVarManager::kZvPrim);
153
154 //add histograms to Track classes
155 histos->UserHistogram("Track","Pt","Pt;Pt [GeV];#tracks",400,0,20.,AliDielectronVarManager::kPt);
156 histos->UserHistogram("Track","TPCnCls","Number of Clusters TPC;TPC number clusteres;#tracks",160,-0.5,159.5,AliDielectronVarManager::kNclsTPC);
157
158 histos->UserHistogram("Track","dXY","dXY;dXY [cm];#tracks",500,-1.,1.,AliDielectronVarManager::kImpactParXY);
159 histos->UserHistogram("Track","dZ","dZ;dZ [cm];#tracks",600,-3.,3.,AliDielectronVarManager::kImpactParZ);
160 histos->UserHistogram("Track","Eta_Phi","Eta Phi Map; Eta; Phi;#tracks",
161 100,-1,1,144,0,6.285,AliDielectronVarManager::kEta,AliDielectronVarManager::kPhi);
162
163 histos->UserHistogram("Track","dEdx_P","dEdx;P [GeV];TPC signal (arb units);#tracks",
164 200,0.2,20.,100,0.,200.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCsignal,kTRUE);
165 histos->UserHistogram("Track","TPCnSigmaEle_P","TPC number of sigmas Electrons;P [GeV];TPC number of sigmas Electrons;#tracks",
166 200,0.2,20.,100,-10.,10.,AliDielectronVarManager::kPIn,AliDielectronVarManager::kTPCnSigmaEle,kTRUE);
167
168 //add histograms to Pair classes
169 histos->UserHistogram("Pair","InvMass","Inv.Mass;Inv. Mass [GeV];#pairs",
170 201,-.01,4.01,AliDielectronVarManager::kM);
171 histos->UserHistogram("Pair","Rapidity","Rapidity;Rapidity;#pairs",
172 100,-1.,1.,AliDielectronVarManager::kY);
173 histos->UserHistogram("Pair","OpeningAngle","Opening angle;angle",
174 100,0.,3.15,AliDielectronVarManager::kOpeningAngle);
175
176 diele->SetHistogramManager(histos);
177}