![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
18 :
EL::AnaAlgorithm(
name, pSvcLocator),
19 m_grl (
"GoodRunsListSelectionTool/grl", this),
21 m_selTool(
"InDet::InDetTrackSelectionTool/TrackSelectionTool", this )
41 declareProperty(
"grlFilename",
grlFilename =
"$ROOTCOREBIN/data/ZdcNtuple/data16_hip8TeV.periodAllYear_DetStatus-v86-pro20-19_DQDefects-00-02-04_PHYS_HeavyIonP_All_Good.xml",
"comment");
413 const char* fullGRLFilePath = gSystem->ExpandPathName (
grlFilename.c_str());
415 std::vector<std::string> vecStringGRL;
416 vecStringGRL.push_back(fullGRLFilePath);
474 ANA_MSG_INFO(
"Trying to initialize ZDC Analysis Tool!");
479 return StatusCode::SUCCESS;
497 return StatusCode::SUCCESS;
512 ANA_MSG_DEBUG(
"Done w/ extracting InDetTrackParticles with size = " <<
n);
517 bool passTrigger =
true;
584 tree(
"zdcTree" )->Fill();
587 return StatusCode::SUCCESS;
599 for(
int iside : {0,1}){
600 for(
int imod = 0; imod < 7; ++imod){
608 for(
int ch = 0;
ch < 16; ++
ch){
613 for (
size_t iside = 0; iside < 2; iside++)
619 for (
int imod = 0; imod < 4; imod++)
630 for (
int ig=0;ig<2;ig++)
632 for (
int id=0;
id<2;
id++)
634 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
646 for (
unsigned int isamp=0;isamp<
nsamplesZdc;isamp++)
655 for (
int ch = 0;
ch < 16;
ch++) {
698 ANA_MSG_INFO(
"ZDC event failed EventInfo error check - aborting!");
705 for (
const auto zdcSum : *zdcSums)
707 if (zdcSum->zdcSide()==0) {
714 if (zdcSum->zdcSide() > 0) iside = 1;
724 if (zdcSum->isAvailable<
uint16_t>(
"LucrodTriggerSideAmp"))
745 std::vector<float>
const& rpdChannelSubtrAmp = zdcSum->auxdataConst<std::vector<float>>(
"RPDChannelSubtrAmp" +
auxSuffix);
754 std::vector<float>
const& xRowCentroid = zdcSum->auxdataConst<std::vector<float>>(
"xRowCentroid" +
auxSuffix);
756 std::vector<float>
const& yColCentroid = zdcSum->auxdataConst<std::vector<float>>(
"yColCentroid" +
auxSuffix);
768 if (zdcModules.
ptr())
770 for (
const auto zdcMod : *zdcModules)
773 if (zdcMod->zdcSide() > 0) iside = 1;
774 int imod = zdcMod->zdcModule();
778 if(!(imod == 4 && zdcMod->zdcChannel() != 0)){
788 if(imod > 4)
continue;
791 ANA_MSG_VERBOSE (
"Module " << zdcMod->zdcSide() <<
" " << zdcMod->zdcModule() <<
" amp:" << zdcMod->auxdataConst<
float>(
"Amplitude"));
793 if (zdcMod->zdcType() == 0) {
799 Warning(
"processZdcNtupleFromModules",
"overwriting side %d module %d!", iside, imod);
812 if (zdcMod->isAvailable<
uint16_t>(
"LucrodTriggerAmp"))
814 if (zdcMod->isAvailable<
float>(
"MaxADC"))
819 for (
unsigned int isamp = 0; isamp <
nsamplesZdc; isamp++)
823 t_raw7[iside][imod][0][0][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g0d0Data")).at(isamp);
824 t_raw7[iside][imod][0][1][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g0d1Data")).at(isamp);
825 t_raw7[iside][imod][1][0][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g1d0Data")).at(isamp);
826 t_raw7[iside][imod][1][1][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g1d1Data")).at(isamp);
831 t_raw15[iside][imod][0][0][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g0d0Data")).at(isamp);
832 t_raw15[iside][imod][0][1][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g0d1Data")).at(isamp);
833 t_raw15[iside][imod][1][0][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g1d0Data")).at(isamp);
834 t_raw15[iside][imod][1][1][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g1d1Data")).at(isamp);
839 t_raw24[iside][imod][0][0][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g0data")).at(isamp);
840 t_raw24[iside][imod][1][0][isamp] = (zdcMod->auxdataConst<std::vector<uint16_t>>(
"g1data")).at(isamp);
845 }
else if (zdcMod->zdcType() == 1 &&
nsamplesZdc == 24) {
850 std::vector<float>
const &rpdChannelPileupExpFitParams = zdcMod->auxdataConst<std::vector<float>>(
"RPDChannelPileupExpFitParams" +
auxSuffix);
852 std::vector<float>
const &rpdChannelPileupExpFitParamErrs = zdcMod->auxdataConst<std::vector<float>>(
"RPDChannelPileupExpFitParamErrs" +
auxSuffix);
854 std::vector<float>
const &rpdChannelPileupStretchedExpFitParams = zdcMod->auxdataConst<std::vector<float>>(
"RPDChannelPileupStretchedExpFitParams" +
auxSuffix);
856 std::vector<float>
const &rpdChannelPileupStretchedExpFitParamErrs = zdcMod->auxdataConst<std::vector<float>>(
"RPDChannelPileupStretchedExpFitParamErrs" +
auxSuffix);
873 std::vector<uint16_t>
const &rpdChannelRaw = zdcMod->auxdataConst<std::vector<uint16_t>>(
"g0data");
874 std::copy(rpdChannelRaw.begin(), rpdChannelRaw.end(),
t_rpdRaw[iside][zdcMod->zdcChannel()]);
887 message <<
"Dump zdc_ZdcModuleAmp: ";
888 for (
int iside = 0; iside < 2; iside++)
890 for (
int imod = 0; imod < 4; imod++)
903 if (!mcEventCollection.
isValid()){
926 for (
unsigned int cntr = 0; cntr < mcEventCollection->
size(); ++cntr){
927 const HepMC::GenEvent *genEvt = (*mcEventCollection)[cntr];
929 for (
const auto &
vertex : genEvt->vertices()){
932 for (
const auto &
vertex : genEvt->vertex_range()){
933 for (
auto ip =
vertex->particles_in_const_begin();
934 ip !=
vertex->particles_in_const_end();
955 bool passTrigger =
false;
960 for (
int i = 0;
i < 16;
i++)
968 for (
int i = 0;
i < 16;
i++)
986 std::string
name = cg->getListOfTriggers().at(0);
991 bool tav = triggerbits&TrigDefs::L1_isPassedAfterVeto;
1022 if (cg->isPassedBits()&TrigDefs::EF_passedRaw)
1035 if (cg->isPassedBits()&TrigDefs::EF_passedRaw)
1074 ANA_MSG_DEBUG(
"processInDet(): processing tracks & vertices!");
1088 for (
i = 0;
i < 3;
i++)
t_vx[
i] = 0;
1092 size_t pv_index = -1;
1093 size_t vx_index = 0;
1094 float max_pileup_sumpT = 0.;
1095 int max_pileup_nTrack = 0;
1096 float max_pileup_z = 0;
1097 int nStrongPileup = 0;
1120 float vtx_sumpt2 = 0;
1132 if (
vertex->isAvailable<
float>(
"sumPt2"))
1137 std::vector<int16_t> trk_index;
1140 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles =
vertex->trackParticleLinks();
1141 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1144 trk_index.push_back(trkLink.
index());
1154 pv_index = vx_index;
1158 float pileup_sumpT = 0;
1159 int pileup_nTrack = 0;
1160 for (
size_t itr = 0; itr <
vertex->nTrackParticles(); itr++)
1163 if (track_quality != -1 && (track_quality & 128) != 0)
1166 pileup_sumpT +=
vertex->trackParticle(itr)->pt();
1169 if (pileup_sumpT > max_pileup_sumpT)
1171 max_pileup_sumpT = pileup_sumpT;
1172 max_pileup_nTrack = pileup_nTrack;
1173 max_pileup_z =
vertex->z();
1175 if (pileup_sumpT > 5
e3 || pileup_nTrack > 5) nStrongPileup++;
1183 if (primary_vertex !=
nullptr)
1185 t_vx[0] = primary_vertex->
x();
1186 t_vx[1] = primary_vertex->
y();
1187 t_vx[2] = primary_vertex->
z();
1192 for (
size_t i = 0;
i < 6;
i++)
1208 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = primary_vertex->
trackParticleLinks();
1210 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1213 if (!trkLink.
isValid())
continue;
1272 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles =
vertex->trackParticleLinks();
1273 for (
size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1290 if (!
track)
return -1;
1292 bool pass_looseprimary =
false;
1295 pass_looseprimary =
true;
1299 if (pass_looseprimary) quality += 1;
1356 const std::string
name = calosum->auxdataConst<std::string>(
"Summary");
1379 int layer = eventShape->layer();
1380 float eta = eventShape->etaMin();
1381 float et = eventShape->et();
1388 if (TMath::Abs(
eta) < 2.4)
1419 int etabin =
h_TCSigCut->GetXaxis()->FindBin(
cl->eta());
1420 if (etabin < 1 || etabin >
h_TCSigCut->GetNbinsX())
continue;
1425 ANA_MSG_VERBOSE (
"gapclus: etabin " << etabin <<
" sig_cut=" << sig_cut <<
" sig=" <<
sig <<
" samp=" << cl_cell_sig_samp);
1427 if (
sig < sig_cut)
continue;
1431 if (
cl->eta() < eta_min) eta_min =
cl->eta();
1432 if (
cl->eta() > eta_max) eta_max =
cl->eta();
1463 ANA_MSG_INFO(
"processMBTS: Warning: MBTS info empty!");
1466 for (
int iside = 0; iside < 2; iside++)
1468 for (
int iin = 0; iin < 8; iin++)
1475 for (
int iout = 0; iout < 4; iout++)
1495 if (mbtsMod->type() < 0) iside = 0.;
1498 if (mbtsMod->eta() > 3)
1500 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 8.) - 0.4;
1501 iphibin =
static_cast<int>(phibin);
1502 if (iphibin < 0 || iphibin > 7)
1512 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 4.) - 0.24;
1513 iphibin =
static_cast<int>(phibin);
1514 if (iphibin < 0 || iphibin > 3)
1528 const std::vector<float>& energies = mbtsBits->triggerEnergies();
1529 const std::vector<float>&
times = mbtsBits->triggerTimes();
1530 for (
int imbts = 0; imbts < 32; imbts++)
1532 int side = imbts / 16;
1533 int ring = (imbts - 16 *
side) / 8;
1534 bool isInner = (ring == 0);
1535 int index = (imbts - 16 *
side - ring * 8);
1538 if ((
index % 2) != 0)
continue;
1541 int iside = (
side == 0) ? 1 : 0;
1543 ANA_MSG_VERBOSE (
"imbts=" << imbts <<
" isInner=" << isInner <<
" iside=" << iside <<
" index=" <<
index <<
" e=" << energies.at(imbts) <<
" t=" <<
times.at(imbts));
1548 if (TMath::Abs(
times.at(imbts)) < 12.0 && energies.at(imbts) > 40 / 222.)
1590 t_cc_pt.push_back(cluster->pt());
1591 t_cc_eta.push_back(cluster->eta());
1592 t_cc_phi.push_back(cluster->phi());
1593 t_cc_e.push_back(cluster->e());
1599 std::vector<float> energies;
1609 energies.push_back(
e);
1613 float et = cluster->e() / TMath::CosH(cluster->eta());
1622 double cell_sig = 0;
1625 double cell_layer = 0;
1627 t_cc_layer.push_back(
static_cast<int>(cell_layer));
1685 (signbit(
proton->eta())) ?
p_beam.SetPxPyPzE(0.0, 0.0, -6800.0, 6800.0) :
p_beam.SetPxPyPzE(0.0, 0.0, 6800.0,\
1747 std::vector<std::string> rerunTriggers;
1748 bool zdc_triggers =
true;
1757 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
1758 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
1763 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
1764 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_EMPTY");
1765 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR_UNPAIRED_NONISO");
1766 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C");
1767 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_EMPTY");
1768 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_C_UNPAIRED_NONISO");
1769 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A");
1770 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_EMPTY");
1771 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_A_UNPAIRED_NONISO");
1772 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C");
1773 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_EMPTY");
1774 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_C_UNPAIRED_NONISO");
1781 triggers.push_back(
"HLT_noalg_L1LHCF");
1785 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_A");
1786 triggers.push_back(
"HLT_noalg_AFPPEB_L1AFP_C");
1790 triggers.push_back(
"HLT_noalg_ZDCPEB_L1ZDC_OR");
1791 triggers.push_back(
"HLT_noalg_ZDCPEB_L1LHCF");
1792 triggers.push_back(
"HLT_noalg_L1ZDC_OR");
1793 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E2");
1794 triggers.push_back(
"HLT_noalg_L1ZDC_XOR_E1_E3");
1795 triggers.push_back(
"HLT_noalg_L1ZDC_A_AND_C");
1796 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_OR");
1797 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E2");
1798 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_XOR_E1_E3");
1799 triggers.push_back(
"HLT_mb_sptrk_L1ZDC_A_AND_C");
1800 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E2");
1801 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E1_E3");
1802 triggers.push_back(
"HLT_mb_sp100_trk30_hmt_L1ZDC_A_AND_C");
1816 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger found = " << trig.c_str() <<
" bit " <<
ic);
1820 ANA_MSG_INFO(
"setupTriggerHistos(): Trigger NOT found = " << trig.c_str() <<
" bit " <<
ic);
1824 TString bname(trig.c_str());
1834 for (
auto &trig : rerunTriggers)
1840 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger found = " << trig.c_str() <<
" bit " << irc);
1844 ANA_MSG_INFO(
"setupTriggerHistos(): Rerun trigger NOT found = " << trig.c_str() <<
" bit " << irc);
1847 TString bname(trig.c_str());
1856 ANA_MSG_INFO(
"setupTriggerHistos(): Finished setting up trigger");
1863 double deta = std::abs(
eta1 -
eta2);
1864 double dphi = std::abs(phi1 - phi2) < TMath::Pi() ? std::abs(phi1 - phi2) : 2 * TMath::Pi() - std::abs(phi1 - phi2);
1865 return std::sqrt(deta * deta + dphi * dphi);
1882 return StatusCode::SUCCESS;
std::vector< float > t_trk_phi
def retrieve(aClass, aKey=None)
std::vector< float > t_trk_d0
float t_RPDSubtrAmpSum[2]
std::vector< std::vector< float > > proton_track_ySlope
unsigned short t_ZdcLucrodTriggerAmp[2][4]
std::vector< uint8_t > t_trk_nSctHits
float x() const
Returns the x position.
std::vector< float > t_ZdcTruthParticlePosx
float t_RpdChannelPileupStretchedExpFitParamErrs[2][16][3]
uint16_t t_rpdRaw[2][16][24]
Extra patterns decribing particle interation process.
std::vector< uint8_t > t_trk_ninPixHits
float t_RpdChannelPileupExpFitParamErrs[2][16][2]
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
uint16_t t_T2mbts_countCin
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
std::vector< double > proton_eLoss
float t_ZdcModuleCalibAmp[2][4]
float t_RpdChannelPileupStretchedExpFitMSE[2][16]
float t_RpdChannelMaxADC[2][16]
uint64_t eventNumber() const
The current event's event number.
std::vector< float > t_cc_raw_eta
unsigned int t_RpdChannelStatus[2][16]
float t_RpdChannelAmplitudeCalib[2][16]
uint16_t t_raw24[2][4][2][2][24]
void writeTrack(const xAOD::TrackParticle *, const xAOD::Vertex *vertex, int)
std::vector< std::vector< float > > proton_track_xLocal
std::vector< uint8_t > t_trk_nPixDead
StatusCode book(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
int trackQuality(const xAOD::TrackParticle *tp, const xAOD::Vertex *vertex)
ToolHandle< InDet::IInDetTrackSelectionTool > m_selTool
std::vector< float > t_vtx_x
float t_T2mbts_out_e[2][4]
virtual StatusCode initialize() override
uint8_t t_zdcEventInfoError
Scalar eta() const
pseudorapidity method
uint16_t t_raw7[2][4][2][2][7]
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
float t_T2mbts_in_e[2][8]
std::vector< uint8_t > t_trk_nTrtOutliers
std::vector< std::vector< int16_t > > t_vtx_trk_index
std::vector< float > t_ZdcTruthParticlePy
std::vector< double > proton_phi
asg::AnaToolHandle< IGoodRunsListSelectionTool > m_grl
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
unsigned int t_ZdcModuleTruthNphotons[2][7]
std::vector< double > proton_e
float energyT() const
The deposited total transverse energy.
std::vector< uint8_t > t_trk_nTrtHits
std::vector< float > t_trk_theta
std::vector< float > t_trk_z0
std::vector< float > t_vtx_z
float t_ZdcModuleTruthInvis[2][7]
float t_ZdcModuleTruthTotal[2][7]
bool processTriggerDecision()
std::vector< float > t_trk_eta
const std::vector< uint32_t > & tav() const
Get the Trigger After Veto bits.
bool msgLvl(const MSG::Level lvl) const
std::vector< float > t_vtx_sumpt2_all
float t_reactionPlaneAngle[2]
float t_ZdcModulePreSampleAmp[2][4]
float t_RpdChannelPileupExpFitMSE[2][16]
setEt setPhi setE277 setWeta2 eta1
virtual StatusCode execute() override
float t_RPDChannelSubtrAmp[2][16]
std::vector< float > t_ZdcTruthParticlePosz
std::vector< float > t_vtx_y
uint16_t t_raw15[2][4][2][2][15]
const std::string & key() const
Return the StoreGate ID for the referenced object.
std::vector< float > t_ZdcTruthParticlePosy
uint32_t timeStampNSOffset() const
Nanosecond time offset wrt. the time stamp.
char t_centroidEventValid
std::vector< std::vector< int > > proton_track_stationID
uint32_t t_timeStampNSOffset
std::vector< int8_t > t_trk_charge
@ LAr
The LAr calorimeter.
VxType::VertexType vertexType() const
The type of the vertex.
float t_ZdcModuleAmpError[2][4]
bool isValid() const
Test to see if the link can be dereferenced.
std::vector< const Trig::ChainGroup * > m_chainGroups
std::vector< double > proton_t
std::vector< uint8_t > t_trk_nSctHoles
uint32_t runNumber() const
The current event's run number.
std::vector< int > proton_side
float t_ZdcModulePresample[2][4]
std::vector< float > t_ZdcTruthParticlePz
std::vector< std::vector< float > > proton_track_zLocal
std::vector< float > t_trk_vz
std::vector< float > t_cc_raw_e
std::vector< float > t_trk_e
float t_ZdcModuleCalibTime[2][4]
@ Error
The sub-detector issued an error.
float t_ZdcModuleBkgdMaxFraction[2][4]
std::vector< std::vector< int > > proton_track_nClusters
std::vector< uint8_t > t_trk_inPixHits
float t_xCentroidPreAvgSubtr[2]
const xAOD::MBTSModuleContainer * m_mbtsModules
float t_avgIntPerCrossing
float t_T2mbts_in_t[2][8]
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
float t_yCentroidPreGeomCorPreAvgSubtr[2]
float t_xCentroidPreGeomCorPreAvgSubtr[2]
std::vector< float > t_cc_phi
float t_RpdChannelPileupExpFitParams[2][16][2]
bool t_rerunDecisions[200]
ZdcNtuple(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< uint8_t > t_trk_nexPixHits
float t_ZdcModuleTime[2][4]
float t_ZdcTruthEscaped[2]
float t_ZdcModuleFitT0[2][4]
std::vector< float > t_cc_raw_phi
unsigned short t_ZdcLucrodTriggerSideAmp[2]
const xAOD::EventInfo * m_eventInfo
::StatusCode StatusCode
StatusCode definition for legacy code.
uint16_t t_T2mbts_countAin
std::vector< float > t_cc_sig
@ CELL_SIG_SAMPLING
CaloSample of the cell with the largest |E|/sig.
std::vector< int16_t > t_vtx_ntrk_all
float t_ZdcModuleChisq[2][4]
double dR(const double eta1, const double phi1, const double eta2, const double phi2)
uint32_t extendedLevel1ID() const
The extended Level-1 identifier.
float t_xRowCentroid[2][4]
This module defines the arguments passed from the BATCH driver to the BATCH worker.
void processMCEventCollection()
uint32_t t_zdcEventInfoErrorWord
float t_ZdcModuleTruthNonEM[2][7]
const xAOD::TrigT2MbtsBitsContainer * m_trigT2MbtsBits
void processZdcNtupleFromModules()
std::vector< float > t_cc_e
float z() const
Returns the z position.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::ReadHandleKey< McEventCollection > m_mcEventCollectionName
std::vector< int16_t > t_vtx_ntrk
std::vector< float > t_trk_vtxz
uint32_t lumiBlock() const
The current event's luminosity block number.
unsigned int t_RpdModuleTruthNphotons[2][16]
@ ForwardDet
The forward detectors.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcModuleContainerName
std::vector< float > t_trk_pt
float t_RpdChannelMaxADCCalib[2][16]
unsigned int t_ZdcModuleMask
Accessor< T, ALLOC >::reference_type auxdata(const std::string &name)
Fetch an aux data variable, as a non-const reference.
const xAOD::TrackParticleContainer * m_trackParticles
const xAOD::VertexContainer * m_primaryVertices
const xAOD::AFPProtonContainer * m_afpProtons
std::vector< float > t_cc_raw_m
float averageInteractionsPerCrossing() const
Average interactions per crossing for all BCIDs - for out-of-time pile-up.
std::vector< int > t_cc_layer
uint32_t t_extendedLevel1ID
float t_ZdcModuleFitAmp[2][4]
unsigned int t_ZdcModuleStatus[2][4]
bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if an aux variable is available for reading.
float t_ZdcModuleTruthEM[2][7]
std::vector< uint8_t > t_trk_exPixHits
const xAOD::TrigDecision * m_trigDecision
double GetBinContent(int) const
std::vector< float > t_vtx_sumpt2
unsigned int t_RpdSideStatus[2]
const xAOD::EnergySumRoI * m_lvl1EnergySumRoI
const_pointer_type ptr()
Dereference the pointer.
char bgCode() const
Get the bunch group code of the current event.
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
std::vector< uint8_t > t_trk_nPixHits
float t_ZdcModuleAmp[2][4]
std::vector< float > t_trk_pixeldEdx
float t_RpdChannelBaseline[2][16]
@ pixeldEdx
the dE/dx estimate, calculated using the pixel clusters [?]
uint32_t eventFlags(EventFlagSubDet subDet) const
Get the event flags for a particular sub-detector.
@ Tile
The Tile calorimeter.
const xAOD::ForwardEventInfoContainer * m_mbtsInfo
float t_T2mbts_out_t[2][4]
float t_RpdChannelAmplitude[2][16]
Class describing a Vertex.
float t_ZdcModuleTruthEscaped[2][7]
float t_ZdcModuleMaxADC[2][4]
const xAOD::HIEventShapeContainer * m_eventShapes
float t_yColCentroid[2][4]
const xAOD::HIEventShapeContainer * m_caloSums
float y() const
Returns the y position.
float t_yCentroidPreAvgSubtr[2]
index_type index() const
Get the index of the element inside of its container.
unsigned int t_RpdChannelMaxSample[2][16]
std::vector< float > t_cc_pt
EventFlagErrorState errorState(EventFlagSubDet subDet) const
Get the error state for a particular sub-detector.
std::vector< double > proton_eta
uint32_t timeStamp() const
POSIX time in seconds from 1970. January 1st.
std::vector< float > t_ZdcTruthParticleEnergy
bool isEventFlagBitSet(EventFlagSubDet subDet, size_t bit) const
Check one particular bit of one particular sub-detector.
asg::AnaToolHandle< ZDC::IZdcAnalysisTool > m_zdcAnalysisTool
const std::vector< uint32_t > & tbp() const
Get the Trigger Before Prescale bits.
std::vector< double > proton_pt
float t_cosDeltaReactionPlaneAngle
float t_ZdcModuleMinDeriv2nd[2][4]
std::vector< std::vector< float > > proton_track_xSlope
void setupTriggerHistos()
std::vector< float > t_ZdcTruthParticlePx
@ CELL_SIGNIFICANCE
Cell significance = E/sig of the cell with the largest |E|/sig.
Class describing a TrackParticle.
const T * at(size_type n) const
Access an element, as an rvalue.
unsigned int t_centroidStatus[2]
virtual StatusCode finalize() override
std::vector< std::string > getListOfTriggers() const
const xAOD::CaloClusterContainer * m_caloClusters
float t_RpdChannelPileupStretchedExpFitParams[2][16][3]
uint32_t bcid() const
The bunch crossing ID of the event.
std::vector< uint8_t > t_trk_nPixHoles
std::vector< int > t_trk_index
std::vector< std::vector< float > > t_cc_raw_samp
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
std::vector< const Trig::ChainGroup * > m_rerunChainGroups
size_type size() const noexcept
Returns the number of elements in the collection.
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcSumContainerName
@ Core
Core flags describing the event.
float t_RpdChannelPileupFrac[2][16]
float t_actIntPerCrossing
std::vector< int > t_vx_trk_index
TTree * tree(const std::string &treeName, const std::string &tDir="", const std::string &stream="")
Simplify the retrieval of registered TTrees.
std::vector< int16_t > t_trk_quality
std::vector< float > t_cc_eta
std::vector< int8_t > t_vtx_type
float actualInteractionsPerCrossing() const
Average interactions per crossing for the current BCID - for in-time pile-up.
std::vector< float > t_ZdcTruthParticleTime
std::vector< uint8_t > t_trk_nSctDead
std::vector< std::vector< float > > proton_track_yLocal