File indexing completed on 2025-08-03 08:20:17
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #ifndef KFPartEfficiencies_H
0023 #define KFPartEfficiencies_H
0024
0025 #include <map>
0026 #include <iomanip>
0027 #include "KFMCCounter.h"
0028
0029 #ifdef HLTCA_STANDALONE
0030 #include "RootTypesDef.h"
0031 #else
0032 #include "TObject.h"
0033 #endif
0034
0035
0036
0037
0038
0039
0040
0041
0042 class KFEfficiencyParticleInfo
0043 {
0044 public:
0045 KFEfficiencyParticleInfo():fName("null"),fTitle("null"),fPDG(0),fHistoMin(0.f),fHistoMax(0.f),fMass(0.f),fLifeTime(0.f),fCharge(0), fMassSigma(0.001) {};
0046
0047 KFEfficiencyParticleInfo(std::string name, std::string title, int pdg, float histoMin, float histoMax, float mass, float lifeTime, int charge, float massSigma ):
0048 fName(name), fTitle(title), fPDG(pdg), fHistoMin(histoMin), fHistoMax(histoMax), fMass(mass), fLifeTime(lifeTime), fCharge(charge), fMassSigma(massSigma) {};
0049 ~KFEfficiencyParticleInfo() {};
0050
0051
0052 std::string Name() const { return fName; }
0053 std::string Title() const { return fTitle; }
0054 int PDG() const { return fPDG; }
0055 float HistoMin() const { return fHistoMin; }
0056 float HistoMax() const { return fHistoMax; }
0057 float Mass() const { return fMass; }
0058 float LifeTime() const { return fLifeTime; }
0059 int Charge() const { return fCharge; }
0060 float MassSigma() const { return fMassSigma; }
0061
0062 private:
0063 std::string fName;
0064 std::string fTitle;
0065 int fPDG;
0066 float fHistoMin;
0067 float fHistoMax;
0068 float fMass;
0069 float fLifeTime;
0070 int fCharge;
0071 float fMassSigma;
0072 };
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093 class KFPartEfficiencies :public TObject
0094 {
0095 public:
0096
0097
0098 KFPartEfficiencies():
0099 partDaughterPdg(0),
0100 names(),
0101 indices(),
0102 fPdgToIndex(),
0103 ratio_reco1(),
0104 ratio_reco2(),
0105 ratio_reco3(),
0106 mc1(),
0107 mc2(),
0108 mc3(),
0109 reco(),
0110 ratio_ghost(),
0111 ratio_bg(),
0112 ratio_clone(),
0113 ghost(),
0114 bg(),
0115 clone()
0116 {
0117 KFEfficiencyParticleInfo particleInfo[nParticles] =
0118 {
0119
0120 #ifdef CBM
0121 KFEfficiencyParticleInfo("Ks", "KShort ", 310, 0.3f, 1.3f, 0.497614 , 8.954e-11, 0, 0.0045),
0122 #else
0123 KFEfficiencyParticleInfo("Ks", "KShort ", 310, 0.3f, 1.3f, 0.497614 , 8.954e-11, 0, 0.0057),
0124 #endif
0125 KFEfficiencyParticleInfo("Lambda", "Lambda ", 3122, 1.0f, 2.0f, 1.115683 , 2.632e-10, 0, 0.0020),
0126 KFEfficiencyParticleInfo("Lambdab", "Lambda b ", -3122, 1.0f, 2.0f, 1.115683 , 2.632e-10, 0, 0.0020),
0127 KFEfficiencyParticleInfo("Xi-", "Xi- ", 3312, 1.0f, 3.0f, 1.32171 , 1.639e-10, -1, 0.0022),
0128 KFEfficiencyParticleInfo("Xi+", "Xi+ ", -3312, 1.0f, 3.0f, 1.32171 , 1.639e-10, 1, 0.0022),
0129 KFEfficiencyParticleInfo("Xi0", "Xi0 ", 3322, 1.0f, 3.0f, 1.31486 , 2.9e-10, 0, 0.0030),
0130 KFEfficiencyParticleInfo("Xi0b", "Xi0 b ", -3322, 1.0f, 3.0f, 1.31486 , 2.9e-10, 0, 0.0030),
0131 KFEfficiencyParticleInfo("Omega-", "Omega- ", 3334, 1.0f, 3.0f, 1.67245 , 0.821e-10, -1, 0.0022),
0132 KFEfficiencyParticleInfo("Omega+", "Omega+ ", -3334, 1.0f, 3.0f, 1.67245 , 0.821e-10, 1, 0.0022),
0133 KFEfficiencyParticleInfo("Sigma^0", "Sigma0 ", 3212, 1.0f, 3.0f, 1.192642 , 7.4e-20, 0, 0.0030),
0134 KFEfficiencyParticleInfo("Sigma^0b", "Sigma0 b ", -3212, 1.0f, 3.0f, 1.192642 , 7.4e-20, 0, 0.0030),
0135 KFEfficiencyParticleInfo("Sigma^+", "Sigma+ ", 3222, 1.0f, 3.0f, 1.18937 , 0.8018e-10, 1, 0.0030),
0136 KFEfficiencyParticleInfo("Sigma^-b", "Sigma- b ", -3222, 1.0f, 3.0f, 1.18937 , 0.8018e-10,-1, 0.0030),
0137 KFEfficiencyParticleInfo("K*0", "K*0 ", 313, 0.6f, 2.6f, 0.8958 , 1.38e-23, 0, 0.0300),
0138 KFEfficiencyParticleInfo("K*0b", "K*0 b ", -313, 0.6f, 2.6f, 0.8958 , 1.38e-23, 0, 0.0300),
0139 KFEfficiencyParticleInfo("K*+", "K*+ ", 323, 0.6f, 2.6f, 0.89166 , 1.30e-23, 1, 0.0300),
0140 KFEfficiencyParticleInfo("K*-", "K*- ", -323, 0.6f, 2.6f, 0.89166 , 1.30e-23, -1, 0.0300),
0141 KFEfficiencyParticleInfo("K*0_K0,pi0", "K*0_K0pi0 ", 100313, 0.6f, 2.6f, 0.8958 , 1.38e-23, 0, 0.0030),
0142 KFEfficiencyParticleInfo("K*+_K+,pi0", "K*+_K+pi0 ", 100323, 0.6f, 2.6f, 0.89166 , 1.30e-23, 1, 0.0030),
0143 KFEfficiencyParticleInfo("K*-_K-,pi0", "K*-_K-pi0 ", -100323, 0.6f, 2.6f, 0.89166 , 1.30e-23, -1, 0.0030),
0144 KFEfficiencyParticleInfo("Sigma*+", "Sigma*+ ", 3224, 1.0f, 3.0f, 1.3828 , 1.83e-23, 1, 0.0100),
0145 KFEfficiencyParticleInfo("Sigma*-", "Sigma*- ", 3114, 1.0f, 3.0f, 1.3872 , 1.67e-23, -1, 0.0100),
0146 KFEfficiencyParticleInfo("Sigma*+b", "Sigma*+ b ", -3114, 1.0f, 3.0f, 1.3828 , 1.83e-23, -1, 0.0100),
0147 KFEfficiencyParticleInfo("Sigma*-b", "Sigma*- b ", -3224, 1.0f, 3.0f, 1.3872 , 1.67e-23, 1, 0.0100),
0148 KFEfficiencyParticleInfo("Sigma*0", "Sigma*0 ", 3214, 1.0f, 3.0f, 1.3837 , 1.83e-23, 0, 0.0030),
0149 KFEfficiencyParticleInfo("Sigma*0b", "Sigma*0 b ", -3214, 1.0f, 3.0f, 1.3837 , 1.83e-23, 0, 0.0030),
0150 KFEfficiencyParticleInfo("Lambda*", "Lambda* ", 3124, 1.4f, 3.4f, 1.5195 , 4.22e-23, 0, 0.0100),
0151 KFEfficiencyParticleInfo("Lambda*b", "Lambda* b ", -3124, 1.4f, 3.4f, 1.5195 , 4.22e-23, 0, 0.0100),
0152 KFEfficiencyParticleInfo("Xi*0", "Xi*0 ", 3324, 1.4f, 3.4f, 1.53180 , 7.23e-23, 0, 0.0100),
0153 KFEfficiencyParticleInfo("Xi*0b", "Xi*0 b ", -3324, 1.4f, 3.4f, 1.53180 , 7.23e-23, 0, 0.0100),
0154 KFEfficiencyParticleInfo("Xi*-_LK", "Xi*-_lk ", 1003314, 1.4f, 3.4f, 1.823 , 2.74e-23, -1, 0.0030),
0155 KFEfficiencyParticleInfo("Xi*+_LK", "Xi*+_lk ", -1003314, 1.4f, 3.4f, 1.823 , 2.74e-23, 1, 0.0030),
0156 KFEfficiencyParticleInfo("Xi*-_xi-,pi0", "Xi*-_XiPi ", 3314, 1.4f, 3.4f, 1.535 , 6.65e-23, -1, 0.0030),
0157 KFEfficiencyParticleInfo("Xi*+_xi+,pi0", "Xi*+_XiPi ", -3314, 1.4f, 3.4f, 1.535 , 6.65e-23, 1, 0.0030),
0158 KFEfficiencyParticleInfo("Omega*-", "Omega*- ", 1003334, 1.8f, 3.8f, 2.252 , 1.2e-23, -1, 0.0030),
0159 KFEfficiencyParticleInfo("Omega*+", "Omega*+ ", -1003334, 1.8f, 3.8f, 2.252 , 1.2e-23, 1, 0.0030),
0160 KFEfficiencyParticleInfo("H0_LL", "H0_LL ", 3000, 1.5f, 3.5f, 2.21 , 1.32e-10, 0, 0.0030),
0161 KFEfficiencyParticleInfo("phi_KK", "phi_KK ", 333, 0.8f, 2.8f, 1.019455 , 1.55e-22, 0, 0.0030),
0162 KFEfficiencyParticleInfo("rho_pipi", "rho_pipi ", 113, 0.0f, 2.0f, 0.77526 , 4.45e-24, 0, 0.0030),
0163 KFEfficiencyParticleInfo("rho_ee", "rho_ee ", 100113, 0.0f, 2.0f, 0.77526 , 4.45e-24, 0, 0.0030),
0164 KFEfficiencyParticleInfo("rho_mm", "rho_mm ", 200113, 0.0f, 2.0f, 0.77526 , 4.45e-24, 0, 0.0030),
0165 KFEfficiencyParticleInfo("gamma", "gamma ", 22, 0.0f, 3.0f, 0. , 1.e20, 0, 0.0030),
0166 KFEfficiencyParticleInfo("pi0", "pi0 ", 111, 0.0f, 3.0f, 0.1349766 , 8.52e-17, 0, 0.0030),
0167 KFEfficiencyParticleInfo("eta", "eta ", 221, 0.0f, 3.0f, 0.547862 , 5.0e-19, 0, 0.0030),
0168
0169 KFEfficiencyParticleInfo("Delta0", "Delta0 ", 2114, 1.0f, 3.0f, 1.232 , 5.63e-24, 0, 0.0030),
0170 KFEfficiencyParticleInfo("Delta0 b", "Delta0 b ", -2114, 1.0f, 3.0f, 1.232 , 5.63e-24, 0, 0.0030),
0171 KFEfficiencyParticleInfo("Delta++", "Delta++ ", 2224, 1.0f, 3.0f, 1.232 , 5.63e-24, 2, 0.0030),
0172 KFEfficiencyParticleInfo("Delta-- b", "Delta-- b ", -2224, 1.0f, 3.0f, 1.232 , 5.63e-24, -2, 0.0030),
0173
0174 KFEfficiencyParticleInfo("JPsi_ee", "JPsi_ee ", 443, 1.0f, 4.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0175 KFEfficiencyParticleInfo("JPsi_mumu", "JPsi_mm ", 100443, 1.0f, 4.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0176 KFEfficiencyParticleInfo("JPsi_pp", "JPsi_pp ", 200443, 1.0f, 4.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0177 KFEfficiencyParticleInfo("JPsi_LL", "JPsi_LL ", 300443, 2.0f, 5.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0178 KFEfficiencyParticleInfo("JPsi_XiXi", "JPsi_XiXi ", 400443, 2.0f, 5.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0179 KFEfficiencyParticleInfo("Psi_OO", "Psi_OO ", 500443, 3.0f, 6.0f, 3.686109 , 2.1e-22, 0, 0.0030),
0180
0181 KFEfficiencyParticleInfo("D0", "D0 ", 421, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0154),
0182 KFEfficiencyParticleInfo("D0b", "D0b ", -421, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0154),
0183 KFEfficiencyParticleInfo("D0_4", "D0_4 ", 429, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0100),
0184 KFEfficiencyParticleInfo("D0b_4", "D0b_4 ", -429, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0100),
0185 KFEfficiencyParticleInfo("D0_pipi", "D0_pipi ", 420, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0154),
0186 KFEfficiencyParticleInfo("D0_2pi2pi", "D0_2pi2pi ", 470, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0154),
0187 KFEfficiencyParticleInfo("D0_K0pipi", "D0_K0pipi ", 425, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0150),
0188 KFEfficiencyParticleInfo("D0_KK", "D0_KK ", 426, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0130),
0189 KFEfficiencyParticleInfo("D0_KKK0", "D0_KKK0 ", 427, 0.6f, 3.6f, 1.86486 , 4.1e-13, 0, 0.0154),
0190 KFEfficiencyParticleInfo("D0_pi0", "D0_#pi0 ", 428, 1.0f, 3.0f, 1.86486 , 4.1e-13, 0, 0.0030),
0191 KFEfficiencyParticleInfo("D+", "D+ ", 411, 1.0f, 3.0f, 1.86962 , 1.04e-13, 1, 0.0114),
0192 KFEfficiencyParticleInfo("D-", "D- ", -411, 1.0f, 3.0f, 1.86962 , 1.04e-13, -1, 0.0114),
0193 KFEfficiencyParticleInfo("D+_K0pi+", "D+_K0pi+ ", 100411, 0.6f, 4.6f, 1.86962 , 1.04e-13, 1, 0.0030),
0194 KFEfficiencyParticleInfo("D-_K0pi-", "D-_K0pi- ", -100411, 0.6f, 4.6f, 1.86962 , 1.04e-13, -1, 0.0030),
0195 KFEfficiencyParticleInfo("D+_K03pi", "D+_K03pi ", 200411, 0.6f, 4.6f, 1.86962 , 1.04e-13, 1, 0.0030),
0196 KFEfficiencyParticleInfo("D-_K03pi", "D-_K03pi ", -200411, 0.6f, 4.6f, 1.86962 , 1.04e-13, -1, 0.0030),
0197 KFEfficiencyParticleInfo("D+_3pi", "D+_3pi ", 300411, 0.6f, 4.6f, 1.86962 , 1.04e-13, 1, 0.0030),
0198 KFEfficiencyParticleInfo("D-_3pi", "D-_3pi ", -300411, 0.6f, 4.6f, 1.86962 , 1.04e-13, -1, 0.0030),
0199 KFEfficiencyParticleInfo("Ds+", "Ds+ ", 431, 1.0f, 3.0f, 1.96850 , 5.0e-13, 1, 0.0110),
0200 KFEfficiencyParticleInfo("Ds-", "Ds- ", -431, 1.0f, 3.0f, 1.96850 , 5.0e-13, -1, 0.0110),
0201 KFEfficiencyParticleInfo("Ds+_K0K+", "Ds+_K0K+ ", 100431, 1.0f, 3.0f, 1.96850 , 5.0e-13, 1, 0.0030),
0202 KFEfficiencyParticleInfo("Ds-_K0K-", "Ds-_K0K- ", -100431, 1.0f, 3.0f, 1.96850 , 5.0e-13, -1, 0.0030),
0203 KFEfficiencyParticleInfo("Ds+_K0K0pi+", "Ds+_K0K0pi+ ", 200431, 1.0f, 3.0f, 1.96850 , 5.0e-13, 1, 0.0030),
0204 KFEfficiencyParticleInfo("Ds-_K0K0pi-", "Ds-_K0K0pi- ", -200431, 1.0f, 3.0f, 1.96850 , 5.0e-13, -1, 0.0030),
0205 KFEfficiencyParticleInfo("Ds+_K0K+pipi", "Ds+_K0K+pipi ", 300431, 1.0f, 3.0f, 1.96850 , 5.0e-13, 1, 0.0030),
0206 KFEfficiencyParticleInfo("Ds-_K0K-pipi", "Ds-_K0K-pipi ", -300431, 1.0f, 3.0f, 1.96850 , 5.0e-13, -1, 0.0030),
0207 KFEfficiencyParticleInfo("Ds+_K+pipi", "Ds+_K+pipi ", 400431, 1.0f, 3.0f, 1.96850 , 5.0e-13, 1, 0.0030),
0208 KFEfficiencyParticleInfo("Ds-_K-pipi", "Ds-_K-pipi ", -400431, 1.0f, 3.0f, 1.96850 , 5.0e-13, -1, 0.0030),
0209 KFEfficiencyParticleInfo("Lc", "Lambdac ", 4122, 1.8f, 3.8f, 2.28646 , 2.0e-13, 1, 0.0110),
0210 KFEfficiencyParticleInfo("Lcb", "Lambdac b ", -4122, 1.8f, 3.8f, 2.28646 , 2.0e-13, -1, 0.0110),
0211 KFEfficiencyParticleInfo("Lc_{pK0}", "Lc {pK0} ", 104122, 1.8f, 3.8f, 2.28646 , 2.0e-13, 1, 0.0030),
0212 KFEfficiencyParticleInfo("Lcb_{pK0}", "Lc b {pK0} ", -104122, 1.8f, 3.8f, 2.28646 , 2.0e-13, -1, 0.0030),
0213 KFEfficiencyParticleInfo("Lc_{pK02pi}", "Lc {pK02pi} ", 204122, 1.8f, 3.8f, 2.28646 , 2.0e-13, 1, 0.0030),
0214 KFEfficiencyParticleInfo("Lcb_{pK02pi}", "Lc b {pK02pi} ", -204122, 1.8f, 3.8f, 2.28646 , 2.0e-13, -1, 0.0030),
0215 KFEfficiencyParticleInfo("Lc_{Lpi}", "Lc {Lpi} ", 304122, 1.8f, 3.8f, 2.28646 , 2.0e-13, 1, 0.0030),
0216 KFEfficiencyParticleInfo("Lcb_{Lpi}", "Lc b {Lpi} ", -304122, 1.8f, 3.8f, 2.28646 , 2.0e-13, -1, 0.0030),
0217 KFEfficiencyParticleInfo("Lc_{L3pi}", "Lc {L3pi} ", 404122, 1.8f, 3.8f, 2.28646 , 2.0e-13, 1, 0.0030),
0218 KFEfficiencyParticleInfo("Lcb_{L3pi}", "Lc b {L3pi} ", -404122, 1.8f, 3.8f, 2.28646 , 2.0e-13, -1, 0.0030),
0219 KFEfficiencyParticleInfo("Lc_{p2pi}", "Lc {p2pi} ", 504122, 1.8f, 3.8f, 2.28646 , 2.0e-13, 1, 0.0030),
0220 KFEfficiencyParticleInfo("Lcb_{p2pi}", "Lc b {p2pi} ", -504122, 1.8f, 3.8f, 2.28646 , 2.0e-13, -1, 0.0030),
0221 KFEfficiencyParticleInfo("Xic0", "Xic0 ", 4132, 2.1f, 4.1f, 2.47087 , 1.0e-13, 0, 0.0030),
0222 KFEfficiencyParticleInfo("Xic0b", "Xic0b ", -4132, 2.1f, 4.1f, 2.47087 , 1.0e-13, 0, 0.0030),
0223 KFEfficiencyParticleInfo("D*0", "D*0 ", 10421, 1.8f, 3.8f, 2.00699 , 3.0e-22, 0, 0.0030),
0224 KFEfficiencyParticleInfo("D*0b", "D*0 b ", -10421, 1.8f, 3.8f, 2.00699 , 3.0e-22, 0, 0.0030),
0225 KFEfficiencyParticleInfo("D*+", "D*+ ", 10411, 1.8f, 3.8f, 2.01029 , 6.86e-21, 1, 0.0030),
0226 KFEfficiencyParticleInfo("D*-", "D*- ", -10411, 1.8f, 3.8f, 2.01029 , 6.86e-21, -1, 0.0030),
0227 KFEfficiencyParticleInfo("D*+_4", "D*+_4 ", 20411, 1.8f, 3.8f, 2.01029 , 6.86e-21, 1, 0.0030),
0228 KFEfficiencyParticleInfo("D*-_4", "D*-_4 ", -20411, 1.8f, 3.8f, 2.01029 , 6.86e-21, -1, 0.0030),
0229 KFEfficiencyParticleInfo("D0*_pi0", "D0*_#pi0 ", 10428, 1.8f, 3.8f, 2.00699 , 6.86e-21, 0, 0.0030),
0230
0231 KFEfficiencyParticleInfo("B_Jpsi_ee", "B_Jpsi_ee ", 500, 1.0f, 4.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0232 KFEfficiencyParticleInfo("B_Jpsi_mm", "B_Jpsi_mm ", 501, 1.0f, 4.0f, 3.096916 , 7.1e-21, 0, 0.0030),
0233 KFEfficiencyParticleInfo("B+_D0bPi+", "B+ {D0bPi+} ", 521, 3.0f, 7.0f, 5.27931 , 1.638e-12, 0, 0.0030),
0234 KFEfficiencyParticleInfo("B-_D0Pi-", "B- {D0Pi-} ", -521, 3.0f, 7.0f, 5.27931 , 1.638e-12, 0, 0.0030),
0235 KFEfficiencyParticleInfo("B+_D0bK+", "B+ {D0bK+} ", 529, 3.0f, 7.0f, 5.27931 , 1.638e-12, 0, 0.0030),
0236 KFEfficiencyParticleInfo("B-_D0K-", "B- {D0K+} ", -529, 3.0f, 7.0f, 5.27931 , 1.638e-12, 0, 0.0030),
0237 KFEfficiencyParticleInfo("B0_D-Pi+", "B0 {D-Pi+} ", 511, 3.0f, 7.0f, 5.27962 , 1.520e-12, 0, 0.0030),
0238 KFEfficiencyParticleInfo("B0b_D+Pi-", "B0b {D+Pi-} ", -511, 3.0f, 7.0f, 5.27962 , 1.520e-12, 0, 0.0030),
0239 KFEfficiencyParticleInfo("B0_D-K+", "B0 {D-K+} ", 519, 3.0f, 7.0f, 5.27962 , 1.520e-12, 0, 0.0030),
0240 KFEfficiencyParticleInfo("B0b_D+K-", "B0b {D+K-} ", -519, 3.0f, 7.0f, 5.27962 , 1.520e-12, 0, 0.0030),
0241 KFEfficiencyParticleInfo("H0_{Lppi}", "H0 ", 3001, 2.0f, 4.0f, 2.21 , 1.32e-10, 0, 0.0030),
0242
0243 KFEfficiencyParticleInfo("LambdaN", "LambdaN ", 3003, 1.0f, 3.0f, 2.05395 , 1.00e-10, 0, 0.0030),
0244 KFEfficiencyParticleInfo("LambdaNb", "LambdaN b ", -3003, 1.0f, 3.0f, 2.05395 , 1.00e-10, 0, 0.0030),
0245 KFEfficiencyParticleInfo("LambdaNN", "LambdaNN ", 3103, 2.0f, 4.0f, 2.99352 , 1.00e-10, 0, 0.0030),
0246 KFEfficiencyParticleInfo("LambdaNNb", "LambdaNN b ", -3103, 2.0f, 4.0f, 2.99352 , 1.00e-10, 0, 0.0030),
0247 KFEfficiencyParticleInfo("H3L", "H3L ", 3004, 2.0f, 4.0f, 2.99339 , 1.85e-10, 1, 0.0030),
0248 KFEfficiencyParticleInfo("H3Lb", "H3L b ", -3004, 2.0f, 4.0f, 2.99339 , 1.85e-10, -1, 0.0030),
0249 KFEfficiencyParticleInfo("H4L", "H4L ", 3005, 3.0f, 5.0f, 3.92975 , 1.80e-10, 1, 0.0030),
0250 KFEfficiencyParticleInfo("H4Lb", "H4L b ", -3005, 3.0f, 5.0f, 3.92975 , 1.80e-10, -1, 0.0030),
0251 KFEfficiencyParticleInfo("He4L", "He4L ", 3006, 3.0f, 5.0f, 3.93070 , 1.50e-10, 2, 0.0030),
0252 KFEfficiencyParticleInfo("He4Lb", "He4L b ", -3006, 3.0f, 5.0f, 3.93070 , 1.50e-10, -2, 0.0030),
0253 KFEfficiencyParticleInfo("He5L", "He5L ", 3007, 4.0f, 6.0f, 4.86824 , 1.40e-10, 2, 0.0030),
0254 KFEfficiencyParticleInfo("He5Lb", "He5L b ", -3007, 4.0f, 6.0f, 4.86824 , 1.40e-10, -2, 0.0030),
0255 KFEfficiencyParticleInfo("LLn", "LLn ", 3203, 3.0f, 5.0f, 3.16964 , 1.00e-10, 0, 0.0030),
0256 KFEfficiencyParticleInfo("H4LL_{He4Lpi-}", "H4LL_{He4Lpi-}", 3008, 3.0f, 5.0f, 4.10791 , 1.0e-10, 1, 0.0030),
0257 KFEfficiencyParticleInfo("H4LL_{H3Lppi-}", "H4LL_{H3Lppi-}", 3009, 3.0f, 5.0f, 4.10791 , 1.0e-10, 1, 0.0030),
0258 KFEfficiencyParticleInfo("H5LL_{He5Lpi-}", "H5LL_{He5Lpi-}", 3010, 4.0f, 6.0f, 5.04748 , 1.0e-10, 1, 0.0030),
0259 KFEfficiencyParticleInfo("He6LL", "He6LL ", 3011, 5.0f, 7.0f, 5.98575 , 1.0e-10, 2, 0.0030),
0260
0261 KFEfficiencyParticleInfo("pi-_{mu,nu}", "pi-_{mnu} ", -7000211,-1.0f, 1.0f, 0.139570 , 2.6e-8, -1, 0.0030),
0262 KFEfficiencyParticleInfo("nu_{pi-}", "nu_{mupi-} b ", -7000014,-1.0f, 1.0f, 0. , 1.0e20, 0, 0.0030),
0263 KFEfficiencyParticleInfo("pi+_{mu,nu}", "pi+_{mnu} ", 7000211,-1.0f, 1.0f, 0.139570 , 2.6e-8, 1, 0.0030),
0264 KFEfficiencyParticleInfo("nu_{pi+}", "nu_{mupi+} ", 7000014,-1.0f, 1.0f, 0. , 1.0e20, 0, 0.0030),
0265 KFEfficiencyParticleInfo("K-_{mu,nu}", "K-_{mnu} ", -7000321,-1.0f, 1.0f, 0.493677 , 1.238e-8, -1, 0.0030),
0266 KFEfficiencyParticleInfo("nu_{K-}", "nu_{K-} b ", -8000014,-1.0f, 1.0f, 0. , 1.0e20, 0, 0.0030),
0267 KFEfficiencyParticleInfo("K+_{mu,nu}", "K+_{mnu} ", 7000321,-1.0f, 1.0f, 0.493677 , 1.238e-8, 1, 0.0030),
0268 KFEfficiencyParticleInfo("nu_{K+}", "nu_{K+} ", 8000014,-1.0f, 1.0f, 0. , 1.0e20, 0, 0.0030),
0269 KFEfficiencyParticleInfo("Sigma-_{pi-,n}", "Sigma-_{pi-n} ", 7003112, 0.0f, 3.0f, 1.192642 , 1.479e-10, -1, 0.0100),
0270 KFEfficiencyParticleInfo("n_{Sigma-}", "n_{Sigma-} ", 7002112, 0.0f, 1.5f, 0.9395654 , 880, 0, 0.0030),
0271 KFEfficiencyParticleInfo("Sigma+_{pi+n}b", "Sigma+{pi+n} b", -7003112, 0.0f, 3.0f, 1.192642 , 1.479e-10, -1, 0.0030),
0272 KFEfficiencyParticleInfo("n_{Sigma+} b", "n_{Sigma+b} b ", -7002112, 0.0f, 1.5f, 0.9395654 , 880, 0, 0.0030),
0273 KFEfficiencyParticleInfo("Sigma-_{pi-n}b", "Sigma+{pi-n} b", -7003222, 0.0f, 3.0f, 1.18937 , 0.8018e-10, 1, 0.0030),
0274 KFEfficiencyParticleInfo("n_{Sigma-} b", "n_{Sigma-_b} b", -8002112, 0.0f, 1.5f, 0.9395654 , 0.93956541, 0, 0.0030),
0275 KFEfficiencyParticleInfo("Sigma+_{pi+n}", "Sigma+_{pi+n} ", 7003222, 0.0f, 3.0f, 1.18937 , 0.8018e-10, 1, 0.0100),
0276 KFEfficiencyParticleInfo("n_{Sigma+}", "n_{Sigma+} ", 8002112, 0.0f, 1.5f, 0.9395654 , 880, 0, 0.0030),
0277 KFEfficiencyParticleInfo("Xi-_{pi-L}", "Xi-_{pi-L} ", 7003312, 0.0f, 3.0f, 1.32171 , 1.639e-10, -1, 0.0030),
0278 KFEfficiencyParticleInfo("Lambda_{Xi-}", "Lambda_{Xi-} ", 7003122, 0.0f, 2.0f, 1.115683 , 2.632e-10, 0, 0.0030),
0279 KFEfficiencyParticleInfo("Xi+_{pi+L_b}", "Xi+_{pi+L_b} ", -7003312, 0.0f, 3.0f, 1.32171 , 1.639e-10, 1, 0.0030),
0280 KFEfficiencyParticleInfo("Lambda_{Xi+} b", "Lambda_{Xi+} b", -7003122, 0.0f, 2.0f, 1.115683 , 2.632e-10, 0, 0.0030),
0281 KFEfficiencyParticleInfo("Omega-_{Xi-pi0}", "Omega-{pi-Xi0}", 7003334, 0.0f, 3.0f, 1.67245 , 0.821e-10, -1, 0.0030),
0282 KFEfficiencyParticleInfo("Xi0_{Omega-}", "Xi0_{Omega-} ", 7003322, 0.0f, 3.0f, 1.31486 , 2.9e-10, 0, 0.0030),
0283 KFEfficiencyParticleInfo("Omega+_{Xi+pi0}", "Omega+_{Xipi0}", -7003334, 0.0f, 3.0f, 1.67245 , 0.821e-10, 1, 0.0030),
0284 KFEfficiencyParticleInfo("Xi0_{Omega+} b", "Xi0_{Omega+} b", -7003322, 0.0f, 3.0f, 1.31486 , 2.9e-10, 0, 0.0030),
0285 KFEfficiencyParticleInfo("K-_{pi-pi0}", "K-_{pi-pi0} ", -9000321, 0.0f, 3.0f, 0.493677 , 1.24e-8, -1, 0.0030),
0286 KFEfficiencyParticleInfo("pi0_{K-}", "pi0_{K-} ", -9000111, 0.0f, 3.0f, 0.1349766 , 8.52e-17, 0, 0.0030),
0287 KFEfficiencyParticleInfo("K+_{pi+pi0}", "K+_{pi+pi0} ", 9000321, 0.0f, 3.0f, 0.493677 , 1.24e-8, 1, 0.0030),
0288 KFEfficiencyParticleInfo("pi0_{K+}", "pi0_{K+} ", 9000111, 0.0f, 3.0f, 0.1349766 , 8.52e-17, 0, 0.0030),
0289 KFEfficiencyParticleInfo("Omega-{K-L}", "Omega-_{K-L} ", 8003334, 0.0f, 3.0f, 1.67245 , 0.821e-10, -1, 0.0030),
0290 KFEfficiencyParticleInfo("Lambda_{Omega-}", "Lambda_{O-} ", 8003122, 0.0f, 3.0f, 1.115683 , 2.632e-10, 0, 0.0030),
0291 KFEfficiencyParticleInfo("Omega+_{K+L_b}", "Omega+_{K+Lb} ", -8003334, 0.0f, 3.0f, 1.67245 , 0.821e-10, 1, 0.0030),
0292 KFEfficiencyParticleInfo("Lamda_{Omega+} b", "Lambda_{O+} b ", -8003122, 0.0f, 3.0f, 1.115683 , 2.632e-10, 0, 0.0030),
0293 KFEfficiencyParticleInfo("Sigma-{p_b pi0} b","Sigma-{ppi0} b", -8003222, 0.0f, 3.0f, 1.18937 , 0.8018e-10, 1, 0.0030),
0294 KFEfficiencyParticleInfo("pi0_{Sigma-b}", "pi0_{Sigma-_b}", -8000111, 0.0f, 3.0f, 0.1349766 , 8.52e-17, 0, 0.0030),
0295 KFEfficiencyParticleInfo("Sigma+_{p pi0}", "Sigma+_{ppi0} ", 8003222, 0.0f, 3.0f, 1.18937 , 0.8018e-10, 1, 0.0250),
0296 KFEfficiencyParticleInfo("pi0_{Sigma+}", "pi0_{Sigma+} ", 8000111, 0.0f, 3.0f, 0.1349766 , 8.52e-17, 0, 0.0030),
0297
0298 KFEfficiencyParticleInfo("e-", "e- ", 11, 0.0f,0.01f, 5.485799e-4, 1.0e20, -1, 0.0030),
0299 KFEfficiencyParticleInfo("e+", "e+ ", -11, 0.0f,0.01f, 5.485799e-4, 1.0e20, 1, 0.0030),
0300 KFEfficiencyParticleInfo("mu-", "mu- ", 13, 0.0f, 1.0f, 0.105658 , 2.2e-6, -1, 0.0030),
0301 KFEfficiencyParticleInfo("mu+", "mu+ ", -13, 0.0f, 1.0f, 0.105658 , 2.2e-6, 1, 0.0030),
0302 KFEfficiencyParticleInfo("pi+", "pi+ ", 211, 0.0f, 1.0f, 0.139570 , 2.6e-8, 1, 0.0030),
0303 KFEfficiencyParticleInfo("pi-", "pi- ", -211, 0.0f, 1.0f, 0.139570 , 2.6e-8, -1, 0.0030),
0304 KFEfficiencyParticleInfo("K+", "K+ ", 321, 0.0f, 1.0f, 0.493677 , 1.238e-8, 1, 0.0030),
0305 KFEfficiencyParticleInfo("K-", "K- ", -321, 0.0f, 1.0f, 0.493677 , 1.238e-8, -1, 0.0030),
0306 KFEfficiencyParticleInfo("p+", "p+ ", 2212, 0.0f, 1.5f, 0.938272 , 1.0e20, 1, 0.0030),
0307 KFEfficiencyParticleInfo("p-", "p- ", -2212, 0.0f, 1.5f, 0.938272 , 1.0e20, -1, 0.0030),
0308 KFEfficiencyParticleInfo("d+", "d+ ", 1000010020, 0.0f, 2.5f, 1.876124 , 1.0e20, 1, 0.0030),
0309 KFEfficiencyParticleInfo("d-", "d- ",-1000010020, 0.0f, 2.5f, 1.876124 , 1.0e20, -1, 0.0030),
0310 KFEfficiencyParticleInfo("t+", "t+ ", 1000010030, 0.0f, 3.5f, 2.809432 , 1.0e20, 1, 0.0030),
0311 KFEfficiencyParticleInfo("t-", "t- ",-1000010030, 0.0f, 3.5f, 2.809432 , 1.0e20, -1, 0.0030),
0312 KFEfficiencyParticleInfo("He3+", "He3+ ", 1000020030, 0.0f, 3.5f, 2.809413 , 1.0e20, 2, 0.0030),
0313 KFEfficiencyParticleInfo("He3-", "He3- ",-1000020030, 0.0f, 3.5f, 2.809413 , 1.0e20, -2, 0.0030),
0314 KFEfficiencyParticleInfo("He4+", "He4+ ", 1000020040, 0.0f, 4.5f, 3.728400 , 1.0e20, 2, 0.0030),
0315 KFEfficiencyParticleInfo("He4-", "He4- ",-1000020040, 0.0f, 4.5f, 3.728400 , 1.0e20, -2, 0.0030),
0316
0317 KFEfficiencyParticleInfo("pi+pi+", "pi+pi+ ", 9001, 0.0f, 2.0f, 0 , 1.0e20, 0, 0.0030),
0318 KFEfficiencyParticleInfo("pi+K+", "pi+K+ ", 9002, 0.6f, 5.6f, 0 , 1.0e20, 0, 0.0030),
0319 KFEfficiencyParticleInfo("K+K+", "K+K+ ", 9003, 0.8f, 3.8f, 0 , 1.0e20, 0, 0.0030),
0320 KFEfficiencyParticleInfo("K+p+", "K+p+ ", 9004, 1.4f, 5.4f, 0 , 1.0e20, 0, 0.0030),
0321 KFEfficiencyParticleInfo("pi-pi-", "pi-pi- ", -9001, 0.0f, 2.0f, 0 , 1.0e20, 0, 0.0030),
0322 KFEfficiencyParticleInfo("pi-K-", "pi-K- ", -9002, 0.6f, 5.6f, 0 , 1.0e20, 0, 0.0030),
0323 KFEfficiencyParticleInfo("K-K-", "K-K- ", -9003, 0.8f, 3.8f, 0 , 1.0e20, 0, 0.0030),
0324 KFEfficiencyParticleInfo("K-p-", "K-p- ", -9004, 1.4f, 5.4f, 0 , 1.0e20, 0, 0.0030),
0325
0326 KFEfficiencyParticleInfo("V0", "V0 ", 123456789, 0.3f, 1.3f, 0 , 0, 0, 0.0030)
0327 };
0328
0329 int mPartMaxMult[nParticles];
0330 for(int i=0; i<nParticles; i++)
0331 mPartMaxMult[i] = 20;
0332 mPartMaxMult[fFirstStableParticleIndex + 4] = 500;
0333 mPartMaxMult[fFirstStableParticleIndex + 5] = 500;
0334 mPartMaxMult[fFirstStableParticleIndex + 6] = 50;
0335 mPartMaxMult[fFirstStableParticleIndex + 7] = 50;
0336 mPartMaxMult[fFirstStableParticleIndex + 8] = 500;
0337
0338
0339 partDaughterPdg.resize(nParticles);
0340
0341 int curPart = 0;
0342
0343 partDaughterPdg[curPart].push_back( 211);
0344 partDaughterPdg[curPart].push_back( -211);
0345 curPart++;
0346
0347 partDaughterPdg[curPart].push_back( 2212);
0348 partDaughterPdg[curPart].push_back( -211);
0349 curPart++;
0350
0351 partDaughterPdg[curPart].push_back(-2212);
0352 partDaughterPdg[curPart].push_back( 211);
0353 curPart++;
0354
0355 partDaughterPdg[curPart].push_back( 3122);
0356 partDaughterPdg[curPart].push_back( -211);
0357 curPart++;
0358
0359 partDaughterPdg[curPart].push_back(-3122);
0360 partDaughterPdg[curPart].push_back( 211);
0361 curPart++;
0362
0363 partDaughterPdg[curPart].push_back( 3122);
0364 partDaughterPdg[curPart].push_back( 111);
0365 curPart++;
0366
0367 partDaughterPdg[curPart].push_back(-3122);
0368 partDaughterPdg[curPart].push_back( 111);
0369 curPart++;
0370
0371 partDaughterPdg[curPart].push_back( 3122);
0372 partDaughterPdg[curPart].push_back( -321);
0373 curPart++;
0374
0375 partDaughterPdg[curPart].push_back(-3122);
0376 partDaughterPdg[curPart].push_back( 321);
0377 curPart++;
0378
0379 partDaughterPdg[curPart].push_back( 22);
0380 partDaughterPdg[curPart].push_back( 3122);
0381 curPart++;
0382
0383 partDaughterPdg[curPart].push_back( 22);
0384 partDaughterPdg[curPart].push_back(-3122);
0385 curPart++;
0386
0387 partDaughterPdg[curPart].push_back( 111);
0388 partDaughterPdg[curPart].push_back( 2212);
0389 curPart++;
0390
0391 partDaughterPdg[curPart].push_back( 111);
0392 partDaughterPdg[curPart].push_back(-2212);
0393 curPart++;
0394
0395 partDaughterPdg[curPart].push_back( 321);
0396 partDaughterPdg[curPart].push_back( -211);
0397 curPart++;
0398
0399 partDaughterPdg[curPart].push_back( -321);
0400 partDaughterPdg[curPart].push_back( 211);
0401 curPart++;
0402
0403 partDaughterPdg[curPart].push_back( 310);
0404 partDaughterPdg[curPart].push_back( 211);
0405 curPart++;
0406
0407 partDaughterPdg[curPart].push_back( 310);
0408 partDaughterPdg[curPart].push_back( -211);
0409 curPart++;
0410
0411 partDaughterPdg[curPart].push_back( 310);
0412 partDaughterPdg[curPart].push_back( 111);
0413 curPart++;
0414
0415 partDaughterPdg[curPart].push_back( 111);
0416 partDaughterPdg[curPart].push_back( 321);
0417 curPart++;
0418
0419 partDaughterPdg[curPart].push_back( 111);
0420 partDaughterPdg[curPart].push_back( -321);
0421 curPart++;
0422
0423 partDaughterPdg[curPart].push_back( 3122);
0424 partDaughterPdg[curPart].push_back( 211);
0425 curPart++;
0426
0427 partDaughterPdg[curPart].push_back( 3122);
0428 partDaughterPdg[curPart].push_back( -211);
0429 curPart++;
0430
0431 partDaughterPdg[curPart].push_back(-3122);
0432 partDaughterPdg[curPart].push_back( 211);
0433 curPart++;
0434
0435 partDaughterPdg[curPart].push_back(-3122);
0436 partDaughterPdg[curPart].push_back( -211);
0437 curPart++;
0438
0439 partDaughterPdg[curPart].push_back( 3122);
0440 partDaughterPdg[curPart].push_back( 111);
0441 curPart++;
0442
0443 partDaughterPdg[curPart].push_back(-3122);
0444 partDaughterPdg[curPart].push_back( 111);
0445 curPart++;
0446
0447 partDaughterPdg[curPart].push_back( 2212);
0448 partDaughterPdg[curPart].push_back( -321);
0449 curPart++;
0450
0451 partDaughterPdg[curPart].push_back(-2212);
0452 partDaughterPdg[curPart].push_back( 321);
0453 curPart++;
0454
0455 partDaughterPdg[curPart].push_back( 3312);
0456 partDaughterPdg[curPart].push_back( 211);
0457 curPart++;
0458
0459 partDaughterPdg[curPart].push_back(-3312);
0460 partDaughterPdg[curPart].push_back( -211);
0461 curPart++;
0462
0463 partDaughterPdg[curPart].push_back( 3122);
0464 partDaughterPdg[curPart].push_back( -321);
0465 curPart++;
0466
0467 partDaughterPdg[curPart].push_back(-3122);
0468 partDaughterPdg[curPart].push_back( 321);
0469 curPart++;
0470
0471 partDaughterPdg[curPart].push_back( 3312);
0472 partDaughterPdg[curPart].push_back( 111);
0473 curPart++;
0474
0475 partDaughterPdg[curPart].push_back(-3312);
0476 partDaughterPdg[curPart].push_back( 111);
0477 curPart++;
0478
0479 partDaughterPdg[curPart].push_back( 3312);
0480 partDaughterPdg[curPart].push_back( 211);
0481 partDaughterPdg[curPart].push_back( -321);
0482 curPart++;
0483
0484 partDaughterPdg[curPart].push_back(-3312);
0485 partDaughterPdg[curPart].push_back( -211);
0486 partDaughterPdg[curPart].push_back( 321);
0487 curPart++;
0488
0489 partDaughterPdg[curPart].push_back( 3122);
0490 partDaughterPdg[curPart].push_back( 3122);
0491 curPart++;
0492
0493 partDaughterPdg[curPart].push_back( 321);
0494 partDaughterPdg[curPart].push_back( -321);
0495 curPart++;
0496
0497 partDaughterPdg[curPart].push_back( 211);
0498 partDaughterPdg[curPart].push_back( -211);
0499 curPart++;
0500
0501 partDaughterPdg[curPart].push_back( 11);
0502 partDaughterPdg[curPart].push_back( -11);
0503 curPart++;
0504
0505 partDaughterPdg[curPart].push_back( 13);
0506 partDaughterPdg[curPart].push_back( -13);
0507 curPart++;
0508
0509 partDaughterPdg[curPart].push_back( 11);
0510 partDaughterPdg[curPart].push_back( -11);
0511 curPart++;
0512
0513 partDaughterPdg[curPart].push_back( 22);
0514 partDaughterPdg[curPart].push_back( 22);
0515 curPart++;
0516
0517 partDaughterPdg[curPart].push_back( 111);
0518 partDaughterPdg[curPart].push_back( 111);
0519 partDaughterPdg[curPart].push_back( 111);
0520 curPart++;
0521
0522 partDaughterPdg[curPart].push_back( 2212);
0523 partDaughterPdg[curPart].push_back( -211);
0524 curPart++;
0525
0526 partDaughterPdg[curPart].push_back(-2212);
0527 partDaughterPdg[curPart].push_back( 211);
0528 curPart++;
0529
0530 partDaughterPdg[curPart].push_back( 2212);
0531 partDaughterPdg[curPart].push_back( 211);
0532 curPart++;
0533
0534 partDaughterPdg[curPart].push_back(-2212);
0535 partDaughterPdg[curPart].push_back( -211);
0536 curPart++;
0537
0538 partDaughterPdg[curPart].push_back( 11);
0539 partDaughterPdg[curPart].push_back( -11);
0540 curPart++;
0541
0542 partDaughterPdg[curPart].push_back( 13);
0543 partDaughterPdg[curPart].push_back( -13);
0544 curPart++;
0545
0546 partDaughterPdg[curPart].push_back( 2212);
0547 partDaughterPdg[curPart].push_back( -2212);
0548 curPart++;
0549
0550 partDaughterPdg[curPart].push_back( 3122);
0551 partDaughterPdg[curPart].push_back( -3122);
0552 curPart++;
0553
0554 partDaughterPdg[curPart].push_back( 3312);
0555 partDaughterPdg[curPart].push_back( -3312);
0556 curPart++;
0557
0558 partDaughterPdg[curPart].push_back( 3334);
0559 partDaughterPdg[curPart].push_back( -3334);
0560 curPart++;
0561
0562 partDaughterPdg[curPart].push_back( 211);
0563 partDaughterPdg[curPart].push_back( -321);
0564 curPart++;
0565
0566 partDaughterPdg[curPart].push_back( -211);
0567 partDaughterPdg[curPart].push_back( 321);
0568 curPart++;
0569
0570 partDaughterPdg[curPart].push_back( 211);
0571 partDaughterPdg[curPart].push_back( 211);
0572 partDaughterPdg[curPart].push_back( -211);
0573 partDaughterPdg[curPart].push_back( -321);
0574 curPart++;
0575
0576 partDaughterPdg[curPart].push_back( -211);
0577 partDaughterPdg[curPart].push_back( -211);
0578 partDaughterPdg[curPart].push_back( 211);
0579 partDaughterPdg[curPart].push_back( 321);
0580 curPart++;
0581
0582 partDaughterPdg[curPart].push_back( 211);
0583 partDaughterPdg[curPart].push_back( -211);
0584 curPart++;
0585
0586 partDaughterPdg[curPart].push_back( 211);
0587 partDaughterPdg[curPart].push_back( 211);
0588 partDaughterPdg[curPart].push_back( -211);
0589 partDaughterPdg[curPart].push_back( -211);
0590 curPart++;
0591
0592 partDaughterPdg[curPart].push_back( 310);
0593 partDaughterPdg[curPart].push_back( 211);
0594 partDaughterPdg[curPart].push_back( -211);
0595 curPart++;
0596
0597 partDaughterPdg[curPart].push_back( 321);
0598 partDaughterPdg[curPart].push_back( -321);
0599 curPart++;
0600
0601 partDaughterPdg[curPart].push_back( 321);
0602 partDaughterPdg[curPart].push_back( -321);
0603 partDaughterPdg[curPart].push_back( 310);
0604 curPart++;
0605
0606 partDaughterPdg[curPart].push_back( 310);
0607 partDaughterPdg[curPart].push_back( 211);
0608 partDaughterPdg[curPart].push_back( -211);
0609 partDaughterPdg[curPart].push_back( 111);
0610 curPart++;
0611
0612 partDaughterPdg[curPart].push_back( -321);
0613 partDaughterPdg[curPart].push_back( 211);
0614 partDaughterPdg[curPart].push_back( 211);
0615 curPart++;
0616
0617 partDaughterPdg[curPart].push_back( 321);
0618 partDaughterPdg[curPart].push_back( -211);
0619 partDaughterPdg[curPart].push_back( -211);
0620 curPart++;
0621
0622 partDaughterPdg[curPart].push_back( 310);
0623 partDaughterPdg[curPart].push_back( 211);
0624 curPart++;
0625
0626 partDaughterPdg[curPart].push_back( 310);
0627 partDaughterPdg[curPart].push_back( -211);
0628 curPart++;
0629
0630 partDaughterPdg[curPart].push_back( 310);
0631 partDaughterPdg[curPart].push_back( 211);
0632 partDaughterPdg[curPart].push_back( 211);
0633 partDaughterPdg[curPart].push_back( -211);
0634 curPart++;
0635
0636 partDaughterPdg[curPart].push_back( 310);
0637 partDaughterPdg[curPart].push_back( 211);
0638 partDaughterPdg[curPart].push_back( -211);
0639 partDaughterPdg[curPart].push_back( -211);
0640 curPart++;
0641
0642 partDaughterPdg[curPart].push_back( 211);
0643 partDaughterPdg[curPart].push_back( 211);
0644 partDaughterPdg[curPart].push_back( -211);
0645 curPart++;
0646
0647 partDaughterPdg[curPart].push_back( 211);
0648 partDaughterPdg[curPart].push_back( -211);
0649 partDaughterPdg[curPart].push_back( -211);
0650 curPart++;
0651
0652 partDaughterPdg[curPart].push_back( -321);
0653 partDaughterPdg[curPart].push_back( 321);
0654 partDaughterPdg[curPart].push_back( 211);
0655 curPart++;
0656
0657 partDaughterPdg[curPart].push_back( 321);
0658 partDaughterPdg[curPart].push_back( -321);
0659 partDaughterPdg[curPart].push_back( -211);
0660 curPart++;
0661
0662 partDaughterPdg[curPart].push_back( 310);
0663 partDaughterPdg[curPart].push_back( 321);
0664 curPart++;
0665
0666 partDaughterPdg[curPart].push_back( 310);
0667 partDaughterPdg[curPart].push_back( -321);
0668 curPart++;
0669
0670 partDaughterPdg[curPart].push_back( 310);
0671 partDaughterPdg[curPart].push_back( 310);
0672 partDaughterPdg[curPart].push_back( 211);
0673 curPart++;
0674
0675 partDaughterPdg[curPart].push_back( 310);
0676 partDaughterPdg[curPart].push_back( 310);
0677 partDaughterPdg[curPart].push_back( -211);
0678 curPart++;
0679
0680 partDaughterPdg[curPart].push_back( 310);
0681 partDaughterPdg[curPart].push_back( 321);
0682 partDaughterPdg[curPart].push_back( 211);
0683 partDaughterPdg[curPart].push_back( -211);
0684 curPart++;
0685
0686 partDaughterPdg[curPart].push_back( 310);
0687 partDaughterPdg[curPart].push_back( -321);
0688 partDaughterPdg[curPart].push_back( 211);
0689 partDaughterPdg[curPart].push_back( -211);
0690 curPart++;
0691
0692 partDaughterPdg[curPart].push_back( 321);
0693 partDaughterPdg[curPart].push_back( 211);
0694 partDaughterPdg[curPart].push_back( -211);
0695 curPart++;
0696
0697 partDaughterPdg[curPart].push_back( -321);
0698 partDaughterPdg[curPart].push_back( 211);
0699 partDaughterPdg[curPart].push_back( -211);
0700 curPart++;
0701
0702
0703 partDaughterPdg[curPart].push_back( 211);
0704 partDaughterPdg[curPart].push_back( -321);
0705 partDaughterPdg[curPart].push_back( 2212);
0706 curPart++;
0707
0708 partDaughterPdg[curPart].push_back( -211);
0709 partDaughterPdg[curPart].push_back( 321);
0710 partDaughterPdg[curPart].push_back(-2212);
0711 curPart++;
0712
0713 partDaughterPdg[curPart].push_back( 2212);
0714 partDaughterPdg[curPart].push_back( 310);
0715 curPart++;
0716
0717 partDaughterPdg[curPart].push_back(-2212);
0718 partDaughterPdg[curPart].push_back( 310);
0719 curPart++;
0720
0721 partDaughterPdg[curPart].push_back( 2212);
0722 partDaughterPdg[curPart].push_back( 310);
0723 partDaughterPdg[curPart].push_back( 211);
0724 partDaughterPdg[curPart].push_back( -211);
0725 curPart++;
0726
0727 partDaughterPdg[curPart].push_back(-2212);
0728 partDaughterPdg[curPart].push_back( 310);
0729 partDaughterPdg[curPart].push_back( 211);
0730 partDaughterPdg[curPart].push_back( -211);
0731 curPart++;
0732
0733 partDaughterPdg[curPart].push_back( 3122);
0734 partDaughterPdg[curPart].push_back( 211);
0735 curPart++;
0736
0737 partDaughterPdg[curPart].push_back(-3122);
0738 partDaughterPdg[curPart].push_back( -211);
0739 curPart++;
0740
0741 partDaughterPdg[curPart].push_back( 3122);
0742 partDaughterPdg[curPart].push_back( 211);
0743 partDaughterPdg[curPart].push_back( 211);
0744 partDaughterPdg[curPart].push_back( -211);
0745 curPart++;
0746
0747 partDaughterPdg[curPart].push_back(-3122);
0748 partDaughterPdg[curPart].push_back( -211);
0749 partDaughterPdg[curPart].push_back( 211);
0750 partDaughterPdg[curPart].push_back( -211);
0751 curPart++;
0752
0753 partDaughterPdg[curPart].push_back( 3312);
0754 partDaughterPdg[curPart].push_back( 211);
0755 partDaughterPdg[curPart].push_back( 211);
0756 partDaughterPdg[curPart].push_back( -211);
0757 curPart++;
0758
0759 partDaughterPdg[curPart].push_back(-3312);
0760 partDaughterPdg[curPart].push_back( 211);
0761 partDaughterPdg[curPart].push_back( -211);
0762 partDaughterPdg[curPart].push_back( -211);
0763 curPart++;
0764
0765 partDaughterPdg[curPart].push_back( 2212);
0766 partDaughterPdg[curPart].push_back( 211);
0767 partDaughterPdg[curPart].push_back( -211);
0768 curPart++;
0769
0770 partDaughterPdg[curPart].push_back(-2212);
0771 partDaughterPdg[curPart].push_back( 211);
0772 partDaughterPdg[curPart].push_back( -211);
0773 curPart++;
0774
0775
0776 partDaughterPdg[curPart].push_back( 411);
0777 partDaughterPdg[curPart].push_back( -211);
0778 curPart++;
0779
0780 partDaughterPdg[curPart].push_back( -411);
0781 partDaughterPdg[curPart].push_back( 211);
0782 curPart++;
0783
0784 partDaughterPdg[curPart].push_back( 421);
0785 partDaughterPdg[curPart].push_back( 211);
0786 curPart++;
0787
0788 partDaughterPdg[curPart].push_back( -421);
0789 partDaughterPdg[curPart].push_back( -211);
0790 curPart++;
0791
0792 partDaughterPdg[curPart].push_back( 429);
0793 partDaughterPdg[curPart].push_back( 211);
0794 curPart++;
0795
0796 partDaughterPdg[curPart].push_back( -429);
0797 partDaughterPdg[curPart].push_back( -211);
0798 curPart++;
0799
0800 partDaughterPdg[curPart].push_back( 428);
0801 partDaughterPdg[curPart].push_back( 111);
0802 curPart++;
0803
0804 partDaughterPdg[curPart].push_back( 11);
0805 partDaughterPdg[curPart].push_back( -11);
0806 curPart++;
0807
0808 partDaughterPdg[curPart].push_back( 13);
0809 partDaughterPdg[curPart].push_back( -13);
0810 curPart++;
0811
0812 partDaughterPdg[curPart].push_back( -421);
0813 partDaughterPdg[curPart].push_back( 211);
0814 curPart++;
0815
0816 partDaughterPdg[curPart].push_back( 421);
0817 partDaughterPdg[curPart].push_back( -211);
0818 curPart++;
0819
0820 partDaughterPdg[curPart].push_back( -421);
0821 partDaughterPdg[curPart].push_back( 321);
0822 curPart++;
0823
0824 partDaughterPdg[curPart].push_back( 421);
0825 partDaughterPdg[curPart].push_back( -321);
0826 curPart++;
0827
0828 partDaughterPdg[curPart].push_back( -411);
0829 partDaughterPdg[curPart].push_back( 211);
0830 curPart++;
0831
0832 partDaughterPdg[curPart].push_back( 411);
0833 partDaughterPdg[curPart].push_back( -211);
0834 curPart++;
0835
0836 partDaughterPdg[curPart].push_back( -411);
0837 partDaughterPdg[curPart].push_back( 321);
0838 curPart++;
0839
0840 partDaughterPdg[curPart].push_back( 411);
0841 partDaughterPdg[curPart].push_back( -321);
0842 curPart++;
0843
0844 partDaughterPdg[curPart].push_back( 3122);
0845 partDaughterPdg[curPart].push_back( -211);
0846 partDaughterPdg[curPart].push_back( 2212);
0847 curPart++;
0848
0849 partDaughterPdg[curPart].push_back( 1000010020);
0850 partDaughterPdg[curPart].push_back( -211);
0851 curPart++;
0852
0853 partDaughterPdg[curPart].push_back(-1000010020);
0854 partDaughterPdg[curPart].push_back( 211);
0855 curPart++;
0856
0857 partDaughterPdg[curPart].push_back( 1000010030);
0858 partDaughterPdg[curPart].push_back( -211);
0859 curPart++;
0860
0861 partDaughterPdg[curPart].push_back(-1000010030);
0862 partDaughterPdg[curPart].push_back( 211);
0863 curPart++;
0864
0865 partDaughterPdg[curPart].push_back( 1000020030);
0866 partDaughterPdg[curPart].push_back( -211);
0867 curPart++;
0868
0869 partDaughterPdg[curPart].push_back(-1000020030);
0870 partDaughterPdg[curPart].push_back( 211);
0871 curPart++;
0872
0873 partDaughterPdg[curPart].push_back( 1000020040);
0874 partDaughterPdg[curPart].push_back( -211);
0875 curPart++;
0876
0877 partDaughterPdg[curPart].push_back(-1000020040);
0878 partDaughterPdg[curPart].push_back( 211);
0879 curPart++;
0880
0881 partDaughterPdg[curPart].push_back( 1000020030);
0882 partDaughterPdg[curPart].push_back( 2212);
0883 partDaughterPdg[curPart].push_back( -211);
0884 curPart++;
0885
0886 partDaughterPdg[curPart].push_back(-1000020030);
0887 partDaughterPdg[curPart].push_back(-2212);
0888 partDaughterPdg[curPart].push_back( 211);
0889 curPart++;
0890
0891 partDaughterPdg[curPart].push_back( 1000020040);
0892 partDaughterPdg[curPart].push_back( 2212);
0893 partDaughterPdg[curPart].push_back( -211);
0894 curPart++;
0895
0896 partDaughterPdg[curPart].push_back(-1000020040);
0897 partDaughterPdg[curPart].push_back(-2212);
0898 partDaughterPdg[curPart].push_back( 211);
0899 curPart++;
0900
0901 partDaughterPdg[curPart].push_back( 3004);
0902 partDaughterPdg[curPart].push_back( -211);
0903 curPart++;
0904
0905 partDaughterPdg[curPart].push_back( 3006);
0906 partDaughterPdg[curPart].push_back( -211);
0907 curPart++;
0908
0909 partDaughterPdg[curPart].push_back( 3004);
0910 partDaughterPdg[curPart].push_back( 2212);
0911 partDaughterPdg[curPart].push_back( -211);
0912 curPart++;
0913
0914 partDaughterPdg[curPart].push_back( 3007);
0915 partDaughterPdg[curPart].push_back( -211);
0916 curPart++;
0917
0918 partDaughterPdg[curPart].push_back( 3007);
0919 partDaughterPdg[curPart].push_back( 2212);
0920 partDaughterPdg[curPart].push_back( -211);
0921 curPart++;
0922
0923 partDaughterPdg[curPart].push_back( 13);
0924 partDaughterPdg[curPart].push_back(-7000014);
0925 curPart++;
0926
0927 partDaughterPdg[curPart].push_back( -211);
0928 partDaughterPdg[curPart].push_back( 13);
0929 curPart++;
0930
0931 partDaughterPdg[curPart].push_back( -13);
0932 partDaughterPdg[curPart].push_back( 7000014);
0933 curPart++;
0934
0935 partDaughterPdg[curPart].push_back( 211);
0936 partDaughterPdg[curPart].push_back( -13);
0937 curPart++;
0938
0939 partDaughterPdg[curPart].push_back( 13);
0940 partDaughterPdg[curPart].push_back(-8000014);
0941 curPart++;
0942
0943 partDaughterPdg[curPart].push_back( -321);
0944 partDaughterPdg[curPart].push_back( 13);
0945 curPart++;
0946
0947 partDaughterPdg[curPart].push_back( -13);
0948 partDaughterPdg[curPart].push_back( 8000014);
0949 curPart++;
0950
0951 partDaughterPdg[curPart].push_back( 321);
0952 partDaughterPdg[curPart].push_back( -13);
0953 curPart++;
0954
0955 partDaughterPdg[curPart].push_back( -211);
0956 partDaughterPdg[curPart].push_back( 7002112);
0957 curPart++;
0958
0959 partDaughterPdg[curPart].push_back( 3112);
0960 partDaughterPdg[curPart].push_back( -211);
0961 curPart++;
0962
0963 partDaughterPdg[curPart].push_back( 211);
0964 partDaughterPdg[curPart].push_back( -7002112);
0965 curPart++;
0966
0967 partDaughterPdg[curPart].push_back( -3112);
0968 partDaughterPdg[curPart].push_back( 211);
0969 curPart++;
0970
0971 partDaughterPdg[curPart].push_back( -211);
0972 partDaughterPdg[curPart].push_back( -8002112);
0973 curPart++;
0974
0975 partDaughterPdg[curPart].push_back( -3222);
0976 partDaughterPdg[curPart].push_back( -211);
0977 curPart++;
0978
0979 partDaughterPdg[curPart].push_back( 211);
0980 partDaughterPdg[curPart].push_back( 8002112);
0981 curPart++;
0982
0983 partDaughterPdg[curPart].push_back( 3222);
0984 partDaughterPdg[curPart].push_back( 211);
0985 curPart++;
0986
0987 partDaughterPdg[curPart].push_back( -211);
0988 partDaughterPdg[curPart].push_back( 7003122);
0989 curPart++;
0990
0991 partDaughterPdg[curPart].push_back( 3312);
0992 partDaughterPdg[curPart].push_back( -211);
0993 curPart++;
0994
0995 partDaughterPdg[curPart].push_back( 211);
0996 partDaughterPdg[curPart].push_back( -7003122);
0997 curPart++;
0998
0999 partDaughterPdg[curPart].push_back( -3312);
1000 partDaughterPdg[curPart].push_back( 211);
1001 curPart++;
1002
1003 partDaughterPdg[curPart].push_back( -211);
1004 partDaughterPdg[curPart].push_back( 7003322);
1005 curPart++;
1006
1007 partDaughterPdg[curPart].push_back( 3334);
1008 partDaughterPdg[curPart].push_back( -211);
1009 curPart++;
1010
1011 partDaughterPdg[curPart].push_back( 211);
1012 partDaughterPdg[curPart].push_back( -7003322);
1013 curPart++;
1014
1015 partDaughterPdg[curPart].push_back( -3334);
1016 partDaughterPdg[curPart].push_back( 211);
1017 curPart++;
1018
1019 partDaughterPdg[curPart].push_back( -211);
1020 partDaughterPdg[curPart].push_back( -9000111);
1021 curPart++;
1022
1023 partDaughterPdg[curPart].push_back( -321);
1024 partDaughterPdg[curPart].push_back( -211);
1025 curPart++;
1026
1027 partDaughterPdg[curPart].push_back( 211);
1028 partDaughterPdg[curPart].push_back( 9000111);
1029 curPart++;
1030
1031 partDaughterPdg[curPart].push_back( 321);
1032 partDaughterPdg[curPart].push_back( 211);
1033 curPart++;
1034
1035 partDaughterPdg[curPart].push_back( -321);
1036 partDaughterPdg[curPart].push_back( 8003122);
1037 curPart++;
1038
1039 partDaughterPdg[curPart].push_back( 3334);
1040 partDaughterPdg[curPart].push_back( -321);
1041 curPart++;
1042
1043 partDaughterPdg[curPart].push_back( 321);
1044 partDaughterPdg[curPart].push_back( -8003122);
1045 curPart++;
1046
1047 partDaughterPdg[curPart].push_back( -3334);
1048 partDaughterPdg[curPart].push_back( 321);
1049 curPart++;
1050
1051 partDaughterPdg[curPart].push_back( -2212);
1052 partDaughterPdg[curPart].push_back( -8000111);
1053 curPart++;
1054
1055 partDaughterPdg[curPart].push_back( -3222);
1056 partDaughterPdg[curPart].push_back( -2212);
1057 curPart++;
1058
1059 partDaughterPdg[curPart].push_back( 2212);
1060 partDaughterPdg[curPart].push_back( 8000111);
1061 curPart++;
1062
1063 partDaughterPdg[curPart].push_back( 3222);
1064 partDaughterPdg[curPart].push_back( 2212);
1065 curPart++;
1066
1067 for(int iP=0; iP<nParticles; iP++)
1068 {
1069 partPDG[iP] = particleInfo[iP].PDG();
1070 partName[iP] = particleInfo[iP].Name();
1071 partTitle[iP] = particleInfo[iP].Title();
1072 partMHistoMin[iP] = particleInfo[iP].HistoMin();
1073 partMHistoMax[iP] = particleInfo[iP].HistoMax();
1074 partMaxMult[iP] = mPartMaxMult[iP];
1075 partMass[iP] = particleInfo[iP].Mass();
1076 partLifeTime[iP] = particleInfo[iP].LifeTime();
1077 partCharge[iP] = particleInfo[iP].Charge();
1078 partMassSigma[iP] = particleInfo[iP].MassSigma();
1079 }
1080
1081 for(int iP=0; iP<nParticles; iP++)
1082 {
1083 AddCounter(partName[iP], partTitle[iP] + " ");
1084 AddCounter(partName[iP] + "_prim", partTitle[iP] + " Prim");
1085 AddCounter(partName[iP] + "_sec", partTitle[iP] + " Sec ");
1086 }
1087
1088 for(int iP=0; iP<nParticles; iP++)
1089 fPdgToIndex[particleInfo[iP].PDG()] = iP;
1090 }
1091
1092 virtual ~KFPartEfficiencies(){};
1093
1094
1095 int GetParticleIndex(int pdg)
1096 {
1097 std::map<int, int>::iterator it;
1098 it=fPdgToIndex.find(pdg);
1099 if(it != fPdgToIndex.end()) return it->second;
1100 else return -1;
1101 }
1102
1103
1104 std::map<int,int> GetPdgToIndexMap() const { return fPdgToIndex; }
1105
1106 virtual void AddCounter(std::string shortname, std::string name)
1107 {
1108
1109
1110
1111
1112
1113
1114 indices[shortname] = names.size();
1115 names.push_back(name);
1116
1117 ratio_reco1.AddCounter();
1118 ratio_reco2.AddCounter();
1119 ratio_reco3.AddCounter();
1120
1121 mc1.AddCounter();
1122 mc2.AddCounter();
1123 mc3.AddCounter();
1124
1125 reco.AddCounter();
1126
1127 ratio_ghost.AddCounter();
1128 ratio_bg.AddCounter();
1129 ratio_clone.AddCounter();
1130 ghost.AddCounter();
1131 bg.AddCounter();
1132 clone.AddCounter();
1133 };
1134
1135
1136 KFPartEfficiencies& operator+=(KFPartEfficiencies& a){
1137 mc1 += a.mc1; mc2 += a.mc2; mc3 += a.mc3; reco += a.reco;
1138 ghost += a.ghost; bg += a.bg; clone += a.clone;
1139 return *this;
1140 };
1141
1142
1143 void CalcEff(){
1144 ratio_reco1 = reco/mc1;
1145 ratio_reco2 = reco/mc2;
1146 ratio_reco3 = reco/mc3;
1147
1148 KFMCCounter<int> allReco = reco + ghost + bg;
1149 ratio_ghost = ghost/allReco;
1150 ratio_bg = bg/allReco;
1151 ratio_clone = clone/allReco;
1152 };
1153
1154 void Inc(bool isReco, int nClones, bool isMC1, bool isMC2, bool isMC3, std::string name)
1155 {
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165 const int index = indices[name];
1166
1167 if(isMC1) mc1.counters[index]++;
1168 if(isMC2) mc2.counters[index]++;
1169 if(isMC3) mc3.counters[index]++;
1170
1171 if(isReco) reco.counters[index]++;
1172 if(nClones > 0)
1173 clone.counters[index] += nClones;
1174 };
1175
1176 void IncReco(bool isGhost, bool isBg, std::string name)
1177 {
1178
1179
1180
1181
1182
1183 const int index = indices[name];
1184
1185 if (isGhost) ghost. counters[index]++;
1186 if (isBg) bg.counters[index]++;
1187 };
1188
1189
1190 void PrintEff(){
1191 std::ios_base::fmtflags original_flags = std::cout.flags();
1192 std::cout.setf(std::ios::fixed);
1193 std::cout.setf(std::ios::showpoint);
1194 std::cout.precision(3);
1195 std::cout << "Particle : "
1196 << " Eff 4pi "
1197 <<" / "<< " Eff accept"
1198 <<" / "<< " Eff KFPF "
1199 <<" / "<< " Ghost "
1200 <<" / "<< " BackGr "
1201 <<" / "<< " N Ghost "
1202 <<" / "<< " N BackGr "
1203 <<" / "<< " N Reco "
1204 <<" / "<< " N Clone "
1205 <<" | "<< " N MC 4pi "
1206 <<" | "<< "N MC accept"
1207 <<" | "<< " N MC KFPF " << std::endl;
1208
1209 int NCounters = mc1.NCounters;
1210 for (int iC = 0; iC < NCounters; iC++){
1211 std::cout << names[iC]
1212 << " : " << std::setw(10) << ratio_reco1.counters[iC]
1213 << " / " << std::setw(10) << ratio_reco2.counters[iC]
1214 << " / " << std::setw(10) << ratio_reco3.counters[iC]
1215 << " / " << std::setw(10) << ratio_ghost.counters[iC]
1216 << " / " << std::setw(10) << ratio_bg.counters[iC]
1217 << " / " << std::setw(10) << ghost.counters[iC]
1218 << " / " << std::setw(10) << bg.counters[iC]
1219 << " / " << std::setw(10) << reco.counters[iC]
1220 << " / " << std::setw(10) << clone.counters[iC]
1221 << " | " << std::setw(10) << mc1.counters[iC]
1222 << " | " << std::setw(10) << mc2.counters[iC]
1223 << " | " << std::setw(10) << mc3.counters[iC] << std::endl;
1224 }
1225 std::cout.flags(original_flags);
1226 };
1227
1228 float GetTotal4piEfficiency(int iDecay) { return ratio_reco1.counters[3*iDecay]; }
1229 float GetTotalKFPEfficiency(int iDecay) { return ratio_reco3.counters[3*iDecay]; }
1230 float GetPrimary4piEfficiency(int iDecay) { return ratio_reco1.counters[3*iDecay+1]; }
1231 float GetPrimaryKFPEfficiency(int iDecay) { return ratio_reco3.counters[3*iDecay+1]; }
1232 float GetSecondary4piEfficiency(int iDecay) { return ratio_reco1.counters[3*iDecay+2]; }
1233 float GetSecondaryKFPEfficiency(int iDecay) { return ratio_reco3.counters[3*iDecay+2]; }
1234
1235
1236 friend std::fstream & operator<<(std::fstream &strm, KFPartEfficiencies &a)
1237 {
1238 strm << a.ratio_reco1;
1239 strm << a.ratio_reco2;
1240 strm << a.ratio_reco3;
1241 strm << a.mc1;
1242 strm << a.mc2;
1243 strm << a.mc3;
1244 strm << a.reco;
1245 strm << a.ratio_ghost;
1246 strm << a.ratio_bg;
1247 strm << a.ratio_clone;
1248 strm << a.ghost;
1249 strm << a.bg;
1250 strm << a.clone;
1251
1252 return strm;
1253 }
1254
1255 friend std::fstream & operator>>(std::fstream &strm, KFPartEfficiencies &a)
1256 {
1257 strm >> a.ratio_reco1;
1258 strm >> a.ratio_reco2;
1259 strm >> a.ratio_reco3;
1260 strm >> a.mc1;
1261 strm >> a.mc2;
1262 strm >> a.mc3;
1263 strm >> a.reco;
1264 strm >> a.ratio_ghost;
1265 strm >> a.ratio_bg;
1266 strm >> a.ratio_clone;
1267 strm >> a.ghost;
1268 strm >> a.bg;
1269 strm >> a.clone;
1270
1271 return strm;
1272 }
1273
1274 void AddFromFile(std::string fileName)
1275 {
1276 std::fstream file(fileName.data(),std::fstream::in);
1277 file >> *this;
1278 }
1279
1280 int GetNDaughters(int iParticle) const { return partDaughterPdg[iParticle].size(); }
1281
1282 int GetDaughterPDG(int iParticle, int iDaughter) const { return partDaughterPdg[iParticle][iDaughter]; }
1283
1284 float GetMass(int iParticle) const { return partMass[iParticle]; }
1285 float GetMassSigma(int iParticle) const { return partMassSigma[iParticle]; }
1286
1287 static const int nParticles = 194;
1288 static const int fFirstHypernucleusIndex = 114;
1289 static const int fLastHypernucleusIndex = 130;
1290 static const int fFirstMissingMassParticleIndex = 131;
1291 static const int fLastMissingMassParticleIndex = 166;
1292 static const int fFirstStableParticleIndex = 167;
1293 static const int fLastStableParticleIndex = 184;
1294
1295 int partPDG[nParticles];
1296 std::string partName[nParticles];
1297 std::string partTitle[nParticles];
1298 std::vector<std::vector<int> > partDaughterPdg;
1299 float partMHistoMin[nParticles];
1300 float partMHistoMax[nParticles];
1301 int partMaxMult[nParticles];
1302 float partMass[nParticles];
1303 float partLifeTime[nParticles];
1304 int partCharge[nParticles];
1305 float partMassSigma[nParticles];
1306
1307
1308 private:
1309 std::vector<std::string> names;
1310 std::map<std::string, int> indices;
1311
1312 std::map<int, int> fPdgToIndex;
1313
1314 KFMCCounter<double> ratio_reco1;
1315 KFMCCounter<double> ratio_reco2;
1316 KFMCCounter<double> ratio_reco3;
1317
1318 KFMCCounter<int> mc1;
1319 KFMCCounter<int> mc2;
1320 KFMCCounter<int> mc3;
1321
1322 KFMCCounter<int> reco;
1323
1324 KFMCCounter<double> ratio_ghost;
1325 KFMCCounter<double> ratio_bg;
1326 KFMCCounter<double> ratio_clone;
1327
1328 KFMCCounter<int> ghost;
1329 KFMCCounter<int> bg;
1330 KFMCCounter<int> clone;
1331
1332 #ifndef KFParticleStandalone
1333 ClassDef( KFPartEfficiencies, 1 )
1334 #endif
1335 };
1336
1337 #endif