Skip to content

Commit ffb79cb

Browse files
authored
PWGEM/PhotonMeson: update pcb to reduce bkg (#4433)
1 parent 37db788 commit ffb79cb

1 file changed

Lines changed: 20 additions & 11 deletions

File tree

PWGEM/PhotonMeson/TableProducer/photonconversionbuilder.cxx

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ struct PhotonConversionBuilder {
7878
Configurable<int> useMatCorrType{"useMatCorrType", 0, "0: none, 1: TGeo, 2: LUT"};
7979

8080
// single track cuts
81-
Configurable<int> min_ncluster_tpc{"min_ncluster_tpc", 25, "min ncluster tpc"};
81+
Configurable<int> min_ncluster_tpc{"min_ncluster_tpc", 10, "min ncluster tpc"};
8282
Configurable<int> mincrossedrows{"mincrossedrows", 10, "min crossed rows"};
83-
Configurable<float> maxchi2tpc{"maxchi2tpc", 4.0, "max chi2/NclsTPC"};
84-
Configurable<float> maxchi2its{"maxchi2its", 5.0, "max chi2/NclsITS"};
83+
Configurable<float> maxchi2tpc{"maxchi2tpc", 5.0, "max chi2/NclsTPC"}; // default 4.0 + 1.0
84+
Configurable<float> maxchi2its{"maxchi2its", 6.0, "max chi2/NclsITS"}; // default 5.0 + 1.0
8585
Configurable<float> maxpt_itsonly{"maxpt_itsonly", 0.15, "max pT for ITSonly tracks at SV"};
8686
Configurable<float> maxTPCNsigmaEl{"maxTPCNsigmaEl", 4.0, "max. TPC n sigma for electron"};
8787
Configurable<float> dcanegtopv{"dcanegtopv", 0.1, "DCA Neg To PV"};
@@ -90,11 +90,12 @@ struct PhotonConversionBuilder {
9090
Configurable<float> maxX{"maxX", 83.1, "max X for track IU"};
9191

9292
// v0 cuts
93-
Configurable<float> min_v0cospa_tpconly{"min_v0cospa_tpconly", 0.95, "min V0 CosPA to V0s with TPConly tracks"}; // double -> N.B. dcos(x)/dx = 0 at x=0)
93+
Configurable<float> min_v0cospa_tpconly{"min_v0cospa_tpconly", 0.99, "min V0 CosPA to V0s with TPConly tracks"}; // double -> N.B. dcos(x)/dx = 0 at x=0)
9494
Configurable<float> min_v0cospa_its{"min_v0cospa_its", 0.99, "min V0 CosPA to V0s with ITs hits"}; // double -> N.B. dcos(x)/dx = 0 at x=0)
9595
Configurable<float> max_dcav0dau_tpconly{"max_dcav0dau_tpconly", 3.0, "max distance btween 2 legs to V0s with TPConly tracks"};
9696
Configurable<float> max_dcav0dau_its{"max_dcav0dau_its", 0.5, "max distance btween 2 legs to V0s with ITS hits"};
9797
Configurable<float> max_dcav0dau_itsibss{"max_dcav0dau_itsibss", 1.0, "max distance btween 2 legs to V0s with ITS hits on ITSib SS"};
98+
Configurable<float> max_dcav0dau_tpc_inner_fc{"max_dcav0dau_tpc_inner_fc", 1.5, "max distance btween 2 legs to V0s with ITS hits on TPC inner FC"};
9899
Configurable<float> min_v0radius{"min_v0radius", 1.0, "min v0 radius"};
99100
Configurable<float> margin_r_its{"margin_r_its", 3.0, "margin for r cut in cm"};
100101
Configurable<float> margin_r_tpconly{"margin_r_tpconly", 7.0, "margin for r cut in cm"};
@@ -107,6 +108,7 @@ struct PhotonConversionBuilder {
107108
Configurable<float> kfMassConstrain{"kfMassConstrain", -1.f, "mass constrain for the KFParticle mother particle"};
108109
Configurable<float> max_r_req_its{"max_r_req_its", 16.0, "max Rxy for V0 with ITS hits"};
109110
Configurable<float> min_r_tpconly{"min_r_tpconly", 36.0, "min Rxy for V0 with TPConly tracks"};
111+
Configurable<float> max_r_itsmft_ss{"max_r_itsmft_ss", 66.0, "max Rxy for ITS/MFT SS"};
110112
Configurable<float> max_dcatopv_xy_v0{"max_dcatopv_xy_v0", +1e+10, "max. DCAxy to PV for V0"};
111113
Configurable<float> max_dcatopv_z_v0{"max_dcatopv_z_v0", +1e+10, "max. DCAz to PV for V0"};
112114

@@ -257,9 +259,9 @@ struct PhotonConversionBuilder {
257259
return false;
258260
}
259261

260-
if (abs(track.z() / track.x() - track.tgl()) > 0.4) {
261-
return false;
262-
}
262+
// if (abs(track.z() / track.x() - track.tgl()) > 0.4) {
263+
// return false;
264+
// }
263265

264266
auto hits_ib = std::count_if(its_ib_Requirement.second.begin(), its_ib_Requirement.second.end(), [&](auto&& requiredLayer) { return track.itsClusterMap() & (1 << requiredLayer); });
265267
bool its_ob_only = hits_ib <= its_ib_Requirement.first;
@@ -331,11 +333,9 @@ struct PhotonConversionBuilder {
331333
float xyz[3] = {0.f, 0.f, 0.f};
332334
Vtx_recalculation(o2::base::Propagator::Instance(), pos, ele, xyz, matCorr);
333335
float rxy_tmp = RecoDecay::sqrtSumOfSquares(xyz[0], xyz[1]);
334-
335336
if (rxy_tmp > maxX + margin_r_tpconly) {
336337
return;
337338
}
338-
339339
if (rxy_tmp < abs(xyz[2]) * TMath::Tan(2 * TMath::ATan(TMath::Exp(-max_eta_v0))) - margin_z) {
340340
return; // RZ line cut
341341
}
@@ -393,6 +393,9 @@ struct PhotonConversionBuilder {
393393
}
394394
}
395395

396+
if (rxy > maxX + margin_r_tpconly) {
397+
return;
398+
}
396399
if (rxy < abs(gammaKF_DecayVtx.GetZ()) * TMath::Tan(2 * TMath::ATan(TMath::Exp(-max_eta_v0))) - margin_z) {
397400
return; // RZ line cut
398401
}
@@ -434,8 +437,14 @@ struct PhotonConversionBuilder {
434437

435438
float pca_kf = kfp_pos_DecayVtx.GetDistanceFromParticle(kfp_ele_DecayVtx);
436439
if (!ele.hasITS() && !pos.hasITS()) {
437-
if (pca_kf > max_dcav0dau_tpconly) {
438-
return;
440+
if (max_r_itsmft_ss < rxy && rxy < maxX + margin_r_tpconly) {
441+
if (pca_kf > max_dcav0dau_tpc_inner_fc) {
442+
return;
443+
}
444+
} else {
445+
if (pca_kf > max_dcav0dau_tpconly) {
446+
return;
447+
}
439448
}
440449
} else {
441450
if (rxy < max_r_req_its) {

0 commit comments

Comments
 (0)