25ZdcNtuple :: ZdcNtuple (
const std::string& name, ISvcLocator *pSvcLocator)
27 m_grl (
"GoodRunsListSelectionTool/grl", this),
29 m_selTool(
"InDet::InDetTrackSelectionTool/TrackSelectionTool", this )
51 declareProperty(
"grlFilename",
grlFilename =
"$ROOTCOREBIN/data/ZdcNtuple/data16_hip8TeV.periodAllYear_DetStatus-v86-pro20-19_DQDefects-00-02-04_PHYS_HeavyIonP_All_Good.xml",
"comment");
100StatusCode ZdcNtuple :: initialize ()
115 h_TCSigCut =
new TH1D(
"_gapSigCut_",
"", 98, -4.9, 4.9);
473 const char* fullGRLFilePath = gSystem->ExpandPathName (
grlFilename.c_str());
475 std::vector<std::string> vecStringGRL;
476 vecStringGRL.push_back(fullGRLFilePath);
540 ANA_MSG_INFO(
"Trying to initialize ZDC Analysis Tool!");
550 return StatusCode::SUCCESS;
555StatusCode ZdcNtuple :: execute ()
568 return StatusCode::SUCCESS;
577 bool passTrigger =
true;
590 return StatusCode::SUCCESS;
615 ANA_MSG_DEBUG(
"Done w/ extracting InDetTrackParticles with size = " << n);
665 tree(
"zdcTree" )->Fill();
668 return StatusCode::SUCCESS;
680 for(
int iside : {0,1}){
681 for(
int imod = 0; imod < 7; ++imod){
689 for(
int ch = 0; ch < 16; ++ch){
694 for (
size_t iside = 0; iside < 2; iside++)
701 for (
int imod = 0; imod < 4; imod++)
717 for (
int ig=0;ig<2;ig++)
719 for (
int id=0;
id<2;
id++)
721 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
733 for (
int ch=0;ch<16;ch++)
735 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
744 for (
int ch = 0; ch < 16; ch++) {
881 for (
auto const * zdcSum : *zdcSums) {
882 if (zdcSum->zdcSide() == 0) {
896 if (rpdErr||zdcErr)
ANA_MSG_WARNING(
"Decoding errors ZDC=" << zdcErr <<
" RPD=" << rpdErr );
901 for (
const auto zdcSum : *zdcSums)
903 if (zdcSum->zdcSide()==0) {
913 if (zdcSum->zdcSide() > 0) iside = 1;
926 t_ZdcAmp[iside] = UncalibSumAcc(*zdcSum);
930 if (LucrodTriggerSideAmpLGAcc.
isAvailable(*zdcSum))
935 t_ZdcTime[iside] = AverageTimeAcc(*zdcSum);
959 std::vector<float>
const& rpdChannelSubtrAmp = RPDChannelSubtrAmpAcc(*zdcSum);
968 std::vector<float>
const& xRowCentroid = xRowCentroidAcc(*zdcSum);
969 std::copy(xRowCentroid.begin(), xRowCentroid.end(),
t_xRowCentroid[iside]);
970 std::vector<float>
const& yColCentroid = yColCentroidAcc(*zdcSum);
971 std::copy(yColCentroid.begin(), yColCentroid.end(),
t_yColCentroid[iside]);
980 if (zdcModules.
ptr())
982 for (
const auto zdcMod : *zdcModules)
985 if (zdcMod->zdcSide() > 0) iside = 1;
986 int imod = zdcMod->zdcModule();
990 if(!(imod == 4 && zdcMod->zdcChannel() != 0)){
1000 if(imod > 4)
continue;
1003 ANA_MSG_VERBOSE (
"Module " << zdcMod->zdcSide() <<
" " << zdcMod->zdcModule() <<
" amp:" << AmplitudeAcc(*zdcMod));
1005 if (zdcMod->zdcType() == 0 && !zdcErr)
1012 Warning(
"processZdcNtupleFromModules",
"overwriting side %d module %d!", iside, imod);
1052 for (
unsigned int isamp = 0; isamp <
nsamplesZdc; isamp++)
1056 t_raw7[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1057 t_raw7[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1058 t_raw7[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1059 t_raw7[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1064 t_raw15[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1065 t_raw15[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1066 t_raw15[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1067 t_raw15[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1072 t_raw24[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1073 t_raw24[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1077 t_raw32[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1078 t_raw32[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1082 t_raw40[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1083 t_raw40[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1088 else if (zdcMod->zdcType() == 1 &&
nsamplesZdc == 24)
1096 std::vector<float>
const &rpdChannelPileupExpFitParams = RPDChannelPileupExpFitParamsAcc(*zdcMod);
1097 std::copy(rpdChannelPileupExpFitParams.begin(), rpdChannelPileupExpFitParams.end(),
t_RpdChannelPileupExpFitParams[iside][zdcMod->zdcChannel()]);
1098 std::vector<float>
const &rpdChannelPileupExpFitParamErrs = RPDChannelPileupExpFitParamErrsAcc(*zdcMod);
1100 std::vector<float>
const &rpdChannelPileupStretchedExpFitParams = RPDChannelPileupStretchedExpFitParamsAcc(*zdcMod);
1102 std::vector<float>
const &rpdChannelPileupStretchedExpFitParamErrs = RPDChannelPileupStretchedExpFitParamErrsAcc(*zdcMod);
1119 std::vector<uint16_t>
const &rpdChannelRaw = g0dataAcc(*zdcMod);
1120 std::copy(rpdChannelRaw.begin(), rpdChannelRaw.end(),
t_rpdRaw[iside][zdcMod->zdcChannel()]);
1131 if (
msgLvl (MSG::VERBOSE))
1133 std::ostringstream message;
1134 message <<
"Dump zdc_ZdcModuleAmp: ";
1135 for (
int iside = 0; iside < 2; iside++)
1137 for (
int imod = 0; imod < 4; imod++)
1150 if (!mcEventCollection.
isValid()){
1175 for (
unsigned int cntr = 0; cntr < mcEventCollection->size(); ++cntr){
1176 const HepMC::GenEvent *genEvt = (*mcEventCollection)[cntr];
1178 for (
const auto &vertex : genEvt->vertices()){
1179 for (
const auto &particle : vertex->particles_in()){
1181 for (
const auto &vertex : genEvt->vertex_range()){
1182 for (
auto ip = vertex->particles_in_const_begin();
1183 ip != vertex->particles_in_const_end();
1185 auto particle = *ip;
1206 bool passTrigger =
false;
1211 for (
int i = 0; i < 16; i++)
1219 for (
int i = 0; i < 16; i++)
1237 std::string name = cg->getListOfTriggers().at(0);
1243 ANA_MSG_DEBUG(
"TD: checking trigger name=" << name<<
" tav=" << tav);
1338 <<
", first LB = " << startLB <<
", number of steps = " << nsteps);
1350 ANA_MSG_DEBUG(
"processInDet(): processing tracks & vertices!");
1364 for (i = 0; i < 3; i++)
t_vx[i] = 0;
1365 for (i = 0; i < 6; i++)
t_vxcov[i] = 0;
1368 size_t pv_index = -1;
1369 size_t vx_index = 0;
1370 float max_pileup_sumpT = 0.;
1371 int max_pileup_nTrack = 0;
1372 float max_pileup_z = 0;
1373 int nStrongPileup = 0;
1398 float vtx_sumpt2 = 0;
1404 t_vtx_z.push_back(vertex->z());
1415 std::vector<int16_t> trk_index;
1418 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1419 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1422 trk_index.push_back(trkLink.
index());
1431 primary_vertex = vertex;
1432 pv_index = vx_index;
1436 float pileup_sumpT = 0;
1437 int pileup_nTrack = 0;
1438 for (
size_t itr = 0; itr < vertex->nTrackParticles(); itr++)
1440 int track_quality =
trackQuality(vertex->trackParticle(itr), vertex);
1441 if (track_quality != -1 && (track_quality & 128) != 0)
1444 pileup_sumpT += vertex->trackParticle(itr)->pt();
1447 if (pileup_sumpT > max_pileup_sumpT)
1449 max_pileup_sumpT = pileup_sumpT;
1450 max_pileup_nTrack = pileup_nTrack;
1451 max_pileup_z = vertex->z();
1453 if (pileup_sumpT > 5e3 || pileup_nTrack > 5) nStrongPileup++;
1461 if (primary_vertex !=
nullptr)
1463 t_vx[0] = primary_vertex->
x();
1464 t_vx[1] = primary_vertex->
y();
1465 t_vx[2] = primary_vertex->
z();
1470 for (
size_t i = 0; i < 6; i++)
1488 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = primary_vertex->
trackParticleLinks();
1490 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1493 if (!trkLink.
isValid())
continue;
1543 writeTrack(track, primary_vertex, trk_index++);
1550 if (vertex->nTrackParticles() <=
trackLimit )
1552 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1553 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1570 if (!track)
return -1;
1572 bool pass_looseprimary =
false;
1575 pass_looseprimary =
true;
1579 if (pass_looseprimary) quality += 1;
1592 t_trk_e.push_back(track->e());
1617 t_trk_inPixHits.push_back(numberOfInnermostPixelLayerHitsAcc(*track));
1619 t_trk_ninPixHits.push_back(numberOfNextToInnermostPixelLayerHitsAcc(*track));
1630 float pixeldEdx = 0;
1651 const std::string name = SummaryAcc(*calosum);
1674 int layer = eventShape->layer();
1675 float eta = eventShape->etaMin();
1676 float et = eventShape->et();
1677 if (layer == 21 || layer == 22 || layer == 23)
1683 if (TMath::Abs(
eta) < 2.4)
1714 int etabin =
h_TCSigCut->GetXaxis()->FindBin(cl->eta());
1715 if (etabin < 1 || etabin >
h_TCSigCut->GetNbinsX())
continue;
1716 float sig_cut =
h_TCSigCut->GetBinContent(etabin);
1722 if (sig < sig_cut)
continue;
1724 if (cl_cell_sig_samp >= CaloSampling::TileBar0 && cl_cell_sig_samp <= CaloSampling::TileExt2)
continue;
1726 if (cl->eta() < eta_min) eta_min = cl->eta();
1727 if (cl->eta() > eta_max) eta_max = cl->eta();
1758 ANA_MSG_INFO(
"processMBTS: Warning: MBTS info empty!");
1761 for (
int iside = 0; iside < 2; iside++)
1763 for (
int iin = 0; iin < 8; iin++)
1770 for (
int iout = 0; iout < 4; iout++)
1790 if (mbtsMod->type() < 0) iside = 0.;
1793 if (mbtsMod->eta() > 3)
1795 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 8.) - 0.4;
1796 iphibin =
static_cast<int>(phibin);
1797 if (iphibin < 0 || iphibin > 7)
1807 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 4.) - 0.24;
1808 iphibin =
static_cast<int>(phibin);
1809 if (iphibin < 0 || iphibin > 3)
1823 const std::vector<float>& energies = mbtsBits->triggerEnergies();
1824 const std::vector<float>& times = mbtsBits->triggerTimes();
1825 for (
int imbts = 0; imbts < 32; imbts++)
1827 int side = imbts / 16;
1828 int ring = (imbts - 16 * side) / 8;
1829 bool isInner = (ring == 0);
1830 int index = (imbts - 16 * side - ring * 8);
1833 if ((
index % 2) != 0)
continue;
1836 int iside = (side == 0) ? 1 : 0;
1838 ANA_MSG_VERBOSE (
"imbts=" << imbts <<
" isInner=" << isInner <<
" iside=" << iside <<
" index=" <<
index <<
" e=" << energies.at(imbts) <<
" t=" << times.at(imbts));
1839 if (iside < 2 and
index < 8){
1844 if (TMath::Abs(times.at(imbts)) < 12.0 && energies.at(imbts) > 40 / 222.)
1887 t_cc_pt.push_back(cluster->pt());
1888 t_cc_eta.push_back(cluster->eta());
1889 t_cc_phi.push_back(cluster->phi());
1890 t_cc_e.push_back(cluster->e());
1896 std::vector<float> energies;
1898 for (
size_t s = CaloSampling::PreSamplerB; s < CaloSampling::Unknown; s++ )
1906 energies.push_back(e);
1910 float et = cluster->e() / TMath::CosH(cluster->eta());
1919 double cell_sig = 0;
1922 double cell_layer = 0;
1924 t_cc_layer.push_back(
static_cast<int>(cell_layer));
1981 p_scat.SetPtEtaPhiE(proton->pt(), proton->eta(), proton->phi(), proton->e());
1982 (signbit(proton->eta())) ?
p_beam.SetPxPyPzE(0.0, 0.0, -6800.0, 6800.0) :
p_beam.SetPxPyPzE(0.0, 0.0, 6800.0,\
1987 for(
int i=0; i< int(proton->nTracks()); i++){
2007 uint32_t passbits = 0;
2043 std::vector<std::string> triggers;
2044 std::vector<std::string> rerunTriggers;
2045 bool zdc_triggers =
true;
2054 triggers.push_back(
"L1_LHCF");
2055 triggers.push_back(
"L1_ZDC_OR");
2060 triggers.push_back(
"L1_ZDC_OR");
2061 triggers.push_back(
"L1_ZDC_A");
2062 triggers.push_back(
"L1_ZDC_C");
2063 triggers.push_back(
"L1_ZDC_A_C");
2064 triggers.push_back(
"L1_ZDC_OR_EMPTY");
2065 triggers.push_back(
"L1_ZDC_A_EMPTY");
2066 triggers.push_back(
"L1_ZDC_C_EMPTY");
2067 triggers.push_back(
"L1_ZDC_A_C_EMPTY");
2068 triggers.push_back(
"L1_ZDC_OR_UNPAIRED_NONISO");
2069 triggers.push_back(
"L1_ZDC_A_UNPAIRED_NONISO");
2070 triggers.push_back(
"L1_ZDC_C_UNPAIRED_NONISO");
2071 triggers.push_back(
"L1_ZDC_A_C_UNPAIRED_NONISO");
2078 triggers.push_back(
"HLT_noalg_L1LHCF");
2082 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_A");
2083 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_C");
2087 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2088 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2089 triggers.push_back(
"HLT_noalg_L1ZDC_OR");
2090 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E2");
2091 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E1_E3");
2092 triggers.push_back(
"HLT_noalg_L1ZDC_A_AND_C");
2093 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_OR");
2094 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E2");
2095 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E1_E3");
2096 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_A_AND_C");
2097 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E2");
2098 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E1_E3");
2099 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_A_AND_C");
2103 "HLT_mb_sptrk_L1TRT_ZDC_A",
"HLT_mb_sptrk_L1TRT_ZDC_C",
"HLT_mb_sptrk_L1TRT_ZDC_A_C",
2104 "HLT_mb_sptrk_L1TRT_ZDC_OR",
"HLT_mb_sptrk_L1TRT_ZDC_LOR",
2105 "HLT_mb_sptrk_L1ZDC_A",
"HLT_mb_sptrk_L1ZDC_C",
"HLT_mb_sptrk_L1ZDC_A_C",
2106 "HLT_mb_sptrk_L1ZDC_LOR",
"HLT_mb_sptrk_L1ZDC_OR",
2107 "HLT_mb_sptrk_L1ZDC_XN",
"HLT_mb_sptrk_L1ZDC_YN",
"HLT_mb_sptrk_L1ZDC_ZN",
2108 "HLT_mb_sptrk_L1ZDC_XNXN",
"HLT_mb_sptrk_L1ZDC_XNYN",
"HLT_mb_sptrk_L1ZDC_XNZN",
2109 "HLT_mb_sptrk_L1ZDC_XN_XOR",
"HLT_mb_sptrk_L1ZDC_YNYN",
"HLT_mb_sptrk_L1ZDC_YN_XOR",
2110 "HLT_mb_sptrk_L1ZDC_ZN_XOR",
2111 "HLT_noalg_L1TRT_ZDC_A",
"HLT_noalg_L1TRT_ZDC_C",
"HLT_noalg_L1TRT_ZDC_A_C",
2112 "HLT_noalg_L1TRT_ZDC_OR",
"HLT_noalg_L1TRT_ZDC_LOR",
2113 "HLT_noalg_L1TRT_ZDC_YN",
"HLT_noalg_L1TRT_ZDC_ZN",
2114 "HLT_noalg_L1TRT_ZDC_XNXN",
"HLT_noalg_L1TRT_ZDC_XNYN",
"HLT_noalg_L1TRT_ZDC_XNZN",
2115 "HLT_noalg_L1TRT_ZDC_XN_XOR",
"HLT_noalg_L1TRT_ZDC_YNYN",
"HLT_noalg_L1TRT_ZDC_YN_XOR",
2116 "HLT_noalg_L1TRT_ZDC_ZN_XOR",
2117 "HLT_noalg_L1ZDC_A",
"HLT_noalg_L1ZDC_C",
"HLT_noalg_L1ZDC_A_C",
2118 "HLT_noalg_L1ZDC_OR",
"HLT_noalg_L1ZDC_LOR",
2119 "HLT_noalg_L1ZDC_YN",
"HLT_noalg_L1ZDC_ZN",
2120 "HLT_noalg_L1ZDC_XNXN",
"HLT_noalg_L1ZDC_XNYN",
"HLT_noalg_L1ZDC_XNZN",
2121 "HLT_noalg_L1ZDC_XN_XOR",
"HLT_noalg_L1ZDC_YNYN",
"HLT_noalg_L1ZDC_YN_XOR",
2122 "HLT_noalg_L1ZDC_ZN_XOR"
2132 for (
auto &trig : triggers)
2137 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger found = " << trig.c_str() <<
" bit " << ic);
2141 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger NOT found = " << trig.c_str() <<
" bit " << ic);
2145 TString bname(trig.c_str());
2155 for (
auto &trig : rerunTriggers)
2161 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger found = " << trig.c_str() <<
" bit " << irc);
2165 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger NOT found = " << trig.c_str() <<
" bit " << irc);
2168 TString bname(trig.c_str());
2177 ANA_MSG_INFO(
"setupTriggerHistos(): Finished setting up trigger");
2182double ZdcNtuple::dR(
const double eta1,
const double phi1,
const double eta2,
const double phi2)
2184 double deta = std::abs(eta1 - eta2);
2185 double dphi = std::abs(phi1 - phi2) < TMath::Pi() ? std::abs(phi1 - phi2) : 2 * TMath::Pi() - std::abs(phi1 - phi2);
2186 return std::sqrt(deta * deta + dphi * dphi);
2190StatusCode ZdcNtuple :: finalize ()
2203 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
#define ATH_CHECK
Evaluate an expression and check for errors.
Helper class to provide constant type-safe access to aux data.
Define enumerations for event-level ZDC data.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
bool msgLvl(const MSG::Level lvl) const
StatusCode book(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
AnaAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
index_type index() const
Get the index of the element inside of its container.
bool isValid() const
Check if the element can be found.
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
const_pointer_type ptr()
Dereference the pointer.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::vector< std::string > getListOfTriggers() const
std::vector< float > t_cc_raw_phi
const xAOD::VertexContainer * m_primaryVertices
float t_yCentroidPreGeomCorPreAvgSubtr[2]
float t_cosDeltaReactionPlaneAngle
std::vector< double > proton_t
float t_ZdcModuleFitT0[2][4]
std::vector< const Trig::ChainGroup * > m_rerunChainGroups
std::vector< float > t_cc_pt
const xAOD::MBTSModuleContainer * m_mbtsModules
float t_RpdChannelPileupStretchedExpFitParamErrs[2][16][3]
SG::ReadHandleKey< McEventCollection > m_mcEventCollectionName
std::vector< float > t_ZdcTruthParticlePy
float t_RpdChannelAmplitudeCalib[2][16]
unsigned int m_lastRunNumber
ZdcInjPulserAmpMap::Token m_injMapRunToken
float t_RPDSubtrAmpSum[2]
unsigned int t_RpdSideStatus[2]
float t_ZdcModuleChisqLGRefit[2][4]
float t_ZdcModuleT0SubLGRefit[2][4]
unsigned short t_ZdcLucrodTriggerAmpLG[2][4]
float t_RpdChannelAmplitude[2][16]
std::vector< uint8_t > t_trk_nPixHoles
std::vector< uint8_t > t_trk_nSctHoles
void processMCEventCollection()
unsigned short t_ZdcLucrodTriggerSideAmp[2]
unsigned int t_RpdModuleTruthNphotons[2][16]
const xAOD::ForwardEventInfoContainer * m_mbtsInfo
std::vector< int > t_vx_trk_index
double dR(const double eta1, const double phi1, const double eta2, const double phi2)
float t_ZdcModuleAmpUncorr[2][4]
float t_reactionPlaneAngle[2]
std::vector< std::vector< float > > proton_track_ySlope
void processZdcNtupleFromModules()
unsigned int t_ZdcModuleMask
std::vector< float > t_trk_vz
std::vector< float > t_trk_pt
float t_RpdChannelPileupExpFitParams[2][16][2]
uint16_t t_raw32[2][4][2][2][32]
const xAOD::EventInfo * m_eventInfo
float t_RpdChannelMaxADCCalib[2][16]
std::vector< int > t_trk_index
std::vector< std::vector< float > > proton_track_xLocal
float t_T2mbts_in_e[2][8]
uint16_t t_raw7[2][4][2][2][7]
std::vector< const Trig::ChainGroup * > m_chainGroups
std::vector< float > t_cc_raw_e
float t_ZdcModuleChisqRatio[2][4]
std::vector< int16_t > t_vtx_ntrk
float t_RpdChannelMaxADC[2][16]
float t_ZdcModuleCalibTime[2][4]
float t_ZdcModulePresample[2][4]
std::vector< float > t_vtx_sumpt2_all
const xAOD::HIEventShapeContainer * m_caloSums
std::vector< int16_t > t_vtx_ntrk_all
float t_xRowCentroid[2][4]
unsigned int t_RpdChannelMaxSample[2][16]
std::vector< float > t_cc_raw_eta
float t_actIntPerCrossing
bool t_centroidDecorationsAvailable
std::vector< std::vector< int16_t > > t_vtx_trk_index
std::vector< float > t_trk_eta
uint16_t t_raw15[2][4][2][2][15]
std::vector< float > t_cc_eta
uint16_t t_T2mbts_countCin
float t_xCentroidPreAvgSubtr[2]
float t_ZdcModuleMinDeriv2nd[2][4]
std::vector< float > t_trk_vtxz
float t_RPDChannelSubtrAmp[2][16]
float t_ZdcNLEnergyErr[2]
float t_ZdcModuleChisq[2][4]
std::vector< int8_t > t_vtx_type
float t_T2mbts_out_e[2][4]
const xAOD::CaloClusterContainer * m_caloClusters
std::vector< int > t_cc_layer
uint8_t t_rpdDecodingError
float t_ZdcModuleAmpError[2][4]
float t_ZdcModuleTime[2][4]
ToolHandle< InDet::IInDetTrackSelectionTool > m_selTool
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
std::vector< float > t_trk_theta
std::vector< uint8_t > t_trk_ninPixHits
uint16_t t_T2mbts_countAin
std::vector< float > t_cc_e
double m_gapThresholds[98]
float t_ZdcModuleAmpCorrLGRefit[2][4]
std::vector< float > t_cc_phi
uint16_t t_rpdRaw[2][16][24]
std::vector< std::vector< int > > proton_track_nClusters
std::vector< int > proton_side
float t_ZdcModuleTruthTotal[2][7]
float t_xCentroidPreGeomCorPreAvgSubtr[2]
float t_ZdcModuleCalibAmp[2][4]
float t_ZdcModuleFitAmp[2][4]
float t_ZdcModuleAmpLGRefit[2][4]
float t_ZdcModulePeakADCLG[2][4]
unsigned int t_ZdcModuleStatus[2][4]
float t_ZdcModuleT0LGRefit[2][4]
std::vector< uint8_t > t_trk_nPixDead
std::vector< int8_t > t_trk_charge
float t_ZdcModuleTruthNonEM[2][7]
float t_ZdcModuleAmp[2][4]
uint32_t t_zdcEventInfoErrorWord
std::vector< std::vector< float > > t_cc_raw_samp
float t_RpdChannelPileupFrac[2][16]
std::vector< float > t_ZdcTruthParticlePosy
std::vector< int16_t > t_trk_quality
std::vector< uint8_t > t_trk_nSctHits
uint16_t t_rpdRaw32[2][16][32]
std::vector< float > t_cc_raw_m
const xAOD::TrigT2MbtsBitsContainer * m_trigT2MbtsBits
std::vector< float > t_trk_d0
const xAOD::AFPProtonContainer * m_afpProtons
void writeTrack(const xAOD::TrackParticle *, const xAOD::Vertex *vertex, int)
std::vector< std::vector< float > > proton_track_zLocal
float t_RpdChannelPileupExpFitParamErrs[2][16][2]
std::vector< float > t_trk_z0
bool t_rerunDecisions[200]
float t_avgIntPerCrossing
std::vector< float > t_vtx_x
const xAOD::TrackParticleContainer * m_trackParticles
bool processTriggerDecision()
float t_T2mbts_in_t[2][8]
std::vector< float > t_vtx_y
uint32_t t_timeStampNSOffset
std::vector< float > t_vtx_z
std::vector< uint8_t > t_trk_nTrtHits
std::vector< double > proton_pt
std::vector< int > t_ZdcTruthParticlePid
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcSumContainerName
unsigned short t_ZdcLucrodTriggerAmp[2][4]
float t_ZdcModuleBkgdMaxFraction[2][4]
asg::AnaToolHandle< IGoodRunsListSelectionTool > m_grl
unsigned int t_ZdcModuleTruthNphotons[2][7]
std::vector< std::vector< float > > proton_track_yLocal
std::vector< float > t_vtx_sumpt2
const xAOD::TrigDecision * m_trigDecision
std::vector< uint8_t > t_trk_nSctDead
float t_RpdChannelPileupStretchedExpFitMSE[2][16]
std::vector< float > t_trk_pixeldEdx
float t_yCentroidPreAvgSubtr[2]
std::vector< double > proton_eta
float t_RpdChannelBaseline[2][16]
std::vector< float > t_ZdcTruthParticlePx
std::vector< float > t_trk_phi
std::vector< double > proton_eLoss
uint16_t t_raw24[2][4][2][2][24]
float t_ZdcModulePreSampleAmp[2][4]
unsigned int t_centroidStatus[2]
unsigned int zdcLowGainMode
const xAOD::EnergySumRoI * m_lvl1EnergySumRoI
float t_RpdChannelPileupExpFitMSE[2][16]
std::vector< std::vector< int > > proton_track_stationID
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcModuleContainerName
float t_ZdcTruthEscaped[2]
float t_ZdcModulePeakADCHG[2][4]
std::shared_ptr< ZdcInjPulserAmpMap > m_zdcInjPulserAmpMap
std::vector< float > t_ZdcTruthParticleEnergy
std::vector< double > proton_e
float t_ZdcModuleTruthEM[2][7]
std::vector< float > t_ZdcTruthParticleTime
std::vector< uint8_t > t_trk_nPixHits
uint32_t t_extendedLevel1ID
unsigned short t_ZdcLucrodTriggerSideAmpLG[2]
unsigned int t_RpdChannelStatus[2][16]
uint16_t t_raw40[2][4][2][2][40]
std::vector< float > t_ZdcTruthParticlePosz
char t_centroidEventValid
asg::AnaToolHandle< ZDC::IZdcAnalysisTool > m_zdcAnalysisTool
std::vector< float > t_ZdcTruthParticlePz
uint16_t t_rpdRaw40[2][16][40]
std::vector< std::vector< float > > proton_track_xSlope
void setupTriggerHistos()
std::vector< float > t_ZdcTruthParticlePosx
int trackQuality(const xAOD::TrackParticle *tp, const xAOD::Vertex *vertex)
float t_yColCentroid[2][4]
float t_ZdcModuleTruthInvis[2][7]
std::vector< uint8_t > t_trk_nexPixHits
float t_ZdcModuleMaxADCHG[2][4]
std::vector< float > t_cc_sig
std::vector< double > proton_phi
std::vector< uint8_t > t_trk_inPixHits
float t_T2mbts_out_t[2][4]
uint8_t t_zdcEventInfoError
std::vector< int > t_ZdcTruthParticleStatus
float t_RpdChannelPileupStretchedExpFitParams[2][16][3]
float t_ZdcModuleMaxADCLG[2][4]
std::vector< uint8_t > t_trk_nTrtOutliers
std::vector< float > t_trk_e
const xAOD::HIEventShapeContainer * m_eventShapes
std::vector< uint8_t > t_trk_exPixHits
float t_ZdcModuleMaxADC[2][4]
float t_ZdcModuleTruthEscaped[2][7]
uint8_t t_zdcDecodingError
@ CELL_SIGNIFICANCE
Cell significance = E/sig of the cell with the largest |E|/sig.
@ CELL_SIG_SAMPLING
CaloSample of the cell with the largest |E|/sig.
CaloSampling::CaloSample CaloSample
@ Tile
The Tile calorimeter.
@ Core
Core flags describing the event.
@ ForwardDet
The forward detectors.
@ LAr
The LAr calorimeter.
@ Error
The sub-detector issued an error.
float z() const
Returns the z position.
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
float y() const
Returns the y position.
VxType::VertexType vertexType() const
The type of the vertex.
float x() const
Returns the x position.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
static const unsigned int EF_passedRaw
static const unsigned int L1_isPassedAfterVeto
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
@ pixeldEdx
the dE/dx estimate, calculated using the pixel clusters [?
Extra patterns decribing particle interation process.