24 setNumberOutputBits(12);
31 TRG_MSG_ERROR(
"Dynamic cast failed in TCS::cTauMultiplicity::initialize");
38 bookHistMult(
m_histAccept,
"cTauMultiplicity_accept_EtaPt_"+
m_threshold->
name(),
"Mult_"+
m_threshold->
name(),
"#eta#times40",
"E_{t} [GeV]", 200, -200, 200, 100, 0, 100);
43 bookHistMult(
m_histcTauPhiEta,
"cTauTOBPhiEta",
"Matched cTau TOB location",
"#eta#times40",
"#phi#times20", 200, -200, 200, 128, 0, 128);
44 bookHistMult(
m_histcTauEtEta,
"cTauTOBEtEta",
"Matched cTau TOB Et vs eta",
"#eta#times40",
"E_{t} [GeV]", 200, -200, 200, 200, 0, 400);
47 bookHistMult(
m_histcTauIsoFraction,
"cTauTOBIsoFraction", std::string(
"Matched cTAU ") + wp_name +
" isolation fraction", wp_name +
" isolation fraction", 200, 0, 10);
69 if((*etauCand)->tobType() !=
TCS::ETAU)
continue;
73 bool isIsolated =
false;
74 float isolation_fraction = 0;
78 if((*jtauCand)->tobType() !=
TCS::JTAU)
continue;
80 isMatched = cTauMatching(*etauCand, *jtauCand);
83 float etauCand_et =
static_cast<float>((*etauCand)->Et());
84 float etauCand_eta =
static_cast<float>((*etauCand)->etaDouble());
85 float jtauCand_et =
static_cast<float>((*jtauCand)->Et());
86 float jtauCand_etIso =
static_cast<float>((*jtauCand)->EtIso());
90 if(m_threshold->isolation() !=
WP::NONE) {
91 isolation_fraction = (jtauCand_etIso + m_extraInfo->isolation(m_threshold->isolation(), etauCand_eta).isolation_jTAUCoreScale_d() * (jtauCand_et - etauCand_et)) / etauCand_et;
96 isIsolated = checkIsolationWP(*etauCand, *jtauCand);
105 fillHist1D(m_histcTauEt[0], (*etauCand)->EtDouble());
106 fillHist2D(m_histcTauPhiEta[0], (*etauCand)->eta(), (*etauCand)->phi());
107 fillHist2D(m_histcTauEtEta[0], (*etauCand)->eta(), (*etauCand)->EtDouble());
108 fillHist1D(m_histcTauIsoFraction[0], isolation_fraction);
109 fillHist1D(m_histcTauIsoMatchedPass[0],
isMatched && isIsolated);
115 if(!checkeTAUWP(*etauCand))
accept =
false;
120 if((*etauCand)->eta()%4 >= 0) eta_thr = (*etauCand)->eta() - (*etauCand)->eta()%4;
121 else eta_thr = (*etauCand)->eta() - (*etauCand)->eta()%4 - 4;
123 accept =
accept && (*etauCand)->Et() > m_threshold->thrValue100MeV(eta_thr/4);
127 fillHist2D(m_histAccept[0], (*etauCand)->eta(), (*etauCand)->EtDouble());
132 fillHist1D(m_histAccept[1], counting);
135 count.setSizeCount(counting);
142 if(m_threshold->isolation() ==
WP::NONE)
return true;
143 auto iso_wp = m_extraInfo->isolation(m_threshold->isolation(), etauCand->
etaDouble());
144 return jtauCand->
EtIso()*1024 + jtauCand->
Et()*iso_wp.isolation_jTAUCoreScale_fw() < etauCand->
Et()*iso_wp.isolation_fw();
149 if(m_threshold->isolation() ==
WP::NONE)
return true;
150 auto iso_wp = m_extraInfo->isolation(m_threshold->isolation(), etauCand->
etaDouble());
151 return etauCand->
RCore() >= iso_wp.eTAU_rCoreMin_WP_fw() && etauCand->
RHad() >= iso_wp.eTAU_rHadMin_WP_fw();
157 bool matching =
false;
164 if(etauCand->
eta()%4 >= 0 ) eTauEtaTower = etauCand->
eta() - etauCand->
eta()%4;
165 else eTauEtaTower = etauCand->
eta() - etauCand->
eta()%4 - 4;
167 if (jtauCand->
eta()%4 >= 0 ) jTauEtaTower = jtauCand->
eta() - jtauCand->
eta()%4;
168 else jTauEtaTower = jtauCand->
eta() - jtauCand->
eta()%4 - 4;
171 unsigned int eTauPhiTower = etauCand->
phi() >> 1;
172 unsigned int jTauPhiTower = jtauCand->
phi() >> 1;
174 matching = (eTauEtaTower == jTauEtaTower) && (eTauPhiTower == jTauPhiTower);
182 #ifndef TRIGCONF_STANDALONE
200 if(jTauEtaTopo%4 >= 0 ) jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4;
201 else jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4 - 4;
204 unsigned int eTauPhiTower =
static_cast<unsigned int>(eTau.
iPhiTopo()) >> 1;
205 bool matching = ( eTauEtaTower == jTauEtaTower ) && ( eTauPhiTower == jTauPhiTower );
230 if(jTauEtaTopo%4 >= 0 ) jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4;
231 else jTauEtaTower = jTauEtaTopo - jTauEtaTopo%4 - 4;
234 unsigned int eTauPhiTower =
static_cast<unsigned int>(eTau.
iPhiTopo()) >> 1;
236 bool matching = ( eTauEtaTower == jTauEtaTower ) && ( eTauPhiTower == jTauPhiTower );
245 return jTau.
tobIso()*2*1024 + jTau.
tobEt()*2*iso_wp.isolation_jTAUCoreScale_fw() < eTau.
etTOB()*iso_wp.isolation_fw();