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++)
714 for (
int ch=0;ch<16;ch++)
716 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
725 for (
int ch = 0; ch < 16; ch++) {
860 for (
auto const * zdcSum : *zdcSums) {
861 if (zdcSum->zdcSide() == 0) {
875 if (rpdErr||zdcErr)
ANA_MSG_WARNING(
"Decoding errors ZDC=" << zdcErr <<
" RPD=" << rpdErr );
880 for (
const auto zdcSum : *zdcSums)
882 if (zdcSum->zdcSide()==0) {
892 if (zdcSum->zdcSide() > 0) iside = 1;
904 t_ZdcAmp[iside] = UncalibSumAcc(*zdcSum);
908 if (LucrodTriggerSideAmpLGAcc.
isAvailable(*zdcSum))
913 t_ZdcTime[iside] = AverageTimeAcc(*zdcSum);
937 std::vector<float>
const& rpdChannelSubtrAmp = RPDChannelSubtrAmpAcc(*zdcSum);
946 std::vector<float>
const& xRowCentroid = xRowCentroidAcc(*zdcSum);
947 std::copy(xRowCentroid.begin(), xRowCentroid.end(),
t_xRowCentroid[iside]);
948 std::vector<float>
const& yColCentroid = yColCentroidAcc(*zdcSum);
949 std::copy(yColCentroid.begin(), yColCentroid.end(),
t_yColCentroid[iside]);
958 if (zdcModules.
ptr())
960 for (
const auto zdcMod : *zdcModules)
963 if (zdcMod->zdcSide() > 0) iside = 1;
964 int imod = zdcMod->zdcModule();
968 if(!(imod == 4 && zdcMod->zdcChannel() != 0)){
978 if(imod > 4)
continue;
981 ANA_MSG_VERBOSE (
"Module " << zdcMod->zdcSide() <<
" " << zdcMod->zdcModule() <<
" amp:" << AmplitudeAcc(*zdcMod));
983 if (zdcMod->zdcType() == 0 && !zdcErr)
990 Warning(
"processZdcNtupleFromModules",
"overwriting side %d module %d!", iside, imod);
1028 for (
unsigned int isamp = 0; isamp <
nsamplesZdc; isamp++)
1032 t_raw7[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1033 t_raw7[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1034 t_raw7[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1035 t_raw7[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1040 t_raw15[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1041 t_raw15[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1042 t_raw15[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1043 t_raw15[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1048 t_raw24[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1049 t_raw24[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1053 t_raw32[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1054 t_raw32[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1058 t_raw40[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1059 t_raw40[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1064 else if (zdcMod->zdcType() == 1 &&
nsamplesZdc == 24)
1072 std::vector<float>
const &rpdChannelPileupExpFitParams = RPDChannelPileupExpFitParamsAcc(*zdcMod);
1073 std::copy(rpdChannelPileupExpFitParams.begin(), rpdChannelPileupExpFitParams.end(),
t_RpdChannelPileupExpFitParams[iside][zdcMod->zdcChannel()]);
1074 std::vector<float>
const &rpdChannelPileupExpFitParamErrs = RPDChannelPileupExpFitParamErrsAcc(*zdcMod);
1076 std::vector<float>
const &rpdChannelPileupStretchedExpFitParams = RPDChannelPileupStretchedExpFitParamsAcc(*zdcMod);
1078 std::vector<float>
const &rpdChannelPileupStretchedExpFitParamErrs = RPDChannelPileupStretchedExpFitParamErrsAcc(*zdcMod);
1095 std::vector<uint16_t>
const &rpdChannelRaw = g0dataAcc(*zdcMod);
1096 std::copy(rpdChannelRaw.begin(), rpdChannelRaw.end(),
t_rpdRaw[iside][zdcMod->zdcChannel()]);
1107 if (
msgLvl (MSG::VERBOSE))
1109 std::ostringstream message;
1110 message <<
"Dump zdc_ZdcModuleAmp: ";
1111 for (
int iside = 0; iside < 2; iside++)
1113 for (
int imod = 0; imod < 4; imod++)
1126 if (!mcEventCollection.
isValid()){
1151 for (
unsigned int cntr = 0; cntr < mcEventCollection->size(); ++cntr){
1152 const HepMC::GenEvent *genEvt = (*mcEventCollection)[cntr];
1154 for (
const auto &vertex : genEvt->vertices()){
1155 for (
const auto &particle : vertex->particles_in()){
1157 for (
const auto &vertex : genEvt->vertex_range()){
1158 for (
auto ip = vertex->particles_in_const_begin();
1159 ip != vertex->particles_in_const_end();
1161 auto particle = *ip;
1182 bool passTrigger =
false;
1187 for (
int i = 0; i < 16; i++)
1195 for (
int i = 0; i < 16; i++)
1213 std::string name = cg->getListOfTriggers().at(0);
1219 ANA_MSG_DEBUG(
"TD: checking trigger name=" << name<<
" tav=" << tav);
1314 <<
", first LB = " << startLB <<
", number of steps = " << nsteps);
1326 ANA_MSG_DEBUG(
"processInDet(): processing tracks & vertices!");
1340 for (i = 0; i < 3; i++)
t_vx[i] = 0;
1341 for (i = 0; i < 6; i++)
t_vxcov[i] = 0;
1344 size_t pv_index = -1;
1345 size_t vx_index = 0;
1346 float max_pileup_sumpT = 0.;
1347 int max_pileup_nTrack = 0;
1348 float max_pileup_z = 0;
1349 int nStrongPileup = 0;
1374 float vtx_sumpt2 = 0;
1380 t_vtx_z.push_back(vertex->z());
1391 std::vector<int16_t> trk_index;
1394 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1395 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1398 trk_index.push_back(trkLink.
index());
1407 primary_vertex = vertex;
1408 pv_index = vx_index;
1412 float pileup_sumpT = 0;
1413 int pileup_nTrack = 0;
1414 for (
size_t itr = 0; itr < vertex->nTrackParticles(); itr++)
1416 int track_quality =
trackQuality(vertex->trackParticle(itr), vertex);
1417 if (track_quality != -1 && (track_quality & 128) != 0)
1420 pileup_sumpT += vertex->trackParticle(itr)->pt();
1423 if (pileup_sumpT > max_pileup_sumpT)
1425 max_pileup_sumpT = pileup_sumpT;
1426 max_pileup_nTrack = pileup_nTrack;
1427 max_pileup_z = vertex->z();
1429 if (pileup_sumpT > 5e3 || pileup_nTrack > 5) nStrongPileup++;
1437 if (primary_vertex !=
nullptr)
1439 t_vx[0] = primary_vertex->
x();
1440 t_vx[1] = primary_vertex->
y();
1441 t_vx[2] = primary_vertex->
z();
1446 for (
size_t i = 0; i < 6; i++)
1464 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = primary_vertex->
trackParticleLinks();
1466 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1469 if (!trkLink.
isValid())
continue;
1519 writeTrack(track, primary_vertex, trk_index++);
1526 if (vertex->nTrackParticles() <=
trackLimit )
1528 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1529 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1546 if (!track)
return -1;
1548 bool pass_looseprimary =
false;
1551 pass_looseprimary =
true;
1555 if (pass_looseprimary) quality += 1;
1568 t_trk_e.push_back(track->e());
1593 t_trk_inPixHits.push_back(numberOfInnermostPixelLayerHitsAcc(*track));
1595 t_trk_ninPixHits.push_back(numberOfNextToInnermostPixelLayerHitsAcc(*track));
1606 float pixeldEdx = 0;
1627 const std::string name = SummaryAcc(*calosum);
1650 int layer = eventShape->layer();
1651 float eta = eventShape->etaMin();
1652 float et = eventShape->et();
1653 if (layer == 21 || layer == 22 || layer == 23)
1659 if (TMath::Abs(
eta) < 2.4)
1690 int etabin =
h_TCSigCut->GetXaxis()->FindBin(cl->eta());
1691 if (etabin < 1 || etabin >
h_TCSigCut->GetNbinsX())
continue;
1692 float sig_cut =
h_TCSigCut->GetBinContent(etabin);
1696 ANA_MSG_VERBOSE (
"gapclus: etabin " << etabin <<
" sig_cut=" << sig_cut <<
" sig=" << sig <<
" samp=" << cl_cell_sig_samp);
1698 if (sig < sig_cut)
continue;
1700 if (cl_cell_sig_samp >= CaloSampling::TileBar0 && cl_cell_sig_samp <= CaloSampling::TileExt2)
continue;
1702 if (cl->eta() < eta_min) eta_min = cl->eta();
1703 if (cl->eta() > eta_max) eta_max = cl->eta();
1734 ANA_MSG_INFO(
"processMBTS: Warning: MBTS info empty!");
1737 for (
int iside = 0; iside < 2; iside++)
1739 for (
int iin = 0; iin < 8; iin++)
1746 for (
int iout = 0; iout < 4; iout++)
1766 if (mbtsMod->type() < 0) iside = 0.;
1769 if (mbtsMod->eta() > 3)
1771 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 8.) - 0.4;
1772 iphibin =
static_cast<int>(phibin);
1773 if (iphibin < 0 || iphibin > 7)
1783 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 4.) - 0.24;
1784 iphibin =
static_cast<int>(phibin);
1785 if (iphibin < 0 || iphibin > 3)
1799 const std::vector<float>& energies = mbtsBits->triggerEnergies();
1800 const std::vector<float>& times = mbtsBits->triggerTimes();
1801 for (
int imbts = 0; imbts < 32; imbts++)
1803 int side = imbts / 16;
1804 int ring = (imbts - 16 * side) / 8;
1805 bool isInner = (ring == 0);
1806 int index = (imbts - 16 * side - ring * 8);
1809 if ((
index % 2) != 0)
continue;
1812 int iside = (side == 0) ? 1 : 0;
1814 ANA_MSG_VERBOSE (
"imbts=" << imbts <<
" isInner=" << isInner <<
" iside=" << iside <<
" index=" <<
index <<
" e=" << energies.at(imbts) <<
" t=" << times.at(imbts));
1819 if (TMath::Abs(times.at(imbts)) < 12.0 && energies.at(imbts) > 40 / 222.)
1861 t_cc_pt.push_back(cluster->pt());
1862 t_cc_eta.push_back(cluster->eta());
1863 t_cc_phi.push_back(cluster->phi());
1864 t_cc_e.push_back(cluster->e());
1870 std::vector<float> energies;
1872 for (
size_t s = CaloSampling::PreSamplerB; s < CaloSampling::Unknown; s++ )
1880 energies.push_back(e);
1884 float et = cluster->e() / TMath::CosH(cluster->eta());
1893 double cell_sig = 0;
1896 double cell_layer = 0;
1898 t_cc_layer.push_back(
static_cast<int>(cell_layer));
1955 p_scat.SetPtEtaPhiE(proton->pt(), proton->eta(), proton->phi(), proton->e());
1956 (signbit(proton->eta())) ?
p_beam.SetPxPyPzE(0.0, 0.0, -6800.0, 6800.0) :
p_beam.SetPxPyPzE(0.0, 0.0, 6800.0,\
1961 for(
int i=0; i< int(proton->nTracks()); i++){
1981 uint32_t passbits = 0;
2017 std::vector<std::string> triggers;
2018 std::vector<std::string> rerunTriggers;
2019 bool zdc_triggers =
true;
2028 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2029 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2034 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2035 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_EMPTY");
2036 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_UNPAIRED_NONISO");
2037 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C");
2038 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_EMPTY");
2039 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_UNPAIRED_NONISO");
2040 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A");
2041 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_EMPTY");
2042 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_UNPAIRED_NONISO");
2043 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C");
2044 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_EMPTY");
2045 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_UNPAIRED_NONISO");
2052 triggers.push_back(
"HLT_noalg_L1LHCF");
2056 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_A");
2057 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_C");
2061 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
2062 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
2063 triggers.push_back(
"HLT_noalg_L1ZDC_OR");
2064 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E2");
2065 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E1_E3");
2066 triggers.push_back(
"HLT_noalg_L1ZDC_A_AND_C");
2067 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_OR");
2068 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E2");
2069 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E1_E3");
2070 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_A_AND_C");
2071 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E2");
2072 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E1_E3");
2073 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_A_AND_C");
2082 for (
auto &trig : triggers)
2087 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger found = " << trig.c_str() <<
" bit " << ic);
2091 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger NOT found = " << trig.c_str() <<
" bit " << ic);
2095 TString bname(trig.c_str());
2105 for (
auto &trig : rerunTriggers)
2111 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger found = " << trig.c_str() <<
" bit " << irc);
2115 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger NOT found = " << trig.c_str() <<
" bit " << irc);
2118 TString bname(trig.c_str());
2127 ANA_MSG_INFO(
"setupTriggerHistos(): Finished setting up trigger");
2132double ZdcNtuple::dR(
const double eta1,
const double phi1,
const double eta2,
const double phi2)
2134 double deta = std::abs(eta1 - eta2);
2135 double dphi = std::abs(phi1 - phi2) < TMath::Pi() ? std::abs(phi1 - phi2) : 2 * TMath::Pi() - std::abs(phi1 - phi2);
2136 return std::sqrt(deta * deta + dphi * dphi);
2140StatusCode ZdcNtuple :: finalize ()
2153 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.