20ZdcNtuple :: ZdcNtuple (
const std::string& name, ISvcLocator *pSvcLocator)
22 m_grl (
"GoodRunsListSelectionTool/grl", this),
24 m_selTool(
"InDet::InDetTrackSelectionTool/TrackSelectionTool", this )
46 declareProperty(
"grlFilename",
grlFilename =
"$ROOTCOREBIN/data/ZdcNtuple/data16_hip8TeV.periodAllYear_DetStatus-v86-pro20-19_DQDefects-00-02-04_PHYS_HeavyIonP_All_Good.xml",
"comment");
94StatusCode ZdcNtuple :: initialize ()
463 const char* fullGRLFilePath = gSystem->ExpandPathName (
grlFilename.c_str());
465 std::vector<std::string> vecStringGRL;
466 vecStringGRL.push_back(fullGRLFilePath);
524 ANA_MSG_INFO(
"Trying to initialize ZDC Analysis Tool!");
534 return StatusCode::SUCCESS;
539StatusCode ZdcNtuple :: execute ()
552 return StatusCode::SUCCESS;
570 ANA_MSG_DEBUG(
"Done w/ extracting InDetTrackParticles with size = " << n);
575 bool passTrigger =
true;
647 tree(
"zdcTree" )->Fill();
650 return StatusCode::SUCCESS;
662 for(
int iside : {0,1}){
663 for(
int imod = 0; imod < 7; ++imod){
671 for(
int ch = 0; ch < 16; ++ch){
676 for (
size_t iside = 0; iside < 2; iside++)
683 for (
int imod = 0; imod < 4; imod++)
698 for (
int ig=0;ig<2;ig++)
700 for (
int id=0;
id<2;
id++)
702 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
712 for (
int ch=0;ch<16;ch++)
714 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
723 for (
int ch = 0; ch < 16; ch++) {
858 for (
auto const * zdcSum : *zdcSums) {
859 if (zdcSum->zdcSide() == 0) {
873 if (rpdErr||zdcErr)
ANA_MSG_WARNING(
"Decoding errors ZDC=" << zdcErr <<
" RPD=" << rpdErr );
878 for (
const auto zdcSum : *zdcSums)
880 if (zdcSum->zdcSide()==0) {
890 if (zdcSum->zdcSide() > 0) iside = 1;
902 t_ZdcAmp[iside] = UncalibSumAcc(*zdcSum);
906 if (LucrodTriggerSideAmpLGAcc.
isAvailable(*zdcSum))
911 t_ZdcTime[iside] = AverageTimeAcc(*zdcSum);
935 std::vector<float>
const& rpdChannelSubtrAmp = RPDChannelSubtrAmpAcc(*zdcSum);
944 std::vector<float>
const& xRowCentroid = xRowCentroidAcc(*zdcSum);
945 std::copy(xRowCentroid.begin(), xRowCentroid.end(),
t_xRowCentroid[iside]);
946 std::vector<float>
const& yColCentroid = yColCentroidAcc(*zdcSum);
947 std::copy(yColCentroid.begin(), yColCentroid.end(),
t_yColCentroid[iside]);
956 if (zdcModules.
ptr())
958 for (
const auto zdcMod : *zdcModules)
961 if (zdcMod->zdcSide() > 0) iside = 1;
962 int imod = zdcMod->zdcModule();
966 if(!(imod == 4 && zdcMod->zdcChannel() != 0)){
976 if(imod > 4)
continue;
979 ANA_MSG_VERBOSE (
"Module " << zdcMod->zdcSide() <<
" " << zdcMod->zdcModule() <<
" amp:" << AmplitudeAcc(*zdcMod));
981 if (zdcMod->zdcType() == 0 && !zdcErr)
988 Warning(
"processZdcNtupleFromModules",
"overwriting side %d module %d!", iside, imod);
1026 for (
unsigned int isamp = 0; isamp <
nsamplesZdc; isamp++)
1030 t_raw7[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1031 t_raw7[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1032 t_raw7[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1033 t_raw7[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1038 t_raw15[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1039 t_raw15[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1040 t_raw15[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1041 t_raw15[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1046 t_raw24[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1047 t_raw24[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1052 else if (zdcMod->zdcType() == 1 &&
nsamplesZdc == 24)
1060 std::vector<float>
const &rpdChannelPileupExpFitParams = RPDChannelPileupExpFitParamsAcc(*zdcMod);
1061 std::copy(rpdChannelPileupExpFitParams.begin(), rpdChannelPileupExpFitParams.end(),
t_RpdChannelPileupExpFitParams[iside][zdcMod->zdcChannel()]);
1062 std::vector<float>
const &rpdChannelPileupExpFitParamErrs = RPDChannelPileupExpFitParamErrsAcc(*zdcMod);
1064 std::vector<float>
const &rpdChannelPileupStretchedExpFitParams = RPDChannelPileupStretchedExpFitParamsAcc(*zdcMod);
1066 std::vector<float>
const &rpdChannelPileupStretchedExpFitParamErrs = RPDChannelPileupStretchedExpFitParamErrsAcc(*zdcMod);
1083 std::vector<uint16_t>
const &rpdChannelRaw = g0dataAcc(*zdcMod);
1084 std::copy(rpdChannelRaw.begin(), rpdChannelRaw.end(),
t_rpdRaw[iside][zdcMod->zdcChannel()]);
1095 if (
msgLvl (MSG::VERBOSE))
1097 std::ostringstream message;
1098 message <<
"Dump zdc_ZdcModuleAmp: ";
1099 for (
int iside = 0; iside < 2; iside++)
1101 for (
int imod = 0; imod < 4; imod++)
1114 if (!mcEventCollection.
isValid()){
1139 for (
unsigned int cntr = 0; cntr < mcEventCollection->size(); ++cntr){
1140 const HepMC::GenEvent *genEvt = (*mcEventCollection)[cntr];
1142 for (
const auto &vertex : genEvt->vertices()){
1143 for (
const auto &particle : vertex->particles_in()){
1145 for (
const auto &vertex : genEvt->vertex_range()){
1146 for (
auto ip = vertex->particles_in_const_begin();
1147 ip != vertex->particles_in_const_end();
1149 auto particle = *ip;
1170 bool passTrigger =
false;
1175 for (
int i = 0; i < 16; i++)
1183 for (
int i = 0; i < 16; i++)
1201 std::string name = cg->getListOfTriggers().at(0);
1207 ANA_MSG_DEBUG(
"TD: checking trigger name=" << name<<
" tav=" << tav);
1302 <<
", first LB = " << startLB <<
", number of steps = " << nsteps);
1314 ANA_MSG_DEBUG(
"processInDet(): processing tracks & vertices!");
1328 for (i = 0; i < 3; i++)
t_vx[i] = 0;
1329 for (i = 0; i < 6; i++)
t_vxcov[i] = 0;
1332 size_t pv_index = -1;
1333 size_t vx_index = 0;
1334 float max_pileup_sumpT = 0.;
1335 int max_pileup_nTrack = 0;
1336 float max_pileup_z = 0;
1337 int nStrongPileup = 0;
1362 float vtx_sumpt2 = 0;
1368 t_vtx_z.push_back(vertex->z());
1379 std::vector<int16_t> trk_index;
1382 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1383 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1386 trk_index.push_back(trkLink.
index());
1395 primary_vertex = vertex;
1396 pv_index = vx_index;
1400 float pileup_sumpT = 0;
1401 int pileup_nTrack = 0;
1402 for (
size_t itr = 0; itr < vertex->nTrackParticles(); itr++)
1404 int track_quality =
trackQuality(vertex->trackParticle(itr), vertex);
1405 if (track_quality != -1 && (track_quality & 128) != 0)
1408 pileup_sumpT += vertex->trackParticle(itr)->pt();
1411 if (pileup_sumpT > max_pileup_sumpT)
1413 max_pileup_sumpT = pileup_sumpT;
1414 max_pileup_nTrack = pileup_nTrack;
1415 max_pileup_z = vertex->z();
1417 if (pileup_sumpT > 5e3 || pileup_nTrack > 5) nStrongPileup++;
1425 if (primary_vertex !=
nullptr)
1427 t_vx[0] = primary_vertex->
x();
1428 t_vx[1] = primary_vertex->
y();
1429 t_vx[2] = primary_vertex->
z();
1434 for (
size_t i = 0; i < 6; i++)
1452 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = primary_vertex->
trackParticleLinks();
1454 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1457 if (!trkLink.
isValid())
continue;
1507 writeTrack(track, primary_vertex, trk_index++);
1514 if (vertex->nTrackParticles() <=
trackLimit )
1516 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1517 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1534 if (!track)
return -1;
1536 bool pass_looseprimary =
false;
1539 pass_looseprimary =
true;
1543 if (pass_looseprimary) quality += 1;
1556 t_trk_e.push_back(track->e());
1581 t_trk_inPixHits.push_back(numberOfInnermostPixelLayerHitsAcc(*track));
1583 t_trk_ninPixHits.push_back(numberOfNextToInnermostPixelLayerHitsAcc(*track));
1594 float pixeldEdx = 0;
1615 const std::string name = SummaryAcc(*calosum);
1638 int layer = eventShape->layer();
1639 float eta = eventShape->etaMin();
1640 float et = eventShape->et();
1641 if (layer == 21 || layer == 22 || layer == 23)
1647 if (TMath::Abs(
eta) < 2.4)
1678 int etabin =
h_TCSigCut->GetXaxis()->FindBin(cl->eta());
1679 if (etabin < 1 || etabin >
h_TCSigCut->GetNbinsX())
continue;
1680 float sig_cut =
h_TCSigCut->GetBinContent(etabin);
1684 ANA_MSG_VERBOSE (
"gapclus: etabin " << etabin <<
" sig_cut=" << sig_cut <<
" sig=" << sig <<
" samp=" << cl_cell_sig_samp);
1686 if (sig < sig_cut)
continue;
1688 if (cl_cell_sig_samp >= CaloSampling::TileBar0 && cl_cell_sig_samp <= CaloSampling::TileExt2)
continue;
1690 if (cl->eta() < eta_min) eta_min = cl->eta();
1691 if (cl->eta() > eta_max) eta_max = cl->eta();
1722 ANA_MSG_INFO(
"processMBTS: Warning: MBTS info empty!");
1725 for (
int iside = 0; iside < 2; iside++)
1727 for (
int iin = 0; iin < 8; iin++)
1734 for (
int iout = 0; iout < 4; iout++)
1754 if (mbtsMod->type() < 0) iside = 0.;
1757 if (mbtsMod->eta() > 3)
1759 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 8.) - 0.4;
1760 iphibin =
static_cast<int>(phibin);
1761 if (iphibin < 0 || iphibin > 7)
1771 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 4.) - 0.24;
1772 iphibin =
static_cast<int>(phibin);
1773 if (iphibin < 0 || iphibin > 3)
1787 const std::vector<float>& energies = mbtsBits->triggerEnergies();
1788 const std::vector<float>& times = mbtsBits->triggerTimes();
1789 for (
int imbts = 0; imbts < 32; imbts++)
1791 int side = imbts / 16;
1792 int ring = (imbts - 16 * side) / 8;
1793 bool isInner = (ring == 0);
1794 int index = (imbts - 16 * side - ring * 8);
1797 if ((
index % 2) != 0)
continue;
1800 int iside = (side == 0) ? 1 : 0;
1802 ANA_MSG_VERBOSE (
"imbts=" << imbts <<
" isInner=" << isInner <<
" iside=" << iside <<
" index=" <<
index <<
" e=" << energies.at(imbts) <<
" t=" << times.at(imbts));
1807 if (TMath::Abs(times.at(imbts)) < 12.0 && energies.at(imbts) > 40 / 222.)
1849 t_cc_pt.push_back(cluster->pt());
1850 t_cc_eta.push_back(cluster->eta());
1851 t_cc_phi.push_back(cluster->phi());
1852 t_cc_e.push_back(cluster->e());
1858 std::vector<float> energies;
1860 for (
size_t s = CaloSampling::PreSamplerB; s < CaloSampling::Unknown; s++ )
1868 energies.push_back(e);
1872 float et = cluster->e() / TMath::CosH(cluster->eta());
1881 double cell_sig = 0;
1884 double cell_layer = 0;
1886 t_cc_layer.push_back(
static_cast<int>(cell_layer));
1943 p_scat.SetPtEtaPhiE(proton->pt(), proton->eta(), proton->phi(), proton->e());
1944 (signbit(proton->eta())) ?
p_beam.SetPxPyPzE(0.0, 0.0, -6800.0, 6800.0) :
p_beam.SetPxPyPzE(0.0, 0.0, 6800.0,\
1949 for(
int i=0; i< int(proton->nTracks()); i++){
1969 uint32_t passbits = 0;
2005 std::vector<std::string> triggers;
2006 std::vector<std::string> rerunTriggers;
2007 bool zdc_triggers =
true;
2016 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2017 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2022 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2023 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_EMPTY");
2024 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_UNPAIRED_NONISO");
2025 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C");
2026 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_EMPTY");
2027 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_UNPAIRED_NONISO");
2028 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A");
2029 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_EMPTY");
2030 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_UNPAIRED_NONISO");
2031 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C");
2032 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_EMPTY");
2033 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_UNPAIRED_NONISO");
2040 triggers.push_back(
"HLT_noalg_L1LHCF");
2044 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_A");
2045 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_C");
2049 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2050 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2051 triggers.push_back(
"HLT_noalg_L1ZDC_OR");
2052 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E2");
2053 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E1_E3");
2054 triggers.push_back(
"HLT_noalg_L1ZDC_A_AND_C");
2055 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_OR");
2056 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E2");
2057 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E1_E3");
2058 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_A_AND_C");
2059 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E2");
2060 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E1_E3");
2061 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_A_AND_C");
2070 for (
auto &trig : triggers)
2075 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger found = " << trig.c_str() <<
" bit " << ic);
2079 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger NOT found = " << trig.c_str() <<
" bit " << ic);
2083 TString bname(trig.c_str());
2093 for (
auto &trig : rerunTriggers)
2099 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger found = " << trig.c_str() <<
" bit " << irc);
2103 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger NOT found = " << trig.c_str() <<
" bit " << irc);
2106 TString bname(trig.c_str());
2115 ANA_MSG_INFO(
"setupTriggerHistos(): Finished setting up trigger");
2120double ZdcNtuple::dR(
const double eta1,
const double phi1,
const double eta2,
const double phi2)
2122 double deta = std::abs(eta1 - eta2);
2123 double dphi = std::abs(phi1 - phi2) < TMath::Pi() ? std::abs(phi1 - phi2) : 2 * TMath::Pi() - std::abs(phi1 - phi2);
2124 return std::sqrt(deta * deta + dphi * dphi);
2128StatusCode ZdcNtuple :: finalize ()
2141 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.