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