diff --git a/PWGUD/DataModel/TauThreeProngEventTables.h b/PWGUD/DataModel/TauThreeProngEventTables.h index e01daca155a..ba4e270c941 100644 --- a/PWGUD/DataModel/TauThreeProngEventTables.h +++ b/PWGUD/DataModel/TauThreeProngEventTables.h @@ -23,6 +23,7 @@ #include // derived tables for tautau->4 (=1+3) tracks +// derived tables for tautau->6 (=3+3) tracks namespace o2::aod { namespace tautree @@ -60,32 +61,60 @@ DECLARE_SOA_COLUMN(TotalFV0AmplitudeA, totalFV0AmplitudeA, float); // DECLARE_SOA_COLUMN(TimeFT0A, timeFT0A, float); // DECLARE_SOA_COLUMN(TimeFT0C, timeFT0C, float); // DECLARE_SOA_COLUMN(TimeFV0A, timeFV0A, float); -// tracks -DECLARE_SOA_COLUMN(TrkPx, trkPx, float[6]); -DECLARE_SOA_COLUMN(TrkPy, trkPy, float[6]); -DECLARE_SOA_COLUMN(TrkPz, trkPz, float[6]); -DECLARE_SOA_COLUMN(TrkSign, trkSign, int[6]); -DECLARE_SOA_COLUMN(TrkDCAxy, trkDCAxy, float[6]); -DECLARE_SOA_COLUMN(TrkDCAz, trkDCAz, float[6]); -DECLARE_SOA_COLUMN(TrkTPCcr, trkTPCcr, int[6]); -DECLARE_SOA_COLUMN(TrkTPCfind, trkTPCfind, int[6]); -DECLARE_SOA_COLUMN(TrkTPCchi2, trkTPCchi2, float[6]); -DECLARE_SOA_COLUMN(TrkITSchi2, trkITSchi2, float[6]); -DECLARE_SOA_COLUMN(TrkITScl, trkITScl, int[6]); -// PID -DECLARE_SOA_COLUMN(TrkTPCsignal, trkTPCsignal, float[6]); -DECLARE_SOA_COLUMN(TrkTPCnSigmaEl, trkTPCnSigmaEl, float[6]); -DECLARE_SOA_COLUMN(TrkTPCnSigmaPi, trkTPCnSigmaPi, float[6]); -DECLARE_SOA_COLUMN(TrkTPCnSigmaKa, trkTPCnSigmaKa, float[6]); -DECLARE_SOA_COLUMN(TrkTPCnSigmaPr, trkTPCnSigmaPr, float[6]); -DECLARE_SOA_COLUMN(TrkTPCnSigmaMu, trkTPCnSigmaMu, float[6]); -DECLARE_SOA_COLUMN(TrkTOFbeta, trkTOFbeta, float[6]); -DECLARE_SOA_COLUMN(TrkTOFnSigmaEl, trkTOFnSigmaEl, float[6]); -DECLARE_SOA_COLUMN(TrkTOFnSigmaPi, trkTOFnSigmaPi, float[6]); -DECLARE_SOA_COLUMN(TrkTOFnSigmaKa, trkTOFnSigmaKa, float[6]); -DECLARE_SOA_COLUMN(TrkTOFnSigmaPr, trkTOFnSigmaPr, float[6]); -DECLARE_SOA_COLUMN(TrkTOFnSigmaMu, trkTOFnSigmaMu, float[6]); -DECLARE_SOA_COLUMN(TrkTOFchi2, trkTOFchi2, float[6]); +// tracks - 4 tracks +DECLARE_SOA_COLUMN(TrkPx, trkPx, float[4]); +DECLARE_SOA_COLUMN(TrkPy, trkPy, float[4]); +DECLARE_SOA_COLUMN(TrkPz, trkPz, float[4]); +DECLARE_SOA_COLUMN(TrkSign, trkSign, int[4]); +DECLARE_SOA_COLUMN(TrkDCAxy, trkDCAxy, float[4]); +DECLARE_SOA_COLUMN(TrkDCAz, trkDCAz, float[4]); +DECLARE_SOA_COLUMN(TrkTPCcr, trkTPCcr, int[4]); +DECLARE_SOA_COLUMN(TrkTPCfind, trkTPCfind, int[4]); +DECLARE_SOA_COLUMN(TrkTPCchi2, trkTPCchi2, float[4]); +DECLARE_SOA_COLUMN(TrkITSchi2, trkITSchi2, float[4]); +DECLARE_SOA_COLUMN(TrkITScl, trkITScl, int[4]); +// PID - 4 tracks +DECLARE_SOA_COLUMN(TrkTPCsignal, trkTPCsignal, float[4]); +DECLARE_SOA_COLUMN(TrkTPCnSigmaEl, trkTPCnSigmaEl, float[4]); +DECLARE_SOA_COLUMN(TrkTPCnSigmaPi, trkTPCnSigmaPi, float[4]); +DECLARE_SOA_COLUMN(TrkTPCnSigmaKa, trkTPCnSigmaKa, float[4]); +DECLARE_SOA_COLUMN(TrkTPCnSigmaPr, trkTPCnSigmaPr, float[4]); +DECLARE_SOA_COLUMN(TrkTPCnSigmaMu, trkTPCnSigmaMu, float[4]); +DECLARE_SOA_COLUMN(TrkTOFbeta, trkTOFbeta, float[4]); +DECLARE_SOA_COLUMN(TrkTOFnSigmaEl, trkTOFnSigmaEl, float[4]); +DECLARE_SOA_COLUMN(TrkTOFnSigmaPi, trkTOFnSigmaPi, float[4]); +DECLARE_SOA_COLUMN(TrkTOFnSigmaKa, trkTOFnSigmaKa, float[4]); +DECLARE_SOA_COLUMN(TrkTOFnSigmaPr, trkTOFnSigmaPr, float[4]); +DECLARE_SOA_COLUMN(TrkTOFnSigmaMu, trkTOFnSigmaMu, float[4]); +DECLARE_SOA_COLUMN(TrkTOFchi2, trkTOFchi2, float[4]); + +// tracks - 6 tracks +DECLARE_SOA_COLUMN(Trk6Px, trk6Px, float[6]); +DECLARE_SOA_COLUMN(Trk6Py, trk6Py, float[6]); +DECLARE_SOA_COLUMN(Trk6Pz, trk6Pz, float[6]); +DECLARE_SOA_COLUMN(Trk6Sign, trk6Sign, int[6]); +DECLARE_SOA_COLUMN(Trk6DCAxy, trk6DCAxy, float[6]); +DECLARE_SOA_COLUMN(Trk6DCAz, trk6DCAz, float[6]); +DECLARE_SOA_COLUMN(Trk6TPCcr, trk6TPCcr, int[6]); +DECLARE_SOA_COLUMN(Trk6TPCfind, trk6TPCfind, int[6]); +DECLARE_SOA_COLUMN(Trk6TPCchi2, trk6TPCchi2, float[6]); +DECLARE_SOA_COLUMN(Trk6ITSchi2, trk6ITSchi2, float[6]); +DECLARE_SOA_COLUMN(Trk6ITScl, trk6ITScl, int[6]); +// PID - 6 tracks +DECLARE_SOA_COLUMN(Trk6TPCsignal, trk6TPCsignal, float[6]); +DECLARE_SOA_COLUMN(Trk6TPCnSigmaEl, trk6TPCnSigmaEl, float[6]); +DECLARE_SOA_COLUMN(Trk6TPCnSigmaPi, trk6TPCnSigmaPi, float[6]); +DECLARE_SOA_COLUMN(Trk6TPCnSigmaKa, trk6TPCnSigmaKa, float[6]); +DECLARE_SOA_COLUMN(Trk6TPCnSigmaPr, trk6TPCnSigmaPr, float[6]); +DECLARE_SOA_COLUMN(Trk6TPCnSigmaMu, trk6TPCnSigmaMu, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFbeta, trk6TOFbeta, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFnSigmaEl, trk6TOFnSigmaEl, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFnSigmaPi, trk6TOFnSigmaPi, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFnSigmaKa, trk6TOFnSigmaKa, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFnSigmaPr, trk6TOFnSigmaPr, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFnSigmaMu, trk6TOFnSigmaMu, float[6]); +DECLARE_SOA_COLUMN(Trk6TOFchi2, trk6TOFchi2, float[6]); + // truth event DECLARE_SOA_COLUMN(TrueChannel, trueChannel, int); // DECLARE_SOA_COLUMN(TrueHasRecoColl, trueHasRecoColl, bool); @@ -96,11 +125,16 @@ DECLARE_SOA_COLUMN(TruePosZ, truePosZ, float); DECLARE_SOA_COLUMN(TrueTauPx, trueTauPx, float[2]); DECLARE_SOA_COLUMN(TrueTauPy, trueTauPy, float[2]); DECLARE_SOA_COLUMN(TrueTauPz, trueTauPz, float[2]); -// truth tau daughter particles -DECLARE_SOA_COLUMN(TrueDaugPx, trueDaugPx, float[6]); -DECLARE_SOA_COLUMN(TrueDaugPy, trueDaugPy, float[6]); -DECLARE_SOA_COLUMN(TrueDaugPz, trueDaugPz, float[6]); -DECLARE_SOA_COLUMN(TrueDaugPdgCode, trueDaugPdgCode, int[6]); +// truth tau daughter particles - 4 particles +DECLARE_SOA_COLUMN(TrueDaugPx, trueDaugPx, float[4]); +DECLARE_SOA_COLUMN(TrueDaugPy, trueDaugPy, float[4]); +DECLARE_SOA_COLUMN(TrueDaugPz, trueDaugPz, float[4]); +DECLARE_SOA_COLUMN(TrueDaugPdgCode, trueDaugPdgCode, int[4]); +// truth tau daughter particles - 6 particles +DECLARE_SOA_COLUMN(True6DaugPx, true6DaugPx, float[6]); +DECLARE_SOA_COLUMN(True6DaugPy, true6DaugPy, float[6]); +DECLARE_SOA_COLUMN(True6DaugPz, true6DaugPz, float[6]); +DECLARE_SOA_COLUMN(True6DaugPdgCode, true6DaugPdgCode, int[6]); DECLARE_SOA_COLUMN(Problem, problem, int8_t); } // namespace tautree @@ -158,6 +192,60 @@ DECLARE_SOA_TABLE(TrueTauFourTracks, "AOD", "TRUETAU", tautree::TrueDaugPdgCode, tautree::Problem); +DECLARE_SOA_TABLE(DataTauSixTracks, "AOD", "TAUSIXTRACK", + tautree::RunNumber, tautree::Bc, tautree::TotalTracks, tautree::NumContrib, + tautree::RctOk, + // tautree::GlobalNonPVtracks, + // tautree::PosX, tautree::PosY, + tautree::PosZ, + tautree::FlagUPC, tautree::OccupancyInTime, tautree::HadronicRate, + // + tautree::Trs, tautree::Trofs, tautree::Hmpr, + tautree::Tfb, tautree::ItsRofb, tautree::Sbp, tautree::ZvtxFT0vsPv, tautree::VtxITSTPC, + tautree::ZdcAenergy, tautree::ZdcCenergy, + tautree::ZdcAtime, tautree::ZdcCtime, + // tautree::Qtot, + tautree::TotalFT0AmplitudeA, tautree::TotalFT0AmplitudeC, tautree::TotalFV0AmplitudeA, + // tautree::TimeFT0A, tautree::TimeFT0C, tautree::TimeFV0A, + tautree::Trk6Px, tautree::Trk6Py, tautree::Trk6Pz, + tautree::Trk6Sign, + tautree::Trk6DCAxy, tautree::Trk6DCAz, + tautree::Trk6TPCcr, + tautree::Trk6TPCfind, tautree::Trk6TPCchi2, tautree::Trk6ITSchi2, tautree::Trk6ITScl, + tautree::Trk6TPCsignal, tautree::Trk6TPCnSigmaEl, tautree::Trk6TPCnSigmaPi, tautree::Trk6TPCnSigmaKa, tautree::Trk6TPCnSigmaPr, tautree::Trk6TPCnSigmaMu, + tautree::Trk6TOFbeta, tautree::Trk6TOFnSigmaEl, tautree::Trk6TOFnSigmaPi, tautree::Trk6TOFnSigmaKa, tautree::Trk6TOFnSigmaPr, tautree::Trk6TOFnSigmaMu, + tautree::Trk6TOFchi2); + +DECLARE_SOA_TABLE(TrueTauSixTracks, "AOD", "TRUETAUSIX", + tautree::RunNumber, tautree::Bc, tautree::TotalTracks, tautree::NumContrib, + tautree::RctOk, + // tautree::GlobalNonPVtracks, + // tautree::PosX, tautree::PosY, + tautree::PosZ, + tautree::FlagUPC, tautree::OccupancyInTime, tautree::HadronicRate, + tautree::Trs, tautree::Trofs, tautree::Hmpr, + tautree::Tfb, tautree::ItsRofb, tautree::Sbp, tautree::ZvtxFT0vsPv, tautree::VtxITSTPC, + tautree::ZdcAenergy, tautree::ZdcCenergy, + tautree::ZdcAtime, tautree::ZdcCtime, + // tautree::Qtot, + tautree::TotalFT0AmplitudeA, tautree::TotalFT0AmplitudeC, tautree::TotalFV0AmplitudeA, + // tautree::TimeFT0A, tautree::TimeFT0C, tautree::TimeFV0A, + tautree::Trk6Px, tautree::Trk6Py, tautree::Trk6Pz, + tautree::Trk6Sign, + tautree::Trk6DCAxy, tautree::Trk6DCAz, + tautree::Trk6TPCcr, + tautree::Trk6TPCfind, tautree::Trk6TPCchi2, tautree::Trk6ITSchi2, tautree::Trk6ITScl, + tautree::Trk6TPCsignal, tautree::Trk6TPCnSigmaEl, tautree::Trk6TPCnSigmaPi, tautree::Trk6TPCnSigmaKa, tautree::Trk6TPCnSigmaPr, tautree::Trk6TPCnSigmaMu, + tautree::Trk6TOFbeta, tautree::Trk6TOFnSigmaEl, tautree::Trk6TOFnSigmaPi, tautree::Trk6TOFnSigmaKa, tautree::Trk6TOFnSigmaPr, tautree::Trk6TOFnSigmaMu, + tautree::Trk6TOFchi2, + tautree::TrueChannel, + // tautree::TrueHasRecoColl, + tautree::TruePosZ, + tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz, + tautree::True6DaugPx, tautree::True6DaugPy, tautree::True6DaugPz, + tautree::True6DaugPdgCode, + tautree::Problem); + } // namespace o2::aod #endif // PWGUD_DATAMODEL_TAUTHREEPRONGEVENTTABLES_H_ diff --git a/PWGUD/TableProducer/tauThreeProngEventTableProducer.cxx b/PWGUD/TableProducer/tauThreeProngEventTableProducer.cxx index c90139faac4..71a250ec375 100644 --- a/PWGUD/TableProducer/tauThreeProngEventTableProducer.cxx +++ b/PWGUD/TableProducer/tauThreeProngEventTableProducer.cxx @@ -79,8 +79,12 @@ enum MyParticle { }; struct TauThreeProngEventTableProducer { + // derived output for 4 track topology Produces trueTauFourTracks; Produces dataTauFourTracks; + // derived output for 6 track topology + Produces trueTauSixTracks; + Produces dataTauSixTracks; // Global varialbes // Service pdg; @@ -238,7 +242,7 @@ struct TauThreeProngEventTableProducer { // mySetITShitsRule(cutGlobalTrack.cutITShitsRule); if (doprocessDoSkim) { - registrySkim.add("skim/efficiency", ";efficeincy;events", {HistType::kTH1F, {{10, 0., 10.}}}); + registrySkim.add("skim/efficiency", ";efficeincy;events", {HistType::kTH1D, {{10, 0., 10.}}}); registrySkim.get(HIST("skim/efficiency"))->GetXaxis()->SetBinLabel(1, "1: All"); registrySkim.get(HIST("skim/efficiency"))->GetXaxis()->SetBinLabel(2, "2: Gap=012"); registrySkim.get(HIST("skim/efficiency"))->GetXaxis()->SetBinLabel(3, "3: Gap=2"); @@ -248,15 +252,15 @@ struct TauThreeProngEventTableProducer { registrySkim.get(HIST("skim/efficiency"))->GetXaxis()->SetBinLabel(7, "7: N_{TOF}^{tr}>1"); registrySkim.get(HIST("skim/efficiency"))->GetXaxis()->SetBinLabel(8, "8: FIT veto"); - registrySkim.add("skim/gapSide", ";Gap;events", {HistType::kTH1F, {{10, -1., 9.}}}); - registrySkim.add("skim/trueGapSide", ";TrueGap;events", {HistType::kTH1F, {{10, -1., 9.}}}); + registrySkim.add("skim/gapSide", ";Gap;events", {HistType::kTH1D, {{10, -1., 9.}}}); + registrySkim.add("skim/trueGapSide", ";TrueGap;events", {HistType::kTH1D, {{10, -1., 9.}}}); registrySkim.add("skim/etaTrk", ";#eta^{trk};events", {HistType::kTH1F, {{100, -1.5, 1.5}}}); registrySkim.add("skim/ptTrk", ";p_{T}^{trk};events", {HistType::kTH1F, {{100, 0., 5.}}}); registrySkim.add("skim/phiTrk", ";#phi^{trk};events", {HistType::kTH1F, {{128, -3.2, 3.2}}}); registrySkim.add("skim/nTof", ";N_{TOFtrk};events", {HistType::kTH1F, {{10, -1., 9.}}}); } if (doprocessMonteCarlo) { - registrySkim.add("skim/efficiencyMC", ";efficeincy;events", {HistType::kTH1F, {{10, 0., 10.}}}); + registrySkim.add("skim/efficiencyMC", ";efficeincy;events", {HistType::kTH1D, {{10, 0., 10.}}}); registrySkim.get(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(1, "1: All"); registrySkim.get(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "2: N^{#tau}=2"); registrySkim.get(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "3: |y^{#tau}| <= 0.9"); @@ -267,9 +271,9 @@ struct TauThreeProngEventTableProducer { registrySkim.get(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "8: 7+4 trk"); registrySkim.get(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "9: 7+6 trk"); - registrySkim.add("skim/problemMC", ";problem;events", {HistType::kTH1F, {{10, 0., 10.}}}); + registrySkim.add("skim/problemMC", ";problem;events", {HistType::kTH1D, {{10, 0., 10.}}}); - registrySkim.add("skim/nTauMC", ";N_{#tau};events", {HistType::kTH1F, {{10, 0., 10.}}}); + registrySkim.add("skim/nTauMC", ";N_{#tau};events", {HistType::kTH1D, {{10, 0., 10.}}}); registrySkim.add("skim/tauRapidityMC", ";y_{#tau};events", {HistType::kTH1F, {{100, -2.5, 2.5}}}); registrySkim.add("skim/tauPhiMC", ";#phi^{#tau};events", {HistType::kTH1F, {{100, 0, 6.4}}}); registrySkim.add("skim/tauEtaMC", ";#eta^{#tau};events", {HistType::kTH1F, {{100, -2.5, 2.5}}}); @@ -696,6 +700,9 @@ struct TauThreeProngEventTableProducer { // skimming: only 4 tracks selection in data void processDoSkim(UDCollisionFull2 const& dgcand, UDTracksFull const& dgtracks, PVTracks const& PVContributors) { + const int fourTracks = 4; + const int sixTracks = 6; + registrySkim.get(HIST("skim/efficiency"))->Fill(0., 1.); int gapSide = dgcand.gapSide(); @@ -745,15 +752,15 @@ struct TauThreeProngEventTableProducer { nTofTrk++; } // end of loop over PV tracks - if (PVContributors.size() != nPVtrackscut) // 4 + if (PVContributors.size() != nPVtrackscut) // 4 or 6 return; registrySkim.get(HIST("skim/efficiency"))->Fill(3., 1.); - if (nEtaIn15 != nPVtrackscut) // 4 + if (nEtaIn15 != nPVtrackscut) // 4 or 6 return; registrySkim.get(HIST("skim/efficiency"))->Fill(4., 1.); - if (npT100 != nPVtrackscut) // 4 + if (npT100 != nPVtrackscut) // 4 or 6 return; registrySkim.get(HIST("skim/efficiency"))->Fill(5., 1.); @@ -862,29 +869,55 @@ struct TauThreeProngEventTableProducer { counterTmp++; } - dataTauFourTracks(dgcand.runNumber(), - dgcand.globalBC(), // is it necessary - dgtracks.size(), - dgcand.numContrib(), - rct, - // dgcand.posX(), dgcand.posY(), - dgcand.posZ(), - dgcand.flags(), - dgcand.occupancyInTime(), - dgcand.hadronicRate(), // is it necessary - dgcand.trs(), dgcand.trofs(), dgcand.hmpr(), // to test it - dgcand.tfb(), dgcand.itsROFb(), dgcand.sbp(), dgcand.zVtxFT0vPV(), dgcand.vtxITSTPC(), - energyZNA, energyZNC, - timeZNA, timeZNC, - // qtot, <<-------- comment out - dgcand.totalFT0AmplitudeA(), dgcand.totalFT0AmplitudeC(), dgcand.totalFV0AmplitudeA(), - // dgcand.timeFT0A(), dgcand.timeFT0C(), dgcand.timeFV0A(), - px, py, pz, sign, - dcaXY, dcaZ, - nclTPCcrossedRows, nclTPCfind, nclTPCchi2, trkITSchi2, trkITScl, - tmpDedx, nSigmaEl, nSigmaPi, nSigmaKa, nSigmaPr, nSigmaMu, - trkTofSignal, tmpTofNsigmaEl, tmpTofNsigmaPi, tmpTofNsigmaKa, tmpTofNsigmaPr, tmpTofNsigmaMu, - chi2TOF); + if (nPVtrackscut == fourTracks) { + dataTauFourTracks(dgcand.runNumber(), + dgcand.globalBC(), // is it necessary + dgtracks.size(), + dgcand.numContrib(), + rct, + // dgcand.posX(), dgcand.posY(), + dgcand.posZ(), + dgcand.flags(), + dgcand.occupancyInTime(), + dgcand.hadronicRate(), // is it necessary + dgcand.trs(), dgcand.trofs(), dgcand.hmpr(), // to test it + dgcand.tfb(), dgcand.itsROFb(), dgcand.sbp(), dgcand.zVtxFT0vPV(), dgcand.vtxITSTPC(), + energyZNA, energyZNC, + timeZNA, timeZNC, + // qtot, <<-------- comment out + dgcand.totalFT0AmplitudeA(), dgcand.totalFT0AmplitudeC(), dgcand.totalFV0AmplitudeA(), + // dgcand.timeFT0A(), dgcand.timeFT0C(), dgcand.timeFV0A(), + px, py, pz, sign, + dcaXY, dcaZ, + nclTPCcrossedRows, nclTPCfind, nclTPCchi2, trkITSchi2, trkITScl, + tmpDedx, nSigmaEl, nSigmaPi, nSigmaKa, nSigmaPr, nSigmaMu, + trkTofSignal, tmpTofNsigmaEl, tmpTofNsigmaPi, tmpTofNsigmaKa, tmpTofNsigmaPr, tmpTofNsigmaMu, + chi2TOF); + } else if (nPVtrackscut == sixTracks) { + dataTauSixTracks(dgcand.runNumber(), + dgcand.globalBC(), // is it necessary + dgtracks.size(), + dgcand.numContrib(), + rct, + // dgcand.posX(), dgcand.posY(), + dgcand.posZ(), + dgcand.flags(), + dgcand.occupancyInTime(), + dgcand.hadronicRate(), // is it necessary + dgcand.trs(), dgcand.trofs(), dgcand.hmpr(), // to test it + dgcand.tfb(), dgcand.itsROFb(), dgcand.sbp(), dgcand.zVtxFT0vPV(), dgcand.vtxITSTPC(), + energyZNA, energyZNC, + timeZNA, timeZNC, + // qtot, <<-------- comment out + dgcand.totalFT0AmplitudeA(), dgcand.totalFT0AmplitudeC(), dgcand.totalFV0AmplitudeA(), + // dgcand.timeFT0A(), dgcand.timeFT0C(), dgcand.timeFV0A(), + px, py, pz, sign, + dcaXY, dcaZ, + nclTPCcrossedRows, nclTPCfind, nclTPCchi2, trkITSchi2, trkITScl, + tmpDedx, nSigmaEl, nSigmaPi, nSigmaKa, nSigmaPr, nSigmaMu, + trkTofSignal, tmpTofNsigmaEl, tmpTofNsigmaPi, tmpTofNsigmaKa, tmpTofNsigmaPr, tmpTofNsigmaMu, + chi2TOF); + } } // end of skim process processDoSkim PROCESS_SWITCH(TauThreeProngEventTableProducer, processDoSkim, "Run over SG Producer tables to produce skimmed data", false); @@ -1570,36 +1603,71 @@ struct TauThreeProngEventTableProducer { trueChannel = trueChannel + countPi0 * 10 + zerothTau * 100; // LOGF(info, "Should be written!"); - trueTauFourTracks(runNumber, - bc, // is it necessary - totalTracks, - nPVcontrib, - rct, - // dgcand.posX(), dgcand.posY(), - zVertex, - recoMode, - occupancy, - hadronicRate, // is it necessary - bcSels[0], bcSels[1], bcSels[2], // to test it - bcSels[3], bcSels[4], bcSels[5], bcSels[6], bcSels[7], - energyZNA, energyZNC, - timeZNA, timeZNC, - // qtot, <<-------- comment out - amplitudesFIT[0], amplitudesFIT[1], amplitudesFIT[2], - // timesFIT[0], timesFIT[1], timesFIT[2], - px, py, pz, sign, - dcaXY, dcaZ, - nclTPCcrossedRows, nclTPCfind, nclTPCchi2, trkITSchi2, trkITScl, - tpcSignal, tpcEl, tpcPi, tpcKa, tpcPr, tpcMu, - tofSignal, tofEl, tofPi, tofKa, tofPr, tofMu, - chi2TOF, - // - trueChannel, - // trueHasRecoColl, - mccoll.posZ(), - trueTauX, trueTauY, trueTauZ, - trueDaugX, trueDaugY, trueDaugZ, - trueDaugPdgCode, problem); + + if (nChargedDaughtersTau[0] + nChargedDaughtersTau[1] == fourTracks) { // 4 + trueTauFourTracks(runNumber, + bc, // is it necessary + totalTracks, + nPVcontrib, + rct, + // dgcand.posX(), dgcand.posY(), + zVertex, + recoMode, + occupancy, + hadronicRate, // is it necessary + bcSels[0], bcSels[1], bcSels[2], // to test it + bcSels[3], bcSels[4], bcSels[5], bcSels[6], bcSels[7], + energyZNA, energyZNC, + timeZNA, timeZNC, + // qtot, <<-------- comment out + amplitudesFIT[0], amplitudesFIT[1], amplitudesFIT[2], + // timesFIT[0], timesFIT[1], timesFIT[2], + px, py, pz, sign, + dcaXY, dcaZ, + nclTPCcrossedRows, nclTPCfind, nclTPCchi2, trkITSchi2, trkITScl, + tpcSignal, tpcEl, tpcPi, tpcKa, tpcPr, tpcMu, + tofSignal, tofEl, tofPi, tofKa, tofPr, tofMu, + chi2TOF, + // + trueChannel, + // trueHasRecoColl, + mccoll.posZ(), + trueTauX, trueTauY, trueTauZ, + trueDaugX, trueDaugY, trueDaugZ, + trueDaugPdgCode, problem); + } else if (nChargedDaughtersTau[0] + nChargedDaughtersTau[1] == sixTracks) { // 6 + trueTauSixTracks(runNumber, + bc, // is it necessary + totalTracks, + nPVcontrib, + rct, + // dgcand.posX(), dgcand.posY(), + zVertex, + recoMode, + occupancy, + hadronicRate, // is it necessary + bcSels[0], bcSels[1], bcSels[2], // to test it + bcSels[3], bcSels[4], bcSels[5], bcSels[6], bcSels[7], + energyZNA, energyZNC, + timeZNA, timeZNC, + // qtot, <<-------- comment out + amplitudesFIT[0], amplitudesFIT[1], amplitudesFIT[2], + // timesFIT[0], timesFIT[1], timesFIT[2], + px, py, pz, sign, + dcaXY, dcaZ, + nclTPCcrossedRows, nclTPCfind, nclTPCchi2, trkITSchi2, trkITScl, + tpcSignal, tpcEl, tpcPi, tpcKa, tpcPr, tpcMu, + tofSignal, tofEl, tofPi, tofKa, tofPr, tofMu, + chi2TOF, + // + trueChannel, + // trueHasRecoColl, + mccoll.posZ(), + trueTauX, trueTauY, trueTauZ, + trueDaugX, trueDaugY, trueDaugZ, + trueDaugPdgCode, problem); + } + } // mccollisions } // end of processMonteCarlo PROCESS_SWITCH(TauThreeProngEventTableProducer, processMonteCarlo, "Iterate UD tables with simulated data created by SG-Candidate-Producer.", false);