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");
99StatusCode ZdcNtuple :: initialize ()
468 const char* fullGRLFilePath = gSystem->ExpandPathName (
grlFilename.c_str());
470 std::vector<std::string> vecStringGRL;
471 vecStringGRL.push_back(fullGRLFilePath);
529 ANA_MSG_INFO(
"Trying to initialize ZDC Analysis Tool!");
539 return StatusCode::SUCCESS;
544StatusCode ZdcNtuple :: execute ()
557 return StatusCode::SUCCESS;
575 ANA_MSG_DEBUG(
"Done w/ extracting InDetTrackParticles with size = " << n);
580 bool passTrigger =
true;
652 tree(
"zdcTree" )->Fill();
655 return StatusCode::SUCCESS;
667 for(
int iside : {0,1}){
668 for(
int imod = 0; imod < 7; ++imod){
676 for(
int ch = 0; ch < 16; ++ch){
681 for (
size_t iside = 0; iside < 2; iside++)
688 for (
int imod = 0; imod < 4; imod++)
703 for (
int ig=0;ig<2;ig++)
705 for (
int id=0;
id<2;
id++)
707 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
719 for (
int ch=0;ch<16;ch++)
721 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
730 for (
int ch = 0; ch < 16; ch++) {
865 for (
auto const * zdcSum : *zdcSums) {
866 if (zdcSum->zdcSide() == 0) {
880 if (rpdErr||zdcErr)
ANA_MSG_WARNING(
"Decoding errors ZDC=" << zdcErr <<
" RPD=" << rpdErr );
885 for (
const auto zdcSum : *zdcSums)
887 if (zdcSum->zdcSide()==0) {
897 if (zdcSum->zdcSide() > 0) iside = 1;
909 t_ZdcAmp[iside] = UncalibSumAcc(*zdcSum);
913 if (LucrodTriggerSideAmpLGAcc.
isAvailable(*zdcSum))
918 t_ZdcTime[iside] = AverageTimeAcc(*zdcSum);
942 std::vector<float>
const& rpdChannelSubtrAmp = RPDChannelSubtrAmpAcc(*zdcSum);
951 std::vector<float>
const& xRowCentroid = xRowCentroidAcc(*zdcSum);
952 std::copy(xRowCentroid.begin(), xRowCentroid.end(),
t_xRowCentroid[iside]);
953 std::vector<float>
const& yColCentroid = yColCentroidAcc(*zdcSum);
954 std::copy(yColCentroid.begin(), yColCentroid.end(),
t_yColCentroid[iside]);
963 if (zdcModules.
ptr())
965 for (
const auto zdcMod : *zdcModules)
968 if (zdcMod->zdcSide() > 0) iside = 1;
969 int imod = zdcMod->zdcModule();
973 if(!(imod == 4 && zdcMod->zdcChannel() != 0)){
983 if(imod > 4)
continue;
986 ANA_MSG_VERBOSE (
"Module " << zdcMod->zdcSide() <<
" " << zdcMod->zdcModule() <<
" amp:" << AmplitudeAcc(*zdcMod));
988 if (zdcMod->zdcType() == 0 && !zdcErr)
995 Warning(
"processZdcNtupleFromModules",
"overwriting side %d module %d!", iside, imod);
1033 for (
unsigned int isamp = 0; isamp <
nsamplesZdc; isamp++)
1037 t_raw7[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1038 t_raw7[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1039 t_raw7[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1040 t_raw7[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1045 t_raw15[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1046 t_raw15[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1047 t_raw15[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1048 t_raw15[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1053 t_raw24[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1054 t_raw24[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1058 t_raw32[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1059 t_raw32[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1063 t_raw40[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1064 t_raw40[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1069 else if (zdcMod->zdcType() == 1 &&
nsamplesZdc == 24)
1077 std::vector<float>
const &rpdChannelPileupExpFitParams = RPDChannelPileupExpFitParamsAcc(*zdcMod);
1078 std::copy(rpdChannelPileupExpFitParams.begin(), rpdChannelPileupExpFitParams.end(),
t_RpdChannelPileupExpFitParams[iside][zdcMod->zdcChannel()]);
1079 std::vector<float>
const &rpdChannelPileupExpFitParamErrs = RPDChannelPileupExpFitParamErrsAcc(*zdcMod);
1081 std::vector<float>
const &rpdChannelPileupStretchedExpFitParams = RPDChannelPileupStretchedExpFitParamsAcc(*zdcMod);
1083 std::vector<float>
const &rpdChannelPileupStretchedExpFitParamErrs = RPDChannelPileupStretchedExpFitParamErrsAcc(*zdcMod);
1100 std::vector<uint16_t>
const &rpdChannelRaw = g0dataAcc(*zdcMod);
1101 std::copy(rpdChannelRaw.begin(), rpdChannelRaw.end(),
t_rpdRaw[iside][zdcMod->zdcChannel()]);
1112 if (
msgLvl (MSG::VERBOSE))
1114 std::ostringstream message;
1115 message <<
"Dump zdc_ZdcModuleAmp: ";
1116 for (
int iside = 0; iside < 2; iside++)
1118 for (
int imod = 0; imod < 4; imod++)
1131 if (!mcEventCollection.
isValid()){
1156 for (
unsigned int cntr = 0; cntr < mcEventCollection->size(); ++cntr){
1157 const HepMC::GenEvent *genEvt = (*mcEventCollection)[cntr];
1159 for (
const auto &vertex : genEvt->vertices()){
1160 for (
const auto &particle : vertex->particles_in()){
1162 for (
const auto &vertex : genEvt->vertex_range()){
1163 for (
auto ip = vertex->particles_in_const_begin();
1164 ip != vertex->particles_in_const_end();
1166 auto particle = *ip;
1187 bool passTrigger =
false;
1192 for (
int i = 0; i < 16; i++)
1200 for (
int i = 0; i < 16; i++)
1218 std::string name = cg->getListOfTriggers().at(0);
1224 ANA_MSG_DEBUG(
"TD: checking trigger name=" << name<<
" tav=" << tav);
1319 <<
", first LB = " << startLB <<
", number of steps = " << nsteps);
1331 ANA_MSG_DEBUG(
"processInDet(): processing tracks & vertices!");
1345 for (i = 0; i < 3; i++)
t_vx[i] = 0;
1346 for (i = 0; i < 6; i++)
t_vxcov[i] = 0;
1349 size_t pv_index = -1;
1350 size_t vx_index = 0;
1351 float max_pileup_sumpT = 0.;
1352 int max_pileup_nTrack = 0;
1353 float max_pileup_z = 0;
1354 int nStrongPileup = 0;
1379 float vtx_sumpt2 = 0;
1385 t_vtx_z.push_back(vertex->z());
1396 std::vector<int16_t> trk_index;
1399 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1400 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1403 trk_index.push_back(trkLink.
index());
1412 primary_vertex = vertex;
1413 pv_index = vx_index;
1417 float pileup_sumpT = 0;
1418 int pileup_nTrack = 0;
1419 for (
size_t itr = 0; itr < vertex->nTrackParticles(); itr++)
1421 int track_quality =
trackQuality(vertex->trackParticle(itr), vertex);
1422 if (track_quality != -1 && (track_quality & 128) != 0)
1425 pileup_sumpT += vertex->trackParticle(itr)->pt();
1428 if (pileup_sumpT > max_pileup_sumpT)
1430 max_pileup_sumpT = pileup_sumpT;
1431 max_pileup_nTrack = pileup_nTrack;
1432 max_pileup_z = vertex->z();
1434 if (pileup_sumpT > 5e3 || pileup_nTrack > 5) nStrongPileup++;
1442 if (primary_vertex !=
nullptr)
1444 t_vx[0] = primary_vertex->
x();
1445 t_vx[1] = primary_vertex->
y();
1446 t_vx[2] = primary_vertex->
z();
1451 for (
size_t i = 0; i < 6; i++)
1469 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = primary_vertex->
trackParticleLinks();
1471 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1474 if (!trkLink.
isValid())
continue;
1524 writeTrack(track, primary_vertex, trk_index++);
1531 if (vertex->nTrackParticles() <=
trackLimit )
1533 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1534 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1551 if (!track)
return -1;
1553 bool pass_looseprimary =
false;
1556 pass_looseprimary =
true;
1560 if (pass_looseprimary) quality += 1;
1573 t_trk_e.push_back(track->e());
1598 t_trk_inPixHits.push_back(numberOfInnermostPixelLayerHitsAcc(*track));
1600 t_trk_ninPixHits.push_back(numberOfNextToInnermostPixelLayerHitsAcc(*track));
1611 float pixeldEdx = 0;
1632 const std::string name = SummaryAcc(*calosum);
1655 int layer = eventShape->layer();
1656 float eta = eventShape->etaMin();
1657 float et = eventShape->et();
1658 if (layer == 21 || layer == 22 || layer == 23)
1664 if (TMath::Abs(
eta) < 2.4)
1695 int etabin =
h_TCSigCut->GetXaxis()->FindBin(cl->eta());
1696 if (etabin < 1 || etabin >
h_TCSigCut->GetNbinsX())
continue;
1697 float sig_cut =
h_TCSigCut->GetBinContent(etabin);
1701 ANA_MSG_VERBOSE (
"gapclus: etabin " << etabin <<
" sig_cut=" << sig_cut <<
" sig=" << sig <<
" samp=" << cl_cell_sig_samp);
1703 if (sig < sig_cut)
continue;
1705 if (cl_cell_sig_samp >= CaloSampling::TileBar0 && cl_cell_sig_samp <= CaloSampling::TileExt2)
continue;
1707 if (cl->eta() < eta_min) eta_min = cl->eta();
1708 if (cl->eta() > eta_max) eta_max = cl->eta();
1739 ANA_MSG_INFO(
"processMBTS: Warning: MBTS info empty!");
1742 for (
int iside = 0; iside < 2; iside++)
1744 for (
int iin = 0; iin < 8; iin++)
1751 for (
int iout = 0; iout < 4; iout++)
1771 if (mbtsMod->type() < 0) iside = 0.;
1774 if (mbtsMod->eta() > 3)
1776 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 8.) - 0.4;
1777 iphibin =
static_cast<int>(phibin);
1778 if (iphibin < 0 || iphibin > 7)
1788 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 4.) - 0.24;
1789 iphibin =
static_cast<int>(phibin);
1790 if (iphibin < 0 || iphibin > 3)
1804 const std::vector<float>& energies = mbtsBits->triggerEnergies();
1805 const std::vector<float>& times = mbtsBits->triggerTimes();
1806 for (
int imbts = 0; imbts < 32; imbts++)
1808 int side = imbts / 16;
1809 int ring = (imbts - 16 * side) / 8;
1810 bool isInner = (ring == 0);
1811 int index = (imbts - 16 * side - ring * 8);
1814 if ((
index % 2) != 0)
continue;
1817 int iside = (side == 0) ? 1 : 0;
1819 ANA_MSG_VERBOSE (
"imbts=" << imbts <<
" isInner=" << isInner <<
" iside=" << iside <<
" index=" <<
index <<
" e=" << energies.at(imbts) <<
" t=" << times.at(imbts));
1820 if (iside < 2 and
index < 8){
1825 if (TMath::Abs(times.at(imbts)) < 12.0 && energies.at(imbts) > 40 / 222.)
1868 t_cc_pt.push_back(cluster->pt());
1869 t_cc_eta.push_back(cluster->eta());
1870 t_cc_phi.push_back(cluster->phi());
1871 t_cc_e.push_back(cluster->e());
1877 std::vector<float> energies;
1879 for (
size_t s = CaloSampling::PreSamplerB; s < CaloSampling::Unknown; s++ )
1887 energies.push_back(e);
1891 float et = cluster->e() / TMath::CosH(cluster->eta());
1900 double cell_sig = 0;
1903 double cell_layer = 0;
1905 t_cc_layer.push_back(
static_cast<int>(cell_layer));
1962 p_scat.SetPtEtaPhiE(proton->pt(), proton->eta(), proton->phi(), proton->e());
1963 (signbit(proton->eta())) ?
p_beam.SetPxPyPzE(0.0, 0.0, -6800.0, 6800.0) :
p_beam.SetPxPyPzE(0.0, 0.0, 6800.0,\
1968 for(
int i=0; i< int(proton->nTracks()); i++){
1988 uint32_t passbits = 0;
2024 std::vector<std::string> triggers;
2025 std::vector<std::string> rerunTriggers;
2026 bool zdc_triggers =
true;
2035 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2036 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2041 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2042 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_EMPTY");
2043 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_UNPAIRED_NONISO");
2044 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C");
2045 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_EMPTY");
2046 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_UNPAIRED_NONISO");
2047 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A");
2048 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_EMPTY");
2049 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_UNPAIRED_NONISO");
2050 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C");
2051 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_EMPTY");
2052 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_UNPAIRED_NONISO");
2059 triggers.push_back(
"HLT_noalg_L1LHCF");
2063 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_A");
2064 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_C");
2068 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2069 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2070 triggers.push_back(
"HLT_noalg_L1ZDC_OR");
2071 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E2");
2072 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E1_E3");
2073 triggers.push_back(
"HLT_noalg_L1ZDC_A_AND_C");
2074 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_OR");
2075 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E2");
2076 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E1_E3");
2077 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_A_AND_C");
2078 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E2");
2079 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E1_E3");
2080 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_A_AND_C");
2089 for (
auto &trig : triggers)
2094 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger found = " << trig.c_str() <<
" bit " << ic);
2098 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger NOT found = " << trig.c_str() <<
" bit " << ic);
2102 TString bname(trig.c_str());
2112 for (
auto &trig : rerunTriggers)
2118 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger found = " << trig.c_str() <<
" bit " << irc);
2122 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger NOT found = " << trig.c_str() <<
" bit " << irc);
2125 TString bname(trig.c_str());
2134 ANA_MSG_INFO(
"setupTriggerHistos(): Finished setting up trigger");
2139double ZdcNtuple::dR(
const double eta1,
const double phi1,
const double eta2,
const double phi2)
2141 double deta = std::abs(eta1 - eta2);
2142 double dphi = std::abs(phi1 - phi2) < TMath::Pi() ? std::abs(phi1 - phi2) : 2 * TMath::Pi() - std::abs(phi1 - phi2);
2143 return std::sqrt(deta * deta + dphi * dphi);
2147StatusCode ZdcNtuple :: finalize ()
2160 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
Test to see if the link can be dereferenced.
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_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
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
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.