ATLAS Offline Software
Loading...
Searching...
No Matches
JpsiFinder_ee.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5// ****************************************************************************
6// ----------------------------------------------------------------------------
7// JpsiFinder_ee header file
8//
9// James Catmore <James.Catmore@cern.ch>
10
11// ----------------------------------------------------------------------------
12// ****************************************************************************
13#ifndef JpsiFinder_ee_H
14#define JpsiFinder_ee_H
16#include "GaudiKernel/ToolHandle.h"
18
21
22#include <vector>
23#include <string>
28
31#include <memory>
33
34namespace Trk {
35 class IVertexFitter;
37}
38
39namespace InDet { class VertexPointEstimator; }
40
41namespace Analysis {
42
43 static const InterfaceID IID_JpsiFinder_ee("JpsiFinder_ee", 1, 0);
44
45 // Struct and enum to associate muon pairs with track pairs
46 // and make the program flow more straightforward
47 enum PairTypeEE{ ELEL=0, ELTRK=1, TRK2=2};
58
60 {
61 public:
62 JpsiFinder_ee(const std::string& t, const std::string& n, const IInterface* p);
64 virtual StatusCode initialize() override;
65
66 static const InterfaceID& interfaceID() { return IID_JpsiFinder_ee;}
67
68 //-------------------------------------------------------------------------------------
69 //Doing Calculation and inline functions
70 virtual StatusCode performSearch(const EventContext& ctx, xAOD::VertexContainer& vxContainer) const override;
71 std::vector<JpsiEECandidate> getPairs(const std::vector<const xAOD::TrackParticle*>&) const;
72 std::vector<JpsiEECandidate> getPairs(const std::vector<const xAOD::Electron*>&) const;
73 std::vector<JpsiEECandidate> getPairs2Colls(const std::vector<const xAOD::TrackParticle*>&, const std::vector<const xAOD::Electron*>&, bool) const;
74 double getInvariantMass(const JpsiEECandidate&, const std::vector<double>& ) const;
75 std::vector<JpsiEECandidate> selectCharges(const std::vector<JpsiEECandidate>& , const std::string&) const;
76 std::unique_ptr<xAOD::Vertex> fit(const EventContext& ctx, const std::vector<const xAOD::TrackParticle*>&, const xAOD::TrackParticleContainer* importedTrackCollection) const;
77 bool passesEgammaCuts(const xAOD::Electron*) const;
79 //-------------------------------------------------------------------------------------
80
81 private:
82 bool m_elel;
83 bool m_eltrk;
88 double m_trk1M;
89 double m_trk2M;
91 double m_higherPt;
97 double m_Chi2Cut;
104 this, "GSFCaloLink", "Electrons.gsfCaloTrackParticleLink",
105 "ReadHandleKey for electron link to GSFCalo refitted TrackParticle"
106 };
107
108 ToolHandle < Trk::IVertexFitter > m_iVertexFitter;
109 ToolHandle < Trk::ITrackSelectorTool > m_trkSelector;
110 ToolHandle < InDet::VertexPointEstimator > m_vertexEstimator;
111 std::shared_ptr<GenData> m_gendata{nullptr};
113 std::string m_elSelection;
115 };
116} // end of namespace
117#endif
118
Handle class for reading a decoration on an object.
Property holding a SG store/key/clid from which a ReadHandle is made.
bool isContainedIn(const xAOD::TrackParticle *, const xAOD::TrackParticleContainer *) const
bool passesEgammaCuts(const xAOD::Electron *) const
std::vector< JpsiEECandidate > getPairs(const std::vector< const xAOD::TrackParticle * > &) const
std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &, const xAOD::TrackParticleContainer *importedTrackCollection) const
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronCollectionKey
ToolHandle< Trk::ITrackSelectorTool > m_trkSelector
std::vector< JpsiEECandidate > selectCharges(const std::vector< JpsiEECandidate > &, const std::string &) const
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_gsfCaloLinkKey
static const InterfaceID & interfaceID()
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkParticleCollection
virtual StatusCode initialize() override
JpsiFinder_ee(const std::string &t, const std::string &n, const IInterface *p)
virtual StatusCode performSearch(const EventContext &ctx, xAOD::VertexContainer &vxContainer) const override
ToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
double getInvariantMass(const JpsiEECandidate &, const std::vector< double > &) const
ToolHandle< Trk::IVertexFitter > m_iVertexFitter
std::shared_ptr< GenData > m_gendata
std::vector< JpsiEECandidate > getPairs2Colls(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::Electron * > &, bool) const
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Some helper tools like: hits counter.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
The abstract interface base class for track selector tools.
Interface class for vertex fitting AlgTools, for more detailed information, take a look at the header...
The namespace of all packages in PhysicsAnalysis/JetTagging.
static const InterfaceID IID_JpsiFinder_ee("JpsiFinder_ee", 1, 0)
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Electron_v1 Electron
Definition of the current "egamma version".
const xAOD::TrackParticleContainer * collection2
const xAOD::TrackParticleContainer * collection1
const xAOD::TrackParticle * trackParticle2
const xAOD::Electron * el2
const xAOD::Electron * el1
const xAOD::TrackParticle * trackParticle1