|
ATLAS Offline Software
|
Go to the documentation of this file.
29 return StatusCode::SUCCESS;
71 std::optional<SG::ThinningHandle<xAOD::ParticleContainer> > finalPi0sOpt;
74 finalPi0sOpt->thinAll();
77 std::optional<SG::ThinningHandle<xAOD::CaloClusterContainer> > shotclustersOpt;
80 shotclustersOpt->thinAll();
83 std::optional<SG::ThinningHandle<CaloClusterCellLinkContainer> > shotCellLinksOpt;
86 shotCellLinksOpt->thinAll();
93 if (!acc_passThinning(*tau))
continue;
96 taus.keep(tau->index());
109 TLorentzVector clusterP4 = cluster->
p4();
114 clusterP4 = vertexedCluster.
p4();
117 if (clusterP4.DeltaR(tauAxis) > 0.2)
continue;
127 if(cellLinks_it != tauCellLinks->end()) {
128 size_t link_index =
std::distance(tauCellLinks->begin(), cellLinks_it);
129 tauCellLinks.
keep(link_index);
140 if (
it.index() >=
cells->size()) {
149 for(
size_t i=0;
i<tau->nNeutralPFOs();
i++) {
151 neutralPFOs.
keep(tau->neutralPFO(
i)->index());
160 if(cellLinks_it != pi0CellLinks->end()) {
161 size_t link_index =
std::distance(pi0CellLinks->begin(), cellLinks_it);
162 pi0CellLinks.
keep(link_index);
172 if (
it.index() >=
cells->size()) {
182 for(
size_t i=0;
i<tau->nPi0s();
i++) {
183 finalPi0sOpt->keep(tau->pi0(
i)->index());
188 for(
size_t i=0;
i<tau->nShotPFOs();
i++) {
190 shotPFOs.
keep(tau->shotPFO(
i)->index());
194 if (!cluster)
continue;
195 if (shotclustersOpt) {
196 shotclustersOpt->keep(cluster->
index());
201 if (shotCellLinksOpt) {
203 if(cellLinks_it != (*shotCellLinksOpt)->end()) {
204 size_t link_index =
std::distance((*shotCellLinksOpt)->begin(), cellLinks_it);
205 shotCellLinksOpt->keep(link_index);
216 if (
it.index() >=
cells->size()) {
225 for(
size_t i=0;
i<tau->nHadronicPFOs();
i++) {
226 hadronicPFOs.
keep(tau->hadronicPFO(
i)->index());
230 if (tau->secondaryVertex() !=
nullptr) {
231 secondaryVertices.
keep(tau->secondaryVertex()->index());
235 return StatusCode::SUCCESS;
void thinAll()
Mark that all elements should be thinned away.
Const iterator class for DataVector/DataList.
virtual FourMom_t p4() const final
The full 4-momentum of the particle.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
virtual StatusCode initialize() override
Gaudi initialize method.
virtual StatusCode execute(const EventContext &ctx) const override
Execute the algorithm.
std::string find(const std::string &s)
return a remapped string
SG::ThinningHandleKey< xAOD::ParticleContainer > m_finalPi0s
Handle for requesting thinning for a data object.
SG::ThinningHandleKey< xAOD::PFOContainer > m_neutralPFOs
const_iterator begin() const
const begin method
SG::ThinningHandleKey< xAOD::PFOContainer > m_shotPFOs
const Amg::Vector3D & position() const
Returns the 3-pos.
const std::string & key() const
Return the StoreGate ID for the referenced object.
Class providing the definition of the 4-vector interface.
Handle for requesting thinning for a data object.
StatusCode initialize(const std::string &stream, const std::string &qualifier, bool used=true)
Should be called during the initialize phase.
StringProperty m_streamName
Bookkeeping of cells that make up a cluster Simplified replacement for CaloCellLink,...
SG::ThinningHandleKey< CaloCellContainer > m_cells
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
void keep(size_t ndx)
Mark that index ndx in the container should be kept (not thinned away).
Description of a calorimeter cluster.
Gaudi::Property< bool > m_doVertexCorrection
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ThinningHandleKey< CaloClusterCellLinkContainer > m_tauCellLinks
Class describing a tau jet.
SG::ThinningHandleKey< xAOD::CaloClusterContainer > m_shotclusters
SG::ThinningHandleKey< CaloClusterCellLinkContainer > m_pi0CellLinks
size_t index() const
Return the index of this element within its container.
SG::ThinningHandleKey< CaloClusterCellLinkContainer > m_shotCellLinks
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
virtual FourMom_t p4() const
The full 4-momentum of the particle.
SG::ThinningHandleKey< xAOD::TauTrackContainer > m_tauTracks
const_iterator end() const
const end method
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
Handle class for reading from StoreGate.
Evaluate cluster kinematics with a different vertex / signal state.
SG::ThinningHandleKey< xAOD::CaloClusterContainer > m_pi0clusters
const_iterator to loop over cells belonging to a cluster
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
SG::ThinningHandleKey< xAOD::VertexContainer > m_secondaryVertices
SG::ThinningHandleKey< xAOD::PFOContainer > m_hadronicPFOs
SG::ThinningHandleKey< xAOD::TauJetContainer > m_taus