ATLAS Offline Software
Loading...
Searching...
No Matches
ZdcNtuple Class Reference

#include <ZdcNtuple.h>

Inheritance diagram for ZdcNtuple:

Public Types

typedef ServiceHandle< StoreGateSvc > & MetaStorePtr_t
 Type of the metadata store pointer in standalone mode.
typedef const ServiceHandle< StoreGateSvc > & ConstMetaStorePtr_t
typedef ServiceHandle< StoreGateSvcMetaStore_t
 Type of the metadata store variable in Athena.

Public Member Functions

void setupTriggerHistos ()
 ZdcNtuple (const std::string &name, ISvcLocator *pSvcLocator)
void processEventInfo ()
void processVInjInfo ()
bool processTriggerDecision ()
uint32_t acceptEvent ()
void processZdcNtupleFromModules ()
void processMCEventCollection ()
void processFCal ()
void processMBTS ()
void processInDet ()
void writeTrack (const xAOD::TrackParticle *, const xAOD::Vertex *vertex, int)
int trackQuality (const xAOD::TrackParticle *tp, const xAOD::Vertex *vertex)
void processClusters ()
void reprocessZdcModule (const xAOD::ZdcModule *zdcMod, bool flipdelay=0)
void processTriggerTowers ()
void processGaps ()
void processProtons ()
double dR (const double eta1, const double phi1, const double eta2, const double phi2)
virtual StatusCode initialize () override
virtual StatusCode execute () override
virtual StatusCode finalize () override
::StatusCode requestFileExecute ()
 register this algorithm to have an implementation of fileexecute
::StatusCode requestBeginInputFile ()
 register this algorithm to have an implementation of beginInputFile
::StatusCode requestEndInputFile ()
 register this algorithm to have an implementation of endInputFile
void handle (const Incident &inc)
 receive the given incident
virtual StatusCode sysInitialize ()
 Initialization method invoked by the framework.
const ServiceHandle< ITHistSvc > & histSvc () const
 The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
bool filterPassed (const EventContext &ctx) const
void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
ConstMetaStorePtr_t inputMetaStore () const
MetaStorePtr_t inputMetaStore ()
ConstMetaStorePtr_t outputMetaStore () const
MetaStorePtr_t outputMetaStore ()
const EventContext & getContext () const
 Deprecated methods (use the ones with EventContext).
bool filterPassed () const
void setFilterPassed (bool state) const

Public Attributes

bool slimmed
bool useGRL
std::string grlFilename
bool enableOutputTree
bool enableOutputSamples
bool enableTrigger
bool writeOnlyTriggers
bool enableID
bool enableCalo
bool enableClusters
bool enableTracks
bool enableMuons
bool enableElectrons
bool enablePhotons
bool enableTT
bool enableTruth
bool enableJets
bool enableTriggerJets
bool zdcCalib
bool zdcLaser
bool zdcInj
bool zdcOnly
unsigned int zdcLowGainMode
size_t trackLimit
bool trackLimitReject
bool flipDelay
bool reprocZdc
std::string auxSuffix
size_t nsamplesZdc
bool lhcf2022
bool lhcf2022zdc
bool lhcf2022afp
bool pbpb2023
bool oo2025
bool enableZDC
bool enableRPD
bool enableRPDAmp
bool enableCentroid
bool doZdcCalib
std::string zdcConfig
std::string outputName
int outputTreeScaledown
PublicToolHandle< Trig::TrigDecisionToolm_trigDecisionTool { this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool" }
asg::AnaToolHandle< IGoodRunsListSelectionToolm_grl
asg::AnaToolHandle< ZDC::IZdcAnalysisToolm_zdcAnalysisTool
ToolHandle< InDet::IInDetTrackSelectionToolm_selTool
SG::ReadHandleKey< xAOD::ZdcModuleContainerm_zdcModuleContainerName { this, "ZdcModuleContainerName", "ZdcModules", "" }
SG::ReadHandleKey< xAOD::ZdcModuleContainerm_zdcSumContainerName { this, "ZdcSumContainerName", "ZdcSums", "" }
SG::ReadHandleKey< McEventCollectionm_mcEventCollectionName {this, "MCEventCollectionName", "TruthEvent", ""}
const xAOD::EventInfom_eventInfo
const xAOD::TrigDecisionm_trigDecision
const xAOD::HIEventShapeContainerm_caloSums
const xAOD::HIEventShapeContainerm_eventShapes
const xAOD::ForwardEventInfoContainerm_mbtsInfo
const xAOD::MBTSModuleContainerm_mbtsModules
const xAOD::TrigT2MbtsBitsContainerm_trigT2MbtsBits
const xAOD::VertexContainerm_primaryVertices
const xAOD::CaloClusterContainerm_caloClusters
const xAOD::TrackParticleContainerm_trackParticles
const xAOD::EnergySumRoIm_lvl1EnergySumRoI
const xAOD::TruthParticleContainerm_truthParticleContainer
const xAOD::TriggerTowerContainerm_TTcontainer
const xAOD::AFPProtonContainerm_afpProtons
std::shared_ptr< ZdcInjPulserAmpMapm_zdcInjPulserAmpMap
int m_nTriggers
int m_eventCounter
bool m_isMC
bool m_setupTrigHist
int m_scaledownCounter
std::vector< const Trig::ChainGroup * > m_chainGroups
std::vector< const Trig::ChainGroup * > m_rerunChainGroups
float t_L1ET
float t_L1ET24
TH1 * h_zdcTriggers
TH1 * h_zdcTriggersTBP
TTree * m_outputTree
uint32_t t_runNumber
uint32_t t_eventNumber
uint32_t t_lumiBlock
uint32_t t_bcid
float t_vInj
uint8_t t_bunchGroup
uint32_t t_passBits
uint32_t t_extendedLevel1ID
uint32_t t_timeStamp
uint32_t t_timeStampNSOffset
float t_avgIntPerCrossing
float t_actIntPerCrossing
uint8_t t_zdcEventInfoError
uint32_t t_zdcEventInfoErrorWord
uint8_t t_zdcDecodingError
uint8_t t_rpdDecodingError
uint64_t t_trigger
uint32_t t_trigger_TBP
float t_prescales [200]
bool t_decisions [200]
bool t_rerunDecisions [200]
float t_mbts_in_e [2][8]
float t_mbts_out_e [2][4]
float t_mbts_in_t [2][8]
float t_mbts_out_t [2][4]
float t_T2mbts_in_e [2][8]
float t_T2mbts_out_e [2][4]
float t_T2mbts_in_t [2][8]
float t_T2mbts_out_t [2][4]
uint32_t t_tav [16]
uint32_t t_tbp [16]
float t_ZdcAmp [2]
float t_ZdcAmpErr [2]
float t_ZdcEnergy [2]
float t_ZdcEnergyErr [2]
float t_ZdcNLEnergy [2]
float t_ZdcNLEnergyErr [2]
float t_ZdcTime [2]
short t_ZdcStatus [2]
unsigned int t_ZdcModuleMask
float t_ZdcTrigEff [2]
unsigned short t_ZdcLucrodTriggerSideAmp [2]
unsigned short t_ZdcLucrodTriggerSideAmpLG [2]
float t_ZdcTruthTotal [2]
float t_ZdcTruthInvis [2]
float t_ZdcTruthEM [2]
float t_ZdcTruthNonEM [2]
float t_ZdcTruthEscaped [2]
std::vector< float > t_ZdcTruthParticlePosx
std::vector< float > t_ZdcTruthParticlePosy
std::vector< float > t_ZdcTruthParticlePosz
std::vector< float > t_ZdcTruthParticleTime
std::vector< float > t_ZdcTruthParticlePx
std::vector< float > t_ZdcTruthParticlePy
std::vector< float > t_ZdcTruthParticlePz
std::vector< float > t_ZdcTruthParticleEnergy
std::vector< int > t_ZdcTruthParticlePid
std::vector< int > t_ZdcTruthParticleStatus
float t_ZdcModuleAmp [2][4]
float t_ZdcModuleAmpUncorr [2][4]
float t_ZdcModuleTime [2][4]
float t_ZdcModuleFitAmp [2][4]
float t_ZdcModuleFitT0 [2][4]
float t_ZdcModuleChisq [2][4]
float t_ZdcModuleChisqRatio [2][4]
unsigned int t_ZdcModuleStatus [2][4]
float t_ZdcModuleCalibAmp [2][4]
float t_ZdcModuleCalibTime [2][4]
float t_ZdcModuleAmpError [2][4]
float t_ZdcModuleBkgdMaxFraction [2][4]
float t_ZdcModuleMinDeriv2nd [2][4]
float t_ZdcModulePresample [2][4]
float t_ZdcModulePreSampleAmp [2][4]
unsigned short t_ZdcLucrodTriggerAmp [2][4]
unsigned short t_ZdcLucrodTriggerAmpLG [2][4]
float t_ZdcModuleMaxADC [2][4]
float t_ZdcModuleMaxADCHG [2][4]
float t_ZdcModuleMaxADCLG [2][4]
float t_ZdcModulePeakADCHG [2][4]
float t_ZdcModulePeakADCLG [2][4]
float t_ZdcModuleAmpLGRefit [2][4]
float t_ZdcModuleAmpCorrLGRefit [2][4]
float t_ZdcModuleT0LGRefit [2][4]
float t_ZdcModuleT0SubLGRefit [2][4]
float t_ZdcModuleChisqLGRefit [2][4]
float t_ZdcModuleTruthTotal [2][7]
float t_ZdcModuleTruthInvis [2][7]
float t_ZdcModuleTruthEM [2][7]
float t_ZdcModuleTruthNonEM [2][7]
float t_ZdcModuleTruthEscaped [2][7]
unsigned int t_ZdcModuleTruthNphotons [2][7]
float t_RpdChannelBaseline [2][16]
float t_RpdChannelPileupExpFitParams [2][16][2]
float t_RpdChannelPileupStretchedExpFitParams [2][16][3]
float t_RpdChannelPileupExpFitParamErrs [2][16][2]
float t_RpdChannelPileupStretchedExpFitParamErrs [2][16][3]
float t_RpdChannelPileupExpFitMSE [2][16]
float t_RpdChannelPileupStretchedExpFitMSE [2][16]
float t_RpdChannelAmplitude [2][16]
float t_RpdChannelAmplitudeCalib [2][16]
float t_RpdChannelMaxADC [2][16]
float t_RpdChannelMaxADCCalib [2][16]
unsigned int t_RpdChannelMaxSample [2][16]
unsigned int t_RpdChannelStatus [2][16]
float t_RpdChannelPileupFrac [2][16]
unsigned int t_RpdSideStatus [2]
unsigned int t_RpdModuleTruthNphotons [2][16]
bool t_centroidDecorationsAvailable
char t_centroidEventValid
unsigned int t_centroidStatus [2]
float t_RPDChannelSubtrAmp [2][16]
float t_RPDSubtrAmpSum [2]
float t_xCentroidPreGeomCorPreAvgSubtr [2]
float t_yCentroidPreGeomCorPreAvgSubtr [2]
float t_xCentroidPreAvgSubtr [2]
float t_yCentroidPreAvgSubtr [2]
float t_xCentroid [2]
float t_yCentroid [2]
float t_xRowCentroid [2][4]
float t_yColCentroid [2][4]
float t_reactionPlaneAngle [2]
float t_cosDeltaReactionPlaneAngle
int t_nvx
float t_vx [3]
int t_vxntrk
std::vector< int > t_vx_trk_index
int t_vxtype
int t_pvindex
float t_vxcov [6]
float t_vxsumpt2
float t_puvxz
int t_puvxntrk
float t_puvxsumpt
int t_nstrong
int t_vxnlooseprimary
int t_vxnminbias
int t_vxngoodmuon
int t_nvtx
std::vector< int8_t > t_vtx_type
std::vector< float > t_vtx_x
std::vector< float > t_vtx_y
std::vector< float > t_vtx_z
std::vector< int16_t > t_vtx_ntrk_all
std::vector< float > t_vtx_sumpt2_all
std::vector< int16_t > t_vtx_ntrk
std::vector< float > t_vtx_sumpt2
std::vector< std::vector< int16_t > > t_vtx_trk_index
float t_fcalEt
float t_fcalEtA
float t_fcalEtC
float t_fcalEtA_TT
float t_fcalEtC_TT
float t_fcalEtA_TTsum
float t_fcalEtC_TTsum
float t_totalEt
float t_totalEt_TTsum
float t_totalEt24
float t_totalEt24_TTsum
float t_edgeGapA
float t_edgeGapC
float m_gapPtMin
double m_gapThresholds [98]
TH1 * h_TCSigCut
uint16_t t_mbts_countA
uint16_t t_mbts_countC
float t_mbts_timeA
float t_mbts_timeC
float t_mbts_timeDiff
uint16_t t_T2mbts_countAin
uint16_t t_T2mbts_countCin
uint16_t t_raw7 [2][4][2][2][7]
uint16_t t_raw15 [2][4][2][2][15]
uint16_t t_raw24 [2][4][2][2][24]
uint16_t t_raw32 [2][4][2][2][32]
uint16_t t_raw40 [2][4][2][2][40]
uint16_t t_rpdRaw [2][16][24]
uint16_t t_rpdRaw32 [2][16][32]
uint16_t t_rpdRaw40 [2][16][40]
uint32_t t_ntrk
std::vector< float > t_trk_pt
std::vector< float > t_trk_eta
std::vector< float > t_trk_phi
std::vector< float > t_trk_e
std::vector< float > t_trk_theta
std::vector< float > t_trk_d0
std::vector< float > t_trk_z0
std::vector< float > t_trk_vz
std::vector< float > t_trk_vtxz
std::vector< int8_t > t_trk_charge
std::vector< int16_t > t_trk_quality
std::vector< int > t_trk_index
std::vector< uint8_t > t_trk_nPixHits
std::vector< uint8_t > t_trk_nSctHits
std::vector< uint8_t > t_trk_nPixDead
std::vector< uint8_t > t_trk_nSctDead
std::vector< uint8_t > t_trk_nPixHoles
std::vector< uint8_t > t_trk_nSctHoles
std::vector< uint8_t > t_trk_nTrtHits
std::vector< uint8_t > t_trk_nTrtOutliers
std::vector< uint8_t > t_trk_inPixHits
std::vector< uint8_t > t_trk_exPixHits
std::vector< uint8_t > t_trk_ninPixHits
std::vector< uint8_t > t_trk_nexPixHits
std::vector< float > t_trk_pixeldEdx
uint32_t t_nclus
std::vector< float > t_cc_pt
std::vector< float > t_cc_eta
std::vector< float > t_cc_phi
std::vector< float > t_cc_e
std::vector< float > t_cc_sig
std::vector< int > t_cc_layer
std::vector< float > t_cc_raw_m
std::vector< float > t_cc_raw_eta
std::vector< float > t_cc_raw_phi
std::vector< float > t_cc_raw_e
std::vector< std::vector< float > > t_cc_raw_samp
float t_clusEt
float t_clusEtMax
float t_clusetaMax
float t_clusphiMax
int nProtons
std::vector< double > proton_pt
std::vector< double > proton_eta
std::vector< double > proton_phi
std::vector< double > proton_e
std::vector< int > proton_side
std::vector< double > proton_eLoss
std::vector< double > proton_t
std::vector< std::vector< int > > proton_track_stationID
std::vector< std::vector< float > > proton_track_xLocal
std::vector< std::vector< float > > proton_track_yLocal
std::vector< std::vector< float > > proton_track_zLocal
std::vector< std::vector< float > > proton_track_xSlope
std::vector< std::vector< float > > proton_track_ySlope
std::vector< std::vector< int > > proton_track_nClusters
TLorentzVector p_beam
TLorentzVector p_scat

Protected Member Functions

virtual::StatusCode execute (const EventContext &ctx)
 execute this algorithm
virtual void print () const
 print the state of the algorithm
virtual::StatusCode fileExecute ()
 perform the action exactly once for each file in the dataset
virtual::StatusCode beginInputFile ()
 perform the action for the beginning of an input file
virtual::StatusCode endInputFile ()
 perform the action for the end of an input file
virtual bool isReEntrant () const override final
 Legacy algorithms are not thread-safe.
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.
StatusCode configAthHistogramming (const ServiceHandle< ITHistSvc > &histSvc, const std::string &prefix, const std::string &rootDir, const std::string &histNamePrefix, const std::string &histNamePostfix, const std::string &histTitlePrefix, const std::string &histTitlePostfix)
 To be called by the derived classes to fill the internal configuration.
TH1 * bookGetPointer (const TH1 &hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
TH1 * bookGetPointer (TH1 *hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
TH1 * bookGetPointer (TH1 &histRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
TTree * bookGetPointer (const TTree &treeRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of TTrees.
TGraph * bookGetPointer (const TGraph &graphRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of TGraphs.
TEfficiency * bookGetPointer (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
TEfficiency * bookGetPointer (TEfficiency *eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
TEfficiency * bookGetPointer (TEfficiency &effRef, std::string tDir="", std::string stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
StatusCode book (const TH1 &hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
StatusCode book (TH1 *hist, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
StatusCode book (TH1 &histRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of histograms.
StatusCode book (const TTree &treeRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TTrees.
StatusCode book (const TGraph &graphRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TGraphs.
StatusCode book (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
StatusCode book (TEfficiency *eff, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
StatusCode book (TEfficiency &effRef, const std::string &tDir="", const std::string &stream="")
 Simplify the booking and registering (into THistSvc) of TEfficiency.
TH1 * hist (const std::string &histName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered histograms of any type.
TH2 * hist2d (const std::string &histName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered 2-d histograms.
TH3 * hist3d (const std::string &histName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered 3-d histograms.
TTree * tree (const std::string &treeName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered TTrees.
TGraph * graph (const std::string &graphName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered TGraphs.
TEfficiency * efficiency (const std::string &effName, const std::string &tDir="", const std::string &stream="")
 Simplify the retrieval of registered TEfficiency.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
typedef uint32_t hash_t
 typedef for the internal hash
typedef std::map< const hash_t, TH1 * > HistMap_t
 Typedef for convenience.
typedef std::map< const hash_t, TEfficiency * > EffMap_t
 Typedef for convenience.
typedef std::map< const hash_t, TTree * > TreeMap_t
 Typedef for convenience.
typedef std::map< const hash_t, TGraph * > GraphMap_t
 Typedef for convenience.

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>
void buildBookingString (std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false)
 Method to build individual booking string.
void myReplace (std::string &str, const std::string &oldStr, const std::string &newStr)
 Helper method to replace sub-string.
hash_t hash (const std::string &histName) const
 Method to calculate a 32-bit hash from a string.

Private Attributes

unsigned int m_lastRunNumber {0}
ZdcInjPulserAmpMap::Token m_injMapRunToken {}
MetaStore_t m_inputMetaStore
 Object accessing the input metadata store.
MetaStore_t m_outputMetaStore
 Object accessing the output metadata store.
bool m_hasFileExecute {false}
 the value of hasFileExecute
bool m_hasBeginInputFile {false}
 the value of hasBeginInputFile
bool m_hasEndInputFile {false}
 the value of hasEndInputFile
ServiceHandle< ITHistSvc > m_histSvc
 Default constructor: AthHistogramAlgorithm();.
std::string m_prefix
 Name of the ROOT output stream (file).
std::string m_rootDir
 Name of the ROOT directory.
std::string m_histNamePrefix
 The prefix for the histogram THx name.
std::string m_histNamePostfix
 The postfix for the histogram THx name.
std::string m_histTitlePrefix
 The prefix for the histogram THx title.
std::string m_histTitlePostfix
 The postfix for the histogram THx title.
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared
HistMap_t m_histMap
 The map of histogram names to their pointers.
EffMap_t m_effMap
 The map of histogram names to their pointers.
TreeMap_t m_treeMap
 The map of TTree names to their pointers.
GraphMap_t m_graphMap
 The map of TGraph names to their pointers.
std::string m_streamName
 Name of the ROOT output stream (file).
std::string m_name
 Instance name.
MsgStream m_msg
 Cached Message Stream.

Detailed Description

Definition at line 47 of file ZdcNtuple.h.

Member Typedef Documentation

◆ ConstMetaStorePtr_t

Definition at line 111 of file AnaAlgorithm.h.

◆ EffMap_t

typedef std::map< const hash_t, TEfficiency* > AthHistogramming::EffMap_t
privateinherited

Typedef for convenience.

Definition at line 207 of file AthHistogramming.h.

◆ GraphMap_t

typedef std::map< const hash_t, TGraph* > AthHistogramming::GraphMap_t
privateinherited

Typedef for convenience.

Definition at line 221 of file AthHistogramming.h.

◆ hash_t

typedef uint32_t AthHistogramming::hash_t
privateinherited

typedef for the internal hash

Definition at line 171 of file AthHistogramming.h.

◆ HistMap_t

typedef std::map< const hash_t, TH1* > AthHistogramming::HistMap_t
privateinherited

Typedef for convenience.

Definition at line 200 of file AthHistogramming.h.

◆ MetaStore_t

Type of the metadata store variable in Athena.

Definition at line 563 of file AnaAlgorithm.h.

◆ MetaStorePtr_t

Type of the metadata store pointer in standalone mode.

Definition at line 110 of file AnaAlgorithm.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ TreeMap_t

typedef std::map< const hash_t, TTree* > AthHistogramming::TreeMap_t
privateinherited

Typedef for convenience.

Definition at line 214 of file AthHistogramming.h.

Constructor & Destructor Documentation

◆ ZdcNtuple()

ZdcNtuple::ZdcNtuple ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 25 of file ZdcNtuple.cxx.

26 : EL::AnaAlgorithm(name, pSvcLocator),
27 m_grl ("GoodRunsListSelectionTool/grl", this),
28 //m_zdcAnalysisTool("ZDC::ZdcAnalysisTool/ZdcAnalysisTool", this),
29 m_selTool( "InDet::InDetTrackSelectionTool/TrackSelectionTool", this )
30{
31 // Here you put any code for the base initialization of variables,
32 // e.g. initialize all pointers to 0. Note that you should only put
33 // the most basic initialization here, since this method will be
34 // called on both the submission and the worker node. Most of your
35 // initialization code will go into histInitialize() and
36 // initialize().
37 m_setupTrigHist = false;
39
40 declareProperty("isMC", m_isMC = false, "MC mode");
41 declareProperty("enableOutputTree", enableOutputTree = false, "Enable output tree");
42 declareProperty("enableOutputSamples", enableOutputSamples = false, "Output ZDC and RPD raw data");
43 declareProperty("enableTrigger", enableTrigger = true, "comment");
44 declareProperty("enableTracks", enableTracks = false, "comment");
45 declareProperty("trackLimit", trackLimit = 500, "comment");
46 declareProperty("enableID", enableID = false, "turn on to enable ID tracks & vertices for physics streams");
47 declareProperty("enableCalo", enableCalo = false, "turn on to enable calorimeter energy info for physics streams");
48 declareProperty("enableClusters", enableClusters = false, "turn on to enable calo topo cluster info for physics streams");
49 declareProperty("writeOnlyTriggers", writeOnlyTriggers = false, "comment");
50 declareProperty("useGRL", useGRL = true, "comment");
51 declareProperty("grlFilename", grlFilename = "$ROOTCOREBIN/data/ZdcNtuple/data16_hip8TeV.periodAllYear_DetStatus-v86-pro20-19_DQDefects-00-02-04_PHYS_HeavyIonP_All_Good.xml", "comment");
52 declareProperty("slimmed", slimmed = false, "comment");
53 declareProperty("zdcCalib", zdcCalib = false, "zdc/ZDCCalib file");
54 declareProperty("zdcInj", zdcInj = false, "ZDC injected pulse");
55 declareProperty("zdcLaser", zdcLaser = false, "Run 2 ZDC Laser");
56 declareProperty("zdcOnly", zdcOnly = false, "comment");
57 declareProperty("zdcLowGainMode", zdcLowGainMode = 0, "comment");
58 declareProperty("gapPtMin", m_gapPtMin = 200, "minimum pT of cluster used in gaps");
59 declareProperty("flipDelay", flipDelay = 0, "comment");
60 declareProperty("reprocZdc", reprocZdc = 0, "comment");
61 declareProperty("auxSuffix", auxSuffix = "", "comment");
62 declareProperty("nsamplesZdc", nsamplesZdc = 24, "number of samples, 7 = most of Run 2, 24,32,40 = Run 3");
63 declareProperty("lhcf2022", lhcf2022 = false,"LHCf2022 general config");
64 declareProperty("lhcf2022afp", lhcf2022afp = false,"LHCf2022 AFP-specific config");
65 declareProperty("lhcf2022zdc", lhcf2022zdc = false,"LHCf2022 ZDC-specific config");
66 declareProperty("pbpb2023", pbpb2023 = false, "PbPb2023 config");
67 declareProperty("oo2025", oo2025 = false, "OO and NeNe 2025 config");
68 declareProperty("zdcConfig", zdcConfig = "PbPb2018", "argument to configure ZdcAnalysisTool");
69 declareProperty("doZdcCalib", doZdcCalib = false, "perform ZDC energy calibration");
70 declareProperty("enableZDC", enableZDC = true);
71 declareProperty("enableRPD",enableRPD = false,"enable reading any RPD decorations");
72 declareProperty("enableRPDAmp",enableRPDAmp = false,"enable reading RPD amplitudes (also requires enableRPD)");
73 declareProperty("enableCentroid",enableCentroid = false,"enable reading centroid decorations (also requires enableRPD)");
74
75 declareProperty( "TrackSelectionTool", m_selTool );
76
77 trackLimitReject = false;
78
79 m_zdcAnalysisTool.declarePropertyFor (this, "zdcAnalysisTool");
80
81}
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
bool reprocZdc
Definition ZdcNtuple.h:79
bool enableOutputTree
Definition ZdcNtuple.h:56
bool pbpb2023
Definition ZdcNtuple.h:85
bool flipDelay
Definition ZdcNtuple.h:78
bool zdcLaser
Definition ZdcNtuple.h:72
bool trackLimitReject
Definition ZdcNtuple.h:77
bool lhcf2022afp
Definition ZdcNtuple.h:84
bool enableCalo
Definition ZdcNtuple.h:61
bool doZdcCalib
Definition ZdcNtuple.h:92
bool lhcf2022zdc
Definition ZdcNtuple.h:83
bool enableID
Definition ZdcNtuple.h:60
bool slimmed
Definition ZdcNtuple.h:53
int m_eventCounter
Definition ZdcNtuple.h:133
std::string grlFilename
Definition ZdcNtuple.h:55
bool lhcf2022
Definition ZdcNtuple.h:82
ToolHandle< InDet::IInDetTrackSelectionTool > m_selTool
Definition ZdcNtuple.h:104
bool m_setupTrigHist
Definition ZdcNtuple.h:135
std::string zdcConfig
Definition ZdcNtuple.h:93
bool zdcOnly
Definition ZdcNtuple.h:74
bool enableZDC
Definition ZdcNtuple.h:87
bool enableTrigger
Definition ZdcNtuple.h:58
bool enableRPDAmp
Definition ZdcNtuple.h:89
bool enableTracks
Definition ZdcNtuple.h:63
size_t nsamplesZdc
Definition ZdcNtuple.h:81
asg::AnaToolHandle< IGoodRunsListSelectionTool > m_grl
Definition ZdcNtuple.h:102
bool enableOutputSamples
Definition ZdcNtuple.h:57
bool enableCentroid
Definition ZdcNtuple.h:90
unsigned int zdcLowGainMode
Definition ZdcNtuple.h:75
bool enableRPD
Definition ZdcNtuple.h:88
bool zdcInj
Definition ZdcNtuple.h:73
size_t trackLimit
Definition ZdcNtuple.h:76
bool useGRL
Definition ZdcNtuple.h:54
bool oo2025
Definition ZdcNtuple.h:86
std::string auxSuffix
Definition ZdcNtuple.h:80
bool writeOnlyTriggers
Definition ZdcNtuple.h:59
bool enableClusters
Definition ZdcNtuple.h:62
asg::AnaToolHandle< ZDC::IZdcAnalysisTool > m_zdcAnalysisTool
Definition ZdcNtuple.h:103
bool m_isMC
Definition ZdcNtuple.h:134
float m_gapPtMin
Definition ZdcNtuple.h:328
bool zdcCalib
Definition ZdcNtuple.h:71

Member Function Documentation

◆ acceptEvent()

uint32_t ZdcNtuple::acceptEvent ( )

Definition at line 2007 of file ZdcNtuple.cxx.

2008{
2009 uint32_t passbits = 0;
2010
2011 if (!m_isMC)
2012 {
2013 if (useGRL)
2014 {
2015 if (!m_grl->passRunLB(*m_eventInfo)) {
2016 passbits += 1; // UPC GRL
2017 }
2018 }
2019
2020 /*
2021 if(!m_grl_mb->passRunLB(*m_eventInfo)){
2022 passbits += 4; // MB GRL
2023 }
2024 */
2025
2029 || (m_eventInfo->isEventFlagBitSet(xAOD::EventInfo::Core, 18) ) )
2030 {
2031 passbits += 2;
2032 } // end if event flags check
2033 } // end if the event is data
2034
2035 return passbits;
2036}
const xAOD::EventInfo * m_eventInfo
Definition ZdcNtuple.h:113
@ Tile
The Tile calorimeter.
@ Core
Core flags describing the event.
@ LAr
The LAr calorimeter.
@ Error
The sub-detector issued an error.
setEventNumber uint32_t

◆ beginInputFile()

StatusCode EL::AnaAlgorithm::beginInputFile ( )
protectedinherited

perform the action for the beginning of an input file

Ideally you don't use this, but instead rely on meta-data tools instead. However, there are enough people asking for it that I decided to implement it anyways.

\warn To use this you have to call requestBeginInputFile to use this.

\warn If a file is split across multiple jobs this will be called more than once. This only happens for specific batch drivers and/or if it is explicitly configured by the user. With PROOF it could even happen multiple times within the same job, and while PROOF is no longer supported that behavior may come back if support for a similar framework is added in the future. As such, this method should not be used for accounting that relies to be called exactly once per file, take a look at fileExecute if you want something that is guaranteed to be executed exactly once per input file.

\warn The execution order of beginInputFile and fileExecute is currently unspecified.

Definition at line 359 of file AnaAlgorithm.cxx.

361 {
362 return StatusCode::SUCCESS;
363 }

◆ book() [1/8]

StatusCode AthHistogramming::book ( const TEfficiency & eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 337 of file AthHistogramming.h.

338{
339 // We need to create a non-const clone
340 TEfficiency* effClone = dynamic_cast< TEfficiency* >( eff.Clone() );
341 if ( !effClone ) {
342 m_msg << MSG::ERROR << "Couldn't create a TEfficiency clone" << endmsg;
343 return StatusCode::FAILURE;
344 }
345 return this->book( *effClone, tDir, stream );
346}
#define endmsg
StatusCode book(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
MsgStream m_msg
Cached Message Stream.

◆ book() [2/8]

StatusCode AthHistogramming::book ( const TGraph & graphRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TGraphs.

◆ book() [3/8]

StatusCode AthHistogramming::book ( const TH1 & hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 305 of file AthHistogramming.h.

306{
307 // We need to create a non-const clone
308 TH1* histClone = dynamic_cast< TH1* >( hist.Clone() );
309 if ( !histClone ) {
310 m_msg << MSG::ERROR << "Couldn't create a TH1 clone" << endmsg;
311 return StatusCode::FAILURE;
312 }
313 return this->book( *histClone, tDir, stream );
314}
TH1 * hist(const std::string &histName, const std::string &tDir="", const std::string &stream="")
Simplify the retrieval of registered histograms of any type.

◆ book() [4/8]

StatusCode AthHistogramming::book ( const TTree & treeRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TTrees.

Definition at line 405 of file AthHistogramming.h.

406{
407 // Call the other Book method and see if it returns a valid pointer
408 TTree* treePointer = this->bookGetPointer( treeRef, tDir, stream );
409 if ( treePointer )
410 {
411 return StatusCode::SUCCESS;
412 }
413 else
414 {
415 return StatusCode::FAILURE;
416 }
417}
TH1 * bookGetPointer(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.

◆ book() [5/8]

StatusCode AthHistogramming::book ( TEfficiency & effRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 358 of file AthHistogramming.h.

359{
360 // Call the other Book method and see if it returns a valid pointer
361 TEfficiency* effPointer = this->bookGetPointer( effRef, tDir, stream );
362 if ( !effPointer ) {
363 m_msg << MSG::ERROR << "Couldn't book a TEfficiency" << endmsg;
364 return StatusCode::FAILURE;
365 }
366 return StatusCode::SUCCESS;
367}

◆ book() [6/8]

StatusCode AthHistogramming::book ( TEfficiency * eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 348 of file AthHistogramming.h.

349{
350 if ( !eff ) {
351 m_msg << MSG::ERROR << "Got a zero pointer to a TEfficiency" << endmsg;
352 return StatusCode::FAILURE;
353 }
354 return this->book( *eff, tDir, stream );
355}

◆ book() [7/8]

StatusCode AthHistogramming::book ( TH1 & histRef,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 326 of file AthHistogramming.h.

327{
328 // Call the other Book method and see if it returns a valid pointer
329 TH1* histPointer = this->bookGetPointer( histRef, tDir, stream );
330 if ( !histPointer ) {
331 m_msg << MSG::ERROR << "Couldn't book a TH1" << endmsg;
332 return StatusCode::FAILURE;
333 }
334 return StatusCode::SUCCESS;
335}

◆ book() [8/8]

StatusCode AthHistogramming::book ( TH1 * hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 316 of file AthHistogramming.h.

317{
318 if ( !hist ) {
319 m_msg << MSG::ERROR << "Got a zero pointer to a TH1" << endmsg;
320 return StatusCode::FAILURE;
321 }
322 return this->book( *hist, tDir, stream );
323}

◆ bookGetPointer() [1/8]

TEfficiency * AthHistogramming::bookGetPointer ( const TEfficiency & eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 283 of file AthHistogramming.h.

284{
285 // We need to create a non-const clone
286 TEfficiency* histClone = dynamic_cast< TEfficiency* >( hist.Clone() );
287 if ( !histClone ) {
288 m_msg << MSG::ERROR << "Couldn't create a TEfficiency clone in bookGetPointer" << endmsg;
289 return 0;
290 }
291 return this->bookGetPointer( *histClone, tDir, stream );
292
293}

◆ bookGetPointer() [2/8]

TGraph * AthHistogramming::bookGetPointer ( const TGraph & graphRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of TGraphs.

Definition at line 412 of file AthHistogramming.cxx.

413{
414 // Get a pointer
415 const TGraph* graphPointer = &graphRef;
416
417 // Check that we got a valid pointer
418 if ( !graphPointer )
419 {
420 m_msg << MSG::WARNING
421 << "We got an invalid TGraph pointer in the BookGetPointer(TGraph*) method of the class" << m_name
422 << "!" << endmsg;
423 return NULL;
424 }
425
426 // Modify the name and title according to the prefixes of this classes instance
427 std::string graphName = graphPointer->GetName();
428 const std::string graphTitle = graphPointer->GetTitle();
429
430 // Check if the hash for this graphName already exists, i.e., if we have a hash collision
431 const hash_t graphHash = this->hash(graphName);
432 GraphMap_t::const_iterator it = m_graphMap.find( graphHash );
433 if ( it != m_graphMap.end() ) // It does exist!
434 {
435 m_msg << MSG::WARNING
436 << "Detected a hash collision. The hash for the TGraph with name=" << graphName
437 << " already exists and points to a TGraph with name=" << it->second->GetName()
438 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
439 return NULL;
440 }
441
442 // Create a clone that has the new name
443 TGraph* graphClone = dynamic_cast< TGraph* >( graphPointer->Clone((m_histNamePrefix+graphName+m_histNamePostfix).c_str()) );
444 if( !graphClone )
445 {
446 m_msg << MSG::WARNING
447 << "We couldn't clone the TGraph in the BookGetPointer(TGraph&) method of the class" << m_name
448 << "!" << endmsg;
449 return NULL;
450 }
451 graphClone->SetTitle ((m_histTitlePrefix+graphTitle+m_histTitlePostfix).c_str());
452
453 // Massage the final string to book things
454 std::string bookingString("");
455 this->buildBookingString( bookingString, graphName, tDir, stream );
456
457 // Register the TGraph into the THistSvc
458 if ( !((histSvc()->regGraph(bookingString, graphClone)).isSuccess()) )
459 {
460 m_msg << MSG::WARNING
461 << "Problem registering TGraph with name " << graphName
462 << ", title " << graphTitle
463 << " in " << m_name << "!" << endmsg;
464 return NULL;
465 }
466
467 // Also register it in the local map of string to pointer
468 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphClone ) );
469
470 return graphClone;
471}
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
std::string m_histNamePostfix
The postfix for the histogram THx name.
hash_t hash(const std::string &histName) const
Method to calculate a 32-bit hash from a string.
uint32_t hash_t
typedef for the internal hash
std::string m_histTitlePostfix
The postfix for the histogram THx title.
std::string m_histTitlePrefix
The prefix for the histogram THx title.
std::string m_name
Instance name.
void buildBookingString(std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false)
Method to build individual booking string.
std::string m_histNamePrefix
The prefix for the histogram THx name.
GraphMap_t m_graphMap
The map of TGraph names to their pointers.

◆ bookGetPointer() [3/8]

TH1 * AthHistogramming::bookGetPointer ( const TH1 & hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 262 of file AthHistogramming.h.

263{
264 // We need to create a non-const clone
265 TH1* histClone = dynamic_cast< TH1* >( hist.Clone() );
266 if ( !histClone ) {
267 m_msg << MSG::ERROR << "Couldn't create a TH1 clone in bookGetPointer" << endmsg;
268 return 0;
269 }
270 return this->bookGetPointer( *histClone, tDir, stream );
271
272}

◆ bookGetPointer() [4/8]

TTree * AthHistogramming::bookGetPointer ( const TTree & treeRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of TTrees.

Definition at line 297 of file AthHistogramming.cxx.

298{
299 // Get a pointer
300 const TTree* treePointer = &treeRef;
301
302 // Check that we got a valid pointer
303 if ( !treePointer )
304 {
305 m_msg << MSG::WARNING
306 << "We got an invalid TTree pointer in the BookGetPointer(TTree*) method of the class" << m_name
307 << "!" << endmsg;
308 return NULL;
309 }
310
311 // Modify the name and title according to the prefixes of this classes instance
312 std::string treeName = treePointer->GetName();
313 const std::string treeTitle = treePointer->GetTitle();
314
315 // Check if the hash for this treeName already exists, i.e., if we have a hash collision
316 const hash_t treeHash = this->hash(treeName);
317 TreeMap_t::const_iterator it = m_treeMap.find( treeHash );
318 if ( it != m_treeMap.end() ) // It does exist!
319 {
320 m_msg << MSG::WARNING
321 << "Detected a hash collision. The hash for the TTree with name=" << treeName
322 << " already exists and points to a TTree with name=" << it->second->GetName()
323 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
324 return NULL;
325 }
326
327 // Create a clone that has the new name
328 TTree* treeClone = dynamic_cast< TTree* >( treePointer->Clone(treeName.c_str()) );
329 if( !treeClone )
330 {
331 m_msg << MSG::WARNING
332 << "We couldn't clone the TTree in the BookGetPointer(TTree&) method of the class" << m_name
333 << "!" << endmsg;
334 return NULL;
335 }
336 treeClone->SetTitle (treeTitle.c_str());
337
338 // Massage the final string to book things
339 std::string bookingString("");
340 this->buildBookingString( bookingString, treeName, tDir, stream );
341
342 // Register the TTree into the THistSvc
343 if ( !((histSvc()->regTree(bookingString, treeClone)).isSuccess()) )
344 {
345 m_msg << MSG::WARNING
346 << "Problem registering TTree with name " << treeName
347 << ", title " << treeTitle
348 << " in " << m_name << "!" << endmsg;
349 return NULL;
350 }
351
352 // Also register it in the local map of string to pointer
353 m_treeMap.insert( m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treeClone ) );
354
355 return treeClone;
356}
TreeMap_t m_treeMap
The map of TTree names to their pointers.

◆ bookGetPointer() [5/8]

TEfficiency * AthHistogramming::bookGetPointer ( TEfficiency & effRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 131 of file AthHistogramming.cxx.

132{
133 // Modify the name and title according to the prefixes of this classes instance
134 std::string effName(effRef.GetName());
135 const std::string effTitle(effRef.GetTitle());
136 std::string bookingString("");
137
138 this->buildBookingString( bookingString, effName, tDir, stream );
139 effRef.SetTitle((m_histTitlePrefix+effTitle+m_histTitlePostfix).c_str() );
140 effRef.SetName(effName.c_str());
141
142 // Check if the hash for this effName already exists, i.e., if we have a hash collision
143 const hash_t effHash = this->hash(effName);
144 EffMap_t::const_iterator it = m_effMap.find( effHash );
145 if ( it != m_effMap.end() ) // It does exist!
146 {
147 m_msg << MSG::WARNING
148 << "Detected a hash collision. The hash for the TEfficiency with name=" << effName
149 << " already exists and points to a TEfficiency with name=" << it->second->GetName()
150 << " NOT going to book the new TEfficiency and returning a NULL pointer!" << endmsg;
151 return NULL;
152 }
153
154 // Set the new name and title for the TEfficiency, based on the prefixes that the user set for this class instance
155 // Create a clone that has the new name
156
157 // Massage the final string to book things
158
159 // Register the TEfficiency into the THistSvc
160 if ( !((histSvc()->regEfficiency(bookingString, &effRef)).isSuccess()) )
161 {
162 m_msg << MSG::WARNING
163 << "Problem registering TEfficiency with name " << effName
164 << ", name prefix " << m_histNamePrefix
165 << ", title " << effTitle
166 << ", tile prefix " << m_histTitlePrefix
167 << ", and tile postfix " << m_histTitlePostfix
168 << " in " << m_name << "!" << endmsg;
169 return NULL;
170 }
171
172 // Also register it in the local map of string to pointer
173 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, &effRef ) );
174
175 return &effRef;
176}
EffMap_t m_effMap
The map of histogram names to their pointers.

◆ bookGetPointer() [6/8]

TEfficiency * AthHistogramming::bookGetPointer ( TEfficiency * eff,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of TEfficiency.

Definition at line 295 of file AthHistogramming.h.

296{
297 if ( !hist ) {
298 m_msg << MSG::ERROR << "Got a zero pointer to a TEfficiency in bookGetPointer" << endmsg;
299 return 0;
300 }
301 return this->bookGetPointer( *hist, tDir, stream );
302}

◆ bookGetPointer() [7/8]

TH1 * AthHistogramming::bookGetPointer ( TH1 & histRef,
std::string tDir = "",
std::string stream = "" )
protectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 83 of file AthHistogramming.cxx.

84{
85 // Modify the name and title according to the prefixes of this classes instance
86 std::string histName(histRef.GetName());
87 const std::string histTitle(histRef.GetTitle());
88 std::string bookingString("");
89
90 this->buildBookingString( bookingString, histName, tDir, stream );
91 histRef.SetTitle((m_histTitlePrefix+histTitle+m_histTitlePostfix).c_str() );
92 histRef.SetName(histName.c_str());
93
94 // Check if the hash for this histName already exists, i.e., if we have a hash collision
95 const hash_t histHash = this->hash(histName);
96 HistMap_t::const_iterator it = m_histMap.find( histHash );
97 if ( it != m_histMap.end() ) // It does exist!
98 {
99 m_msg << MSG::WARNING
100 << "Detected a hash collision. The hash for the histogram with name=" << histName
101 << " already exists and points to a histogram with name=" << it->second->GetName()
102 << " NOT going to book the new histogram and returning a NULL pointer!" << endmsg;
103 return NULL;
104 }
105
106 // Set the new name and title for the histogram, based on the prefixes that the user set for this class instance
107 // Create a clone that has the new name
108
109 // Massage the final string to book things
110
111 // Register the histogram into the THistSvc
112 if ( !((histSvc()->regHist(bookingString, &histRef)).isSuccess()) )
113 {
114 m_msg << MSG::WARNING
115 << "Problem registering histogram with name " << histName
116 << ", name prefix " << m_histNamePrefix
117 << ", title " << histTitle
118 << ", tile prefix " << m_histTitlePrefix
119 << ", and tile postfix " << m_histTitlePostfix
120 << " in " << m_name << "!" << endmsg;
121 return NULL;
122 }
123
124 // Also register it in the local map of string to pointer
125 m_histMap.insert( m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, &histRef ) );
126
127 return &histRef;
128}
HistMap_t m_histMap
The map of histogram names to their pointers.

◆ bookGetPointer() [8/8]

TH1 * AthHistogramming::bookGetPointer ( TH1 * hist,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the booking and registering (into THistSvc) of histograms.

Definition at line 274 of file AthHistogramming.h.

275{
276 if ( !hist ) {
277 m_msg << MSG::ERROR << "Got a zero pointer to a TH1 in bookGetPointer" << endmsg;
278 return 0;
279 }
280 return this->bookGetPointer( *hist, tDir, stream );
281}

◆ buildBookingString()

void AthHistogramming::buildBookingString ( std::string & bookingString,
std::string & histName,
std::string & tDir,
std::string & stream,
bool usePrefixPostfix = false )
privateinherited

Method to build individual booking string.

Definition at line 545 of file AthHistogramming.cxx.

550{
551 // Massage the final string to book things
552 if(tDir.empty()) tDir = m_rootDir;
553 size_t pos = histName.rfind('/');
554 if(pos != std::string::npos){
555 tDir+='/';
556 tDir.append(histName, 0,pos);
557 histName.erase(0,pos+1);
558 };
559 if(stream.empty()) stream = m_streamName;
560
561 if(usePrefixPostfix){
562 bookingString = "/"+stream+"/"+tDir+"/"+m_histNamePrefix+histName+m_histNamePostfix;
563 } else {
564 bookingString = "/"+stream+"/"+tDir+"/"+histName;
565 }
566 while(bookingString.find("//") != std::string::npos){
567 this->myReplace(bookingString,"//","/");
568 }
569
570 return;
571}
std::string m_rootDir
Name of the ROOT directory.
std::string m_streamName
Name of the ROOT output stream (file).
void myReplace(std::string &str, const std::string &oldStr, const std::string &newStr)
Helper method to replace sub-string.

◆ configAthHistogramming()

StatusCode AthHistogramming::configAthHistogramming ( const ServiceHandle< ITHistSvc > & histSvc,
const std::string & prefix,
const std::string & rootDir,
const std::string & histNamePrefix,
const std::string & histNamePostfix,
const std::string & histTitlePrefix,
const std::string & histTitlePostfix )
protectedinherited

To be called by the derived classes to fill the internal configuration.

Definition at line 51 of file AthHistogramming.cxx.

55{
58 m_rootDir = rootDir;
59 m_histNamePrefix = histNamePrefix;
60 m_histNamePostfix = histNamePostfix;
61 m_histTitlePrefix = histTitlePrefix;
62 m_histTitlePostfix = histTitlePostfix;
63
64 return StatusCode::SUCCESS;
65}
ServiceHandle< ITHistSvc > m_histSvc
Pointer to the THistSvc (event store by default).

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dR()

double ZdcNtuple::dR ( const double eta1,
const double phi1,
const double eta2,
const double phi2 )

Definition at line 2184 of file ZdcNtuple.cxx.

2185{
2186 double deta = std::abs(eta1 - eta2);
2187 double dphi = std::abs(phi1 - phi2) < TMath::Pi() ? std::abs(phi1 - phi2) : 2 * TMath::Pi() - std::abs(phi1 - phi2);
2188 return std::sqrt(deta * deta + dphi * dphi);
2189}
static const double Pi

◆ efficiency()

TEfficiency * AthHistogramming::efficiency ( const std::string & effName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered TEfficiency.

Definition at line 235 of file AthHistogramming.cxx.

236{
237 // Build a 32 bit hash out of the name
238 const hash_t effHash = this->hash(effName);
239
240 // See if this entry exists in the map
241 EffMap_t::const_iterator it = m_effMap.find( effHash );
242 if ( it == m_effMap.end() ) // It doesn't exist!
243 { // Let's see into the THistSvc if somebody else has registered the TEfficiency...
244
245 // Need to copy the strings as we will massage them from here on
246 std::string effNameCopy = effName;
247 std::string tDirCopy = tDir;
248 std::string streamCopy = stream;
249
250 // Massage the final string to book things
251 std::string bookingString("");
252 this->buildBookingString( bookingString, effNameCopy, tDirCopy, streamCopy ,false);
253
254 TEfficiency* effPointer(NULL);
255 if ( !((histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
256 {
257 // Massage the final string to book things
258 std::string bookingString("");
259 this->buildBookingString( bookingString, effNameCopy, tDirCopy, streamCopy, true );
260
261 if ( !((histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
262 {
263 m_msg << MSG::WARNING
264 << "Problem retrieving the TEfficiency with name (including pre- and post-fixes) "
265 << m_histNamePrefix + effNameCopy + m_histNamePostfix
266 << " or with name " << effNameCopy
267 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
268 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
269 return NULL;
270 }
271 // If we get to here, we actually found the TEfficiency in the THistSvc.
272 // So let's add it to the local cache map and return its pointer
273 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
274 return effPointer;
275 }
276 // If we get to here, we actually found the TEfficiency in the THistSvc.
277 // So let's add it to the local cache map and return its pointer
278 m_effMap.insert( m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
279 return effPointer;
280 }
281
282 // Return the pointer to the TEfficiency that we got from the local cache map
283 return it->second;
284}
std::pair< StatusCode, TEfficiency * > getEfficiency(ITHistSvc &svc, const std::string &name)

◆ endInputFile()

StatusCode EL::AnaAlgorithm::endInputFile ( )
protectedinherited

perform the action for the end of an input file

Ideally you don't use this, but instead rely on meta-data tools instead. However, there are enough people asking for it that I decided to implement it anyways.

\warn To use this you have to call requestEndInputFile to use this.

\warn If a file is split across multiple jobs this will be called more than once. This only happens for specific batch drivers and/or if it is explicitly configured by the user. With PROOF it could even happen multiple times within the same job, and while PROOF is no longer supported that behavior may come back if support for a similar framework is added in the future. As such, this method should not be used for accounting that relies to be called exactly once per file, take a look at fileExecute if you want something that is guaranteed to be executed exactly once per input file.

\warn The execution order of endInputFile and fileExecute is currently unspecified.

Definition at line 367 of file AnaAlgorithm.cxx.

369 {
370 return StatusCode::SUCCESS;
371 }

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute() [1/2]

StatusCode EL::AnaAlgorithm::execute ( const EventContext & ctx)
protectedvirtualinherited

execute this algorithm

\warn Override only one of the two execute methods.

This gets called once on every event and is where the bulk of the processing ought to be happening.

Implements AthAlgorithm.

Definition at line 328 of file AnaAlgorithm.cxx.

330 {
331 // By default we invoke the deprecated method:
332 return execute();
333 }
virtual::StatusCode execute()
execute this algorithm

◆ execute() [2/2]

StatusCode ZdcNtuple::execute ( )
overridevirtual

Definition at line 557 of file ZdcNtuple.cxx.

558{
559 // Here you do everything that needs to be done on every single
560 // events, e.g. read input variables, apply cuts, and fill
561 // histograms and trees. This is where most of your actual analysis
562 // code will go.
563
564
565 // prefilter with a track limit
566
567 if (!evtStore())
568 {
569 ANA_MSG_INFO("*** No event found! ***");
570 return StatusCode::SUCCESS;
571 }
572
573 ANA_CHECK(evtStore()->retrieve( m_eventInfo, "EventInfo"));
575 if (zdcInj){
577 }
578
579 bool passTrigger = true;
580 m_trigDecision = 0;
581 if (enableTrigger)
582 {
583 ANA_CHECK(evtStore()->retrieve( m_trigDecision, "xTrigDecision"));
585 passTrigger = processTriggerDecision();
586 }
587
588 // if trigger enabled, only write out events which pass one of them, unless using MC
589 //
590 if (enableTrigger && !passTrigger && !m_isMC && writeOnlyTriggers) {
591 ANA_MSG_DEBUG ("Event failed trigger");
592 return StatusCode::SUCCESS;
593 }
594
595 if (reprocZdc){
596 ANA_MSG_INFO ("Reprocessing ZDC in ZdcNtuple");
597 ANA_CHECK(m_zdcAnalysisTool->reprocessZdc());
598 }else{
599 ANA_MSG_DEBUG ("No ZDC reprocessing");
600 }
601
602 processZdcNtupleFromModules(); // same model in both cases -- processZdcNtuple() goes straight to the anlaysis tool, which is good for debugging
603
604 if(m_isMC){
606 }
607
608 //tracks used to go here
609
611
612 if ((!(zdcCalib || zdcLaser || zdcOnly || zdcInj)) && enableID)
613 {
614 ANA_MSG_DEBUG("Trying to extract InDetTrackParticles from evtStore()=" << evtStore());
615 ANA_CHECK(evtStore()->retrieve( m_trackParticles, "InDetTrackParticles") );
616 size_t n = m_trackParticles->size();
617 ANA_MSG_DEBUG("Done w/ extracting InDetTrackParticles with size = " << n);
618
619 if (n > trackLimit && trackLimitReject) return StatusCode::SUCCESS;
620 }
621
622 if (!(zdcCalib || zdcLaser || zdcOnly || zdcInj))
623 {
624
625 // PLEASE NOTE: the commented sections here will be restored once we have a better sense of the Run 3 HI data
626
627 // Global E_T quantities for centrality
628 if (enableCalo){
629 ANA_CHECK(evtStore()->retrieve( m_caloSums, "CaloSums") );
630 ANA_CHECK(evtStore()->retrieve( m_eventShapes, "HIEventShape") );
631
633 ANA_CHECK(evtStore()->retrieve( m_lvl1EnergySumRoI, "LVL1EnergySumRoI") );
634
635 processFCal();
636 }
637
638 // MBTS quantities, but may require a derivation to be accessible (required STDM6 in pp)
639 //ANA_CHECK(evtStore()->retrieve( m_mbtsInfo, "MBTSForwardEventInfo") );
640 //ANA_CHECK(evtStore()->retrieve( m_mbtsModules, "MBTSModules") );
641 //m_trigT2MbtsBits = 0;
642 //ANA_CHECK(evtStore()->retrieve( m_trigT2MbtsBits, "HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts") );
643 //processMBTS();
644
645 if (enableID){
646 ANA_CHECK(evtStore()->retrieve( m_primaryVertices, "PrimaryVertices") );
647 processInDet();
648 }
649
650
651 if (enableClusters){
652 ANA_CHECK(evtStore()->retrieve( m_caloClusters, "CaloCalTopoClusters"));
654 }
655
656 // Gaps will require some evaluation of Run 3 performance of the clusters
657 processGaps();
658
660 ANA_CHECK(evtStore()->retrieve( m_afpProtons, "AFPProtonContainer"));
662 }
663 }
664
666 {
667 tree( "zdcTree" )->Fill();
668 }
669
670 return StatusCode::SUCCESS;
671}
#define ANA_MSG_INFO(xmsg)
Macro printing info messages.
#define ANA_MSG_DEBUG(xmsg)
Macro printing debug messages.
#define ANA_CHECK(EXP)
check whether the given expression was successful
const xAOD::VertexContainer * m_primaryVertices
Definition ZdcNtuple.h:122
void processMCEventCollection()
void processZdcNtupleFromModules()
void processInDet()
void processClusters()
const xAOD::HIEventShapeContainer * m_caloSums
Definition ZdcNtuple.h:117
const xAOD::CaloClusterContainer * m_caloClusters
Definition ZdcNtuple.h:123
void processGaps()
const xAOD::AFPProtonContainer * m_afpProtons
Definition ZdcNtuple.h:128
void processEventInfo()
void processFCal()
const xAOD::TrackParticleContainer * m_trackParticles
Definition ZdcNtuple.h:124
bool processTriggerDecision()
void processVInjInfo()
const xAOD::TrigDecision * m_trigDecision
Definition ZdcNtuple.h:116
void processProtons()
const xAOD::EnergySumRoI * m_lvl1EnergySumRoI
Definition ZdcNtuple.h:125
void setupTriggerHistos()
const xAOD::HIEventShapeContainer * m_eventShapes
Definition ZdcNtuple.h:118
TChain * tree

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ fileExecute()

StatusCode EL::AnaAlgorithm::fileExecute ( )
protectedinherited

perform the action exactly once for each file in the dataset

Ideally you don't use this, but instead rely on meta-data tools instead. However, there are enough people asking for it that I decided to implement it anyways.

\warn To use this you have to call requestFileExecute to use this.

\warn The user should not expect this to be called at any particular point in execution. If a file is split between multiple jobs this will be called in only one of these jobs, and not the others. It usually gets called before the first event in a file, but that is not guaranteed and relying on this is a bug.

\warn The execution order of beginInputFile and fileExecute is currently unspecified.

\warn fileExecute does not work with sub-file splitting in Athena, i.e. processing half the events of a file in one job the other half in another job. this should not normally happen, unless you do crazy things like run AthenaMP or explicitly select sub-file splitting in panda. in that case you are on your own.

Definition at line 351 of file AnaAlgorithm.cxx.

353 {
354 return StatusCode::SUCCESS;
355 }

◆ filterPassed() [1/2]

bool AthAlgorithm::filterPassed ( ) const
inherited

Definition at line 94 of file AthAlgorithm.cxx.

94 {
95 return filterPassed( Gaudi::Hive::currentContext() );
96}
bool filterPassed() const

◆ filterPassed() [2/2]

bool AthAlgorithm::filterPassed ( const EventContext & ctx) const
inherited

Definition at line 98 of file AthAlgorithm.cxx.

98 {
99 return execState( ctx ).filterPassed();
100}

◆ finalize()

StatusCode ZdcNtuple::finalize ( )
overridevirtual

Definition at line 2192 of file ZdcNtuple.cxx.

2193{
2194 // This method is the mirror image of initialize(), meaning it gets
2195 // called after the last event has been processed on the worker node
2196 // and allows you to finish up any objects you created in
2197 // initialize() before they are written to disk. This is actually
2198 // fairly rare, since this happens separately for each worker node.
2199 // Most of the time you want to do your post-processing on the
2200 // submission node after all your histogram outputs have been
2201 // merged. This is different from histFinalize() in that it only
2202 // gets called on worker nodes that processed input events.
2203
2204
2205 return StatusCode::SUCCESS;
2206}

◆ getContext()

const EventContext & AthAlgorithm::getContext ( ) const
inherited

Deprecated methods (use the ones with EventContext).

Definition at line 90 of file AthAlgorithm.cxx.

90 {
91 return Gaudi::Hive::currentContext();
92}

◆ graph()

TGraph * AthHistogramming::graph ( const std::string & graphName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered TGraphs.

Definition at line 477 of file AthHistogramming.cxx.

478{
479 // Build a 32 bit hash out of the name
480 const hash_t graphHash = this->hash(graphName);
481
482 // See if this entry exists in the map
483 GraphMap_t::const_iterator it = m_graphMap.find( graphHash );
484 if ( it == m_graphMap.end() ) // It doesn't exist!
485 { // Let's see into the THistSvc if somebody else has registered the TGraph...
486
487 // Need to copy the strings as we will massage them from here on
488 std::string graphNameCopy = graphName;
489 std::string tDirCopy = tDir;
490 std::string streamCopy = stream;
491
492 // Massage the final string to book things
493 std::string bookingString("");
494 this->buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy, true);
495
496 TGraph* graphPointer(NULL);
497 if ( !((histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
498 {
499 // Massage the final string to book things
500 std::string bookingString("");
501 this->buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy, false );
502
503 if ( !((histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
504 {
505 m_msg << MSG::WARNING
506 << "Problem retrieving the TGraph with name (including pre- and post-fixes) "
507 << m_histNamePrefix + graphNameCopy + m_histNamePostfix
508 << " or with name " << graphNameCopy
509 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
510 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
511 return NULL;
512 }
513 // If we get to here, we actually found the TGraph in the THistSvc.
514 // So let's add it to the local cache map and return its pointer
515 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
516 return graphPointer;
517 }
518 // If we get to here, we actually found the TGraph in the THistSvc.
519 // So let's add it to the local cache map and return its pointer
520 m_graphMap.insert( m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
521 return graphPointer;
522 }
523
524
525 // Return the pointer to the TGraph that we got from the local cache map
526 return it->second;
527}
std::pair< StatusCode, TGraph * > getGraph(ITHistSvc &svc, const std::string &name)

◆ handle()

void EL::AnaAlgorithm::handle ( const Incident & inc)
inherited

receive the given incident

Guarantee
basic
Failures
incident handling errors

Definition at line 529 of file AnaAlgorithm.cxx.

531 {
532 if (inc.type() == IncidentType::BeginInputFile)
533 {
538 } else if (inc.type() == IncidentType::EndInputFile)
539 {
542 } else
543 {
544 ATH_MSG_WARNING( "Unknown incident type received: " << inc.type() );
545 }
546 }
#define ATH_MSG_WARNING(x)
#define ANA_CHECK_THROW(EXP)
check whether the given expression was successful, throwing an exception on failure
virtual::StatusCode endInputFile()
perform the action for the end of an input file
virtual::StatusCode fileExecute()
perform the action exactly once for each file in the dataset
bool m_hasBeginInputFile
the value of hasBeginInputFile
bool m_hasFileExecute
the value of hasFileExecute
bool m_hasEndInputFile
the value of hasEndInputFile
virtual::StatusCode beginInputFile()
perform the action for the beginning of an input file

◆ hash()

AthHistogramming::hash_t AthHistogramming::hash ( const std::string & histName) const
inlineprivateinherited

Method to calculate a 32-bit hash from a string.

Definition at line 430 of file AthHistogramming.h.

431{
432 const uint64_t hash64 = CxxUtils::crc64( histName );
433 return (hash_t)(hash64 & 0xFFFFFFFF);
434}
uint64_t crc64(const CRCTable &table, const char *data, size_t data_len)
Find the CRC-64 of a string,.
Definition crc64.cxx:696
std::uint64_t hash64(const void *data, std::size_t size)
Passthrough to XXH3_64bits.
Definition XXH.cxx:9

◆ hist()

TH1 * AthHistogramming::hist ( const std::string & histName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered histograms of any type.

Definition at line 183 of file AthHistogramming.cxx.

184{
185 // Build a 32 bit hash out of the name
186 const hash_t histHash = this->hash(histName);
187
188 // See if this entry exists in the map
189 HistMap_t::const_iterator it = m_histMap.find( histHash );
190 if ( it == m_histMap.end() ) // It doesn't exist!
191 { // Let's see into the THistSvc if somebody else has registered the histogram...
192
193 // Need to copy the strings as we will massage them from here on
194 std::string histNameCopy = histName;
195 std::string tDirCopy = tDir;
196 std::string streamCopy = stream;
197
198 // Massage the final string to book things
199 std::string bookingString("");
200 this->buildBookingString( bookingString, histNameCopy, tDirCopy, streamCopy ,false);
201
202 TH1* histPointer(NULL);
203 if ( !((histSvc()->getHist(bookingString, histPointer)).isSuccess()) )
204 {
205 // Massage the final string to book things
206 std::string bookingString("");
207 this->buildBookingString( bookingString, histNameCopy, tDirCopy, streamCopy, true );
208
209 if ( !((histSvc()->getHist(bookingString, histPointer)).isSuccess()) )
210 {
211 m_msg << MSG::WARNING
212 << "Problem retrieving the histogram with name (including pre- and post-fixes) "
213 << m_histNamePrefix + histNameCopy + m_histNamePostfix
214 << " or with name " << histNameCopy
215 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
216 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
217 return NULL;
218 }
219 // If we get to here, we actually found the histogram in the THistSvc.
220 // So let's add it to the local cache map and return its pointer
221 m_histMap.insert( m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
222 return histPointer;
223 }
224 // If we get to here, we actually found the histogram in the THistSvc.
225 // So let's add it to the local cache map and return its pointer
226 m_histMap.insert( m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
227 return histPointer;
228 }
229
230
231 // Return the pointer to the histogram that we got from the local cache map
232 return it->second;
233}
std::pair< StatusCode, TH1 * > getHist(ITHistSvc &svc, const std::string &name, size_t index=0)

◆ hist2d()

TH2 * AthHistogramming::hist2d ( const std::string & histName,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the retrieval of registered 2-d histograms.

Definition at line 371 of file AthHistogramming.h.

372{
373 // Get the TH1 pointer
374 TH1* th1Pointer = this->hist(histName, tDir, stream);
375 if ( !th1Pointer )
376 {
377 m_msg << MSG::ERROR
378 << "Cannot get a 2-d histogram with name " << histName
379 << "... will probably seg-fault!" << endmsg;
380 return NULL;
381 }
382 // If the TH1 pointer is valid, simply return the dynamic_cast
383 return dynamic_cast<TH2*>( th1Pointer );
384}

◆ hist3d()

TH3 * AthHistogramming::hist3d ( const std::string & histName,
const std::string & tDir = "",
const std::string & stream = "" )
inlineprotectedinherited

Simplify the retrieval of registered 3-d histograms.

Definition at line 388 of file AthHistogramming.h.

389{
390 // Get the TH1 pointer
391 TH1* th1Pointer = this->hist(histName, tDir, stream);
392 if ( !th1Pointer )
393 {
394 m_msg << MSG::ERROR
395 << "Cannot get a 3-d histogram with name " << histName
396 << "... will probably seg-fault!" << endmsg;
397 return NULL;
398 }
399 // If the TH1 pointer is valid, simply return the dynamic_cast
400 return dynamic_cast<TH3*>( th1Pointer );
401}

◆ histSvc()

const ServiceHandle< ITHistSvc > & AthHistogramAlgorithm::histSvc ( ) const
inlineinherited

The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc.

Definition at line 113 of file AthHistogramAlgorithm.h.

114{
115 return m_histSvc;
116}
ServiceHandle< ITHistSvc > m_histSvc
Default constructor: AthHistogramAlgorithm();.

◆ initialize()

StatusCode ZdcNtuple::initialize ( )
overridevirtual

Definition at line 102 of file ZdcNtuple.cxx.

103{
104 // Here you do everything that needs to be done at the very
105 // beginning on each worker node, e.g. create histograms and output
106 // trees. This method gets called before any input files are
107 // connected.
108
109 ANA_MSG_DEBUG("Howdy from Initialize!");
110
112 ANA_CHECK(m_zdcSumContainerName.initialize());
114
116 {
117 h_TCSigCut = new TH1D("_gapSigCut_", "", 98, -4.9, 4.9);
118 h_TCSigCut->SetContent(&m_gapThresholds[0]);
119
120 ANA_CHECK( book(TTree("zdcTree", "ZDC Tree")));
121 m_outputTree = tree( "zdcTree" );
122
123 m_outputTree->Branch("runNumber", &t_runNumber, "runNumber/i");
124 m_outputTree->Branch("eventNumber", &t_eventNumber, "eventNumber/i");
125 m_outputTree->Branch("lumiBlock", &t_lumiBlock, "lumiBlock/i");
126 m_outputTree->Branch("bunchGroup", &t_bunchGroup, "bunchGroup/b");
127 m_outputTree->Branch("bcid", &t_bcid, "bcid/i");
128 if (zdcInj) m_outputTree->Branch("vInj",&t_vInj,"vInj/F");
129 m_outputTree->Branch("avgIntPerCrossing", &t_avgIntPerCrossing, "avgIntPerCrossing/F");
130 m_outputTree->Branch("actIntPerCrossing", &t_actIntPerCrossing, "actIntPerCrossing/F");
131 m_outputTree->Branch("trigger", &t_trigger, "trigger/l");
132 m_outputTree->Branch("trigger_TBP", &t_trigger_TBP, "trigger_TBP/i");
133 m_outputTree->Branch("tbp", &t_tbp, "tbp[16]/i");
134 m_outputTree->Branch("tav", &t_tav, "tav[16]/i");
135 m_outputTree->Branch("passBits", &t_passBits, "passBits/i");
136 m_outputTree->Branch("extendedLevel1ID",&t_extendedLevel1ID,"extendedLevel1ID/i");
137 m_outputTree->Branch("timeStamp",&t_timeStamp,"timeStamp/i");
138 m_outputTree->Branch("timeStampNSOffset",&t_timeStampNSOffset,"timeStampNSOffset/i");
139 m_outputTree->Branch("zdcEventInfoError",&t_zdcEventInfoError,"zdcEventInfoError/b");
140 m_outputTree->Branch("zdcEventInfoErrorWord",&t_zdcEventInfoErrorWord,"zdcEventInfoErrorWord/i");
141 // ZDC and RPD decoding errors
142 m_outputTree->Branch("zdcDecodingError",&t_zdcDecodingError,"zdcDecodingError/b");
143 m_outputTree->Branch("rpdDecodingError",&t_rpdDecodingError,"rpdDecodingError/b");
144
145 if (enableZDC)
146 {
148 {
149 if (nsamplesZdc == 7)
150 {
151 ANA_MSG_INFO("Setting up for 7 samples");
152 m_outputTree->Branch("zdc_raw", &t_raw7, "zdc_raw[2][4][2][2][7]/s"); // 7 samples
153 }
154
155 if (nsamplesZdc == 15)
156 {
157 ANA_MSG_INFO("Setting up for 15 samples");
158 m_outputTree->Branch("zdc_raw", &t_raw15, "zdc_raw[2][4][2][2][15]/s"); // 15 samples
159 }
160
161 if (nsamplesZdc == 24)
162 {
163 ANA_MSG_INFO("Setting up for 24 samples");
164 m_outputTree->Branch("zdc_raw", &t_raw24, "zdc_raw[2][4][2][2][24]/s"); // 24 samples
165 m_outputTree->Branch("rpd_raw", &t_rpdRaw, "rpd_raw[2][16][24]/s"); // 24 samples
166 }
167 if (nsamplesZdc == 32)
168 {
169 ANA_MSG_INFO("Setting up for 32 samples");
170 m_outputTree->Branch("zdc_raw", &t_raw32, "zdc_raw[2][4][2][2][32]/s"); // 32 samples
171 m_outputTree->Branch("rpd_raw", &t_rpdRaw32, "rpd_raw[2][16][32]/s"); // 32 samples
172 }
173 if (nsamplesZdc == 40)
174 {
175 ANA_MSG_INFO("Setting up for 40 samples");
176 m_outputTree->Branch("zdc_raw", &t_raw40, "zdc_raw[2][4][2][2][40]/s"); // 40 samples
177 m_outputTree->Branch("rpd_raw", &t_rpdRaw40, "rpd_raw[2][16][40]/s"); // 40 samples
178 }
179 }
180
181 m_outputTree->Branch("zdc_ZdcAmp", &t_ZdcAmp, "zdc_ZdcAmp[2]/F");
182 m_outputTree->Branch("zdc_ZdcAmpErr", &t_ZdcAmpErr, "zdc_ZdcAmpErr[2]/F");
183 m_outputTree->Branch("zdc_ZdcEnergy", &t_ZdcEnergy, "zdc_ZdcEnergy[2]/F");
184 m_outputTree->Branch("zdc_ZdcEnergyErr", &t_ZdcEnergyErr, "zdc_ZdcEnergyErr[2]/F");
185 m_outputTree->Branch("zdc_ZdcNLEnergy", &t_ZdcNLEnergy, "zdc_ZdcNLEnergy[2]/F");
186 m_outputTree->Branch("zdc_ZdcNLEnergyErr", &t_ZdcNLEnergyErr, "zdc_ZdcNLEnergyErr[2]/F");
187 m_outputTree->Branch("zdc_ZdcTime", &t_ZdcTime, "zdc_ZdcTime[2]/F");
188 m_outputTree->Branch("zdc_ZdcStatus", &t_ZdcStatus, "zdc_ZdcStatus[2]/S");
189 m_outputTree->Branch("zdc_ZdcTrigEff", &t_ZdcTrigEff, "zdc_ZdcTrigEff[2]/F");
190 m_outputTree->Branch("zdc_ZdcModuleMask", &t_ZdcModuleMask, "zdc_ZdcModuleMask/i");
191 m_outputTree->Branch("zdc_ZdcLucrodTriggerSideAmp",&t_ZdcLucrodTriggerSideAmp,"zdc_ZdcLucrodTriggerSideAmp[2]/S");
192 m_outputTree->Branch("zdc_ZdcLucrodTriggerSideAmpLG",&t_ZdcLucrodTriggerSideAmpLG,"zdc_ZdcLucrodTriggerSideAmpLG[2]/S");
193
194 m_outputTree->Branch("zdc_ZdcModuleAmp", &t_ZdcModuleAmp, "zdc_ZdcModuleAmp[2][4]/F");
195 m_outputTree->Branch("zdc_ZdcModuleAmpUncorr", &t_ZdcModuleAmpUncorr, "zdc_ZdcModuleAmpUncorr[2][4]/F");
196 m_outputTree->Branch("zdc_ZdcModuleTime", &t_ZdcModuleTime, "zdc_ZdcModuleTime[2][4]/F");
197 m_outputTree->Branch("zdc_ZdcModuleFitAmp", &t_ZdcModuleFitAmp, "zdc_ZdcModuleFitAmp[2][4]/F");
198 m_outputTree->Branch("zdc_ZdcModuleFitT0", &t_ZdcModuleFitT0, "zdc_ZdcModuleFitT0[2][4]/F");
199 m_outputTree->Branch("zdc_ZdcModuleStatus", &t_ZdcModuleStatus, "zdc_ZdcModuleStatus[2][4]/i");
200 m_outputTree->Branch("zdc_ZdcModuleChisq", &t_ZdcModuleChisq, "zdc_ZdcModuleChisq[2][4]/F");
201 m_outputTree->Branch("zdc_ZdcModuleChisqRatio", &t_ZdcModuleChisqRatio, "zdc_ZdcModuleChisqRatio[2][4]/F");
202 m_outputTree->Branch("zdc_ZdcModuleCalibAmp", &t_ZdcModuleCalibAmp, "zdc_ZdcModuleCalibAmp[2][4]/F");
203 m_outputTree->Branch("zdc_ZdcModuleCalibTime", &t_ZdcModuleCalibTime, "zdc_ZdcModuleCalibTime[2][4]/F");
204 m_outputTree->Branch("zdc_ZdcModuleBkgdMaxFraction", &t_ZdcModuleBkgdMaxFraction, "zdc_ZdcModuleBkgdMaxFraction[2][4]/F");
205 m_outputTree->Branch("zdc_ZdcModuleAmpError", &t_ZdcModuleAmpError, "zdc_ZdcModuleAmpError[2][4]/F");
206 m_outputTree->Branch("zdc_ZdcModuleMinDeriv2nd", &t_ZdcModuleMinDeriv2nd, "zdc_ZdcModuleMinDeriv2nd[2][4]/F");
207 m_outputTree->Branch("zdc_ZdcModulePresample", &t_ZdcModulePresample, "zdc_ZdcModulePresample[2][4]/F");
208 m_outputTree->Branch("zdc_ZdcModulePreSampleAmp", &t_ZdcModulePreSampleAmp, "zdc_ZdcModulePreSampleAmp[2][4]/F");
209 m_outputTree->Branch("zdc_ZdcLucrodTriggerAmp",&t_ZdcLucrodTriggerAmp,"zdc_ZdcLucrodTriggerAmp[2][4]/S");
210 m_outputTree->Branch("zdc_ZdcLucrodTriggerAmpLG",&t_ZdcLucrodTriggerAmpLG,"zdc_ZdcLucrodTriggerAmpLG[2][4]/S");
211 m_outputTree->Branch("zdc_ZdcModuleMaxADC",&t_ZdcModuleMaxADC,"zdc_ZdcModuleMaxADC[2][4]/F");
212 m_outputTree->Branch("zdc_ZdcModuleMaxADCHG",&t_ZdcModuleMaxADCHG,"zdc_ZdcModuleMaxADCHG[2][4]/F");
213 m_outputTree->Branch("zdc_ZdcModuleMaxADCLG",&t_ZdcModuleMaxADCLG,"zdc_ZdcModuleMaxADCLG[2][4]/F");
214 m_outputTree->Branch("zdc_ZdcModulePeakADCHG",&t_ZdcModulePeakADCHG,"zdc_ZdcModulePeakADCHG[2][4]/F");
215 m_outputTree->Branch("zdc_ZdcModulePeakADCLG",&t_ZdcModulePeakADCLG,"zdc_ZdcModulePeakADCLG[2][4]/F");
216 m_outputTree->Branch("zdc_ZdcModuleAmpLGRefit", &t_ZdcModuleAmpLGRefit, "zdc_ZdcModuleAmpLGRefit[2][4]/F");
217 m_outputTree->Branch("zdc_ZdcModuleAmpCorrLGRefit", &t_ZdcModuleAmpCorrLGRefit, "zdc_ZdcModuleAmpCorrLGRefit[2][4]/F");
218 m_outputTree->Branch("zdc_ZdcModuleT0LGRefit", &t_ZdcModuleT0LGRefit, "zdc_ZdcModuleT0LGRefit[2][4]/F");
219 m_outputTree->Branch("zdc_ZdcModuleT0SubLGRefit", &t_ZdcModuleT0SubLGRefit, "zdc_ZdcModuleT0SubLGRefit[2][4]/F");
220 m_outputTree->Branch("zdc_ZdcModuleChisqLGRefit", &t_ZdcModuleChisqLGRefit, "zdc_ZdcModuleChisqLGRefit[2][4]/F");
221
222 if(m_isMC){
223 //Modules
224 m_outputTree->Branch("zdc_ZdcModuleTruthTotal",&t_ZdcModuleTruthTotal,"zdc_ZdcModuleTruthTotal[2][7]/F");
225 m_outputTree->Branch("zdc_ZdcModuleTruthInvisible",&t_ZdcModuleTruthInvis,"zdc_ZdcModuleTruthInvisible[2][7]/F");
226 m_outputTree->Branch("zdc_ZdcModuleTruthEM",&t_ZdcModuleTruthEM,"zdc_ZdcModuleTruthEM[2][7]/F");
227 m_outputTree->Branch("zdc_ZdcModuleTruthNonEM",&t_ZdcModuleTruthNonEM,"zdc_ZdcModuleTruthNonEM[2][7]/F");
228 m_outputTree->Branch("zdc_ZdcModuleTruthEscaped",&t_ZdcModuleTruthEscaped,"zdc_ZdcModuleTruthEscaped[2][7]/F");
229 m_outputTree->Branch("zdc_ZdcModuleTruthNphotons",&t_ZdcModuleTruthNphotons,"zdc_ZdcModuleTruthNphotons[2][7]/i");
230 m_outputTree->Branch("zdc_RpdModuleTruthNphotons",&t_RpdModuleTruthNphotons,"zdc_RpdModuleTruthNphotons[2][16]/i");
231
232 //Sums
233 m_outputTree->Branch("zdc_ZdcTruthTotal",&t_ZdcTruthTotal,"zdc_ZdcTruthTotal[2]/F");
234 m_outputTree->Branch("zdc_ZdcTruthInvisible",&t_ZdcTruthInvis, "zdc_ZdcTruthInvisible[2]/F");
235 m_outputTree->Branch("zdc_ZdcTruthEM",&t_ZdcTruthEM,"zdc_ZdcTruthEM[2]/F");
236 m_outputTree->Branch("zdc_ZdcTruthNonEM",&t_ZdcTruthNonEM,"zdc_ZdcTruthNonEM[2]/F");
237 m_outputTree->Branch("zdc_ZdcTruthEscaped",&t_ZdcTruthEscaped,"zdc_ZdcTruthEscaped[2]/F");
238
239 //Event gen particles
240 m_outputTree->Branch("zdc_ZdcTruthParticlePosx",&t_ZdcTruthParticlePosx);
241 m_outputTree->Branch("zdc_ZdcTruthParticlePosy",&t_ZdcTruthParticlePosy);
242 m_outputTree->Branch("zdc_ZdcTruthParticlePosz",&t_ZdcTruthParticlePosz);
243 m_outputTree->Branch("zdc_ZdcTruthParticleTime",&t_ZdcTruthParticleTime);
244 m_outputTree->Branch("zdc_ZdcTruthParticlePx",&t_ZdcTruthParticlePx);
245 m_outputTree->Branch("zdc_ZdcTruthParticlePy",&t_ZdcTruthParticlePy);
246 m_outputTree->Branch("zdc_ZdcTruthParticlePz",&t_ZdcTruthParticlePz);
247 m_outputTree->Branch("zdc_ZdcTruthParticleEnergy",&t_ZdcTruthParticleEnergy);
248 m_outputTree->Branch("zdc_ZdcTruthParticlePid",&t_ZdcTruthParticlePid);
249 m_outputTree->Branch("zdc_ZdcTruthParticleStatus",&t_ZdcTruthParticleStatus);
250 }
251 }
252 if (enableRPD)
253 {
254 if (enableRPDAmp) {
255 m_outputTree->Branch("zdc_RpdChannelBaseline",&t_RpdChannelBaseline,"zdc_RpdChannelBaseline[2][16]/F");
256 m_outputTree->Branch("zdc_RpdChannelPileupExpFitParams",&t_RpdChannelPileupExpFitParams,"zdc_RpdChannelPileupExpFitParams[2][16][2]/F");
257 m_outputTree->Branch("zdc_RpdChannelPileupStretchedExpFitParams",&t_RpdChannelPileupStretchedExpFitParams,"zdc_RpdChannelPileupStretchedExpFitParams[2][16][3]/F");
258 m_outputTree->Branch("zdc_RpdChannelPileupExpFitParamErrs",&t_RpdChannelPileupExpFitParamErrs,"zdc_RpdChannelPileupExpFitParamErrs[2][16][2]/F");
259 m_outputTree->Branch("zdc_RpdChannelPileupStretchedExpFitParamErrs",&t_RpdChannelPileupStretchedExpFitParamErrs,"zdc_RpdChannelPileupStretchedExpFitParamErrs[2][16][3]/F");
260 m_outputTree->Branch("zdc_RpdChannelPileupExpFitMSE",&t_RpdChannelPileupExpFitMSE,"zdc_RpdChannelPileupExpFitMSE[2][16]/F");
261 m_outputTree->Branch("zdc_RpdChannelPileupStretchedExpFitMSE",&t_RpdChannelPileupStretchedExpFitMSE,"zdc_RpdChannelPileupStretchedExpFitMSE[2][16]/F");
262 m_outputTree->Branch("zdc_RpdChannelAmplitude",&t_RpdChannelAmplitude,"zdc_RpdChannelAmplitude[2][16]/F");
263 m_outputTree->Branch("zdc_RpdChannelAmplitudeCalib",&t_RpdChannelAmplitudeCalib,"zdc_RpdChannelAmplitudeCalib[2][16]/F");
264 m_outputTree->Branch("zdc_RpdChannelMaxADC",&t_RpdChannelMaxADC,"zdc_RpdChannelMaxADC[2][16]/F");
265 m_outputTree->Branch("zdc_RpdChannelMaxADCCalib",&t_RpdChannelMaxADCCalib,"zdc_RpdChannelMaxADCCalib[2][16]/F");
266 m_outputTree->Branch("zdc_RpdChannelMaxSample",&t_RpdChannelMaxSample,"zdc_RpdChannelMaxSample[2][16]/i");
267 m_outputTree->Branch("zdc_RpdChannelStatus",&t_RpdChannelStatus,"zdc_RpdChannelStatus[2][16]/i");
268 m_outputTree->Branch("zdc_RpdChannelPileupFrac",&t_RpdChannelPileupFrac,"zdc_RpdChannelPileupFrac[2][16]/F");
269 m_outputTree->Branch("zdc_RpdSideStatus",&t_RpdSideStatus,"zdc_RpdSideStatus[2]/i");
270 }
271 if (enableCentroid)
272 {
273 m_outputTree->Branch("zdc_centroidAvailable", &t_centroidDecorationsAvailable);
274 m_outputTree->Branch("zdc_centroidEventValid", &t_centroidEventValid, "zdc_centroidEventValid/B");
275 m_outputTree->Branch("zdc_centroidStatus", &t_centroidStatus, "zdc_centroidStatus[2]/i");
276 m_outputTree->Branch("zdc_RPDChannelSubtrAmp", &t_RPDChannelSubtrAmp, "zdc_RPDChannelSubtrAmp[2][16]/F");
277 m_outputTree->Branch("zdc_RPDSubtrAmpSum", &t_RPDSubtrAmpSum, "zdc_RPDSubtrAmpSum[2]/F");
278 m_outputTree->Branch("zdc_xCentroidPreGeomCorPreAvgSubtr", &t_xCentroidPreGeomCorPreAvgSubtr, "zdc_xCentroidPreGeomCorPreAvgSubtr[2]/F");
279 m_outputTree->Branch("zdc_yCentroidPreGeomCorPreAvgSubtr", &t_yCentroidPreGeomCorPreAvgSubtr, "zdc_yCentroidPreGeomCorPreAvgSubtr[2]/F");
280 m_outputTree->Branch("zdc_xCentroidPreAvgSubtr", &t_xCentroidPreAvgSubtr, "zdc_xCentroidPreAvgSubtr[2]/F");
281 m_outputTree->Branch("zdc_yCentroidPreAvgSubtr", &t_yCentroidPreAvgSubtr, "zdc_yCentroidPreAvgSubtr[2]/F");
282 m_outputTree->Branch("zdc_xCentroid", &t_xCentroid, "zdc_xCentroid[2]/F");
283 m_outputTree->Branch("zdc_yCentroid", &t_yCentroid, "zdc_yCentroid[2]/F");
284 m_outputTree->Branch("zdc_xRowCentroid", &t_xRowCentroid, "zdc_xRowCentroid[2][4]/F");
285 m_outputTree->Branch("zdc_yColCentroid", &t_yColCentroid, "zdc_yColCentroid[2][4]/F");
286 m_outputTree->Branch("zdc_reactionPlaneAngle", &t_reactionPlaneAngle, "zdc_reactionPlaneAngle[2]/F");
287 m_outputTree->Branch("zdc_cosDeltaReactionPlaneAngle", &t_cosDeltaReactionPlaneAngle, "zdc_cosDeltaReactionPlaneAngle/F");
288 }
289 }
290
291 if (!(zdcCalib || zdcLaser || zdcOnly || zdcInj))
292 {
293 m_outputTree->Branch("mbts_in_e", &t_mbts_in_e, "mbts_in_e[2][8]/F");
294 m_outputTree->Branch("mbts_in_t", &t_mbts_in_t, "mbts_in_t[2][8]/F");
295 m_outputTree->Branch("mbts_out_e", &t_mbts_out_e, "mbts_out_e[2][4]/F");
296 m_outputTree->Branch("mbts_out_t", &t_mbts_out_t, "mbts_out_t[2][4]/F");
297
298 m_outputTree->Branch("T2mbts_in_e", &t_T2mbts_in_e, "T2mbts_in_e[2][8]/F");
299 m_outputTree->Branch("T2mbts_in_t", &t_T2mbts_in_t, "T2mbts_in_t[2][8]/F");
300 m_outputTree->Branch("T2mbts_out_e", &t_T2mbts_out_e, "T2mbts_out_e[2][4]/F");
301 m_outputTree->Branch("T2mbts_out_t", &t_T2mbts_out_t, "T2mbts_out_t[2][4]/F");
302
303 m_outputTree->Branch("L1ET", &t_L1ET, "L1ET/F");
304 m_outputTree->Branch("L1ET24", &t_L1ET24, "L1ET24/F");
305
306 m_outputTree->Branch("totalEt", &t_totalEt, "totalEt/F");
307 m_outputTree->Branch("totalEt_TTsum", &t_totalEt_TTsum, "totalEt_TTsum/F");
308
309 m_outputTree->Branch("totalEt24", &t_totalEt24, "totalEt24/F");
310 m_outputTree->Branch("totalEt24_TTsum", &t_totalEt24_TTsum, "totalEt24_TTsum/F");
311
312 m_outputTree->Branch("fcalEt", &t_fcalEt, "fcalEt/F");
313 m_outputTree->Branch("fcalEtA", &t_fcalEtA, "fcalEtA/F");
314 m_outputTree->Branch("fcalEtC", &t_fcalEtC, "fcalEtC/F");
315 m_outputTree->Branch("fcalEtA_TT", &t_fcalEtA_TT, "fcalEtA_TT/F");
316 m_outputTree->Branch("fcalEtC_TT", &t_fcalEtC_TT, "fcalEtC_TT/F");
317
318 m_outputTree->Branch("nvx", &t_nvx, "nvx/I");
319 m_outputTree->Branch("vx", &t_vx, "vx[3]/F");
320 m_outputTree->Branch("pvindex", &t_pvindex, "pvindex/I");
321 m_outputTree->Branch("vxntrk", &t_vxntrk, "vxntrk/I");
322 m_outputTree->Branch("vx_trk_index", "vector<int>", &t_vx_trk_index);
323 m_outputTree->Branch("vxtype", &t_vxtype, "vxtype/I");
324 m_outputTree->Branch("vxcov", &t_vxcov, "vxcov[6]/F");
325 m_outputTree->Branch("vxsumpt2", &t_vxsumpt2, "vxsumpt2/F");
326 m_outputTree->Branch("nstrong", &t_nstrong, "nstrong/I");
327 m_outputTree->Branch("puvxntrk", &t_puvxntrk, "puvxntrk/I");
328 m_outputTree->Branch("puvxsumpt", &t_puvxsumpt, "puvxsumpt/F");
329 m_outputTree->Branch("puvxz", &t_puvxz, "puvxz/F");
330 m_outputTree->Branch("vxnlooseprimary", &t_vxnlooseprimary, "vxnlooseprimary/I");
331 m_outputTree->Branch("vxnminbias", &t_vxnminbias, "vxnminbias/I");
332 m_outputTree->Branch("vxngoodmuon", &t_vxngoodmuon, "vxngoodmuon/I");
333
334 m_outputTree->Branch("t_nvtx", &t_nvtx, "nvtx/I");
335 m_outputTree->Branch("vtx_type", "vector<int8_t>", &t_vtx_type);
336 m_outputTree->Branch("vtx_x", "vector<float>", &t_vtx_x);
337 m_outputTree->Branch("vtx_y", "vector<float>", &t_vtx_y);
338 m_outputTree->Branch("vtx_z", "vector<float>", &t_vtx_z);
339 m_outputTree->Branch("vtx_ntrk_all", "vector<int16_t>", &t_vtx_ntrk_all);
340 m_outputTree->Branch("vtx_sumpt2_all", "vector<float>", &t_vtx_sumpt2_all);
341 m_outputTree->Branch("vtx_ntrk", "vector<int16_t>", &t_vtx_ntrk);
342 m_outputTree->Branch("vtx_sumpt2", "vector<float>", &t_vtx_sumpt2);
343 m_outputTree->Branch("vtx_trk_index", "vector< vector<int16_t> >", &t_vtx_trk_index);
344
345 m_outputTree->Branch("mbts_countA", &t_mbts_countA, "mbts_countA/s");
346 m_outputTree->Branch("mbts_countC", &t_mbts_countC, "mbts_countC/s");
347 m_outputTree->Branch("T2mbts_countAin", &t_T2mbts_countAin, "T2mbts_countAin/s");
348 m_outputTree->Branch("T2mbts_countCin", &t_T2mbts_countCin, "T2mbts_countCin/s");
349 m_outputTree->Branch("mbts_timeA", &t_mbts_timeA, "mbts_timeA/F");
350 m_outputTree->Branch("mbts_timeC", &t_mbts_timeC, "mbts_timeC/F");
351 m_outputTree->Branch("mbts_timeDiff", &t_mbts_timeDiff, "mbts_timeDiff/F");
352
353 t_nclus = 0;
354 m_outputTree->Branch("nclus", &t_nclus, "nclus/i");
355 m_outputTree->Branch("clusEt", &t_clusEt, "clusEt/F");
356 m_outputTree->Branch("clusEtMax", &t_clusEtMax, "clusEtMax/F");
357 m_outputTree->Branch("clusetaMax", &t_clusetaMax, "clusetaMax/F");
358 m_outputTree->Branch("clusphiMax", &t_clusphiMax, "clusphiMax/F");
359
360 m_outputTree->Branch("cc_pt", "vector<float>", &t_cc_pt);
361 m_outputTree->Branch("cc_eta", "vector<float>", &t_cc_eta);
362 m_outputTree->Branch("cc_phi", "vector<float>", &t_cc_phi);
363 m_outputTree->Branch("cc_e", "vector<float>", &t_cc_e);
364 m_outputTree->Branch("cc_raw_m", "vector<float>", &t_cc_raw_m);
365 m_outputTree->Branch("cc_raw_eta", "vector<float>", &t_cc_raw_eta);
366 m_outputTree->Branch("cc_raw_phi", "vector<float>", &t_cc_raw_phi);
367 m_outputTree->Branch("cc_raw_e", "vector<float>", &t_cc_raw_e);
368 m_outputTree->Branch("cc_raw_samp", "vector<vector<float>>", &t_cc_raw_samp);
369 m_outputTree->Branch("cc_sig", "vector<float>", &t_cc_sig);
370 m_outputTree->Branch("cc_layer", "vector<int>", &t_cc_layer);
371
372 m_outputTree->Branch("edgeGapA", &t_edgeGapA, "edgeGapA/F");
373 m_outputTree->Branch("edgeGapC", &t_edgeGapC, "edgeGapC/F");
374
375 m_outputTree->Branch("ntrk", &t_ntrk, "ntrk/i");
376 if (enableTracks)
377 {
378 m_outputTree->Branch("trk_pt", "vector<float>", &t_trk_pt);
379 m_outputTree->Branch("trk_eta", "vector<float>", &t_trk_eta);
380 m_outputTree->Branch("trk_theta", "vector<float>", &t_trk_theta);
381 m_outputTree->Branch("trk_phi", "vector<float>", &t_trk_phi);
382 m_outputTree->Branch("trk_e", "vector<float>", &t_trk_e);
383 m_outputTree->Branch("trk_index", "vector<int>", &t_trk_index);
384 m_outputTree->Branch("trk_d0", "vector<float>", &t_trk_d0);
385 m_outputTree->Branch("trk_z0", "vector<float>", &t_trk_z0);
386 m_outputTree->Branch("trk_vz", "vector<float>", &t_trk_vz);
387 m_outputTree->Branch("trk_vtxz", "vector<float>", &t_trk_vtxz);
388 m_outputTree->Branch("trk_pixeldEdx", "vector<float>", &t_trk_pixeldEdx);
389 m_outputTree->Branch("trk_charge", "vector<int8_t>", &t_trk_charge);
390 m_outputTree->Branch("trk_quality", "vector<int16_t>", &t_trk_quality);
391 m_outputTree->Branch("trk_nPixHits", "vector<uint8_t>", &t_trk_nPixHits);
392 m_outputTree->Branch("trk_nSctHits", "vector<uint8_t>", &t_trk_nSctHits);
393 m_outputTree->Branch("trk_nPixDead", "vector<uint8_t>", &t_trk_nPixDead);
394 m_outputTree->Branch("trk_nSctDead", "vector<uint8_t>", &t_trk_nSctDead);
395 m_outputTree->Branch("trk_nPixHoles", "vector<uint8_t>", &t_trk_nPixHoles);
396 m_outputTree->Branch("trk_nSctHoles", "vector<uint8_t>", &t_trk_nSctHoles);
397 m_outputTree->Branch("trk_nTrtHits", "vector<uint8_t>", &t_trk_nTrtHits);
398 m_outputTree->Branch("trk_nTrtOutliers", "vector<uint8_t>", &t_trk_nTrtOutliers);
399 m_outputTree->Branch("trk_inPixHits", "vector<uint8_t>", &t_trk_inPixHits);
400 m_outputTree->Branch("trk_exPixHits", "vector<uint8_t>", &t_trk_exPixHits);
401 m_outputTree->Branch("trk_ninPixHits", "vector<uint8_t>", &t_trk_ninPixHits);
402 m_outputTree->Branch("trk_nexPixHits", "vector<uint8_t>", &t_trk_nexPixHits);
403 }
404
406 m_outputTree->Branch("nProtons", &nProtons, "nProtons/i");
407 m_outputTree->Branch("proton_pt", "vector<double>", &proton_pt);
408 m_outputTree->Branch("proton_eta", "vector<double>", &proton_eta);
409 m_outputTree->Branch("proton_phi", "vector<double>", &proton_phi);
410 m_outputTree->Branch("proton_e", "vector<double>", &proton_e);
411 m_outputTree->Branch("proton_side", "vector<int>", &proton_side);
412 m_outputTree->Branch("proton_eLoss", "vector<double>", &proton_eLoss);
413 m_outputTree->Branch("proton_t", "vector<double>", &proton_t);
414 m_outputTree->Branch("proton_track_stationID", "vector<vector<int>>", &proton_track_stationID);
415 m_outputTree->Branch("proton_track_nClusters", "vector<vector<int>>", &proton_track_nClusters);
416 m_outputTree->Branch("proton_track_xLocal", "vector<vector<float>>", &proton_track_xLocal);
417 m_outputTree->Branch("proton_track_yLocal", "vector<vector<float>>", &proton_track_yLocal);
418 m_outputTree->Branch("proton_track_zLocal", "vector<vector<float>>", &proton_track_zLocal);
419 m_outputTree->Branch("proton_track_xSlope", "vector<vector<float>>", &proton_track_xSlope);
420 m_outputTree->Branch("proton_track_ySlope", "vector<vector<float>>", &proton_track_ySlope);
421 }
422
423 }
424 }
425
426 ANA_MSG_DEBUG("Anti-howdy from Initialize!");
427
428
429 // Here you do everything that you need to do after the first input
430 // file has been connected and before the first event is processed,
431 // e.g. create additional histograms based on which variables are
432 // available in the input files. You can also create all of your
433 // histograms and trees in here, but be aware that this method
434 // doesn't get called if no events are processed. So any objects
435 // you create here won't be available in the output if you have no
436 // input events.
437
438 ANA_MSG_INFO("enableOutputTree = " << enableOutputTree);
439 ANA_MSG_INFO("writeOnlyTriggers = " << writeOnlyTriggers);
440 ANA_MSG_INFO("enableOutputSamples = " << enableOutputSamples);
441 ANA_MSG_INFO("enableTrigger = " << enableTrigger);
442 ANA_MSG_INFO("enableRPD = " << enableRPD);
443 ANA_MSG_INFO("enableCentroid = " << enableCentroid);
444 ANA_MSG_INFO("zdcCalib = " << zdcCalib);
445 ANA_MSG_INFO("zdcInj = " << zdcInj);
446 ANA_MSG_INFO("zdcLaser = " << zdcLaser);
447 ANA_MSG_INFO("zdcConfig = " << zdcConfig);
448 ANA_MSG_INFO("reprocZdc = " << reprocZdc);
449 ANA_MSG_INFO("auxSuffix = " << auxSuffix );
450 ANA_MSG_INFO("zdcLowGainMode = " << zdcLowGainMode);
451 ANA_MSG_INFO("enableID = " << enableID);
452 ANA_MSG_INFO("enableCalo = " << enableCalo);
453 ANA_MSG_INFO("enableClusters = " << enableClusters);
454 ANA_MSG_INFO("trackLimit = " << trackLimit);
455 ANA_MSG_INFO("trackLimitReject = " << trackLimitReject);
456 ANA_MSG_INFO("isMC = " << m_isMC);
457 ANA_MSG_INFO("useGRL = " << useGRL);
458 ANA_MSG_INFO("grlFilename = " << grlFilename);
459 ANA_MSG_INFO("slimmed = " << slimmed);
460 ANA_MSG_INFO("zdcOnly = " << zdcOnly);
461 ANA_MSG_INFO("flipDelay = " << flipDelay);
462 ANA_MSG_INFO("nsamplesZdc = " << nsamplesZdc);
463 ANA_MSG_INFO("lhcf2022 = " << lhcf2022);
464 ANA_MSG_INFO("lhcf2022afp = " << lhcf2022afp);
465 ANA_MSG_INFO("lhcf2022zdc = " << lhcf2022zdc);
466 ANA_MSG_INFO("doZdcCalib = " << doZdcCalib);
467
468 ANA_MSG_DEBUG("initialize: Initialize!");
469
470
471 // GRL
472
473 if (useGRL)
474 {
475 const char* fullGRLFilePath = gSystem->ExpandPathName (grlFilename.c_str());
476 ANA_MSG_INFO("GRL: " << fullGRLFilePath);
477 std::vector<std::string> vecStringGRL;
478 vecStringGRL.push_back(fullGRLFilePath);
479 ANA_CHECK(m_grl.setProperty( "GoodRunsListVec", vecStringGRL));
480 ANA_CHECK(m_grl.setProperty("PassThrough", false)); // if true (default) will ignore result of GRL and will just pass all events
481 ANA_CHECK(m_grl.initialize());
482
483 }
484
485 if (enableTracks)
486 {
487 ANA_CHECK(m_selTool.retrieve());
488 }
489
490 if (enableTrigger) // HLT related
491 {
492 ANA_MSG_INFO("Trying to initialize TDT");
493 ANA_CHECK(m_trigDecisionTool.retrieve());
494 }
495
496 // ZDC re-reco tool
497 if (reprocZdc)
498 {
499 m_zdcAnalysisTool.setTypeAndName("ZDC::ZdcAnalysisTool/ZdcAnalysisTool");
500
501 ANA_MSG_INFO("Trying to configure ZDC Analysis Tool!");
502
503 ANA_CHECK(m_zdcAnalysisTool.setProperty("FlipEMDelay", flipDelay));
504 ANA_CHECK(m_zdcAnalysisTool.setProperty("LowGainMode", zdcLowGainMode));
505 ANA_CHECK(m_zdcAnalysisTool.setProperty("DoCalib", doZdcCalib));
506 ANA_CHECK(m_zdcAnalysisTool.setProperty("Configuration", zdcConfig));
507 ANA_CHECK(m_zdcAnalysisTool.setProperty("AuxSuffix", auxSuffix));
508 ANA_CHECK(m_zdcAnalysisTool.setProperty("ForceCalibRun", -1));
509
510 ANA_MSG_INFO("Setting up zdcConfig=" << zdcConfig);
511 if (zdcConfig=="LHCf2022")
512 {
513 ANA_CHECK(m_zdcAnalysisTool.setProperty("DoTrigEff", false)); // for now
514 ANA_CHECK(m_zdcAnalysisTool.setProperty("DoTimeCalib", false)); // for now
515 ANA_CHECK(m_zdcAnalysisTool.setProperty("Configuration", "LHCf2022"));
516 }
517 else if (zdcConfig == "PbPb2018")
518 {
519 ANA_CHECK(m_zdcAnalysisTool.setProperty("Configuration", "PbPb2018"));
520 }
521 else if (zdcConfig == "pPb2016")
522 {
523 ANA_CHECK(m_zdcAnalysisTool.setProperty("Configuration", "pPb2016"));
524 }
525 else if (zdcConfig == "PbPb2015")
526 {
527 ANA_CHECK(m_zdcAnalysisTool.setProperty("Configuration", "PbPb2015"));
528 }
529 else if (zdcConfig == "OONeNe2025")
530 {
531 ANA_CHECK(m_zdcAnalysisTool.setProperty("DoTrigEff", false)); // for now
532 ANA_CHECK(m_zdcAnalysisTool.setProperty("DoTimeCalib", true)); // for now
533 ANA_CHECK(m_zdcAnalysisTool.setProperty("Configuration", "OONeNe2025"));
534 }
535
536 if (flipDelay)
537 ANA_MSG_INFO("FLIP ZDC DELAY IN EM MODULES");
538 else
539 ANA_MSG_INFO("NO FLIP ZDC DELAY IN EM MODULES");
540
541
542 ANA_MSG_INFO("Trying to initialize ZDC Analysis Tool!");
543 ANA_CHECK(m_zdcAnalysisTool.initialize());
544 }
545
546 if (zdcInj)
547 {
548 m_zdcInjPulserAmpMap = std::make_shared<ZdcInjPulserAmpMap>();
549 ATH_MSG_INFO( "Using JSON file for injector-pulse voltage at path " << m_zdcInjPulserAmpMap->getFilePath() );
550 }
551
552 return StatusCode::SUCCESS;
553}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
std::vector< float > t_cc_raw_phi
Definition ZdcNtuple.h:399
float t_yCentroidPreGeomCorPreAvgSubtr[2]
Definition ZdcNtuple.h:274
float t_cosDeltaReactionPlaneAngle
Definition ZdcNtuple.h:282
float t_mbts_timeDiff
Definition ZdcNtuple.h:346
std::vector< double > proton_t
Definition ZdcNtuple.h:417
float t_ZdcModuleFitT0[2][4]
Definition ZdcNtuple.h:220
float t_yCentroid[2]
Definition ZdcNtuple.h:278
std::vector< float > t_cc_pt
Definition ZdcNtuple.h:391
float t_RpdChannelPileupStretchedExpFitParamErrs[2][16][3]
Definition ZdcNtuple.h:255
SG::ReadHandleKey< McEventCollection > m_mcEventCollectionName
Definition ZdcNtuple.h:111
short t_ZdcStatus[2]
Definition ZdcNtuple.h:195
std::vector< float > t_ZdcTruthParticlePy
Definition ZdcNtuple.h:210
float t_RpdChannelAmplitudeCalib[2][16]
Definition ZdcNtuple.h:259
uint32_t t_ntrk
Definition ZdcNtuple.h:362
float t_ZdcTruthEM[2]
Definition ZdcNtuple.h:202
float t_totalEt
Definition ZdcNtuple.h:320
float t_RPDSubtrAmpSum[2]
Definition ZdcNtuple.h:272
unsigned int t_RpdSideStatus[2]
Definition ZdcNtuple.h:265
float t_ZdcModuleChisqLGRefit[2][4]
Definition ZdcNtuple.h:242
float t_clusphiMax
Definition ZdcNtuple.h:406
float t_ZdcModuleT0SubLGRefit[2][4]
Definition ZdcNtuple.h:241
unsigned short t_ZdcLucrodTriggerAmpLG[2][4]
Definition ZdcNtuple.h:232
float t_RpdChannelAmplitude[2][16]
Definition ZdcNtuple.h:258
std::vector< uint8_t > t_trk_nPixHoles
Definition ZdcNtuple.h:379
float t_puvxz
Definition ZdcNtuple.h:292
std::vector< uint8_t > t_trk_nSctHoles
Definition ZdcNtuple.h:380
uint16_t t_mbts_countA
Definition ZdcNtuple.h:342
float t_fcalEtC
Definition ZdcNtuple.h:314
unsigned short t_ZdcLucrodTriggerSideAmp[2]
Definition ZdcNtuple.h:198
unsigned int t_RpdModuleTruthNphotons[2][16]
Definition ZdcNtuple.h:266
std::vector< int > t_vx_trk_index
Definition ZdcNtuple.h:287
float t_ZdcModuleAmpUncorr[2][4]
Definition ZdcNtuple.h:217
float t_reactionPlaneAngle[2]
Definition ZdcNtuple.h:281
std::vector< std::vector< float > > proton_track_ySlope
Definition ZdcNtuple.h:423
unsigned int t_ZdcModuleMask
Definition ZdcNtuple.h:196
std::vector< float > t_trk_vz
Definition ZdcNtuple.h:370
std::vector< float > t_trk_pt
Definition ZdcNtuple.h:363
uint32_t t_eventNumber
Definition ZdcNtuple.h:150
float t_RpdChannelPileupExpFitParams[2][16][2]
Definition ZdcNtuple.h:252
float t_totalEt24
Definition ZdcNtuple.h:322
uint16_t t_raw32[2][4][2][2][32]
Definition ZdcNtuple.h:354
float t_RpdChannelMaxADCCalib[2][16]
Definition ZdcNtuple.h:261
std::vector< int > t_trk_index
Definition ZdcNtuple.h:374
float t_clusEtMax
Definition ZdcNtuple.h:404
std::vector< std::vector< float > > proton_track_xLocal
Definition ZdcNtuple.h:419
float t_T2mbts_in_e[2][8]
Definition ZdcNtuple.h:180
uint16_t t_raw7[2][4][2][2][7]
Definition ZdcNtuple.h:351
float t_vInj
Definition ZdcNtuple.h:153
std::vector< float > t_cc_raw_e
Definition ZdcNtuple.h:400
float t_ZdcModuleChisqRatio[2][4]
Definition ZdcNtuple.h:222
float t_mbts_in_t[2][8]
Definition ZdcNtuple.h:177
std::vector< int16_t > t_vtx_ntrk
Definition ZdcNtuple.h:307
float t_ZdcAmpErr[2]
Definition ZdcNtuple.h:189
float t_vxcov[6]
Definition ZdcNtuple.h:290
float t_RpdChannelMaxADC[2][16]
Definition ZdcNtuple.h:260
float t_ZdcModuleCalibTime[2][4]
Definition ZdcNtuple.h:225
float t_ZdcModulePresample[2][4]
Definition ZdcNtuple.h:229
float t_ZdcNLEnergy[2]
Definition ZdcNtuple.h:192
std::vector< float > t_vtx_sumpt2_all
Definition ZdcNtuple.h:306
std::vector< int16_t > t_vtx_ntrk_all
Definition ZdcNtuple.h:305
float t_xRowCentroid[2][4]
Definition ZdcNtuple.h:279
unsigned int t_RpdChannelMaxSample[2][16]
Definition ZdcNtuple.h:262
std::vector< float > t_cc_raw_eta
Definition ZdcNtuple.h:398
float t_actIntPerCrossing
Definition ZdcNtuple.h:160
uint64_t t_trigger
Definition ZdcNtuple.h:167
bool t_centroidDecorationsAvailable
Definition ZdcNtuple.h:268
std::vector< std::vector< int16_t > > t_vtx_trk_index
Definition ZdcNtuple.h:309
std::vector< float > t_trk_eta
Definition ZdcNtuple.h:364
int t_puvxntrk
Definition ZdcNtuple.h:293
uint16_t t_raw15[2][4][2][2][15]
Definition ZdcNtuple.h:352
std::vector< float > t_cc_eta
Definition ZdcNtuple.h:392
TH1 * h_TCSigCut
Definition ZdcNtuple.h:339
uint16_t t_T2mbts_countCin
Definition ZdcNtuple.h:349
float t_xCentroidPreAvgSubtr[2]
Definition ZdcNtuple.h:275
float t_ZdcTrigEff[2]
Definition ZdcNtuple.h:197
float t_ZdcModuleMinDeriv2nd[2][4]
Definition ZdcNtuple.h:228
std::vector< float > t_trk_vtxz
Definition ZdcNtuple.h:371
float t_RPDChannelSubtrAmp[2][16]
Definition ZdcNtuple.h:271
float t_ZdcNLEnergyErr[2]
Definition ZdcNtuple.h:193
uint32_t t_passBits
Definition ZdcNtuple.h:155
float t_ZdcModuleChisq[2][4]
Definition ZdcNtuple.h:221
std::vector< int8_t > t_vtx_type
Definition ZdcNtuple.h:301
float t_T2mbts_out_e[2][4]
Definition ZdcNtuple.h:181
std::vector< int > t_cc_layer
Definition ZdcNtuple.h:396
uint8_t t_rpdDecodingError
Definition ZdcNtuple.h:165
float t_ZdcModuleAmpError[2][4]
Definition ZdcNtuple.h:226
float t_ZdcModuleTime[2][4]
Definition ZdcNtuple.h:218
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecisionTool
Definition ZdcNtuple.h:101
int t_nstrong
Definition ZdcNtuple.h:295
std::vector< float > t_trk_theta
Definition ZdcNtuple.h:367
std::vector< uint8_t > t_trk_ninPixHits
Definition ZdcNtuple.h:385
uint16_t t_T2mbts_countAin
Definition ZdcNtuple.h:348
uint32_t t_tav[16]
Definition ZdcNtuple.h:185
std::vector< float > t_cc_e
Definition ZdcNtuple.h:394
double m_gapThresholds[98]
Definition ZdcNtuple.h:330
float t_mbts_timeC
Definition ZdcNtuple.h:345
float t_ZdcModuleAmpCorrLGRefit[2][4]
Definition ZdcNtuple.h:239
std::vector< float > t_cc_phi
Definition ZdcNtuple.h:393
uint32_t t_nclus
Definition ZdcNtuple.h:390
uint32_t t_tbp[16]
Definition ZdcNtuple.h:186
uint16_t t_rpdRaw[2][16][24]
Definition ZdcNtuple.h:357
std::vector< std::vector< int > > proton_track_nClusters
Definition ZdcNtuple.h:424
std::vector< int > proton_side
Definition ZdcNtuple.h:415
uint32_t t_timeStamp
Definition ZdcNtuple.h:157
float t_ZdcModuleTruthTotal[2][7]
Definition ZdcNtuple.h:244
float t_xCentroidPreGeomCorPreAvgSubtr[2]
Definition ZdcNtuple.h:273
float t_ZdcTruthInvis[2]
Definition ZdcNtuple.h:201
float t_ZdcModuleCalibAmp[2][4]
Definition ZdcNtuple.h:224
float t_ZdcModuleFitAmp[2][4]
Definition ZdcNtuple.h:219
float t_fcalEtA
Definition ZdcNtuple.h:313
float t_ZdcModuleAmpLGRefit[2][4]
Definition ZdcNtuple.h:238
float t_vx[3]
Definition ZdcNtuple.h:285
float t_ZdcModulePeakADCLG[2][4]
Definition ZdcNtuple.h:237
unsigned int t_ZdcModuleStatus[2][4]
Definition ZdcNtuple.h:223
float t_mbts_out_t[2][4]
Definition ZdcNtuple.h:178
float t_L1ET24
Definition ZdcNtuple.h:141
float t_ZdcModuleT0LGRefit[2][4]
Definition ZdcNtuple.h:240
std::vector< uint8_t > t_trk_nPixDead
Definition ZdcNtuple.h:377
std::vector< int8_t > t_trk_charge
Definition ZdcNtuple.h:372
float t_ZdcModuleTruthNonEM[2][7]
Definition ZdcNtuple.h:247
int t_vxnminbias
Definition ZdcNtuple.h:297
float t_ZdcModuleAmp[2][4]
Definition ZdcNtuple.h:216
float t_fcalEtC_TT
Definition ZdcNtuple.h:316
uint32_t t_zdcEventInfoErrorWord
Definition ZdcNtuple.h:162
float t_ZdcEnergy[2]
Definition ZdcNtuple.h:190
std::vector< std::vector< float > > t_cc_raw_samp
Definition ZdcNtuple.h:401
float t_RpdChannelPileupFrac[2][16]
Definition ZdcNtuple.h:264
std::vector< float > t_ZdcTruthParticlePosy
Definition ZdcNtuple.h:206
std::vector< int16_t > t_trk_quality
Definition ZdcNtuple.h:373
std::vector< uint8_t > t_trk_nSctHits
Definition ZdcNtuple.h:376
uint16_t t_rpdRaw32[2][16][32]
Definition ZdcNtuple.h:358
float t_clusEt
Definition ZdcNtuple.h:403
std::vector< float > t_cc_raw_m
Definition ZdcNtuple.h:397
std::vector< float > t_trk_d0
Definition ZdcNtuple.h:368
std::vector< std::vector< float > > proton_track_zLocal
Definition ZdcNtuple.h:421
float t_RpdChannelPileupExpFitParamErrs[2][16][2]
Definition ZdcNtuple.h:254
std::vector< float > t_trk_z0
Definition ZdcNtuple.h:369
float t_avgIntPerCrossing
Definition ZdcNtuple.h:159
std::vector< float > t_vtx_x
Definition ZdcNtuple.h:302
float t_ZdcTruthTotal[2]
Definition ZdcNtuple.h:200
float t_ZdcTime[2]
Definition ZdcNtuple.h:194
float t_T2mbts_in_t[2][8]
Definition ZdcNtuple.h:182
std::vector< float > t_vtx_y
Definition ZdcNtuple.h:303
uint32_t t_timeStampNSOffset
Definition ZdcNtuple.h:158
std::vector< float > t_vtx_z
Definition ZdcNtuple.h:304
std::vector< uint8_t > t_trk_nTrtHits
Definition ZdcNtuple.h:381
std::vector< double > proton_pt
Definition ZdcNtuple.h:411
int t_vxtype
Definition ZdcNtuple.h:288
std::vector< int > t_ZdcTruthParticlePid
Definition ZdcNtuple.h:213
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcSumContainerName
Definition ZdcNtuple.h:109
unsigned short t_ZdcLucrodTriggerAmp[2][4]
Definition ZdcNtuple.h:231
float t_ZdcModuleBkgdMaxFraction[2][4]
Definition ZdcNtuple.h:227
unsigned int t_ZdcModuleTruthNphotons[2][7]
Definition ZdcNtuple.h:249
int nProtons
Definition ZdcNtuple.h:410
std::vector< std::vector< float > > proton_track_yLocal
Definition ZdcNtuple.h:420
std::vector< float > t_vtx_sumpt2
Definition ZdcNtuple.h:308
std::vector< uint8_t > t_trk_nSctDead
Definition ZdcNtuple.h:378
float t_RpdChannelPileupStretchedExpFitMSE[2][16]
Definition ZdcNtuple.h:257
std::vector< float > t_trk_pixeldEdx
Definition ZdcNtuple.h:387
float t_yCentroidPreAvgSubtr[2]
Definition ZdcNtuple.h:276
float t_xCentroid[2]
Definition ZdcNtuple.h:277
int t_pvindex
Definition ZdcNtuple.h:289
float t_puvxsumpt
Definition ZdcNtuple.h:294
std::vector< double > proton_eta
Definition ZdcNtuple.h:412
float t_RpdChannelBaseline[2][16]
Definition ZdcNtuple.h:251
std::vector< float > t_ZdcTruthParticlePx
Definition ZdcNtuple.h:209
std::vector< float > t_trk_phi
Definition ZdcNtuple.h:365
float t_mbts_in_e[2][8]
Definition ZdcNtuple.h:175
std::vector< double > proton_eLoss
Definition ZdcNtuple.h:416
uint16_t t_raw24[2][4][2][2][24]
Definition ZdcNtuple.h:353
float t_ZdcModulePreSampleAmp[2][4]
Definition ZdcNtuple.h:230
float t_mbts_timeA
Definition ZdcNtuple.h:344
uint16_t t_mbts_countC
Definition ZdcNtuple.h:343
unsigned int t_centroidStatus[2]
Definition ZdcNtuple.h:270
float t_clusetaMax
Definition ZdcNtuple.h:405
float t_ZdcTruthNonEM[2]
Definition ZdcNtuple.h:203
uint8_t t_bunchGroup
Definition ZdcNtuple.h:154
uint32_t t_runNumber
Definition ZdcNtuple.h:149
float t_edgeGapC
Definition ZdcNtuple.h:327
int t_vxnlooseprimary
Definition ZdcNtuple.h:296
float t_ZdcAmp[2]
Definition ZdcNtuple.h:188
int t_vxngoodmuon
Definition ZdcNtuple.h:298
TTree * m_outputTree
Definition ZdcNtuple.h:148
float t_RpdChannelPileupExpFitMSE[2][16]
Definition ZdcNtuple.h:256
std::vector< std::vector< int > > proton_track_stationID
Definition ZdcNtuple.h:418
SG::ReadHandleKey< xAOD::ZdcModuleContainer > m_zdcModuleContainerName
Definition ZdcNtuple.h:107
float t_totalEt24_TTsum
Definition ZdcNtuple.h:323
float t_ZdcTruthEscaped[2]
Definition ZdcNtuple.h:204
float t_ZdcModulePeakADCHG[2][4]
Definition ZdcNtuple.h:236
std::shared_ptr< ZdcInjPulserAmpMap > m_zdcInjPulserAmpMap
Definition ZdcNtuple.h:130
std::vector< float > t_ZdcTruthParticleEnergy
Definition ZdcNtuple.h:212
std::vector< double > proton_e
Definition ZdcNtuple.h:414
float t_fcalEtA_TT
Definition ZdcNtuple.h:315
float t_vxsumpt2
Definition ZdcNtuple.h:291
uint32_t t_bcid
Definition ZdcNtuple.h:152
float t_ZdcEnergyErr[2]
Definition ZdcNtuple.h:191
float t_ZdcModuleTruthEM[2][7]
Definition ZdcNtuple.h:246
std::vector< float > t_ZdcTruthParticleTime
Definition ZdcNtuple.h:208
std::vector< uint8_t > t_trk_nPixHits
Definition ZdcNtuple.h:375
uint32_t t_extendedLevel1ID
Definition ZdcNtuple.h:156
unsigned short t_ZdcLucrodTriggerSideAmpLG[2]
Definition ZdcNtuple.h:199
unsigned int t_RpdChannelStatus[2][16]
Definition ZdcNtuple.h:263
float t_L1ET
Definition ZdcNtuple.h:140
uint16_t t_raw40[2][4][2][2][40]
Definition ZdcNtuple.h:355
std::vector< float > t_ZdcTruthParticlePosz
Definition ZdcNtuple.h:207
char t_centroidEventValid
Definition ZdcNtuple.h:269
float t_totalEt_TTsum
Definition ZdcNtuple.h:321
std::vector< float > t_ZdcTruthParticlePz
Definition ZdcNtuple.h:211
uint16_t t_rpdRaw40[2][16][40]
Definition ZdcNtuple.h:359
uint32_t t_trigger_TBP
Definition ZdcNtuple.h:168
std::vector< std::vector< float > > proton_track_xSlope
Definition ZdcNtuple.h:422
int t_vxntrk
Definition ZdcNtuple.h:286
std::vector< float > t_ZdcTruthParticlePosx
Definition ZdcNtuple.h:205
float t_yColCentroid[2][4]
Definition ZdcNtuple.h:280
float t_ZdcModuleTruthInvis[2][7]
Definition ZdcNtuple.h:245
std::vector< uint8_t > t_trk_nexPixHits
Definition ZdcNtuple.h:386
float t_ZdcModuleMaxADCHG[2][4]
Definition ZdcNtuple.h:234
std::vector< float > t_cc_sig
Definition ZdcNtuple.h:395
std::vector< double > proton_phi
Definition ZdcNtuple.h:413
std::vector< uint8_t > t_trk_inPixHits
Definition ZdcNtuple.h:383
float t_T2mbts_out_t[2][4]
Definition ZdcNtuple.h:183
float t_fcalEt
Definition ZdcNtuple.h:312
uint8_t t_zdcEventInfoError
Definition ZdcNtuple.h:161
std::vector< int > t_ZdcTruthParticleStatus
Definition ZdcNtuple.h:214
float t_RpdChannelPileupStretchedExpFitParams[2][16][3]
Definition ZdcNtuple.h:253
float t_ZdcModuleMaxADCLG[2][4]
Definition ZdcNtuple.h:235
std::vector< uint8_t > t_trk_nTrtOutliers
Definition ZdcNtuple.h:382
uint32_t t_lumiBlock
Definition ZdcNtuple.h:151
float t_edgeGapA
Definition ZdcNtuple.h:326
std::vector< float > t_trk_e
Definition ZdcNtuple.h:366
std::vector< uint8_t > t_trk_exPixHits
Definition ZdcNtuple.h:384
float t_ZdcModuleMaxADC[2][4]
Definition ZdcNtuple.h:233
float t_ZdcModuleTruthEscaped[2][7]
Definition ZdcNtuple.h:248
uint8_t t_zdcDecodingError
Definition ZdcNtuple.h:164
float t_mbts_out_e[2][4]
Definition ZdcNtuple.h:176

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ inputMetaStore() [1/2]

AnaAlgorithm::MetaStorePtr_t EL::AnaAlgorithm::inputMetaStore ( )
inherited

Definition at line 81 of file AnaAlgorithm.cxx.

82 {
83#ifdef XAOD_STANDALONE
84 return &m_inputMetaStore;
85#else
86 return m_inputMetaStore;
87#endif // XAOD_STANDALONE
88 }
MetaStore_t m_inputMetaStore
Object accessing the input metadata store.

◆ inputMetaStore() [2/2]

AnaAlgorithm::ConstMetaStorePtr_t EL::AnaAlgorithm::inputMetaStore ( ) const
inherited

Accessor for the input metadata store

Definition at line 72 of file AnaAlgorithm.cxx.

73 {
74#ifdef XAOD_STANDALONE
75 return &m_inputMetaStore;
76#else
77 return m_inputMetaStore;
78#endif // XAOD_STANDALONE
79 }

◆ isReEntrant()

virtual bool AthAlgorithm::isReEntrant ( ) const
inlinefinaloverrideprotectedvirtualinherited

Legacy algorithms are not thread-safe.

Definition at line 111 of file AthAlgorithm.h.

111{ return false; }

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ myReplace()

void AthHistogramming::myReplace ( std::string & str,
const std::string & oldStr,
const std::string & newStr )
privateinherited

Helper method to replace sub-string.

Definition at line 575 of file AthHistogramming.cxx.

578{
579 size_t pos = 0;
580 while((pos = str.find(oldStr, pos)) != std::string::npos)
581 {
582 str.replace(pos, oldStr.length(), newStr);
583 pos += newStr.length();
584 }
585}

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ outputMetaStore() [1/2]

AnaAlgorithm::MetaStorePtr_t EL::AnaAlgorithm::outputMetaStore ( )
inherited

Definition at line 101 of file AnaAlgorithm.cxx.

102 {
103#ifdef XAOD_STANDALONE
104 return &m_outputMetaStore;
105#else
106 return m_outputMetaStore;
107#endif // XAOD_STANDALONE
108 }
MetaStore_t m_outputMetaStore
Object accessing the output metadata store.

◆ outputMetaStore() [2/2]

AnaAlgorithm::ConstMetaStorePtr_t EL::AnaAlgorithm::outputMetaStore ( ) const
inherited

Accessor for the output metadata store

Definition at line 92 of file AnaAlgorithm.cxx.

93 {
94#ifdef XAOD_STANDALONE
95 return &m_outputMetaStore;
96#else
97 return m_outputMetaStore;
98#endif // XAOD_STANDALONE
99 }

◆ print()

void EL::AnaAlgorithm::print ( ) const
protectedvirtualinherited

print the state of the algorithm

This is mostly to allow algorithms to add a little debugging information if they feel like it.

Definition at line 345 of file AnaAlgorithm.cxx.

347 {}

◆ processClusters()

void ZdcNtuple::processClusters ( )

Definition at line 1864 of file ZdcNtuple.cxx.

1865{
1866 //t_nclus = 0;
1867
1868 t_cc_pt.clear();
1869 t_cc_eta.clear();
1870 t_cc_phi.clear();
1871 t_cc_e.clear();
1872 t_cc_raw_m.clear();
1873 t_cc_raw_eta.clear();
1874 t_cc_raw_phi.clear();
1875 t_cc_raw_e.clear();
1876 t_cc_raw_samp.clear();
1877 t_cc_layer.clear();
1878 t_cc_sig.clear();
1879
1880 t_nclus = m_caloClusters->size();
1881
1882 t_clusEt = 0;
1883 t_clusEtMax = -999;
1884 t_clusetaMax = 0;
1885 t_clusphiMax = 0;
1886
1887 for (const auto cluster : *m_caloClusters)
1888 {
1889 t_cc_pt.push_back(cluster->pt());
1890 t_cc_eta.push_back(cluster->eta());
1891 t_cc_phi.push_back(cluster->phi());
1892 t_cc_e.push_back(cluster->e());
1893 t_cc_raw_m.push_back(cluster->rawM());
1894 t_cc_raw_eta.push_back(cluster->rawEta());
1895 t_cc_raw_phi.push_back(cluster->rawPhi());
1896 t_cc_raw_e.push_back(cluster->rawE());
1897
1898 std::vector<float> energies;
1899
1900 for (size_t s = CaloSampling::PreSamplerB; s < CaloSampling::Unknown; s++ )
1901 {
1902 bool hasSample = cluster->hasSampling( (xAOD::CaloCluster::CaloSample) s );
1903 float e = 0;
1904 if (hasSample)
1905 {
1906 e = cluster->eSample( (xAOD::CaloCluster::CaloSample) s);
1907 }
1908 energies.push_back(e);
1909 }
1910 t_cc_raw_samp.push_back(energies);
1911
1912 float et = cluster->e() / TMath::CosH(cluster->eta());
1913 t_clusEt += et;
1914 if (et > t_clusEtMax)
1915 {
1916 t_clusEtMax = et;
1917 t_clusetaMax = cluster->eta();
1918 t_clusphiMax = cluster->phi();
1919 }
1920
1921 double cell_sig = 0;
1922 if (!cluster->retrieveMoment(xAOD::CaloCluster::CELL_SIGNIFICANCE, cell_sig)) {ANA_MSG_DEBUG("processClusters() : No CELL_SIGNIFICANCE!");}
1923 t_cc_sig.push_back(cell_sig);
1924 double cell_layer = 0;
1925 if (!cluster->retrieveMoment(xAOD::CaloCluster::CELL_SIG_SAMPLING, cell_layer)) {ANA_MSG_DEBUG("processClusters() : No CELL_SIG_SAMPLING!");}
1926 t_cc_layer.push_back(static_cast<int>(cell_layer));
1927 //t_nclus++;
1928 }
1929
1930 if ( (!enableClusters) || (t_ntrk >= trackLimit) ) // if disabled or if too many tracks
1931 {
1932 t_cc_pt.clear();
1933 t_cc_eta.clear();
1934 t_cc_phi.clear();
1935 t_cc_e.clear();
1936 t_cc_layer.clear();
1937 t_cc_sig.clear();
1938 }
1939 else
1940 {
1941 ANA_MSG_DEBUG("processClusters(): keeping clusters");
1942 }
1943 return;
1944}
float et(const xAOD::jFexSRJetRoI *j)
@ 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

◆ processEventInfo()

void ZdcNtuple::processEventInfo ( )

Definition at line 1300 of file ZdcNtuple.cxx.

1301{
1302 ANA_MSG_DEBUG( "processing event info");
1303
1304 t_bcid = m_eventInfo->bcid();
1305 t_runNumber = m_eventInfo->runNumber();
1306 t_eventNumber = m_eventInfo->eventNumber();
1307 t_lumiBlock = m_eventInfo->lumiBlock();
1308 t_bunchGroup = -1;
1309 t_extendedLevel1ID = m_eventInfo->extendedLevel1ID();
1310 t_timeStamp = m_eventInfo->timeStamp();
1311 t_timeStampNSOffset = m_eventInfo->timeStampNSOffset();
1313 t_avgIntPerCrossing = m_eventInfo->averageInteractionsPerCrossing();
1314 t_actIntPerCrossing = m_eventInfo->actualInteractionsPerCrossing();
1317
1318 if ( !(m_eventCounter++ % 1000) || msgLvl(MSG::DEBUG))
1319 {
1320 ANA_MSG_INFO("Event# " << m_eventCounter << " Run " << m_eventInfo->runNumber() << " Event " << m_eventInfo->eventNumber() << " LB " << m_eventInfo->lumiBlock() );
1321 }
1322
1323}
bool msgLvl(const MSG::Level lvl) const
uint32_t acceptEvent()
@ ForwardDet
The forward detectors.

◆ processFCal()

void ZdcNtuple::processFCal ( )

Definition at line 1638 of file ZdcNtuple.cxx.

1639{
1640 ANA_MSG_DEBUG("processFCal: processing FCal");
1641
1642 t_fcalEt = 0.;
1643 t_fcalEtA = 0.;
1644 t_fcalEtC = 0.;
1645 t_fcalEtA_TT = 0.;
1646 t_fcalEtC_TT = 0.;
1647
1648 if (m_caloSums)
1649 {
1650 static const SG::ConstAccessor<std::string> SummaryAcc("Summary");
1651 for (const auto calosum : *m_caloSums)
1652 {
1653 const std::string name = SummaryAcc(*calosum);
1654 if (name == "FCal")
1655 {
1656 t_fcalEt = calosum->et();
1657 ANA_MSG_DEBUG("processFCal: fcalEt = " << t_fcalEt);
1658 }
1659
1660 if (name == "All")
1661 {
1662 t_totalEt = calosum->et();
1663 ANA_MSG_DEBUG("processFCal: totalEt = " << t_totalEt);
1664 }
1665 }
1666 }
1667
1668 t_fcalEtA = 0;
1669 t_fcalEtC = 0;
1670 t_totalEt24 = 0;
1671
1672 if (m_eventShapes)
1673 {
1674 for (const auto eventShape : *m_eventShapes)
1675 {
1676 int layer = eventShape->layer();
1677 float eta = eventShape->etaMin();
1678 float et = eventShape->et();
1679 if (layer == 21 || layer == 22 || layer == 23)
1680 {
1681 if (eta > 0) t_fcalEtA += et;
1682 if (eta < 0) t_fcalEtC += et;
1683 }
1684
1685 if (TMath::Abs(eta) < 2.4)
1686 {
1687 t_totalEt24 += et;
1688 }
1689 }
1690 }
1691
1692 t_L1ET = 0;
1693 t_L1ET24 = 0;
1694
1696 {
1697 t_L1ET = m_lvl1EnergySumRoI->energyT();
1698 //t_L1ET24 = m_lvl1EnergySumRoI->energyTRestricted(); // TBD when limited eta ET available
1699 }
1700
1701 return;
1702}
Scalar eta() const
pseudorapidity method
SG::ConstAccessor< T, ALLOC > ConstAccessor
Definition AuxElement.h:570
@ layer
Definition HitInfo.h:79

◆ processGaps()

void ZdcNtuple::processGaps ( )

Definition at line 1704 of file ZdcNtuple.cxx.

1705{
1706
1707 float eta_min = 5;
1708 float eta_max = -5;
1709
1710 if (!m_caloClusters) return;
1711 for (const auto cl : *m_caloClusters)
1712 {
1713
1714 if (cl->pt() < m_gapPtMin) continue;
1715
1716 int etabin = h_TCSigCut->GetXaxis()->FindBin(cl->eta());
1717 if (etabin < 1 || etabin > h_TCSigCut->GetNbinsX()) continue;
1718 float sig_cut = h_TCSigCut->GetBinContent(etabin);
1719 float sig = cl->getMomentValue(xAOD::CaloCluster::CELL_SIGNIFICANCE);
1720 int cl_cell_sig_samp = static_cast<int>(cl->getMomentValue(xAOD::CaloCluster::CELL_SIG_SAMPLING));
1721
1722 // ANA_MSG_VERBOSE ("gapclus: etabin " << etabin << " sig_cut=" << sig_cut << " sig=" << sig << " samp=" << cl_cell_sig_samp);
1723
1724 if (sig < sig_cut) continue;
1725
1726 if (cl_cell_sig_samp >= CaloSampling::TileBar0 && cl_cell_sig_samp <= CaloSampling::TileExt2) continue;
1727
1728 if (cl->eta() < eta_min) eta_min = cl->eta();
1729 if (cl->eta() > eta_max) eta_max = cl->eta();
1730
1731 }
1732
1733 t_edgeGapA = 4.9 - eta_max;
1734 t_edgeGapC = eta_min + 4.9;
1735 ANA_MSG_DEBUG("processGaps(): egA " << t_edgeGapA << " , egC " << t_edgeGapC);
1736
1737}
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]

◆ processInDet()

void ZdcNtuple::processInDet ( )

Definition at line 1350 of file ZdcNtuple.cxx.

1351{
1352 ANA_MSG_DEBUG("processInDet(): processing tracks & vertices!");
1353 t_ntrk = 0;
1354 t_nvx = 0;
1355 t_vxntrk = 0;
1356 t_vx_trk_index.clear();
1357 t_vxsumpt2 = 0;
1358 t_vxtype = 0;
1359 t_pvindex = -1;
1360 t_puvxntrk = 0;
1361 t_puvxsumpt = 0;
1363 t_vxnminbias = 0;
1364
1365 int i;
1366 for (i = 0; i < 3; i++) t_vx[i] = 0;
1367 for (i = 0; i < 6; i++) t_vxcov[i] = 0;
1368
1369 const xAOD::Vertex* primary_vertex = nullptr;
1370 size_t pv_index = -1;
1371 size_t vx_index = 0;
1372 float max_pileup_sumpT = 0.;
1373 int max_pileup_nTrack = 0;
1374 float max_pileup_z = 0;
1375 int nStrongPileup = 0;
1376
1377 t_nvtx = 0;
1378 t_vtx_type.clear();
1379 t_vtx_x.clear();
1380 t_vtx_y.clear();
1381 t_vtx_z.clear();
1382 t_vtx_ntrk_all.clear();
1383 t_vtx_sumpt2_all.clear();
1384 t_vtx_ntrk.clear();
1385 t_vtx_sumpt2.clear();
1386 t_vtx_trk_index.clear();
1387
1389 {
1390 ANA_MSG_DEBUG("processInDet: processing vertices");
1391
1392 t_nvx = m_primaryVertices->size();
1393
1394 static const SG::ConstAccessor<float> sumPt2Acc("sumPt2");
1395
1396 // start of new vertex representation
1397 t_nvtx = m_primaryVertices->size();
1398 for (const auto vertex : *m_primaryVertices)
1399 {
1400 float vtx_sumpt2 = 0;
1401 int vtx_ntrk = 0;
1402
1403 t_vtx_type.push_back(vertex->vertexType());
1404 t_vtx_x.push_back(0);
1405 t_vtx_y.push_back(0);
1406 t_vtx_z.push_back(vertex->z());
1407
1408 t_vtx_ntrk.push_back(vtx_ntrk);
1409 t_vtx_sumpt2.push_back(vtx_sumpt2 / 1e6);
1410 t_vtx_ntrk_all.push_back(vertex->nTrackParticles());
1411
1412 if (sumPt2Acc.isAvailable(*vertex))
1413 t_vtx_sumpt2_all.push_back(sumPt2Acc(*vertex));
1414 else
1415 t_vtx_sumpt2_all.push_back(-1);
1416
1417 std::vector<int16_t> trk_index;
1418 if ( m_trackParticles && vertex->nTrackParticles() <= trackLimit )
1419 {
1420 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1421 for (size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1422 {
1423 ElementLink< xAOD::TrackParticleContainer > trkLink = vxTrackParticles.at(itrk);
1424 trk_index.push_back(trkLink.index());
1425 }
1426 }
1427 t_vtx_trk_index.push_back(trk_index);
1428
1429 // end of new vertex representation
1430
1431 if (vertex->vertexType() == xAOD::VxType::PriVtx)
1432 {
1433 primary_vertex = vertex;
1434 pv_index = vx_index;
1435 }
1436 if (vertex->vertexType() == xAOD::VxType::PileUp)
1437 {
1438 float pileup_sumpT = 0;
1439 int pileup_nTrack = 0;
1440 for (size_t itr = 0; itr < vertex->nTrackParticles(); itr++)
1441 {
1442 int track_quality = trackQuality(vertex->trackParticle(itr), vertex);
1443 if (track_quality != -1 && (track_quality & 128) != 0)
1444 {
1445 pileup_nTrack++;
1446 pileup_sumpT += vertex->trackParticle(itr)->pt();
1447 }
1448 }
1449 if (pileup_sumpT > max_pileup_sumpT)
1450 {
1451 max_pileup_sumpT = pileup_sumpT;
1452 max_pileup_nTrack = pileup_nTrack;
1453 max_pileup_z = vertex->z();
1454 }
1455 if (pileup_sumpT > 5e3 || pileup_nTrack > 5) nStrongPileup++;
1456 }
1457 vx_index++;
1458 }
1459 }
1460
1461 t_nstrong = nStrongPileup;
1462
1463 if (primary_vertex != nullptr)
1464 {
1465 t_vx[0] = primary_vertex->x();
1466 t_vx[1] = primary_vertex->y();
1467 t_vx[2] = primary_vertex->z();
1468 /*
1469 const std::vector<float>& cov = primary_vertex->covariance();
1470 */
1471 //for (size_t i=0;i<cov.size();i++)
1472 for (size_t i = 0; i < 6; i++)
1473 {
1474 //t_vxcov[i] = cov.at(i);
1475 t_vxcov[i] = 0;
1476 }
1477 t_vxntrk = primary_vertex->nTrackParticles();
1478 static const SG::ConstAccessor<float> sumPt2Acc("sumPt2");
1479 if (sumPt2Acc.isAvailable(*primary_vertex))
1480 t_vxsumpt2 = sumPt2Acc(*primary_vertex);
1481 else
1482 t_vxsumpt2 = 0;
1483
1484 t_vxtype = primary_vertex->vertexType();
1485 t_pvindex = pv_index;
1486 t_puvxz = max_pileup_z;
1487 t_puvxsumpt = max_pileup_sumpT;
1488 t_puvxntrk = max_pileup_nTrack;
1489
1490 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = primary_vertex->trackParticleLinks();
1491
1492 for (size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1493 {
1494 ElementLink< xAOD::TrackParticleContainer > trkLink = vxTrackParticles.at(itrk);
1495 if (!trkLink.isValid()) continue;
1496 if (m_trackParticles)
1497 {
1498 if (m_trackParticles->size() <= trackLimit)
1499 t_vx_trk_index.push_back(trkLink.index());
1500 }
1501 }
1502
1503 }
1504
1505
1506 if (m_trackParticles)
1507 {
1508 ANA_MSG_DEBUG("processInDet: processing trackss");
1509
1510 t_trk_pt.clear();
1511 t_trk_eta.clear();
1512 t_trk_phi.clear();
1513 t_trk_e.clear();
1514 t_trk_index.clear();
1515 t_trk_theta.clear();
1516 t_trk_charge.clear();
1517 t_trk_d0.clear();
1518 t_trk_z0.clear();
1519 t_trk_vz.clear();
1520 t_trk_vtxz.clear();
1521 t_trk_quality.clear();
1522 t_trk_nPixHits.clear();
1523 t_trk_nSctHits.clear();
1524 t_trk_nPixDead.clear();
1525 t_trk_nSctDead.clear();
1526 t_trk_nPixHoles.clear();
1527 t_trk_nSctHoles.clear();
1528 t_trk_nTrtHits.clear();
1529 t_trk_nTrtOutliers.clear();
1530 t_trk_inPixHits.clear();
1531 t_trk_exPixHits.clear();
1532 t_trk_ninPixHits.clear();
1533 t_trk_nexPixHits.clear();
1534 t_trk_pixeldEdx.clear();
1535
1536 t_ntrk = m_trackParticles->size();
1537
1538 if ( !enableTracks ) return;
1539
1540 if ( t_ntrk <= trackLimit ) // dump all tracks
1541 {
1542 int trk_index = 0;
1543 for (const auto track : *m_trackParticles)
1544 {
1545 writeTrack(track, primary_vertex, trk_index++);
1546 }
1547 }
1548 else // write small vertices
1549 {
1550 for (const auto vertex : *m_primaryVertices)
1551 {
1552 if (vertex->nTrackParticles() <= trackLimit )
1553 {
1554 const std::vector< ElementLink< xAOD::TrackParticleContainer > >& vxTrackParticles = vertex->trackParticleLinks();
1555 for (size_t itrk = 0; itrk < vxTrackParticles.size(); itrk++)
1556 {
1557 ElementLink< xAOD::TrackParticleContainer > trkLink = vxTrackParticles.at(itrk);
1558 writeTrack(*trkLink, vertex, trkLink.index());
1559 }
1560 }
1561 }
1562 }
1563 }
1564
1565 return;
1566}
void writeTrack(const xAOD::TrackParticle *, const xAOD::Vertex *vertex, int)
int trackQuality(const xAOD::TrackParticle *tp, const xAOD::Vertex *vertex)
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.
@ PileUp
Pile-up vertex.
@ PriVtx
Primary vertex.
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ processMBTS()

void ZdcNtuple::processMBTS ( )

Definition at line 1739 of file ZdcNtuple.cxx.

1740{
1741 ANA_MSG_DEBUG("processMBTS: trying to process!");
1742 t_mbts_countA = 0;
1743 t_mbts_countC = 0;
1746 t_mbts_timeA = 0.;
1747 t_mbts_timeC = 0.;
1748 t_mbts_timeDiff = 0.;
1749
1750 if (m_mbtsInfo->size() > 0)
1751 {
1752 t_mbts_countA = m_mbtsInfo->at(0)->countA();
1753 t_mbts_countC = m_mbtsInfo->at(0)->countC();
1754 t_mbts_timeA = m_mbtsInfo->at(0)->timeA();
1755 t_mbts_timeC = m_mbtsInfo->at(0)->timeC();
1756 t_mbts_timeDiff = m_mbtsInfo->at(0)->timeDiff();
1757 }
1758 else
1759 {
1760 ANA_MSG_INFO("processMBTS: Warning: MBTS info empty!");
1761 }
1762
1763 for (int iside = 0; iside < 2; iside++)
1764 {
1765 for (int iin = 0; iin < 8; iin++)
1766 {
1767 t_mbts_in_e[iside][iin] = 0.;
1768 t_mbts_in_t[iside][iin] = 0.;
1769 t_T2mbts_in_e[iside][iin] = 0.;
1770 t_T2mbts_in_t[iside][iin] = 0.;
1771 }
1772 for (int iout = 0; iout < 4; iout++)
1773 {
1774 t_mbts_out_e[iside][iout] = 0.;
1775 t_mbts_out_t[iside][iout] = 0.;
1776 t_T2mbts_out_e[iside][iout] = 0.;
1777 t_T2mbts_out_t[iside][iout] = 0.;
1778 }
1779 }
1780
1781 ANA_MSG_DEBUG ("filling MBTS");
1782
1783 if (m_mbtsModules == 0)
1784 {
1785 ANA_MSG_INFO("processMBTS: no MBTS container?");
1786 return;
1787 }
1788
1789 for (const auto mbtsMod : *m_mbtsModules)
1790 {
1791 int iside = 1;
1792 if (mbtsMod->type() < 0) iside = 0.;
1793 float phibin = 0.;
1794 int iphibin = -1;
1795 if (mbtsMod->eta() > 3)
1796 {
1797 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 8.) - 0.4;
1798 iphibin = static_cast<int>(phibin);
1799 if (iphibin < 0 || iphibin > 7)
1800 {
1801 ANA_MSG_INFO("processMBTS: MBTS has bad phi bin");
1802 continue;
1803 }
1804 t_mbts_in_e[iside][iphibin] = mbtsMod->e();
1805 t_mbts_in_t[iside][iphibin] = mbtsMod->time();
1806 }
1807 else
1808 {
1809 phibin = mbtsMod->phi() / (2 * TMath::Pi() / 4.) - 0.24;
1810 iphibin = static_cast<int>(phibin);
1811 if (iphibin < 0 || iphibin > 3)
1812 {
1813 ANA_MSG_INFO("processMBTS: MBTS has bad phi bin");
1814 continue;
1815 }
1816 t_mbts_out_e[iside][iphibin] = mbtsMod->e();
1817 t_mbts_out_t[iside][iphibin] = mbtsMod->time();
1818 }
1819 }
1820
1821 if (!m_trigT2MbtsBits) return;
1822
1823 for (const auto mbtsBits : *m_trigT2MbtsBits)
1824 {
1825 const std::vector<float>& energies = mbtsBits->triggerEnergies();
1826 const std::vector<float>& times = mbtsBits->triggerTimes();
1827 for (int imbts = 0; imbts < 32; imbts++)
1828 {
1829 int side = imbts / 16;
1830 int ring = (imbts - 16 * side) / 8;
1831 bool isInner = (ring == 0);
1832 int index = (imbts - 16 * side - ring * 8);
1833 if (!isInner)
1834 {
1835 if ((index % 2) != 0) continue; // skip odd out ring
1836 index /= 2;
1837 }
1838 int iside = (side == 0) ? 1 : 0; // code maps side 1 into first 16 bits and side -1 into second set
1839
1840 ANA_MSG_VERBOSE ("imbts=" << imbts << " isInner=" << isInner << " iside=" << iside << " index=" << index << " e=" << energies.at(imbts) << " t=" << times.at(imbts));
1841 if (iside < 2 and index < 8){ //indices in range?
1842 if (isInner)
1843 {
1844 t_T2mbts_in_e[iside][index] = energies.at(imbts);
1845 t_T2mbts_in_t[iside][index] = times.at(imbts);
1846 if (TMath::Abs(times.at(imbts)) < 12.0 && energies.at(imbts) > 40 / 222.)
1847 {
1848 if (iside == 0) t_T2mbts_countCin++;
1849 if (iside == 1) t_T2mbts_countAin++;
1850 }
1851 }
1852 else
1853 {
1854 t_T2mbts_out_e[iside][index] = energies.at(imbts);
1855 t_T2mbts_out_t[iside][index] = times.at(imbts);
1856 }
1857 } //indices check
1858 }
1859 }
1860
1861 return;
1862}
#define ANA_MSG_VERBOSE(xmsg)
Macro printing verbose messages.
const xAOD::MBTSModuleContainer * m_mbtsModules
Definition ZdcNtuple.h:120
const xAOD::ForwardEventInfoContainer * m_mbtsInfo
Definition ZdcNtuple.h:119
const xAOD::TrigT2MbtsBitsContainer * m_trigT2MbtsBits
Definition ZdcNtuple.h:121
str index
Definition DeMoScan.py:362

◆ processMCEventCollection()

void ZdcNtuple::processMCEventCollection ( )

Definition at line 1147 of file ZdcNtuple.cxx.

1147 {
1148 /******************************************
1149 * Get the McEventCollection (input)
1150 ******************************************/
1151 SG::ReadHandle<McEventCollection> mcEventCollection (m_mcEventCollectionName);
1152 if (!mcEventCollection.isValid()){
1153 ANA_MSG_ERROR("Could not retrieve HepMC with key:" << m_mcEventCollectionName.key());
1154 return;
1155 }else{
1156 ANA_MSG_DEBUG("Retrieved HepMC with key: " << m_mcEventCollectionName.key());
1157 }
1158
1159 /******************************************
1160 * Clear and resize the output vectors
1161 ******************************************/
1162 t_ZdcTruthParticlePosx.clear();
1163 t_ZdcTruthParticlePosy.clear();
1164 t_ZdcTruthParticlePosz.clear();
1165 t_ZdcTruthParticleTime.clear();
1166 t_ZdcTruthParticlePx.clear();
1167 t_ZdcTruthParticlePy.clear();
1168 t_ZdcTruthParticlePz.clear();
1170 t_ZdcTruthParticlePid.clear();
1172
1173 /******************************************
1174 * Sort the particles into sides and add
1175 * them to the output vectors
1176 ******************************************/
1177 for (unsigned int cntr = 0; cntr < mcEventCollection->size(); ++cntr){
1178 const HepMC::GenEvent *genEvt = (*mcEventCollection)[cntr];
1179#ifdef HEPMC3
1180 for (const auto &vertex : genEvt->vertices()){
1181 for (const auto &particle : vertex->particles_in()){
1182#else
1183 for (const auto &vertex : genEvt->vertex_range()){
1184 for (auto ip = vertex->particles_in_const_begin();
1185 ip != vertex->particles_in_const_end();
1186 ++ip) {
1187 auto particle = *ip;
1188#endif
1189 t_ZdcTruthParticlePosx.push_back(vertex->position().x());
1190 t_ZdcTruthParticlePosy.push_back(vertex->position().y());
1191 t_ZdcTruthParticlePosz.push_back(vertex->position().z());
1192 t_ZdcTruthParticleTime.push_back(vertex->position().t());
1193 t_ZdcTruthParticlePx.push_back(particle->momentum().x());
1194 t_ZdcTruthParticlePy.push_back(particle->momentum().y());
1195 t_ZdcTruthParticlePz.push_back(particle->momentum().z());
1196 t_ZdcTruthParticleEnergy.push_back(particle->momentum().e());
1197 t_ZdcTruthParticlePid.push_back(particle->pdg_id());
1198 t_ZdcTruthParticleStatus.push_back(particle->status());
1199 } // end loop over particles
1200 }// end loop over vertices
1201 }// end loop over HepMC events
1202}
#define ANA_MSG_ERROR(xmsg)
Macro printing error messages.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses

◆ processProtons()

void ZdcNtuple::processProtons ( )

Definition at line 1946 of file ZdcNtuple.cxx.

1946 {
1947
1948 proton_pt.clear();
1949 proton_eta.clear();
1950 proton_phi.clear();
1951 proton_e.clear();
1952 proton_side.clear();
1953 proton_eLoss.clear();
1954 proton_t.clear();
1955
1956 proton_track_stationID.clear();
1957 proton_track_nClusters.clear();
1958 proton_track_xLocal.clear();
1959 proton_track_yLocal.clear();
1960 proton_track_zLocal.clear();
1961 proton_track_xSlope.clear();
1962 proton_track_ySlope.clear();
1963
1964 proton_track_stationID.resize(m_afpProtons->size(), std::vector<int>(2));
1965 proton_track_nClusters.resize(m_afpProtons->size(), std::vector<int>(2));
1966 proton_track_xLocal.resize(m_afpProtons->size(), std::vector<float>(2));
1967 proton_track_yLocal.resize(m_afpProtons->size(), std::vector<float>(2));
1968 proton_track_zLocal.resize(m_afpProtons->size(), std::vector<float>(2));
1969 proton_track_xSlope.resize(m_afpProtons->size(), std::vector<float>(2));
1970 proton_track_ySlope.resize(m_afpProtons->size(), std::vector<float>(2));
1971
1972 nProtons = 0;
1973
1974 for(const auto * proton: *m_afpProtons){
1975
1976 proton_pt.push_back(proton->pt());
1977 proton_eta.push_back(proton->eta());
1978 proton_phi.push_back(proton->phi());
1979 proton_e.push_back(proton->e());
1980 proton_side.push_back(proton->side());
1981
1982 proton_eLoss.push_back((6800.-proton->e())/6800.);
1983 p_scat.SetPtEtaPhiE(proton->pt(), proton->eta(), proton->phi(), proton->e());
1984 (signbit(proton->eta())) ? p_beam.SetPxPyPzE(0.0, 0.0, -6800.0, 6800.0) : p_beam.SetPxPyPzE(0.0, 0.0, 6800.0,\
1985 6800.0);
1986
1987 proton_t.push_back( (p_beam - p_scat)*(p_beam - p_scat));
1988
1989 for(int i=0; i< int(proton->nTracks()); i++){
1990
1991 proton_track_stationID.at(nProtons).at(i) = proton->track(i)->stationID();
1992 proton_track_nClusters.at(nProtons).at(i) = proton->track(i)->nClusters();
1993 proton_track_xLocal.at(nProtons).at(i) = proton->track(i)->xLocal();
1994 proton_track_yLocal.at(nProtons).at(i) = proton->track(i)->yLocal();
1995 proton_track_zLocal.at(nProtons).at(i) = proton->track(i)->zLocal();
1996 proton_track_xSlope.at(nProtons).at(i) = proton->track(i)->xSlope();
1997 proton_track_ySlope.at(nProtons).at(i) = proton->track(i)->ySlope();
1998
1999 }
2000
2001 nProtons++;
2002 }
2003
2004 return;
2005}
TLorentzVector p_scat
Definition ZdcNtuple.h:427
TLorentzVector p_beam
Definition ZdcNtuple.h:426

◆ processTriggerDecision()

bool ZdcNtuple::processTriggerDecision ( )

Definition at line 1204 of file ZdcNtuple.cxx.

1205{
1206 ANA_MSG_DEBUG ("Processing trigger");
1207
1208 bool passTrigger = false;
1209
1210 t_trigger = 0;
1211 t_trigger_TBP = 0;
1212
1213 for (int i = 0; i < 16; i++)
1214 {
1215 t_tav[i] = 0;
1216 t_tbp[i] = 0;
1217 }
1218
1219 if (m_trigDecision)
1220 {
1221 for (int i = 0; i < 16; i++)
1222 {
1223 t_tbp[i] = m_trigDecision->tbp().at(i);
1224 t_tav[i] = m_trigDecision->tav().at(i);
1225 ANA_MSG_DEBUG( "TD: " << i << " tbp: " << std::hex << t_tbp[i] << "\t" << t_tav[i] );
1226 }
1227 t_bunchGroup = m_trigDecision->bgCode();
1228 }
1229
1230 if (enableTrigger)
1231 {
1232
1233 int ic = 0;
1234 for (auto cg : m_chainGroups)
1235 {
1236
1237 if (zdcCalib)
1238 {
1239 std::string name = cg->getListOfTriggers().at(0);
1240 const unsigned int triggerbits = m_trigDecisionTool->isPassedBits(name);
1241 // deferred functionality
1242 //bool tbp = triggerbits&TrigDefs::L1_isPassedBeforePrescale;
1243 //bool tap = triggerbits&TrigDefs::L1_isPassedAfterPrescale;
1244 bool tav = triggerbits&TrigDefs::L1_isPassedAfterVeto;
1245 ANA_MSG_DEBUG("TD: checking trigger name=" << name<< " tav=" << tav);
1246 if (tav)
1247 {
1248 t_trigger += (1 << ic);
1249 t_decisions[ic] = true;
1250 t_prescales[ic] = cg->getPrescale();
1251 passTrigger = true;
1252 }
1253 else
1254 {
1255 t_decisions[ic] = 0;
1256 t_prescales[ic] = 0;
1257 }
1258 }
1259 else
1260 {
1261 if (cg->isPassed())
1262 {
1263 t_trigger += (1 << ic);
1264 t_decisions[ic] = true;
1265 t_prescales[ic] = cg->getPrescale();
1266 passTrigger = true;
1267 }
1268 else
1269 {
1270 t_decisions[ic] = 0;
1271 t_prescales[ic] = 0;
1272 }
1273 }
1274
1275 if (cg->isPassedBits()&TrigDefs::EF_passedRaw)
1276 {
1277 t_trigger_TBP += (1 << ic);
1278 }
1279
1280
1281 ic++;
1282 }
1283
1284 int irc = 0;
1285 for (auto cg : m_rerunChainGroups)
1286 {
1287 t_rerunDecisions[irc] = false;
1288 if (cg->isPassedBits()&TrigDefs::EF_passedRaw)
1289 {
1290 t_rerunDecisions[irc] = true;
1291 }
1292 irc++;
1293 }
1294
1295 }
1296
1297 return passTrigger;
1298}
std::vector< const Trig::ChainGroup * > m_rerunChainGroups
Definition ZdcNtuple.h:138
std::vector< const Trig::ChainGroup * > m_chainGroups
Definition ZdcNtuple.h:137
bool t_rerunDecisions[200]
Definition ZdcNtuple.h:173
float t_prescales[200]
Definition ZdcNtuple.h:171
bool t_decisions[200]
Definition ZdcNtuple.h:172
int ic
Definition grepfile.py:33

◆ processTriggerTowers()

void ZdcNtuple::processTriggerTowers ( )

◆ processVInjInfo()

void ZdcNtuple::processVInjInfo ( )

Definition at line 1325 of file ZdcNtuple.cxx.

1325 {
1326 // Check for new run number
1327 //
1329 //
1330 // Get access to the injector pulse steps for this run
1331 //
1333 if (!m_injMapRunToken.isValid()) {
1334 ANA_MSG_ERROR("Unable to obtain injector pulse steps for run " << t_runNumber);
1335 }
1336 else {
1337 unsigned int startLB = m_zdcInjPulserAmpMap->getFirstLumiBlock(m_injMapRunToken);
1338 unsigned int nsteps = m_zdcInjPulserAmpMap->getNumSteps(m_injMapRunToken);
1339 ANA_MSG_DEBUG("Successfully obtained injector pulse steps for run " << t_runNumber
1340 << ", first LB = " << startLB << ", number of steps = " << nsteps);
1341 }
1342
1343 // update the last run number to be the current run number
1345 }
1346
1348}
unsigned int m_lastRunNumber
Definition ZdcNtuple.h:49
ZdcInjPulserAmpMap::Token m_injMapRunToken
Definition ZdcNtuple.h:50

◆ processZdcNtupleFromModules()

void ZdcNtuple::processZdcNtupleFromModules ( )

Definition at line 673 of file ZdcNtuple.cxx.

674{
675
676 SG::ReadHandle<xAOD::ZdcModuleContainer> zdcModules (m_zdcModuleContainerName);
677 SG::ReadHandle<xAOD::ZdcModuleContainer> zdcSums (m_zdcSumContainerName);
678
679 ANA_MSG_DEBUG ("copying already processed info!");
680
681 //Reset the truth separately since it has a different range
682 for(int iside : {0,1}){
683 for(int imod = 0; imod < 7; ++imod){
684 t_ZdcModuleTruthTotal[iside][imod] = 0;
685 t_ZdcModuleTruthInvis[iside][imod] = 0;
686 t_ZdcModuleTruthEM[iside][imod] = 0;
687 t_ZdcModuleTruthNonEM[iside][imod] = 0;
688 t_ZdcModuleTruthEscaped[iside][imod] = 0;
689 t_ZdcModuleTruthNphotons[iside][imod] = 0;
690 }
691 for(int ch = 0; ch < 16; ++ch){
692 t_RpdModuleTruthNphotons[iside][ch] = 0;
693 }
694 }
695
696 for (size_t iside = 0; iside < 2; iside++)
697 {
698 t_ZdcAmp[iside] = 0; t_ZdcEnergy[iside] = 0; t_ZdcEnergyErr[iside] = 0;t_ZdcTime[iside] = 0; t_ZdcStatus[iside] = 0;
699 t_ZdcNLEnergy[iside] = 0;t_ZdcNLEnergyErr[iside] = 0;
700 t_ZdcTrigEff[iside] = 0;t_ZdcLucrodTriggerSideAmp[iside] = 0; t_ZdcLucrodTriggerSideAmpLG[iside] = 0; t_ZdcTruthTotal[iside] = 0;
701 t_ZdcTruthInvis[iside] = 0; t_ZdcTruthEM[iside] = 0; t_ZdcTruthNonEM[iside] = 0;
702 t_ZdcTruthEscaped[iside] = 0;
703 for (int imod = 0; imod < 4; imod++)
704 {
705 t_ZdcModuleAmp[iside][imod] = 0; t_ZdcModuleAmpUncorr[iside][imod] = 0;
706 t_ZdcModuleTime[iside][imod] = 0; t_ZdcModuleStatus[iside][imod] = 0;
707
708 t_ZdcModuleCalibAmp[iside][imod] = 0; t_ZdcModuleCalibTime[iside][imod] = 0; t_ZdcModuleChisq[iside][imod] = 0; t_ZdcModuleChisqRatio[iside][imod] = 0; t_ZdcModuleFitAmp[iside][imod] = 0;
709 t_ZdcModuleFitT0[iside][imod] = 0; t_ZdcModuleBkgdMaxFraction[iside][imod] = 0; t_ZdcModuleAmpError[iside][imod] = 0;
710 t_ZdcModuleMinDeriv2nd[iside][imod] = 0; t_ZdcModulePresample[iside][imod] = 0; t_ZdcModulePreSampleAmp[iside][imod] = 0;
711 t_ZdcLucrodTriggerAmp[iside][imod] = 0;t_ZdcLucrodTriggerAmpLG[iside][imod] = 0;
712 t_ZdcModuleMaxADC[iside][imod] = 0; t_ZdcModuleMaxADCHG[iside][imod] = 0; t_ZdcModuleMaxADCLG[iside][imod] = 0;
713 t_ZdcModulePeakADCHG[iside][imod] = 0; t_ZdcModulePeakADCLG[iside][imod] = 0;
714 t_ZdcModuleAmpLGRefit[iside][imod] = 0; t_ZdcModuleAmpCorrLGRefit[iside][imod] = 0;
715 t_ZdcModuleT0LGRefit[iside][imod] = 0; t_ZdcModuleT0SubLGRefit[iside][imod] = 0; t_ZdcModuleChisqLGRefit[iside][imod] = 0;
716
718 {
719 for (int ig=0;ig<2;ig++)
720 {
721 for (int id=0;id<2;id++)
722 {
723 for (unsigned int isamp=0;isamp<nsamplesZdc;isamp++)
724 {
725 if (nsamplesZdc==7) t_raw7[iside][imod][ig][id][isamp]=0;
726 if (nsamplesZdc==15) t_raw15[iside][imod][ig][id][isamp]=0;
727 if (nsamplesZdc==24) t_raw24[iside][imod][ig][id][isamp]=0;
728 if (nsamplesZdc==32) t_raw32[iside][imod][ig][id][isamp]=0;
729 if (nsamplesZdc==40) t_raw40[iside][imod][ig][id][isamp]=0;
730 }
731 }
732 }
733 if (nsamplesZdc==24||nsamplesZdc==32||nsamplesZdc==40)
734 {
735 for (int ch=0;ch<16;ch++)
736 {
737 for (unsigned int isamp=0;isamp<nsamplesZdc;isamp++)
738 {
739 t_rpdRaw[iside][ch][isamp]=0;
740 }
741 }
742 }
743 }
744 if (enableRPD)
745 {
746 for (int ch = 0; ch < 16; ch++) {
747 t_RpdChannelBaseline[iside][ch] = 0;
748 std::fill(t_RpdChannelPileupExpFitParams[iside][ch], t_RpdChannelPileupExpFitParams[iside][ch] + 2, 0);
750 std::fill(t_RpdChannelPileupExpFitParamErrs[iside][ch], t_RpdChannelPileupExpFitParamErrs[iside][ch] + 2, 0);
754 t_RpdChannelAmplitude[iside][ch] = 0;
755 t_RpdChannelAmplitudeCalib[iside][ch] = 0;
756 t_RpdChannelMaxADC[iside][ch] = 0;
757 t_RpdChannelMaxADCCalib[iside][ch] = 0;
758 t_RpdChannelMaxSample[iside][ch] = 0;
759 t_RpdChannelStatus[iside][ch] = 0;
760 t_RpdChannelPileupFrac[iside][ch] = 0;
761 }
762 t_RpdSideStatus[iside] = 0;
763 }
764 if (enableCentroid)
765 {
766 t_centroidStatus[iside] = 0;
767 std::fill(t_RPDChannelSubtrAmp[iside], t_RPDChannelSubtrAmp[iside] + 16, 0);
768 t_RPDSubtrAmpSum[iside] = 0;
771 t_xCentroidPreAvgSubtr[iside] = 0;
772 t_yCentroidPreAvgSubtr[iside] = 0;
773 t_xCentroid[iside] = 0;
774 t_yCentroid[iside] = 0;
775 std::fill(t_xRowCentroid[iside], t_xRowCentroid[iside] + 4, 0);
776 std::fill(t_yColCentroid[iside], t_yColCentroid[iside] + 4, 0);
777 t_reactionPlaneAngle[iside] = 0;
778 }
779 }
780 }
781
782 t_ZdcModuleMask = 0;
783 if (enableCentroid) {
785 t_centroidEventValid = false;
787 }
788
789 /*
790 if (t_zdcEventInfoError == xAOD::EventInfo::Error)
791 {
792 ANA_MSG_INFO("ZDC event failed EventInfo error check - aborting!");
793 return;
794 }
795 */
796
797 static const SG::ConstAccessor<char> centroidEventValidAcc("centroidEventValid" + auxSuffix);
798 static const SG::ConstAccessor<float> cosDeltaReactionPlaneAngleAcc("cosDeltaReactionPlaneAngle" + auxSuffix);
799 static const SG::ConstAccessor<float> CalibEnergyAcc("CalibEnergy"+auxSuffix);
800 static const SG::ConstAccessor<float> CalibEnergyErrAcc("CalibEnergyErr"+auxSuffix);
801 static const SG::ConstAccessor<float> NLCalibEnergyAcc("NLCalibEnergy"+auxSuffix);
802 static const SG::ConstAccessor<float> NLCalibEnergyErrAcc("NLCalibEnergyErr"+auxSuffix);
803 static const SG::ConstAccessor<float> UncalibSumAcc("UncalibSum"+auxSuffix);
804 static const SG::ConstAccessor<float> UncalibSumErrAcc("UncalibSumErr"+auxSuffix);
805 static const SG::ConstAccessor<float> AverageTimeAcc("AverageTime"+auxSuffix);
806 static const SG::ConstAccessor<unsigned int> StatusAcc("Status"+auxSuffix);
807 static const SG::ConstAccessor<unsigned int> ModuleMaskAcc("ModuleMask"+auxSuffix);
808 static const SG::ConstAccessor<float> TruthTotalEnergyAcc("TruthTotalEnergy" + auxSuffix);
809 static const SG::ConstAccessor<float> TruthInvisibleEnergyAcc("TruthInvisibleEnergy" + auxSuffix);
810 static const SG::ConstAccessor<float> TruthEMEnergyAcc("TruthEMEnergy" + auxSuffix);
811 static const SG::ConstAccessor<float> TruthNonEMEnergyAcc("TruthNonEMEnergy" + auxSuffix);
812 static const SG::ConstAccessor<float> TruthEscapedEnergyAcc("TruthEscapedEnergy" + auxSuffix);
813 static const SG::ConstAccessor<unsigned int> centroidStatusAcc("centroidStatus" + auxSuffix);
814 static const SG::ConstAccessor<std::vector<float> > RPDChannelSubtrAmpAcc("RPDChannelSubtrAmp" + auxSuffix);
815 static const SG::ConstAccessor<float> RPDSubtrAmpSumAcc("RPDSubtrAmpSum" + auxSuffix);
816 static const SG::ConstAccessor<float> xCentroidPreGeomCorPreAvgSubtrAcc("xCentroidPreGeomCorPreAvgSubtr" + auxSuffix);
817 static const SG::ConstAccessor<float> yCentroidPreGeomCorPreAvgSubtrAcc("yCentroidPreGeomCorPreAvgSubtr" + auxSuffix);
818 static const SG::ConstAccessor<float> xCentroidPreAvgSubtrAcc("xCentroidPreAvgSubtr" + auxSuffix);
819 static const SG::ConstAccessor<float> yCentroidPreAvgSubtrAcc("yCentroidPreAvgSubtr" + auxSuffix);
820 static const SG::ConstAccessor<float> xCentroidAcc("xCentroid" + auxSuffix);
821 static const SG::ConstAccessor<float> yCentroidAcc("yCentroid" + auxSuffix);
822 static const SG::ConstAccessor<std::vector<float> > xRowCentroidAcc("xRowCentroid" + auxSuffix);
823 static const SG::ConstAccessor<std::vector<float> > yColCentroidAcc("yColCentroid" + auxSuffix);
824 static const SG::ConstAccessor<float> reactionPlaneAngleAcc("reactionPlaneAngle" + auxSuffix);
825 static const SG::ConstAccessor<unsigned int> RPDStatusAcc("RPDStatus" + auxSuffix);
826 static const SG::ConstAccessor<unsigned int> nPhotonsAcc("nPhotons" + auxSuffix);
827 static const SG::ConstAccessor<float> CalibTimeAcc("CalibTime" + auxSuffix);
828 static const SG::ConstAccessor<float> AmplitudeAcc("Amplitude" + auxSuffix);
829 static const SG::ConstAccessor<float> AmplitudeNoNonLinAcc("AmpNoNonLin" + auxSuffix);
830 static const SG::ConstAccessor<float> TimeAcc("Time" + auxSuffix);
831 static const SG::ConstAccessor<float> ChisqAcc("Chisq" + auxSuffix);
832 static const SG::ConstAccessor<float> ChisqRatioAcc("ChisqRatio" + auxSuffix);
833 static const SG::ConstAccessor<float> FitAmpAcc("FitAmp" + auxSuffix);
834 static const SG::ConstAccessor<float> FitAmpErrorAcc("FitAmpError" + auxSuffix);
835 static const SG::ConstAccessor<float> FitT0Acc("FitT0" + auxSuffix);
836 static const SG::ConstAccessor<float> BkgdMaxFractionAcc("BkgdMaxFraction" + auxSuffix);
837 static const SG::ConstAccessor<float> MinDeriv2ndAcc("MinDeriv2nd" + auxSuffix);
838 static const SG::ConstAccessor<float> PresampleAcc("Presample" + auxSuffix);
839 static const SG::ConstAccessor<float> PreSampleAmpAcc("PreSampleAmp" + auxSuffix);
840 static const SG::ConstAccessor<float> RPDChannelBaselineAcc("RPDChannelBaseline" + auxSuffix);
841 static const SG::ConstAccessor<std::vector<float> > RPDChannelPileupExpFitParamsAcc("RPDChannelPileupExpFitParams" + auxSuffix);
842 static const SG::ConstAccessor<std::vector<float> > RPDChannelPileupExpFitParamErrsAcc("RPDChannelPileupExpFitParamErrs" + auxSuffix);
843 static const SG::ConstAccessor<std::vector<float> > RPDChannelPileupStretchedExpFitParamsAcc("RPDChannelPileupStretchedExpFitParams" + auxSuffix);
844 static const SG::ConstAccessor<std::vector<float> > RPDChannelPileupStretchedExpFitParamErrsAcc("RPDChannelPileupStretchedExpFitParamErrs" + auxSuffix);
845 static const SG::ConstAccessor<float> RPDChannelPileupExpFitMSEAcc("RPDChannelPileupExpFitMSE" + auxSuffix);
846 static const SG::ConstAccessor<float> RPDChannelPileupStretchedExpFitMSEAcc("RPDChannelPileupStretchedExpFitMSE" + auxSuffix);
847 static const SG::ConstAccessor<float> RPDChannelAmplitudeAcc("RPDChannelAmplitude" + auxSuffix);
848 static const SG::ConstAccessor<float> RPDChannelAmplitudeCalibAcc("RPDChannelAmplitudeCalib" + auxSuffix);
849 static const SG::ConstAccessor<float> RPDChannelMaxADCAcc("RPDChannelMaxADC" + auxSuffix);
850 static const SG::ConstAccessor<float> RPDChannelMaxADCCalibAcc("RPDChannelMaxADCCalib" + auxSuffix);
851 static const SG::ConstAccessor<unsigned int> RPDChannelMaxSampleAcc("RPDChannelMaxSample" + auxSuffix);
852 static const SG::ConstAccessor<unsigned int> RPDChannelStatusAcc("RPDChannelStatus" + auxSuffix);
853 static const SG::ConstAccessor<float> RPDChannelPileupFracAcc("RPDChannelPileupFrac" + auxSuffix);
854 static const SG::ConstAccessor<float> AmpLGRefitAcc("AmpLGRefit" + auxSuffix);
855 static const SG::ConstAccessor<float> T0LGRefitAcc("T0LGRefit" + auxSuffix);
856 static const SG::ConstAccessor<float> T0SubLGRefitAcc("T0SubLGRefit" + auxSuffix);
857 static const SG::ConstAccessor<float> ChisqLGRefitAcc("ChisqLGRefit" + auxSuffix);
858
859 static const SG::ConstAccessor<uint16_t> LucrodTriggerAmpAcc("LucrodTriggerAmp");
860 static const SG::ConstAccessor<uint16_t> LucrodTriggerAmpLGAcc("LucrodTriggerAmpLG");
861 static const SG::ConstAccessor<uint16_t> LucrodTriggerSideAmpAcc("LucrodTriggerSideAmp");
862 static const SG::ConstAccessor<uint16_t> LucrodTriggerSideAmpLGAcc("LucrodTriggerSideAmpLG");
863 static const SG::ConstAccessor<float> Amplitude0Acc("Amplitude");
864 static const SG::ConstAccessor<float> MaxADCAcc("MaxADC");
865 static const SG::ConstAccessor<float> MaxADCHGAcc("MaxADCHG");
866 static const SG::ConstAccessor<float> MaxADCLGAcc("MaxADCLG");
867 static const SG::ConstAccessor<float> PeakADCHGAcc("PeakADCHG");
868 static const SG::ConstAccessor<float> PeakADCLGAcc("PeakADCLG");
869 static const SG::ConstAccessor<std::vector<uint16_t> > g0d0DataAcc("g0d0Data");
870 static const SG::ConstAccessor<std::vector<uint16_t> > g0d1DataAcc("g0d1Data");
871 static const SG::ConstAccessor<std::vector<uint16_t> > g1d0DataAcc("g1d0Data");
872 static const SG::ConstAccessor<std::vector<uint16_t> > g1d1DataAcc("g1d1Data");
873 static const SG::ConstAccessor<std::vector<uint16_t> > g0dataAcc("g0data");
874 static const SG::ConstAccessor<std::vector<uint16_t> > g1dataAcc("g1data");
875
878 t_rpdDecodingError = rpdErr;
879 t_zdcDecodingError = zdcErr;
880 if (enableCentroid) {
881 // locate global sum (only if centroid is needed)
882 xAOD::ZdcModule const * globalSum = nullptr;
883 for (auto const * zdcSum : *zdcSums) {
884 if (zdcSum->zdcSide() == 0) {
885 globalSum = zdcSum;
886 break;
887 }
888 }
889 if (!globalSum) {
890 ANA_MSG_ERROR("unable to locate global ZdcSum (side = 0)");
892 }
893 else {
894 t_centroidDecorationsAvailable = centroidStatusAcc.isAvailable(*globalSum);
895 }
896 }
897
898 if (rpdErr||zdcErr) ANA_MSG_WARNING( "Decoding errors ZDC=" << zdcErr << " RPD=" << rpdErr );
899
900 if (zdcSums.ptr())
901 {
902 ANA_MSG_DEBUG( "accessing ZdcSums" );
903 for (const auto zdcSum : *zdcSums)
904 {
905 if (zdcSum->zdcSide()==0) {
906 // trap new global sum
908 t_centroidEventValid = centroidEventValidAcc(*zdcSum);
909 t_cosDeltaReactionPlaneAngle = cosDeltaReactionPlaneAngleAcc(*zdcSum);
910 }
911 // no other branches are filled from global sum - skip to the real sides (C=-1 and A=1)
912 continue;
913 }
914 int iside = 0;
915 if (zdcSum->zdcSide() > 0) iside = 1;
916
917 //static SG::AuxElement::ConstAccessor< float > acc( "CalibEnergy" );
918 //t_ZdcEnergy[iside] = acc(*zdcSum);
919
920 if (enableZDC && !zdcErr)
921 {
922 t_ZdcEnergy[iside] = CalibEnergyAcc(*zdcSum);
923 t_ZdcEnergyErr[iside] = CalibEnergyErrAcc(*zdcSum);
924 if (NLCalibEnergyAcc.isAvailable(*zdcSum)) {
925 t_ZdcNLEnergy[iside] = NLCalibEnergyAcc(*zdcSum);
926 t_ZdcNLEnergyErr[iside] = NLCalibEnergyErrAcc(*zdcSum);
927 }
928 t_ZdcAmp[iside] = UncalibSumAcc(*zdcSum);
929 t_ZdcAmpErr[iside] = UncalibSumErrAcc(*zdcSum);
930 if (LucrodTriggerSideAmpAcc.isAvailable(*zdcSum))
931 t_ZdcLucrodTriggerSideAmp[iside] = LucrodTriggerSideAmpAcc(*zdcSum);
932 if (LucrodTriggerSideAmpLGAcc.isAvailable(*zdcSum))
933 t_ZdcLucrodTriggerSideAmpLG[iside] = LucrodTriggerSideAmpLGAcc(*zdcSum);
934
935 ANA_MSG_VERBOSE("processZdcNtupleFromModules: ZdcSum energy = " << t_ZdcEnergy[iside]);
936
937 t_ZdcTime[iside] = AverageTimeAcc(*zdcSum);
938 t_ZdcStatus[iside] = StatusAcc(*zdcSum);
939 t_ZdcModuleMask += ( ModuleMaskAcc(*zdcSum) << 4 * iside);
940
941 if(m_isMC){
942 ANA_MSG_DEBUG("Filling sum truth");
943 t_ZdcTruthTotal [iside] = TruthTotalEnergyAcc(*zdcSum);
944 t_ZdcTruthInvis [iside] = TruthInvisibleEnergyAcc(*zdcSum);
945 t_ZdcTruthEM [iside] = TruthEMEnergyAcc(*zdcSum);
946 t_ZdcTruthNonEM [iside] = TruthNonEMEnergyAcc(*zdcSum);
947 t_ZdcTruthEscaped[iside] = TruthEscapedEnergyAcc(*zdcSum);
948 }
949
950 }
951
952 if (enableRPD)
953 {
954 if (enableRPDAmp && !rpdErr)
955 {
956 t_RpdSideStatus[iside] = RPDStatusAcc(*zdcSum);
957 }
959 {
960 t_centroidStatus[iside] = centroidStatusAcc(*zdcSum);
961 std::vector<float> const& rpdChannelSubtrAmp = RPDChannelSubtrAmpAcc(*zdcSum);
962 std::copy(rpdChannelSubtrAmp.begin(), rpdChannelSubtrAmp.end(), t_RPDChannelSubtrAmp[iside]);
963 t_RPDSubtrAmpSum[iside] = RPDSubtrAmpSumAcc(*zdcSum);
964 t_xCentroidPreGeomCorPreAvgSubtr[iside] = xCentroidPreGeomCorPreAvgSubtrAcc(*zdcSum);
965 t_yCentroidPreGeomCorPreAvgSubtr[iside] = yCentroidPreGeomCorPreAvgSubtrAcc(*zdcSum);
966 t_xCentroidPreAvgSubtr[iside] = xCentroidPreAvgSubtrAcc(*zdcSum);
967 t_yCentroidPreAvgSubtr[iside] = yCentroidPreAvgSubtrAcc(*zdcSum);
968 t_xCentroid[iside] = xCentroidAcc(*zdcSum);
969 t_yCentroid[iside] = yCentroidAcc(*zdcSum);
970 std::vector<float> const& xRowCentroid = xRowCentroidAcc(*zdcSum);
971 std::copy(xRowCentroid.begin(), xRowCentroid.end(), t_xRowCentroid[iside]);
972 std::vector<float> const& yColCentroid = yColCentroidAcc(*zdcSum);
973 std::copy(yColCentroid.begin(), yColCentroid.end(), t_yColCentroid[iside]);
974 t_reactionPlaneAngle[iside] = reactionPlaneAngleAcc(*zdcSum);
975 }
976 }
977 }
978 }
979
980 ANA_MSG_DEBUG( "accessing ZdcModules" );
981
982 if (zdcModules.ptr())
983 {
984 for (const auto zdcMod : *zdcModules)
985 {
986 int iside = 0;
987 if (zdcMod->zdcSide() > 0) iside = 1;
988 int imod = zdcMod->zdcModule();
989
990 if (m_isMC){
991 //Calib hits are only stored in channel 0 of the RPD
992 if(!(imod == 4 && zdcMod->zdcChannel() != 0)){
993 t_ZdcModuleTruthTotal [iside][imod] = TruthTotalEnergyAcc(*zdcMod);
994 t_ZdcModuleTruthInvis [iside][imod] = TruthInvisibleEnergyAcc(*zdcMod);
995 t_ZdcModuleTruthEM [iside][imod] = TruthEMEnergyAcc(*zdcMod);
996 t_ZdcModuleTruthNonEM [iside][imod] = TruthNonEMEnergyAcc(*zdcMod);
997 t_ZdcModuleTruthEscaped[iside][imod] = TruthEscapedEnergyAcc(*zdcMod);
998 t_ZdcModuleTruthNphotons[iside][imod] = nPhotonsAcc(*zdcMod);
999 }
1000 //Calib hits are stored for all modules
1001 //Other data is only valid for module 1-4
1002 if(imod > 4) continue;
1003 }
1004
1005 ANA_MSG_VERBOSE ("Module " << zdcMod->zdcSide() << " " << zdcMod->zdcModule() << " amp:" << AmplitudeAcc(*zdcMod));
1006
1007 if (zdcMod->zdcType() == 0 && !zdcErr)
1008 {
1009 // ZDC energy type modules
1010 t_ZdcModuleCalibAmp[iside][imod] = CalibEnergyAcc(*zdcMod);
1011 t_ZdcModuleCalibTime[iside][imod] = CalibTimeAcc(*zdcMod);
1012 t_ZdcModuleStatus[iside][imod] = StatusAcc(*zdcMod);
1013 if (t_ZdcModuleAmp[iside][imod] != 0.)
1014 Warning("processZdcNtupleFromModules", "overwriting side %d module %d!", iside, imod);
1015 t_ZdcModuleAmp[iside][imod] = AmplitudeAcc(*zdcMod);
1016 t_ZdcModuleAmpUncorr[iside][imod] = AmplitudeNoNonLinAcc(*zdcMod);
1017 t_ZdcModuleTime[iside][imod] = TimeAcc(*zdcMod);
1018
1019 t_ZdcModuleChisq[iside][imod] = ChisqAcc(*zdcMod);
1020 t_ZdcModuleChisqRatio[iside][imod] = ChisqRatioAcc(*zdcMod);
1021 t_ZdcModuleFitAmp[iside][imod] = FitAmpAcc(*zdcMod);
1022 t_ZdcModuleAmpError[iside][imod] = FitAmpErrorAcc(*zdcMod);
1023 t_ZdcModuleFitT0[iside][imod] = FitT0Acc(*zdcMod);
1024 t_ZdcModuleBkgdMaxFraction[iside][imod] = BkgdMaxFractionAcc(*zdcMod);
1025 t_ZdcModuleMinDeriv2nd[iside][imod] = MinDeriv2ndAcc(*zdcMod);
1026 t_ZdcModulePresample[iside][imod] = PresampleAcc(*zdcMod);
1027 t_ZdcModulePreSampleAmp[iside][imod] = PreSampleAmpAcc(*zdcMod);
1028
1029 if (AmpLGRefitAcc.isAvailable(*zdcMod)) {
1030 t_ZdcModuleAmpLGRefit[iside][imod] = AmpLGRefitAcc(*zdcMod);
1031 t_ZdcModuleT0LGRefit[iside][imod] = T0LGRefitAcc(*zdcMod);
1032 t_ZdcModuleT0SubLGRefit[iside][imod] = T0SubLGRefitAcc(*zdcMod);
1033 t_ZdcModuleChisqLGRefit[iside][imod] = ChisqLGRefitAcc(*zdcMod);
1034 }
1035
1036 if (LucrodTriggerAmpAcc.isAvailable(*zdcMod))
1037 t_ZdcLucrodTriggerAmp[iside][imod] = LucrodTriggerAmpAcc(*zdcMod);
1038 if (LucrodTriggerAmpLGAcc.isAvailable(*zdcMod))
1039 t_ZdcLucrodTriggerAmpLG[iside][imod] = LucrodTriggerAmpLGAcc(*zdcMod);
1040
1041 if (MaxADCAcc.isAvailable(*zdcMod))
1042 t_ZdcModuleMaxADC[iside][imod] = MaxADCAcc(*zdcMod);
1043 if (MaxADCHGAcc.isAvailable(*zdcMod))
1044 t_ZdcModuleMaxADCHG[iside][imod] = MaxADCHGAcc(*zdcMod);
1045 if (MaxADCLGAcc.isAvailable(*zdcMod))
1046 t_ZdcModuleMaxADCLG[iside][imod] = MaxADCLGAcc(*zdcMod);
1047 if (PeakADCHGAcc.isAvailable(*zdcMod))
1048 t_ZdcModulePeakADCHG[iside][imod] = PeakADCHGAcc(*zdcMod);
1049 if (PeakADCLGAcc.isAvailable(*zdcMod))
1050 t_ZdcModulePeakADCLG[iside][imod] = PeakADCLGAcc(*zdcMod);
1051
1052 if (enableOutputSamples && !zdcErr)
1053 {
1054 for (unsigned int isamp = 0; isamp < nsamplesZdc; isamp++) // 7 samples
1055 {
1056 if (nsamplesZdc == 7)
1057 {
1058 t_raw7[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1059 t_raw7[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1060 t_raw7[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1061 t_raw7[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1062 }
1063
1064 if (nsamplesZdc == 15)
1065 {
1066 t_raw15[iside][imod][0][0][isamp] = g0d0DataAcc(*zdcMod).at(isamp);
1067 t_raw15[iside][imod][0][1][isamp] = g0d1DataAcc(*zdcMod).at(isamp);
1068 t_raw15[iside][imod][1][0][isamp] = g1d0DataAcc(*zdcMod).at(isamp);
1069 t_raw15[iside][imod][1][1][isamp] = g1d1DataAcc(*zdcMod).at(isamp);
1070 }
1071
1072 if (nsamplesZdc == 24)
1073 {
1074 t_raw24[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1075 t_raw24[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1076 }
1077 if (nsamplesZdc == 32)
1078 {
1079 t_raw32[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1080 t_raw32[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1081 }
1082 if (nsamplesZdc == 40)
1083 {
1084 t_raw40[iside][imod][0][0][isamp] = g0dataAcc(*zdcMod).at(isamp);
1085 t_raw40[iside][imod][1][0][isamp] = g1dataAcc(*zdcMod).at(isamp);
1086 }
1087 }
1088 }
1089 }
1090 else if (zdcMod->zdcType() == 1 && nsamplesZdc == 24)
1091 {
1092 // this is the RPD
1093 if (enableRPD)
1094 {
1095 if (enableRPDAmp && !rpdErr)
1096 {
1097 t_RpdChannelBaseline[iside][zdcMod->zdcChannel()] = RPDChannelBaselineAcc(*zdcMod);
1098 std::vector<float> const &rpdChannelPileupExpFitParams = RPDChannelPileupExpFitParamsAcc(*zdcMod);
1099 std::copy(rpdChannelPileupExpFitParams.begin(), rpdChannelPileupExpFitParams.end(), t_RpdChannelPileupExpFitParams[iside][zdcMod->zdcChannel()]);
1100 std::vector<float> const &rpdChannelPileupExpFitParamErrs = RPDChannelPileupExpFitParamErrsAcc(*zdcMod);
1101 std::copy(rpdChannelPileupExpFitParamErrs.begin(), rpdChannelPileupExpFitParamErrs.end(), t_RpdChannelPileupExpFitParamErrs[iside][zdcMod->zdcChannel()]);
1102 std::vector<float> const &rpdChannelPileupStretchedExpFitParams = RPDChannelPileupStretchedExpFitParamsAcc(*zdcMod);
1103 std::copy(rpdChannelPileupStretchedExpFitParams.begin(), rpdChannelPileupStretchedExpFitParams.end(), t_RpdChannelPileupStretchedExpFitParams[iside][zdcMod->zdcChannel()]);
1104 std::vector<float> const &rpdChannelPileupStretchedExpFitParamErrs = RPDChannelPileupStretchedExpFitParamErrsAcc(*zdcMod);
1105 std::copy(rpdChannelPileupStretchedExpFitParamErrs.begin(), rpdChannelPileupStretchedExpFitParamErrs.end(), t_RpdChannelPileupStretchedExpFitParamErrs[iside][zdcMod->zdcChannel()]);
1106 t_RpdChannelPileupExpFitMSE[iside][zdcMod->zdcChannel()] = RPDChannelPileupExpFitMSEAcc(*zdcMod);
1107 t_RpdChannelPileupStretchedExpFitMSE[iside][zdcMod->zdcChannel()] = RPDChannelPileupStretchedExpFitMSEAcc(*zdcMod);
1108 t_RpdChannelAmplitude[iside][zdcMod->zdcChannel()] = RPDChannelAmplitudeAcc(*zdcMod);
1109 t_RpdChannelAmplitudeCalib[iside][zdcMod->zdcChannel()] = RPDChannelAmplitudeCalibAcc(*zdcMod);
1110 t_RpdChannelMaxADC[iside][zdcMod->zdcChannel()] = RPDChannelMaxADCAcc(*zdcMod);
1111 t_RpdChannelMaxADCCalib[iside][zdcMod->zdcChannel()] = RPDChannelMaxADCCalibAcc(*zdcMod);
1112 t_RpdChannelMaxSample[iside][zdcMod->zdcChannel()] = RPDChannelMaxSampleAcc(*zdcMod);
1113 t_RpdChannelStatus[iside][zdcMod->zdcChannel()] = RPDChannelStatusAcc(*zdcMod);
1114 t_RpdChannelPileupFrac[iside][zdcMod->zdcChannel()] = RPDChannelPileupFracAcc(*zdcMod);
1115 if(m_isMC){
1116 t_RpdModuleTruthNphotons[iside][zdcMod->zdcChannel()] = nPhotonsAcc(*zdcMod);
1117 }
1118 }
1120 {
1121 std::vector<uint16_t> const &rpdChannelRaw = g0dataAcc(*zdcMod);
1122 std::copy(rpdChannelRaw.begin(), rpdChannelRaw.end(), t_rpdRaw[iside][zdcMod->zdcChannel()]);
1123 }
1124 }
1125 }
1126 }
1127 }
1128 else
1129 {
1130 ANA_MSG_INFO("No ZdcModules" << auxSuffix << " when expected!");
1131 }
1132
1133 if (msgLvl (MSG::VERBOSE))
1134 {
1135 std::ostringstream message;
1136 message << "Dump zdc_ZdcModuleAmp: ";
1137 for (int iside = 0; iside < 2; iside++)
1138 {
1139 for (int imod = 0; imod < 4; imod++)
1140 {
1141 message << t_ZdcModuleAmp[iside][imod] << " ";
1142 }
1143 }
1144 }
1145}
#define ANA_MSG_WARNING(xmsg)
Macro printing warning messages.
ZdcModule_v1 ZdcModule
Definition ZdcModule.h:15

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ reprocessZdcModule()

void ZdcNtuple::reprocessZdcModule ( const xAOD::ZdcModule * zdcMod,
bool flipdelay = 0 )

◆ requestBeginInputFile()

StatusCode EL::AnaAlgorithm::requestBeginInputFile ( )
inherited

register this algorithm to have an implementation of beginInputFile

Guarantee
strong
Failures
beginInputFile not supported

Definition at line 270 of file AnaAlgorithm.cxx.

272 {
273 m_hasBeginInputFile = true;
274
275#ifndef XAOD_STANDALONE
276 // Connect to the IncidentSvc:
277 ServiceHandle< IIncidentSvc > incSvc( "IncidentSvc", name() );
278 ATH_CHECK( incSvc.retrieve() );
279
280 // Set up the right callback, but ensure we don't double-register
281 // if we are called twice
282 incSvc->removeListener( this, IncidentType::BeginInputFile );
283 incSvc->addListener( this, IncidentType::BeginInputFile, 0, true );
284#endif
285
286 return StatusCode::SUCCESS;
287 }

◆ requestEndInputFile()

StatusCode EL::AnaAlgorithm::requestEndInputFile ( )
inherited

register this algorithm to have an implementation of endInputFile

Guarantee
strong
Failures
endInputFile not supported

Definition at line 291 of file AnaAlgorithm.cxx.

293 {
294 m_hasEndInputFile = true;
295
296#ifndef XAOD_STANDALONE
297 // Connect to the IncidentSvc:
298 ServiceHandle< IIncidentSvc > incSvc( "IncidentSvc", name() );
299 ATH_CHECK( incSvc.retrieve() );
300
301 // Set up the right callback, but ensure we don't double-register
302 // if we are called twice
303 incSvc->removeListener( this, IncidentType::EndInputFile );
304 incSvc->addListener( this, IncidentType::EndInputFile, 0, true );
305#endif
306
307 return StatusCode::SUCCESS;
308 }

◆ requestFileExecute()

StatusCode EL::AnaAlgorithm::requestFileExecute ( )
inherited

register this algorithm to have an implementation of fileexecute

Guarantee
strong
Failures
fileExecute not supported

Definition at line 249 of file AnaAlgorithm.cxx.

251 {
252 m_hasFileExecute = true;
253
254#ifndef XAOD_STANDALONE
255 // Connect to the IncidentSvc:
256 ServiceHandle< IIncidentSvc > incSvc( "IncidentSvc", name() );
257 ATH_CHECK( incSvc.retrieve() );
258
259 // Set up the right callback, but ensure we don't double-register
260 // if we are called twice
261 incSvc->removeListener( this, IncidentType::BeginInputFile );
262 incSvc->addListener( this, IncidentType::BeginInputFile, 0, true );
263#endif
264
265 return StatusCode::SUCCESS;
266 }

◆ setFilterPassed() [1/2]

void AthAlgorithm::setFilterPassed ( bool state) const
inherited

Definition at line 102 of file AthAlgorithm.cxx.

102 {
103 setFilterPassed( state, Gaudi::Hive::currentContext() );
104}
void setFilterPassed(bool state) const

◆ setFilterPassed() [2/2]

void AthAlgorithm::setFilterPassed ( bool state,
const EventContext & ctx ) const
inherited

Definition at line 106 of file AthAlgorithm.cxx.

106 {
107 execState( ctx ).setFilterPassed(state);
108}

◆ setupTriggerHistos()

void ZdcNtuple::setupTriggerHistos ( )

Definition at line 2038 of file ZdcNtuple.cxx.

2039{
2040 if (!enableTrigger) return;
2041
2042 m_outputTree = tree( "zdcTree" );
2043 ANA_MSG_INFO("setupTriggerHistos(): Setting up trigger histos and ntuple = " << m_outputTree);
2044
2045 std::vector<std::string> triggers;
2046 std::vector<std::string> rerunTriggers;
2047 bool zdc_triggers = true;
2048
2049 // ZDC triggers
2050 if (zdc_triggers)
2051 {
2052 if (zdcCalib) // lists for calibration data
2053 {
2054 if (lhcf2022)
2055 {
2056 triggers.push_back("L1_LHCF");
2057 triggers.push_back("L1_ZDC_OR");
2058 }
2059
2060 if (pbpb2023)
2061 {
2062 triggers.push_back("L1_ZDC_OR");
2063 triggers.push_back("L1_ZDC_A");
2064 triggers.push_back("L1_ZDC_C");
2065 triggers.push_back("L1_ZDC_A_C");
2066 triggers.push_back("L1_ZDC_OR_EMPTY");
2067 triggers.push_back("L1_ZDC_A_EMPTY");
2068 triggers.push_back("L1_ZDC_C_EMPTY");
2069 triggers.push_back("L1_ZDC_A_C_EMPTY");
2070 triggers.push_back("L1_ZDC_OR_UNPAIRED_NONISO");
2071 triggers.push_back("L1_ZDC_A_UNPAIRED_NONISO");
2072 triggers.push_back("L1_ZDC_C_UNPAIRED_NONISO");
2073 triggers.push_back("L1_ZDC_A_C_UNPAIRED_NONISO");
2074 }
2075 }
2076 else // lists for physics data
2077 {
2078 if (lhcf2022)
2079 {
2080 triggers.push_back("HLT_noalg_L1LHCF");
2081 }
2082 if (lhcf2022afp)
2083 {
2084 triggers.push_back("HLT_noalg_AFPPEB_L1AFP_A");
2085 triggers.push_back("HLT_noalg_AFPPEB_L1AFP_C");
2086 }
2087 if (lhcf2022zdc)
2088 {
2089 triggers.push_back("HLT_noalg_ZDCPEB_L1ZDC_OR");
2090 triggers.push_back("HLT_noalg_ZDCPEB_L1LHCF");
2091 triggers.push_back("HLT_noalg_L1ZDC_OR");
2092 triggers.push_back("HLT_noalg_L1ZDC_XOR_E2");
2093 triggers.push_back("HLT_noalg_L1ZDC_XOR_E1_E3");
2094 triggers.push_back("HLT_noalg_L1ZDC_A_AND_C");
2095 triggers.push_back("HLT_mb_sptrk_L1ZDC_OR");
2096 triggers.push_back("HLT_mb_sptrk_L1ZDC_XOR_E2");
2097 triggers.push_back("HLT_mb_sptrk_L1ZDC_XOR_E1_E3");
2098 triggers.push_back("HLT_mb_sptrk_L1ZDC_A_AND_C");
2099 triggers.push_back("HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E2");
2100 triggers.push_back("HLT_mb_sp100_trk30_hmt_L1ZDC_XOR_E1_E3");
2101 triggers.push_back("HLT_mb_sp100_trk30_hmt_L1ZDC_A_AND_C");
2102 }
2103 if (oo2025) {
2104 triggers = {
2105 "HLT_mb_sptrk_L1TRT_ZDC_A", "HLT_mb_sptrk_L1TRT_ZDC_C", "HLT_mb_sptrk_L1TRT_ZDC_A_C",
2106 "HLT_mb_sptrk_L1TRT_ZDC_OR", "HLT_mb_sptrk_L1TRT_ZDC_LOR",
2107 "HLT_mb_sptrk_L1ZDC_A", "HLT_mb_sptrk_L1ZDC_C", "HLT_mb_sptrk_L1ZDC_A_C",
2108 "HLT_mb_sptrk_L1ZDC_LOR", "HLT_mb_sptrk_L1ZDC_OR",
2109 "HLT_mb_sptrk_L1ZDC_XN", "HLT_mb_sptrk_L1ZDC_YN", "HLT_mb_sptrk_L1ZDC_ZN",
2110 "HLT_mb_sptrk_L1ZDC_XNXN", "HLT_mb_sptrk_L1ZDC_XNYN", "HLT_mb_sptrk_L1ZDC_XNZN",
2111 "HLT_mb_sptrk_L1ZDC_XN_XOR", "HLT_mb_sptrk_L1ZDC_YNYN", "HLT_mb_sptrk_L1ZDC_YN_XOR",
2112 "HLT_mb_sptrk_L1ZDC_ZN_XOR",
2113 "HLT_noalg_L1TRT_ZDC_A", "HLT_noalg_L1TRT_ZDC_C", "HLT_noalg_L1TRT_ZDC_A_C",
2114 "HLT_noalg_L1TRT_ZDC_OR", "HLT_noalg_L1TRT_ZDC_LOR",
2115 "HLT_noalg_L1TRT_ZDC_YN", "HLT_noalg_L1TRT_ZDC_ZN",
2116 "HLT_noalg_L1TRT_ZDC_XNXN", "HLT_noalg_L1TRT_ZDC_XNYN", "HLT_noalg_L1TRT_ZDC_XNZN",
2117 "HLT_noalg_L1TRT_ZDC_XN_XOR", "HLT_noalg_L1TRT_ZDC_YNYN", "HLT_noalg_L1TRT_ZDC_YN_XOR",
2118 "HLT_noalg_L1TRT_ZDC_ZN_XOR",
2119 "HLT_noalg_L1ZDC_A", "HLT_noalg_L1ZDC_C", "HLT_noalg_L1ZDC_A_C",
2120 "HLT_noalg_L1ZDC_OR", "HLT_noalg_L1ZDC_LOR",
2121 "HLT_noalg_L1ZDC_YN", "HLT_noalg_L1ZDC_ZN",
2122 "HLT_noalg_L1ZDC_XNXN", "HLT_noalg_L1ZDC_XNYN", "HLT_noalg_L1ZDC_XNZN",
2123 "HLT_noalg_L1ZDC_XN_XOR", "HLT_noalg_L1ZDC_YNYN", "HLT_noalg_L1ZDC_YN_XOR",
2124 "HLT_noalg_L1ZDC_ZN_XOR"
2125 };
2126 }
2127 }
2128 }
2129
2130 //char name[50];
2131 ANA_MSG_INFO("Adding trigger branches!");
2132
2133 int ic = 0;
2134 for (auto &trig : triggers)
2135 {
2136 const Trig::ChainGroup* cg = m_trigDecisionTool->getChainGroup(trig);
2137 if (cg->getListOfTriggers().size())
2138 {
2139 ANA_MSG_INFO("setupTriggerHistos(): Trigger found = " << trig.c_str() << " bit " << ic);
2140 }
2141 else
2142 {
2143 ANA_MSG_INFO("setupTriggerHistos(): Trigger NOT found = " << trig.c_str() << " bit " << ic);
2144 }
2145 m_chainGroups.push_back(cg);
2146 // force all triggers to show up in tree
2147 TString bname(trig.c_str());
2148 m_outputTree->Branch(bname, &(t_decisions[ic]), bname + "/O");
2149 m_outputTree->Branch("ps_" + bname, &(t_prescales[ic]), "ps_" + bname + "/F");
2150 ic++;
2151 }
2152
2153 ANA_MSG_INFO( "triggers = " << triggers.size() << " chains = " << m_chainGroups.size() );
2154
2155 int irc = 0;
2156 ANA_MSG_INFO("Adding rerun trigger branches!");
2157 for (auto &trig : rerunTriggers)
2158 {
2159 const Trig::ChainGroup* cg = m_trigDecisionTool->getChainGroup(trig);
2160 m_rerunChainGroups.push_back(cg);
2161 if (cg->getListOfTriggers().size())
2162 {
2163 ANA_MSG_INFO("setupTriggerHistos(): Rerun trigger found = " << trig.c_str() << " bit " << irc);
2164 }
2165 else
2166 {
2167 ANA_MSG_INFO("setupTriggerHistos(): Rerun trigger NOT found = " << trig.c_str() << " bit " << irc);
2168 }
2169 // force all rerun triggers to show up in tree
2170 TString bname(trig.c_str());
2171 m_outputTree->Branch(bname, &(t_rerunDecisions[irc]), bname + "/O");
2172 irc++;
2173 }
2174
2175 // trigger matching flags for electrons and muons
2176
2177 m_setupTrigHist = true;
2178
2179 ANA_MSG_INFO("setupTriggerHistos(): Finished setting up trigger");
2180
2181}
std::vector< std::string > getListOfTriggers() const

◆ sysInitialize()

StatusCode AthHistogramAlgorithm::sysInitialize ( )
virtualinherited

Initialization method invoked by the framework.

This method is responsible for any bookkeeping of initialization required by the framework itself. It will in turn invoke the initialize() method of the derived algorithm, and of any sub-algorithms which it creates.

Reimplemented from AthAlgorithm.

Reimplemented in AthAnalysisAlgorithm.

Definition at line 75 of file AthHistogramAlgorithm.cxx.

76{
77 // ---- stolen from GaudiKernel/Algorithm::sysInitialize -------
78 // Bypass the initialization if the algorithm
79 // has already been initialized.
80 if ( Gaudi::StateMachine::INITIALIZED <= FSMState() ) return StatusCode::SUCCESS;
81
82 // Set the Algorithm's properties
83 bindPropertiesTo( serviceLocator()->getOptsSvc() );
84
85 // Bypass the initialization if the algorithm is disabled.
86 // Need to do this after bindPropertiesTo.
87 if ( !isEnabled( ) ) return StatusCode::SUCCESS;
88
89 // ---- stolen from GaudiKernel/Algorithm::sysInitialize ------- END ---
90
91
92 // Get the THistSvc
93 ATH_CHECK ( histSvc().retrieve() );
94
95 // Configure the underlying AthHistogramming helper
100
101 // Print some setup information into the log file
102 ATH_MSG_DEBUG ("Initializing " << name() << "...");
103 ATH_MSG_DEBUG (" using THistService = " << m_histSvc );
104 ATH_MSG_DEBUG (" using RootStreamName = " << m_prefix );
105 ATH_MSG_DEBUG (" using RootDirName = " << m_rootDir );
106 ATH_MSG_DEBUG (" using HistNamePrefix = " << m_histNamePrefix );
107 ATH_MSG_DEBUG (" using HistNamePostfix = " << m_histNamePostfix );
108 ATH_MSG_DEBUG (" using HistTitlePrefix = " << m_histTitlePrefix );
109 ATH_MSG_DEBUG (" using HistTitlePostfix = " << m_histTitlePostfix );
110
111
112 // re-direct to base class...
114}
#define ATH_MSG_DEBUG(x)
virtual StatusCode sysInitialize() override
Override sysInitialize.
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
std::string m_histNamePrefix
The prefix for the histogram THx name.
std::string m_prefix
Name of the ROOT output stream (file).
std::string m_histNamePostfix
The postfix for the histogram THx name.
std::string m_histTitlePostfix
The postfix for the histogram THx title.
std::string m_rootDir
Name of the ROOT directory.
std::string m_histTitlePrefix
The prefix for the histogram THx title.
StatusCode configAthHistogramming(const ServiceHandle< ITHistSvc > &histSvc, const std::string &prefix, const std::string &rootDir, const std::string &histNamePrefix, const std::string &histNamePostfix, const std::string &histTitlePrefix, const std::string &histTitlePostfix)
To be called by the derived classes to fill the internal configuration.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ trackQuality()

int ZdcNtuple::trackQuality ( const xAOD::TrackParticle * tp,
const xAOD::Vertex * vertex )

Definition at line 1569 of file ZdcNtuple.cxx.

1570{
1571
1572 if (!track) return -1;
1573
1574 bool pass_looseprimary = false;
1575 if (m_selTool->accept(*track,vertex))
1576 {
1577 pass_looseprimary = true;
1578 }
1579
1580 int quality = 0;
1581 if (pass_looseprimary) quality += 1;
1582
1583 return quality;
1584
1585}

◆ tree()

TTree * AthHistogramming::tree ( const std::string & treeName,
const std::string & tDir = "",
const std::string & stream = "" )
protectedinherited

Simplify the retrieval of registered TTrees.

Definition at line 363 of file AthHistogramming.cxx.

364{
365 // Build a 32 bit hash out of the name
366 const hash_t treeHash = this->hash(treeName);
367
368 // See if this entry exists in the map
369 TreeMap_t::const_iterator it = m_treeMap.find( treeHash );
370 if ( it == m_treeMap.end() ) // It doesn't exist!
371 { // Let's see into the THistSvc if somebody else has registered the TTree...
372
373 // Need to copy the strings as we will massage them from here on
374 std::string treeNameCopy = treeName;
375 std::string tDirCopy = tDir;
376 std::string streamCopy = stream;
377
378 // Massage the final string to book things
379 std::string bookingString("");
380 this->buildBookingString( bookingString, treeNameCopy, tDirCopy, streamCopy );
381
382 TTree* treePointer(NULL);
383 if ( !((histSvc()->getTree(bookingString, treePointer)).isSuccess()) )
384 {
385 m_msg << MSG::WARNING
386 << "Problem retrieving the TTree with name " << treeNameCopy
387 << " in " << m_name << "... it doesn't exist, neither in the cached map nor in the THistSvc!"
388 << " Will return an NULL pointer... you have to handle it correctly!" << endmsg;
389 return NULL;
390 }
391 // If we get to here, we actually found the TTree in the THistSvc.
392 // So let's add it to the local cache map and return its pointer
393 m_treeMap.insert( m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treePointer ) );
394 return treePointer;
395 }
396
397 // Return the pointer to the TTree that we got from the local cache map
398 return it->second;
399}
std::pair< StatusCode, TTree * > getTree(ITHistSvc &svc, const std::string &name)

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

◆ writeTrack()

void ZdcNtuple::writeTrack ( const xAOD::TrackParticle * track,
const xAOD::Vertex * vertex,
int trk_index )

Definition at line 1589 of file ZdcNtuple.cxx.

1590{
1591 t_trk_pt.push_back(track->pt());
1592 t_trk_eta.push_back(track->eta());
1593 t_trk_phi.push_back(track->phi());
1594 t_trk_e.push_back(track->e());
1595 t_trk_index.push_back(trk_index);
1596 t_trk_theta.push_back(track->theta());
1597 t_trk_charge.push_back(track->charge());
1598 t_trk_d0.push_back(track->d0());
1599 t_trk_z0.push_back(track->z0());
1600 t_trk_vz.push_back(track->vz());
1601
1602 float vtxz = -999.;
1603 t_trk_vtxz.push_back(vtxz);
1604
1605 static const SG::ConstAccessor<uint8_t> numberOfInnermostPixelLayerHitsAcc("numberOfInnermostPixelLayerHits");
1606 static const SG::ConstAccessor<uint8_t> expectInnermostPixelLayerHitAcc("expectInnermostPixelLayerHit");
1607 static const SG::ConstAccessor<uint8_t> numberOfNextToInnermostPixelLayerHitsAcc("numberOfNextToInnermostPixelLayerHits");
1608 static const SG::ConstAccessor<uint8_t> expectNextToInnermostPixelLayerHitAcc("expectNextToInnermostPixelLayerHit");
1609 static const SG::ConstAccessor<uint8_t> numberOfSCTHitsAcc("numberOfSCTHits");
1610 static const SG::ConstAccessor<uint8_t> numberOfPixelHitsAcc("numberOfPixelHits");
1611 static const SG::ConstAccessor<uint8_t> numberOfSCTDeadSensorsAcc("numberOfSCTDeadSensors");
1612 static const SG::ConstAccessor<uint8_t> numberOfPixelDeadSensorsAcc("numberOfPixelDeadSensors");
1613 static const SG::ConstAccessor<uint8_t> numberOfSCTHolesAcc("numberOfSCTHoles");
1614 static const SG::ConstAccessor<uint8_t> numberOfPixelHolesAcc("numberOfPixelHoles");
1615 static const SG::ConstAccessor<uint8_t> numberOfTRTHitsAcc("numberOfTRTHits");
1616 static const SG::ConstAccessor<uint8_t> numberOfTRTOutliersAcc("numberOfTRTOutliers");
1617
1618 t_trk_quality.push_back(trackQuality(track, vertex));
1619 t_trk_inPixHits.push_back(numberOfInnermostPixelLayerHitsAcc(*track));
1620 t_trk_exPixHits.push_back(expectInnermostPixelLayerHitAcc(*track));
1621 t_trk_ninPixHits.push_back(numberOfNextToInnermostPixelLayerHitsAcc(*track));
1622 t_trk_nexPixHits.push_back(expectNextToInnermostPixelLayerHitAcc(*track));
1623 t_trk_nSctHits.push_back(numberOfSCTHitsAcc(*track));
1624 t_trk_nPixHits.push_back(numberOfPixelHitsAcc(*track));
1625 t_trk_nSctDead.push_back(numberOfSCTDeadSensorsAcc(*track));
1626 t_trk_nPixDead.push_back(numberOfPixelDeadSensorsAcc(*track));
1627 t_trk_nSctHoles.push_back(numberOfSCTHolesAcc(*track));
1628 t_trk_nPixHoles.push_back(numberOfPixelHolesAcc(*track));
1629 t_trk_nTrtHits.push_back(numberOfTRTHitsAcc(*track));
1630 t_trk_nTrtOutliers.push_back(numberOfTRTOutliersAcc(*track));
1631
1632 float pixeldEdx = 0;
1633 track->summaryValue(pixeldEdx, xAOD::SummaryType::pixeldEdx);
1634 t_trk_pixeldEdx.push_back(pixeldEdx);
1635}
@ pixeldEdx
the dE/dx estimate, calculated using the pixel clusters [?

Member Data Documentation

◆ auxSuffix

std::string ZdcNtuple::auxSuffix

Definition at line 80 of file ZdcNtuple.h.

◆ doZdcCalib

bool ZdcNtuple::doZdcCalib

Definition at line 92 of file ZdcNtuple.h.

◆ enableCalo

bool ZdcNtuple::enableCalo

Definition at line 61 of file ZdcNtuple.h.

◆ enableCentroid

bool ZdcNtuple::enableCentroid

Definition at line 90 of file ZdcNtuple.h.

◆ enableClusters

bool ZdcNtuple::enableClusters

Definition at line 62 of file ZdcNtuple.h.

◆ enableElectrons

bool ZdcNtuple::enableElectrons

Definition at line 65 of file ZdcNtuple.h.

◆ enableID

bool ZdcNtuple::enableID

Definition at line 60 of file ZdcNtuple.h.

◆ enableJets

bool ZdcNtuple::enableJets

Definition at line 69 of file ZdcNtuple.h.

◆ enableMuons

bool ZdcNtuple::enableMuons

Definition at line 64 of file ZdcNtuple.h.

◆ enableOutputSamples

bool ZdcNtuple::enableOutputSamples

Definition at line 57 of file ZdcNtuple.h.

◆ enableOutputTree

bool ZdcNtuple::enableOutputTree

Definition at line 56 of file ZdcNtuple.h.

◆ enablePhotons

bool ZdcNtuple::enablePhotons

Definition at line 66 of file ZdcNtuple.h.

◆ enableRPD

bool ZdcNtuple::enableRPD

Definition at line 88 of file ZdcNtuple.h.

◆ enableRPDAmp

bool ZdcNtuple::enableRPDAmp

Definition at line 89 of file ZdcNtuple.h.

◆ enableTracks

bool ZdcNtuple::enableTracks

Definition at line 63 of file ZdcNtuple.h.

◆ enableTrigger

bool ZdcNtuple::enableTrigger

Definition at line 58 of file ZdcNtuple.h.

◆ enableTriggerJets

bool ZdcNtuple::enableTriggerJets

Definition at line 70 of file ZdcNtuple.h.

◆ enableTruth

bool ZdcNtuple::enableTruth

Definition at line 68 of file ZdcNtuple.h.

◆ enableTT

bool ZdcNtuple::enableTT

Definition at line 67 of file ZdcNtuple.h.

◆ enableZDC

bool ZdcNtuple::enableZDC

Definition at line 87 of file ZdcNtuple.h.

◆ flipDelay

bool ZdcNtuple::flipDelay

Definition at line 78 of file ZdcNtuple.h.

◆ grlFilename

std::string ZdcNtuple::grlFilename

Definition at line 55 of file ZdcNtuple.h.

◆ h_TCSigCut

TH1* ZdcNtuple::h_TCSigCut

Definition at line 339 of file ZdcNtuple.h.

◆ h_zdcTriggers

TH1* ZdcNtuple::h_zdcTriggers

Definition at line 145 of file ZdcNtuple.h.

◆ h_zdcTriggersTBP

TH1* ZdcNtuple::h_zdcTriggersTBP

Definition at line 146 of file ZdcNtuple.h.

◆ lhcf2022

bool ZdcNtuple::lhcf2022

Definition at line 82 of file ZdcNtuple.h.

◆ lhcf2022afp

bool ZdcNtuple::lhcf2022afp

Definition at line 84 of file ZdcNtuple.h.

◆ lhcf2022zdc

bool ZdcNtuple::lhcf2022zdc

Definition at line 83 of file ZdcNtuple.h.

◆ m_afpProtons

const xAOD::AFPProtonContainer* ZdcNtuple::m_afpProtons

Definition at line 128 of file ZdcNtuple.h.

◆ m_caloClusters

const xAOD::CaloClusterContainer* ZdcNtuple::m_caloClusters

Definition at line 123 of file ZdcNtuple.h.

◆ m_caloSums

const xAOD::HIEventShapeContainer* ZdcNtuple::m_caloSums

Definition at line 117 of file ZdcNtuple.h.

◆ m_chainGroups

std::vector<const Trig::ChainGroup*> ZdcNtuple::m_chainGroups

Definition at line 137 of file ZdcNtuple.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_effMap

EffMap_t AthHistogramming::m_effMap
privateinherited

The map of histogram names to their pointers.

Definition at line 210 of file AthHistogramming.h.

◆ m_eventCounter

int ZdcNtuple::m_eventCounter

Definition at line 133 of file ZdcNtuple.h.

◆ m_eventInfo

const xAOD::EventInfo* ZdcNtuple::m_eventInfo

Definition at line 113 of file ZdcNtuple.h.

◆ m_eventShapes

const xAOD::HIEventShapeContainer* ZdcNtuple::m_eventShapes

Definition at line 118 of file ZdcNtuple.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 114 of file AthAlgorithm.h.

◆ m_gapPtMin

float ZdcNtuple::m_gapPtMin

Definition at line 328 of file ZdcNtuple.h.

◆ m_gapThresholds

double ZdcNtuple::m_gapThresholds[98]
Initial value:
=
{4.7426,5.11018,5.07498,5.0969,5.10695,5.04098,5.07106,4.98087,5.11647,5.08988,5.16267,
5.17202,5.23803,5.25314,5.29551,5.35092,5.40863,5.44375,5.38075,5.25022,5.37933,5.25459,5.37719,5.25169,5.73985,
5.79174,5.79266,5.79588,5.7963,5.81949,5.82273,5.85658,5.85442,5.84779,5.77679,5.83323,5.84524,5.84439,5.84488,
5.84744,5.84683,5.84524,5.84594,5.84656,5.84639,5.84461,5.84515,5.84206,5.8396,5.84497,5.84801,5.84608,5.84608,
5.84783,5.84726,5.84844,5.8477,5.84796,5.84757,5.84822,5.84814,5.84617,5.83451,5.77658,5.84309,5.85496,5.85761,
5.82555,5.82206,5.78982,5.78482,5.7778,5.78327,5.74898,5.25459,5.37503,5.25459,5.37283,5.25169,5.37862,5.44473,
5.41041,5.34498,5.29551,5.25602,5.2283,5.17428,5.14504,5.09342,5.12256,4.98721,5.07106,5.02642,5.10031,5.11018,
5.05447,5.10031,4.7426}

Definition at line 330 of file ZdcNtuple.h.

330 {4.7426,5.11018,5.07498,5.0969,5.10695,5.04098,5.07106,4.98087,5.11647,5.08988,5.16267,
331 5.17202,5.23803,5.25314,5.29551,5.35092,5.40863,5.44375,5.38075,5.25022,5.37933,5.25459,5.37719,5.25169,5.73985,
332 5.79174,5.79266,5.79588,5.7963,5.81949,5.82273,5.85658,5.85442,5.84779,5.77679,5.83323,5.84524,5.84439,5.84488,
333 5.84744,5.84683,5.84524,5.84594,5.84656,5.84639,5.84461,5.84515,5.84206,5.8396,5.84497,5.84801,5.84608,5.84608,
334 5.84783,5.84726,5.84844,5.8477,5.84796,5.84757,5.84822,5.84814,5.84617,5.83451,5.77658,5.84309,5.85496,5.85761,
335 5.82555,5.82206,5.78982,5.78482,5.7778,5.78327,5.74898,5.25459,5.37503,5.25459,5.37283,5.25169,5.37862,5.44473,
336 5.41041,5.34498,5.29551,5.25602,5.2283,5.17428,5.14504,5.09342,5.12256,4.98721,5.07106,5.02642,5.10031,5.11018,
337 5.05447,5.10031,4.7426};

◆ m_graphMap

GraphMap_t AthHistogramming::m_graphMap
privateinherited

The map of TGraph names to their pointers.

Definition at line 224 of file AthHistogramming.h.

◆ m_grl

Definition at line 102 of file ZdcNtuple.h.

◆ m_hasBeginInputFile

bool EL::AnaAlgorithm::m_hasBeginInputFile {false}
privateinherited

the value of hasBeginInputFile

Definition at line 607 of file AnaAlgorithm.h.

607{false};

◆ m_hasEndInputFile

bool EL::AnaAlgorithm::m_hasEndInputFile {false}
privateinherited

the value of hasEndInputFile

Definition at line 611 of file AnaAlgorithm.h.

611{false};

◆ m_hasFileExecute

bool EL::AnaAlgorithm::m_hasFileExecute {false}
privateinherited

the value of hasFileExecute

Definition at line 603 of file AnaAlgorithm.h.

603{false};

◆ m_histMap

HistMap_t AthHistogramming::m_histMap
privateinherited

The map of histogram names to their pointers.

Definition at line 203 of file AthHistogramming.h.

◆ m_histNamePostfix

std::string AthHistogramAlgorithm::m_histNamePostfix
privateinherited

The postfix for the histogram THx name.

Definition at line 97 of file AthHistogramAlgorithm.h.

◆ m_histNamePrefix

std::string AthHistogramAlgorithm::m_histNamePrefix
privateinherited

The prefix for the histogram THx name.

Definition at line 94 of file AthHistogramAlgorithm.h.

◆ m_histSvc

ServiceHandle<ITHistSvc> AthHistogramAlgorithm::m_histSvc
privateinherited

Default constructor: AthHistogramAlgorithm();.

a handle on the Hist/TTree registration service

Definition at line 83 of file AthHistogramAlgorithm.h.

◆ m_histTitlePostfix

std::string AthHistogramAlgorithm::m_histTitlePostfix
privateinherited

The postfix for the histogram THx title.

Definition at line 103 of file AthHistogramAlgorithm.h.

◆ m_histTitlePrefix

std::string AthHistogramAlgorithm::m_histTitlePrefix
privateinherited

The prefix for the histogram THx title.

Definition at line 100 of file AthHistogramAlgorithm.h.

◆ m_injMapRunToken

ZdcInjPulserAmpMap::Token ZdcNtuple::m_injMapRunToken {}
private

Definition at line 50 of file ZdcNtuple.h.

50{};

◆ m_inputMetaStore

MetaStore_t EL::AnaAlgorithm::m_inputMetaStore
privateinherited

Object accessing the input metadata store.

Definition at line 568 of file AnaAlgorithm.h.

◆ m_isMC

bool ZdcNtuple::m_isMC

Definition at line 134 of file ZdcNtuple.h.

◆ m_lastRunNumber

unsigned int ZdcNtuple::m_lastRunNumber {0}
private

Definition at line 49 of file ZdcNtuple.h.

49{0};

◆ m_lvl1EnergySumRoI

const xAOD::EnergySumRoI* ZdcNtuple::m_lvl1EnergySumRoI

Definition at line 125 of file ZdcNtuple.h.

◆ m_mbtsInfo

const xAOD::ForwardEventInfoContainer* ZdcNtuple::m_mbtsInfo

Definition at line 119 of file ZdcNtuple.h.

◆ m_mbtsModules

const xAOD::MBTSModuleContainer* ZdcNtuple::m_mbtsModules

Definition at line 120 of file ZdcNtuple.h.

◆ m_mcEventCollectionName

SG::ReadHandleKey<McEventCollection> ZdcNtuple::m_mcEventCollectionName {this, "MCEventCollectionName", "TruthEvent", ""}

Definition at line 110 of file ZdcNtuple.h.

111{this, "MCEventCollectionName", "TruthEvent", ""};

◆ m_msg

MsgStream AthHistogramming::m_msg
privateinherited

Cached Message Stream.

Definition at line 250 of file AthHistogramming.h.

◆ m_name

std::string AthHistogramming::m_name
privateinherited

Instance name.

Definition at line 247 of file AthHistogramming.h.

◆ m_nTriggers

int ZdcNtuple::m_nTriggers

Definition at line 132 of file ZdcNtuple.h.

◆ m_outputMetaStore

MetaStore_t EL::AnaAlgorithm::m_outputMetaStore
privateinherited

Object accessing the output metadata store.

Definition at line 572 of file AnaAlgorithm.h.

◆ m_outputTree

TTree* ZdcNtuple::m_outputTree

Definition at line 148 of file ZdcNtuple.h.

◆ m_prefix

std::string AthHistogramAlgorithm::m_prefix
privateinherited

Name of the ROOT output stream (file).

Definition at line 88 of file AthHistogramAlgorithm.h.

◆ m_primaryVertices

const xAOD::VertexContainer* ZdcNtuple::m_primaryVertices

Definition at line 122 of file ZdcNtuple.h.

◆ m_rerunChainGroups

std::vector<const Trig::ChainGroup*> ZdcNtuple::m_rerunChainGroups

Definition at line 138 of file ZdcNtuple.h.

◆ m_rootDir

std::string AthHistogramAlgorithm::m_rootDir
privateinherited

Name of the ROOT directory.

Definition at line 91 of file AthHistogramAlgorithm.h.

◆ m_scaledownCounter

int ZdcNtuple::m_scaledownCounter

Definition at line 136 of file ZdcNtuple.h.

◆ m_selTool

ToolHandle< InDet::IInDetTrackSelectionTool > ZdcNtuple::m_selTool

Definition at line 104 of file ZdcNtuple.h.

◆ m_setupTrigHist

bool ZdcNtuple::m_setupTrigHist

Definition at line 135 of file ZdcNtuple.h.

◆ m_streamName

std::string AthHistogramming::m_streamName
privateinherited

Name of the ROOT output stream (file).

Definition at line 228 of file AthHistogramming.h.

◆ m_trackParticles

const xAOD::TrackParticleContainer* ZdcNtuple::m_trackParticles

Definition at line 124 of file ZdcNtuple.h.

◆ m_treeMap

TreeMap_t AthHistogramming::m_treeMap
privateinherited

The map of TTree names to their pointers.

Definition at line 217 of file AthHistogramming.h.

◆ m_trigDecision

const xAOD::TrigDecision* ZdcNtuple::m_trigDecision

Definition at line 116 of file ZdcNtuple.h.

◆ m_trigDecisionTool

PublicToolHandle<Trig::TrigDecisionTool> ZdcNtuple::m_trigDecisionTool { this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool" }

Definition at line 100 of file ZdcNtuple.h.

101{ this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool" };

◆ m_trigT2MbtsBits

const xAOD::TrigT2MbtsBitsContainer* ZdcNtuple::m_trigT2MbtsBits

Definition at line 121 of file ZdcNtuple.h.

◆ m_truthParticleContainer

const xAOD::TruthParticleContainer* ZdcNtuple::m_truthParticleContainer

Definition at line 126 of file ZdcNtuple.h.

◆ m_TTcontainer

const xAOD::TriggerTowerContainer* ZdcNtuple::m_TTcontainer

Definition at line 127 of file ZdcNtuple.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_zdcAnalysisTool

asg::AnaToolHandle<ZDC::IZdcAnalysisTool> ZdcNtuple::m_zdcAnalysisTool

Definition at line 103 of file ZdcNtuple.h.

◆ m_zdcInjPulserAmpMap

std::shared_ptr<ZdcInjPulserAmpMap> ZdcNtuple::m_zdcInjPulserAmpMap

Definition at line 130 of file ZdcNtuple.h.

◆ m_zdcModuleContainerName

SG::ReadHandleKey<xAOD::ZdcModuleContainer> ZdcNtuple::m_zdcModuleContainerName { this, "ZdcModuleContainerName", "ZdcModules", "" }

Definition at line 106 of file ZdcNtuple.h.

107{ this, "ZdcModuleContainerName", "ZdcModules", "" };

◆ m_zdcSumContainerName

SG::ReadHandleKey<xAOD::ZdcModuleContainer> ZdcNtuple::m_zdcSumContainerName { this, "ZdcSumContainerName", "ZdcSums", "" }

Definition at line 108 of file ZdcNtuple.h.

109{ this, "ZdcSumContainerName", "ZdcSums", "" };

◆ nProtons

int ZdcNtuple::nProtons

Definition at line 410 of file ZdcNtuple.h.

◆ nsamplesZdc

size_t ZdcNtuple::nsamplesZdc

Definition at line 81 of file ZdcNtuple.h.

◆ oo2025

bool ZdcNtuple::oo2025

Definition at line 86 of file ZdcNtuple.h.

◆ outputName

std::string ZdcNtuple::outputName

Definition at line 95 of file ZdcNtuple.h.

◆ outputTreeScaledown

int ZdcNtuple::outputTreeScaledown

Definition at line 96 of file ZdcNtuple.h.

◆ p_beam

TLorentzVector ZdcNtuple::p_beam

Definition at line 426 of file ZdcNtuple.h.

◆ p_scat

TLorentzVector ZdcNtuple::p_scat

Definition at line 427 of file ZdcNtuple.h.

◆ pbpb2023

bool ZdcNtuple::pbpb2023

Definition at line 85 of file ZdcNtuple.h.

◆ proton_e

std::vector<double> ZdcNtuple::proton_e

Definition at line 414 of file ZdcNtuple.h.

◆ proton_eLoss

std::vector<double> ZdcNtuple::proton_eLoss

Definition at line 416 of file ZdcNtuple.h.

◆ proton_eta

std::vector<double> ZdcNtuple::proton_eta

Definition at line 412 of file ZdcNtuple.h.

◆ proton_phi

std::vector<double> ZdcNtuple::proton_phi

Definition at line 413 of file ZdcNtuple.h.

◆ proton_pt

std::vector<double> ZdcNtuple::proton_pt

Definition at line 411 of file ZdcNtuple.h.

◆ proton_side

std::vector<int> ZdcNtuple::proton_side

Definition at line 415 of file ZdcNtuple.h.

◆ proton_t

std::vector<double> ZdcNtuple::proton_t

Definition at line 417 of file ZdcNtuple.h.

◆ proton_track_nClusters

std::vector<std::vector<int> > ZdcNtuple::proton_track_nClusters

Definition at line 424 of file ZdcNtuple.h.

◆ proton_track_stationID

std::vector<std::vector<int> > ZdcNtuple::proton_track_stationID

Definition at line 418 of file ZdcNtuple.h.

◆ proton_track_xLocal

std::vector<std::vector<float> > ZdcNtuple::proton_track_xLocal

Definition at line 419 of file ZdcNtuple.h.

◆ proton_track_xSlope

std::vector<std::vector<float> > ZdcNtuple::proton_track_xSlope

Definition at line 422 of file ZdcNtuple.h.

◆ proton_track_yLocal

std::vector<std::vector<float> > ZdcNtuple::proton_track_yLocal

Definition at line 420 of file ZdcNtuple.h.

◆ proton_track_ySlope

std::vector<std::vector<float> > ZdcNtuple::proton_track_ySlope

Definition at line 423 of file ZdcNtuple.h.

◆ proton_track_zLocal

std::vector<std::vector<float> > ZdcNtuple::proton_track_zLocal

Definition at line 421 of file ZdcNtuple.h.

◆ reprocZdc

bool ZdcNtuple::reprocZdc

Definition at line 79 of file ZdcNtuple.h.

◆ slimmed

bool ZdcNtuple::slimmed

Definition at line 53 of file ZdcNtuple.h.

◆ t_actIntPerCrossing

float ZdcNtuple::t_actIntPerCrossing

Definition at line 160 of file ZdcNtuple.h.

◆ t_avgIntPerCrossing

float ZdcNtuple::t_avgIntPerCrossing

Definition at line 159 of file ZdcNtuple.h.

◆ t_bcid

uint32_t ZdcNtuple::t_bcid

Definition at line 152 of file ZdcNtuple.h.

◆ t_bunchGroup

uint8_t ZdcNtuple::t_bunchGroup

Definition at line 154 of file ZdcNtuple.h.

◆ t_cc_e

std::vector<float> ZdcNtuple::t_cc_e

Definition at line 394 of file ZdcNtuple.h.

◆ t_cc_eta

std::vector<float> ZdcNtuple::t_cc_eta

Definition at line 392 of file ZdcNtuple.h.

◆ t_cc_layer

std::vector<int> ZdcNtuple::t_cc_layer

Definition at line 396 of file ZdcNtuple.h.

◆ t_cc_phi

std::vector<float> ZdcNtuple::t_cc_phi

Definition at line 393 of file ZdcNtuple.h.

◆ t_cc_pt

std::vector<float> ZdcNtuple::t_cc_pt

Definition at line 391 of file ZdcNtuple.h.

◆ t_cc_raw_e

std::vector<float> ZdcNtuple::t_cc_raw_e

Definition at line 400 of file ZdcNtuple.h.

◆ t_cc_raw_eta

std::vector<float> ZdcNtuple::t_cc_raw_eta

Definition at line 398 of file ZdcNtuple.h.

◆ t_cc_raw_m

std::vector<float> ZdcNtuple::t_cc_raw_m

Definition at line 397 of file ZdcNtuple.h.

◆ t_cc_raw_phi

std::vector<float> ZdcNtuple::t_cc_raw_phi

Definition at line 399 of file ZdcNtuple.h.

◆ t_cc_raw_samp

std::vector<std::vector<float> > ZdcNtuple::t_cc_raw_samp

Definition at line 401 of file ZdcNtuple.h.

◆ t_cc_sig

std::vector<float> ZdcNtuple::t_cc_sig

Definition at line 395 of file ZdcNtuple.h.

◆ t_centroidDecorationsAvailable

bool ZdcNtuple::t_centroidDecorationsAvailable

Definition at line 268 of file ZdcNtuple.h.

◆ t_centroidEventValid

char ZdcNtuple::t_centroidEventValid

Definition at line 269 of file ZdcNtuple.h.

◆ t_centroidStatus

unsigned int ZdcNtuple::t_centroidStatus[2]

Definition at line 270 of file ZdcNtuple.h.

◆ t_clusEt

float ZdcNtuple::t_clusEt

Definition at line 403 of file ZdcNtuple.h.

◆ t_clusetaMax

float ZdcNtuple::t_clusetaMax

Definition at line 405 of file ZdcNtuple.h.

◆ t_clusEtMax

float ZdcNtuple::t_clusEtMax

Definition at line 404 of file ZdcNtuple.h.

◆ t_clusphiMax

float ZdcNtuple::t_clusphiMax

Definition at line 406 of file ZdcNtuple.h.

◆ t_cosDeltaReactionPlaneAngle

float ZdcNtuple::t_cosDeltaReactionPlaneAngle

Definition at line 282 of file ZdcNtuple.h.

◆ t_decisions

bool ZdcNtuple::t_decisions[200]

Definition at line 172 of file ZdcNtuple.h.

◆ t_edgeGapA

float ZdcNtuple::t_edgeGapA

Definition at line 326 of file ZdcNtuple.h.

◆ t_edgeGapC

float ZdcNtuple::t_edgeGapC

Definition at line 327 of file ZdcNtuple.h.

◆ t_eventNumber

uint32_t ZdcNtuple::t_eventNumber

Definition at line 150 of file ZdcNtuple.h.

◆ t_extendedLevel1ID

uint32_t ZdcNtuple::t_extendedLevel1ID

Definition at line 156 of file ZdcNtuple.h.

◆ t_fcalEt

float ZdcNtuple::t_fcalEt

Definition at line 312 of file ZdcNtuple.h.

◆ t_fcalEtA

float ZdcNtuple::t_fcalEtA

Definition at line 313 of file ZdcNtuple.h.

◆ t_fcalEtA_TT

float ZdcNtuple::t_fcalEtA_TT

Definition at line 315 of file ZdcNtuple.h.

◆ t_fcalEtA_TTsum

float ZdcNtuple::t_fcalEtA_TTsum

Definition at line 317 of file ZdcNtuple.h.

◆ t_fcalEtC

float ZdcNtuple::t_fcalEtC

Definition at line 314 of file ZdcNtuple.h.

◆ t_fcalEtC_TT

float ZdcNtuple::t_fcalEtC_TT

Definition at line 316 of file ZdcNtuple.h.

◆ t_fcalEtC_TTsum

float ZdcNtuple::t_fcalEtC_TTsum

Definition at line 318 of file ZdcNtuple.h.

◆ t_L1ET

float ZdcNtuple::t_L1ET

Definition at line 140 of file ZdcNtuple.h.

◆ t_L1ET24

float ZdcNtuple::t_L1ET24

Definition at line 141 of file ZdcNtuple.h.

◆ t_lumiBlock

uint32_t ZdcNtuple::t_lumiBlock

Definition at line 151 of file ZdcNtuple.h.

◆ t_mbts_countA

uint16_t ZdcNtuple::t_mbts_countA

Definition at line 342 of file ZdcNtuple.h.

◆ t_mbts_countC

uint16_t ZdcNtuple::t_mbts_countC

Definition at line 343 of file ZdcNtuple.h.

◆ t_mbts_in_e

float ZdcNtuple::t_mbts_in_e[2][8]

Definition at line 175 of file ZdcNtuple.h.

◆ t_mbts_in_t

float ZdcNtuple::t_mbts_in_t[2][8]

Definition at line 177 of file ZdcNtuple.h.

◆ t_mbts_out_e

float ZdcNtuple::t_mbts_out_e[2][4]

Definition at line 176 of file ZdcNtuple.h.

◆ t_mbts_out_t

float ZdcNtuple::t_mbts_out_t[2][4]

Definition at line 178 of file ZdcNtuple.h.

◆ t_mbts_timeA

float ZdcNtuple::t_mbts_timeA

Definition at line 344 of file ZdcNtuple.h.

◆ t_mbts_timeC

float ZdcNtuple::t_mbts_timeC

Definition at line 345 of file ZdcNtuple.h.

◆ t_mbts_timeDiff

float ZdcNtuple::t_mbts_timeDiff

Definition at line 346 of file ZdcNtuple.h.

◆ t_nclus

uint32_t ZdcNtuple::t_nclus

Definition at line 390 of file ZdcNtuple.h.

◆ t_nstrong

int ZdcNtuple::t_nstrong

Definition at line 295 of file ZdcNtuple.h.

◆ t_ntrk

uint32_t ZdcNtuple::t_ntrk

Definition at line 362 of file ZdcNtuple.h.

◆ t_nvtx

int ZdcNtuple::t_nvtx

Definition at line 300 of file ZdcNtuple.h.

◆ t_nvx

int ZdcNtuple::t_nvx

Definition at line 284 of file ZdcNtuple.h.

◆ t_passBits

uint32_t ZdcNtuple::t_passBits

Definition at line 155 of file ZdcNtuple.h.

◆ t_prescales

float ZdcNtuple::t_prescales[200]

Definition at line 171 of file ZdcNtuple.h.

◆ t_puvxntrk

int ZdcNtuple::t_puvxntrk

Definition at line 293 of file ZdcNtuple.h.

◆ t_puvxsumpt

float ZdcNtuple::t_puvxsumpt

Definition at line 294 of file ZdcNtuple.h.

◆ t_puvxz

float ZdcNtuple::t_puvxz

Definition at line 292 of file ZdcNtuple.h.

◆ t_pvindex

int ZdcNtuple::t_pvindex

Definition at line 289 of file ZdcNtuple.h.

◆ t_raw15

uint16_t ZdcNtuple::t_raw15[2][4][2][2][15]

Definition at line 352 of file ZdcNtuple.h.

◆ t_raw24

uint16_t ZdcNtuple::t_raw24[2][4][2][2][24]

Definition at line 353 of file ZdcNtuple.h.

◆ t_raw32

uint16_t ZdcNtuple::t_raw32[2][4][2][2][32]

Definition at line 354 of file ZdcNtuple.h.

◆ t_raw40

uint16_t ZdcNtuple::t_raw40[2][4][2][2][40]

Definition at line 355 of file ZdcNtuple.h.

◆ t_raw7

uint16_t ZdcNtuple::t_raw7[2][4][2][2][7]

Definition at line 351 of file ZdcNtuple.h.

◆ t_reactionPlaneAngle

float ZdcNtuple::t_reactionPlaneAngle[2]

Definition at line 281 of file ZdcNtuple.h.

◆ t_rerunDecisions

bool ZdcNtuple::t_rerunDecisions[200]

Definition at line 173 of file ZdcNtuple.h.

◆ t_RpdChannelAmplitude

float ZdcNtuple::t_RpdChannelAmplitude[2][16]

Definition at line 258 of file ZdcNtuple.h.

◆ t_RpdChannelAmplitudeCalib

float ZdcNtuple::t_RpdChannelAmplitudeCalib[2][16]

Definition at line 259 of file ZdcNtuple.h.

◆ t_RpdChannelBaseline

float ZdcNtuple::t_RpdChannelBaseline[2][16]

Definition at line 251 of file ZdcNtuple.h.

◆ t_RpdChannelMaxADC

float ZdcNtuple::t_RpdChannelMaxADC[2][16]

Definition at line 260 of file ZdcNtuple.h.

◆ t_RpdChannelMaxADCCalib

float ZdcNtuple::t_RpdChannelMaxADCCalib[2][16]

Definition at line 261 of file ZdcNtuple.h.

◆ t_RpdChannelMaxSample

unsigned int ZdcNtuple::t_RpdChannelMaxSample[2][16]

Definition at line 262 of file ZdcNtuple.h.

◆ t_RpdChannelPileupExpFitMSE

float ZdcNtuple::t_RpdChannelPileupExpFitMSE[2][16]

Definition at line 256 of file ZdcNtuple.h.

◆ t_RpdChannelPileupExpFitParamErrs

float ZdcNtuple::t_RpdChannelPileupExpFitParamErrs[2][16][2]

Definition at line 254 of file ZdcNtuple.h.

◆ t_RpdChannelPileupExpFitParams

float ZdcNtuple::t_RpdChannelPileupExpFitParams[2][16][2]

Definition at line 252 of file ZdcNtuple.h.

◆ t_RpdChannelPileupFrac

float ZdcNtuple::t_RpdChannelPileupFrac[2][16]

Definition at line 264 of file ZdcNtuple.h.

◆ t_RpdChannelPileupStretchedExpFitMSE

float ZdcNtuple::t_RpdChannelPileupStretchedExpFitMSE[2][16]

Definition at line 257 of file ZdcNtuple.h.

◆ t_RpdChannelPileupStretchedExpFitParamErrs

float ZdcNtuple::t_RpdChannelPileupStretchedExpFitParamErrs[2][16][3]

Definition at line 255 of file ZdcNtuple.h.

◆ t_RpdChannelPileupStretchedExpFitParams

float ZdcNtuple::t_RpdChannelPileupStretchedExpFitParams[2][16][3]

Definition at line 253 of file ZdcNtuple.h.

◆ t_RpdChannelStatus

unsigned int ZdcNtuple::t_RpdChannelStatus[2][16]

Definition at line 263 of file ZdcNtuple.h.

◆ t_RPDChannelSubtrAmp

float ZdcNtuple::t_RPDChannelSubtrAmp[2][16]

Definition at line 271 of file ZdcNtuple.h.

◆ t_rpdDecodingError

uint8_t ZdcNtuple::t_rpdDecodingError

Definition at line 165 of file ZdcNtuple.h.

◆ t_RpdModuleTruthNphotons

unsigned int ZdcNtuple::t_RpdModuleTruthNphotons[2][16]

Definition at line 266 of file ZdcNtuple.h.

◆ t_rpdRaw

uint16_t ZdcNtuple::t_rpdRaw[2][16][24]

Definition at line 357 of file ZdcNtuple.h.

◆ t_rpdRaw32

uint16_t ZdcNtuple::t_rpdRaw32[2][16][32]

Definition at line 358 of file ZdcNtuple.h.

◆ t_rpdRaw40

uint16_t ZdcNtuple::t_rpdRaw40[2][16][40]

Definition at line 359 of file ZdcNtuple.h.

◆ t_RpdSideStatus

unsigned int ZdcNtuple::t_RpdSideStatus[2]

Definition at line 265 of file ZdcNtuple.h.

◆ t_RPDSubtrAmpSum

float ZdcNtuple::t_RPDSubtrAmpSum[2]

Definition at line 272 of file ZdcNtuple.h.

◆ t_runNumber

uint32_t ZdcNtuple::t_runNumber

Definition at line 149 of file ZdcNtuple.h.

◆ t_T2mbts_countAin

uint16_t ZdcNtuple::t_T2mbts_countAin

Definition at line 348 of file ZdcNtuple.h.

◆ t_T2mbts_countCin

uint16_t ZdcNtuple::t_T2mbts_countCin

Definition at line 349 of file ZdcNtuple.h.

◆ t_T2mbts_in_e

float ZdcNtuple::t_T2mbts_in_e[2][8]

Definition at line 180 of file ZdcNtuple.h.

◆ t_T2mbts_in_t

float ZdcNtuple::t_T2mbts_in_t[2][8]

Definition at line 182 of file ZdcNtuple.h.

◆ t_T2mbts_out_e

float ZdcNtuple::t_T2mbts_out_e[2][4]

Definition at line 181 of file ZdcNtuple.h.

◆ t_T2mbts_out_t

float ZdcNtuple::t_T2mbts_out_t[2][4]

Definition at line 183 of file ZdcNtuple.h.

◆ t_tav

uint32_t ZdcNtuple::t_tav[16]

Definition at line 185 of file ZdcNtuple.h.

◆ t_tbp

uint32_t ZdcNtuple::t_tbp[16]

Definition at line 186 of file ZdcNtuple.h.

◆ t_timeStamp

uint32_t ZdcNtuple::t_timeStamp

Definition at line 157 of file ZdcNtuple.h.

◆ t_timeStampNSOffset

uint32_t ZdcNtuple::t_timeStampNSOffset

Definition at line 158 of file ZdcNtuple.h.

◆ t_totalEt

float ZdcNtuple::t_totalEt

Definition at line 320 of file ZdcNtuple.h.

◆ t_totalEt24

float ZdcNtuple::t_totalEt24

Definition at line 322 of file ZdcNtuple.h.

◆ t_totalEt24_TTsum

float ZdcNtuple::t_totalEt24_TTsum

Definition at line 323 of file ZdcNtuple.h.

◆ t_totalEt_TTsum

float ZdcNtuple::t_totalEt_TTsum

Definition at line 321 of file ZdcNtuple.h.

◆ t_trigger

uint64_t ZdcNtuple::t_trigger

Definition at line 167 of file ZdcNtuple.h.

◆ t_trigger_TBP

uint32_t ZdcNtuple::t_trigger_TBP

Definition at line 168 of file ZdcNtuple.h.

◆ t_trk_charge

std::vector<int8_t> ZdcNtuple::t_trk_charge

Definition at line 372 of file ZdcNtuple.h.

◆ t_trk_d0

std::vector<float> ZdcNtuple::t_trk_d0

Definition at line 368 of file ZdcNtuple.h.

◆ t_trk_e

std::vector<float> ZdcNtuple::t_trk_e

Definition at line 366 of file ZdcNtuple.h.

◆ t_trk_eta

std::vector<float> ZdcNtuple::t_trk_eta

Definition at line 364 of file ZdcNtuple.h.

◆ t_trk_exPixHits

std::vector<uint8_t> ZdcNtuple::t_trk_exPixHits

Definition at line 384 of file ZdcNtuple.h.

◆ t_trk_index

std::vector<int> ZdcNtuple::t_trk_index

Definition at line 374 of file ZdcNtuple.h.

◆ t_trk_inPixHits

std::vector<uint8_t> ZdcNtuple::t_trk_inPixHits

Definition at line 383 of file ZdcNtuple.h.

◆ t_trk_nexPixHits

std::vector<uint8_t> ZdcNtuple::t_trk_nexPixHits

Definition at line 386 of file ZdcNtuple.h.

◆ t_trk_ninPixHits

std::vector<uint8_t> ZdcNtuple::t_trk_ninPixHits

Definition at line 385 of file ZdcNtuple.h.

◆ t_trk_nPixDead

std::vector<uint8_t> ZdcNtuple::t_trk_nPixDead

Definition at line 377 of file ZdcNtuple.h.

◆ t_trk_nPixHits

std::vector<uint8_t> ZdcNtuple::t_trk_nPixHits

Definition at line 375 of file ZdcNtuple.h.

◆ t_trk_nPixHoles

std::vector<uint8_t> ZdcNtuple::t_trk_nPixHoles

Definition at line 379 of file ZdcNtuple.h.

◆ t_trk_nSctDead

std::vector<uint8_t> ZdcNtuple::t_trk_nSctDead

Definition at line 378 of file ZdcNtuple.h.

◆ t_trk_nSctHits

std::vector<uint8_t> ZdcNtuple::t_trk_nSctHits

Definition at line 376 of file ZdcNtuple.h.

◆ t_trk_nSctHoles

std::vector<uint8_t> ZdcNtuple::t_trk_nSctHoles

Definition at line 380 of file ZdcNtuple.h.

◆ t_trk_nTrtHits

std::vector<uint8_t> ZdcNtuple::t_trk_nTrtHits

Definition at line 381 of file ZdcNtuple.h.

◆ t_trk_nTrtOutliers

std::vector<uint8_t> ZdcNtuple::t_trk_nTrtOutliers

Definition at line 382 of file ZdcNtuple.h.

◆ t_trk_phi

std::vector<float> ZdcNtuple::t_trk_phi

Definition at line 365 of file ZdcNtuple.h.

◆ t_trk_pixeldEdx

std::vector<float> ZdcNtuple::t_trk_pixeldEdx

Definition at line 387 of file ZdcNtuple.h.

◆ t_trk_pt

std::vector<float> ZdcNtuple::t_trk_pt

Definition at line 363 of file ZdcNtuple.h.

◆ t_trk_quality

std::vector<int16_t> ZdcNtuple::t_trk_quality

Definition at line 373 of file ZdcNtuple.h.

◆ t_trk_theta

std::vector<float> ZdcNtuple::t_trk_theta

Definition at line 367 of file ZdcNtuple.h.

◆ t_trk_vtxz

std::vector<float> ZdcNtuple::t_trk_vtxz

Definition at line 371 of file ZdcNtuple.h.

◆ t_trk_vz

std::vector<float> ZdcNtuple::t_trk_vz

Definition at line 370 of file ZdcNtuple.h.

◆ t_trk_z0

std::vector<float> ZdcNtuple::t_trk_z0

Definition at line 369 of file ZdcNtuple.h.

◆ t_vInj

float ZdcNtuple::t_vInj

Definition at line 153 of file ZdcNtuple.h.

◆ t_vtx_ntrk

std::vector<int16_t> ZdcNtuple::t_vtx_ntrk

Definition at line 307 of file ZdcNtuple.h.

◆ t_vtx_ntrk_all

std::vector<int16_t> ZdcNtuple::t_vtx_ntrk_all

Definition at line 305 of file ZdcNtuple.h.

◆ t_vtx_sumpt2

std::vector<float> ZdcNtuple::t_vtx_sumpt2

Definition at line 308 of file ZdcNtuple.h.

◆ t_vtx_sumpt2_all

std::vector<float> ZdcNtuple::t_vtx_sumpt2_all

Definition at line 306 of file ZdcNtuple.h.

◆ t_vtx_trk_index

std::vector< std::vector<int16_t> > ZdcNtuple::t_vtx_trk_index

Definition at line 309 of file ZdcNtuple.h.

◆ t_vtx_type

std::vector<int8_t> ZdcNtuple::t_vtx_type

Definition at line 301 of file ZdcNtuple.h.

◆ t_vtx_x

std::vector<float> ZdcNtuple::t_vtx_x

Definition at line 302 of file ZdcNtuple.h.

◆ t_vtx_y

std::vector<float> ZdcNtuple::t_vtx_y

Definition at line 303 of file ZdcNtuple.h.

◆ t_vtx_z

std::vector<float> ZdcNtuple::t_vtx_z

Definition at line 304 of file ZdcNtuple.h.

◆ t_vx

float ZdcNtuple::t_vx[3]

Definition at line 285 of file ZdcNtuple.h.

◆ t_vx_trk_index

std::vector<int> ZdcNtuple::t_vx_trk_index

Definition at line 287 of file ZdcNtuple.h.

◆ t_vxcov

float ZdcNtuple::t_vxcov[6]

Definition at line 290 of file ZdcNtuple.h.

◆ t_vxngoodmuon

int ZdcNtuple::t_vxngoodmuon

Definition at line 298 of file ZdcNtuple.h.

◆ t_vxnlooseprimary

int ZdcNtuple::t_vxnlooseprimary

Definition at line 296 of file ZdcNtuple.h.

◆ t_vxnminbias

int ZdcNtuple::t_vxnminbias

Definition at line 297 of file ZdcNtuple.h.

◆ t_vxntrk

int ZdcNtuple::t_vxntrk

Definition at line 286 of file ZdcNtuple.h.

◆ t_vxsumpt2

float ZdcNtuple::t_vxsumpt2

Definition at line 291 of file ZdcNtuple.h.

◆ t_vxtype

int ZdcNtuple::t_vxtype

Definition at line 288 of file ZdcNtuple.h.

◆ t_xCentroid

float ZdcNtuple::t_xCentroid[2]

Definition at line 277 of file ZdcNtuple.h.

◆ t_xCentroidPreAvgSubtr

float ZdcNtuple::t_xCentroidPreAvgSubtr[2]

Definition at line 275 of file ZdcNtuple.h.

◆ t_xCentroidPreGeomCorPreAvgSubtr

float ZdcNtuple::t_xCentroidPreGeomCorPreAvgSubtr[2]

Definition at line 273 of file ZdcNtuple.h.

◆ t_xRowCentroid

float ZdcNtuple::t_xRowCentroid[2][4]

Definition at line 279 of file ZdcNtuple.h.

◆ t_yCentroid

float ZdcNtuple::t_yCentroid[2]

Definition at line 278 of file ZdcNtuple.h.

◆ t_yCentroidPreAvgSubtr

float ZdcNtuple::t_yCentroidPreAvgSubtr[2]

Definition at line 276 of file ZdcNtuple.h.

◆ t_yCentroidPreGeomCorPreAvgSubtr

float ZdcNtuple::t_yCentroidPreGeomCorPreAvgSubtr[2]

Definition at line 274 of file ZdcNtuple.h.

◆ t_yColCentroid

float ZdcNtuple::t_yColCentroid[2][4]

Definition at line 280 of file ZdcNtuple.h.

◆ t_ZdcAmp

float ZdcNtuple::t_ZdcAmp[2]

Definition at line 188 of file ZdcNtuple.h.

◆ t_ZdcAmpErr

float ZdcNtuple::t_ZdcAmpErr[2]

Definition at line 189 of file ZdcNtuple.h.

◆ t_zdcDecodingError

uint8_t ZdcNtuple::t_zdcDecodingError

Definition at line 164 of file ZdcNtuple.h.

◆ t_ZdcEnergy

float ZdcNtuple::t_ZdcEnergy[2]

Definition at line 190 of file ZdcNtuple.h.

◆ t_ZdcEnergyErr

float ZdcNtuple::t_ZdcEnergyErr[2]

Definition at line 191 of file ZdcNtuple.h.

◆ t_zdcEventInfoError

uint8_t ZdcNtuple::t_zdcEventInfoError

Definition at line 161 of file ZdcNtuple.h.

◆ t_zdcEventInfoErrorWord

uint32_t ZdcNtuple::t_zdcEventInfoErrorWord

Definition at line 162 of file ZdcNtuple.h.

◆ t_ZdcLucrodTriggerAmp

unsigned short ZdcNtuple::t_ZdcLucrodTriggerAmp[2][4]

Definition at line 231 of file ZdcNtuple.h.

◆ t_ZdcLucrodTriggerAmpLG

unsigned short ZdcNtuple::t_ZdcLucrodTriggerAmpLG[2][4]

Definition at line 232 of file ZdcNtuple.h.

◆ t_ZdcLucrodTriggerSideAmp

unsigned short ZdcNtuple::t_ZdcLucrodTriggerSideAmp[2]

Definition at line 198 of file ZdcNtuple.h.

◆ t_ZdcLucrodTriggerSideAmpLG

unsigned short ZdcNtuple::t_ZdcLucrodTriggerSideAmpLG[2]

Definition at line 199 of file ZdcNtuple.h.

◆ t_ZdcModuleAmp

float ZdcNtuple::t_ZdcModuleAmp[2][4]

Definition at line 216 of file ZdcNtuple.h.

◆ t_ZdcModuleAmpCorrLGRefit

float ZdcNtuple::t_ZdcModuleAmpCorrLGRefit[2][4]

Definition at line 239 of file ZdcNtuple.h.

◆ t_ZdcModuleAmpError

float ZdcNtuple::t_ZdcModuleAmpError[2][4]

Definition at line 226 of file ZdcNtuple.h.

◆ t_ZdcModuleAmpLGRefit

float ZdcNtuple::t_ZdcModuleAmpLGRefit[2][4]

Definition at line 238 of file ZdcNtuple.h.

◆ t_ZdcModuleAmpUncorr

float ZdcNtuple::t_ZdcModuleAmpUncorr[2][4]

Definition at line 217 of file ZdcNtuple.h.

◆ t_ZdcModuleBkgdMaxFraction

float ZdcNtuple::t_ZdcModuleBkgdMaxFraction[2][4]

Definition at line 227 of file ZdcNtuple.h.

◆ t_ZdcModuleCalibAmp

float ZdcNtuple::t_ZdcModuleCalibAmp[2][4]

Definition at line 224 of file ZdcNtuple.h.

◆ t_ZdcModuleCalibTime

float ZdcNtuple::t_ZdcModuleCalibTime[2][4]

Definition at line 225 of file ZdcNtuple.h.

◆ t_ZdcModuleChisq

float ZdcNtuple::t_ZdcModuleChisq[2][4]

Definition at line 221 of file ZdcNtuple.h.

◆ t_ZdcModuleChisqLGRefit

float ZdcNtuple::t_ZdcModuleChisqLGRefit[2][4]

Definition at line 242 of file ZdcNtuple.h.

◆ t_ZdcModuleChisqRatio

float ZdcNtuple::t_ZdcModuleChisqRatio[2][4]

Definition at line 222 of file ZdcNtuple.h.

◆ t_ZdcModuleFitAmp

float ZdcNtuple::t_ZdcModuleFitAmp[2][4]

Definition at line 219 of file ZdcNtuple.h.

◆ t_ZdcModuleFitT0

float ZdcNtuple::t_ZdcModuleFitT0[2][4]

Definition at line 220 of file ZdcNtuple.h.

◆ t_ZdcModuleMask

unsigned int ZdcNtuple::t_ZdcModuleMask

Definition at line 196 of file ZdcNtuple.h.

◆ t_ZdcModuleMaxADC

float ZdcNtuple::t_ZdcModuleMaxADC[2][4]

Definition at line 233 of file ZdcNtuple.h.

◆ t_ZdcModuleMaxADCHG

float ZdcNtuple::t_ZdcModuleMaxADCHG[2][4]

Definition at line 234 of file ZdcNtuple.h.

◆ t_ZdcModuleMaxADCLG

float ZdcNtuple::t_ZdcModuleMaxADCLG[2][4]

Definition at line 235 of file ZdcNtuple.h.

◆ t_ZdcModuleMinDeriv2nd

float ZdcNtuple::t_ZdcModuleMinDeriv2nd[2][4]

Definition at line 228 of file ZdcNtuple.h.

◆ t_ZdcModulePeakADCHG

float ZdcNtuple::t_ZdcModulePeakADCHG[2][4]

Definition at line 236 of file ZdcNtuple.h.

◆ t_ZdcModulePeakADCLG

float ZdcNtuple::t_ZdcModulePeakADCLG[2][4]

Definition at line 237 of file ZdcNtuple.h.

◆ t_ZdcModulePresample

float ZdcNtuple::t_ZdcModulePresample[2][4]

Definition at line 229 of file ZdcNtuple.h.

◆ t_ZdcModulePreSampleAmp

float ZdcNtuple::t_ZdcModulePreSampleAmp[2][4]

Definition at line 230 of file ZdcNtuple.h.

◆ t_ZdcModuleStatus

unsigned int ZdcNtuple::t_ZdcModuleStatus[2][4]

Definition at line 223 of file ZdcNtuple.h.

◆ t_ZdcModuleT0LGRefit

float ZdcNtuple::t_ZdcModuleT0LGRefit[2][4]

Definition at line 240 of file ZdcNtuple.h.

◆ t_ZdcModuleT0SubLGRefit

float ZdcNtuple::t_ZdcModuleT0SubLGRefit[2][4]

Definition at line 241 of file ZdcNtuple.h.

◆ t_ZdcModuleTime

float ZdcNtuple::t_ZdcModuleTime[2][4]

Definition at line 218 of file ZdcNtuple.h.

◆ t_ZdcModuleTruthEM

float ZdcNtuple::t_ZdcModuleTruthEM[2][7]

Definition at line 246 of file ZdcNtuple.h.

◆ t_ZdcModuleTruthEscaped

float ZdcNtuple::t_ZdcModuleTruthEscaped[2][7]

Definition at line 248 of file ZdcNtuple.h.

◆ t_ZdcModuleTruthInvis

float ZdcNtuple::t_ZdcModuleTruthInvis[2][7]

Definition at line 245 of file ZdcNtuple.h.

◆ t_ZdcModuleTruthNonEM

float ZdcNtuple::t_ZdcModuleTruthNonEM[2][7]

Definition at line 247 of file ZdcNtuple.h.

◆ t_ZdcModuleTruthNphotons

unsigned int ZdcNtuple::t_ZdcModuleTruthNphotons[2][7]

Definition at line 249 of file ZdcNtuple.h.

◆ t_ZdcModuleTruthTotal

float ZdcNtuple::t_ZdcModuleTruthTotal[2][7]

Definition at line 244 of file ZdcNtuple.h.

◆ t_ZdcNLEnergy

float ZdcNtuple::t_ZdcNLEnergy[2]

Definition at line 192 of file ZdcNtuple.h.

◆ t_ZdcNLEnergyErr

float ZdcNtuple::t_ZdcNLEnergyErr[2]

Definition at line 193 of file ZdcNtuple.h.

◆ t_ZdcStatus

short ZdcNtuple::t_ZdcStatus[2]

Definition at line 195 of file ZdcNtuple.h.

◆ t_ZdcTime

float ZdcNtuple::t_ZdcTime[2]

Definition at line 194 of file ZdcNtuple.h.

◆ t_ZdcTrigEff

float ZdcNtuple::t_ZdcTrigEff[2]

Definition at line 197 of file ZdcNtuple.h.

◆ t_ZdcTruthEM

float ZdcNtuple::t_ZdcTruthEM[2]

Definition at line 202 of file ZdcNtuple.h.

◆ t_ZdcTruthEscaped

float ZdcNtuple::t_ZdcTruthEscaped[2]

Definition at line 204 of file ZdcNtuple.h.

◆ t_ZdcTruthInvis

float ZdcNtuple::t_ZdcTruthInvis[2]

Definition at line 201 of file ZdcNtuple.h.

◆ t_ZdcTruthNonEM

float ZdcNtuple::t_ZdcTruthNonEM[2]

Definition at line 203 of file ZdcNtuple.h.

◆ t_ZdcTruthParticleEnergy

std::vector< float > ZdcNtuple::t_ZdcTruthParticleEnergy

Definition at line 212 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePid

std::vector< int > ZdcNtuple::t_ZdcTruthParticlePid

Definition at line 213 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePosx

std::vector< float > ZdcNtuple::t_ZdcTruthParticlePosx

Definition at line 205 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePosy

std::vector< float > ZdcNtuple::t_ZdcTruthParticlePosy

Definition at line 206 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePosz

std::vector< float > ZdcNtuple::t_ZdcTruthParticlePosz

Definition at line 207 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePx

std::vector< float > ZdcNtuple::t_ZdcTruthParticlePx

Definition at line 209 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePy

std::vector< float > ZdcNtuple::t_ZdcTruthParticlePy

Definition at line 210 of file ZdcNtuple.h.

◆ t_ZdcTruthParticlePz

std::vector< float > ZdcNtuple::t_ZdcTruthParticlePz

Definition at line 211 of file ZdcNtuple.h.

◆ t_ZdcTruthParticleStatus

std::vector< int > ZdcNtuple::t_ZdcTruthParticleStatus

Definition at line 214 of file ZdcNtuple.h.

◆ t_ZdcTruthParticleTime

std::vector< float > ZdcNtuple::t_ZdcTruthParticleTime

Definition at line 208 of file ZdcNtuple.h.

◆ t_ZdcTruthTotal

float ZdcNtuple::t_ZdcTruthTotal[2]

Definition at line 200 of file ZdcNtuple.h.

◆ trackLimit

size_t ZdcNtuple::trackLimit

Definition at line 76 of file ZdcNtuple.h.

◆ trackLimitReject

bool ZdcNtuple::trackLimitReject

Definition at line 77 of file ZdcNtuple.h.

◆ useGRL

bool ZdcNtuple::useGRL

Definition at line 54 of file ZdcNtuple.h.

◆ writeOnlyTriggers

bool ZdcNtuple::writeOnlyTriggers

Definition at line 59 of file ZdcNtuple.h.

◆ zdcCalib

bool ZdcNtuple::zdcCalib

Definition at line 71 of file ZdcNtuple.h.

◆ zdcConfig

std::string ZdcNtuple::zdcConfig

Definition at line 93 of file ZdcNtuple.h.

◆ zdcInj

bool ZdcNtuple::zdcInj

Definition at line 73 of file ZdcNtuple.h.

◆ zdcLaser

bool ZdcNtuple::zdcLaser

Definition at line 72 of file ZdcNtuple.h.

◆ zdcLowGainMode

unsigned int ZdcNtuple::zdcLowGainMode

Definition at line 75 of file ZdcNtuple.h.

◆ zdcOnly

bool ZdcNtuple::zdcOnly

Definition at line 74 of file ZdcNtuple.h.


The documentation for this class was generated from the following files: