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"
17#include "GaudiKernel/IPartPropSvc.h"
18
21
22#include <vector>
23#include <string>
28
32
33namespace Trk {
34 class IVertexFitter;
36}
37
38namespace InDet { class VertexPointEstimator; }
39
40namespace Analysis {
41
42 static const InterfaceID IID_JpsiFinder_ee("JpsiFinder_ee", 1, 0);
43
44 // Struct and enum to associate muon pairs with track pairs
45 // and make the program flow more straightforward
46 enum PairTypeEE{ ELEL=0, ELTRK=1, TRK2=2};
57
59 {
60 public:
61 JpsiFinder_ee(const std::string& t, const std::string& n, const IInterface* p);
63 virtual StatusCode initialize() override;
64
65 static const InterfaceID& interfaceID() { return IID_JpsiFinder_ee;}
66
67 //-------------------------------------------------------------------------------------
68 //Doing Calculation and inline functions
69 virtual StatusCode performSearch(const EventContext& ctx, xAOD::VertexContainer& vxContainer) const override;
70 std::vector<JpsiEECandidate> getPairs(const std::vector<const xAOD::TrackParticle*>&) const;
71 std::vector<JpsiEECandidate> getPairs(const std::vector<const xAOD::Electron*>&) const;
72 std::vector<JpsiEECandidate> getPairs2Colls(const std::vector<const xAOD::TrackParticle*>&, const std::vector<const xAOD::Electron*>&, bool) const;
73 double getInvariantMass(const JpsiEECandidate&, const std::vector<double>& ) const;
74 std::vector<JpsiEECandidate> selectCharges(const std::vector<JpsiEECandidate>& , const std::string&) const;
75 xAOD::Vertex* fit(const std::vector<const xAOD::TrackParticle*>&, const xAOD::TrackParticleContainer* importedTrackCollection) const;
76 bool passesEgammaCuts(const xAOD::Electron*) const;
78 TVector3 trackMomentum(const xAOD::Vertex * vxCandidate, int trkIndex) const;
79 //-------------------------------------------------------------------------------------
80
81 private:
82 bool m_elel;
83 bool m_eltrk;
89 double m_trk1M;
90 double m_trk2M;
92 double m_higherPt;
98 double m_Chi2Cut;
105 this, "GSFCaloLink", "Electrons.gsfCaloTrackParticleLink",
106 "ReadHandleKey for electron link to GSFCalo refitted TrackParticle"
107 };
108
109 ToolHandle < Trk::IVertexFitter > m_iVertexFitter;
110 ToolHandle < Trk::IVertexFitter > m_iV0VertexFitter;
111 ToolHandle < Trk::ITrackSelectorTool > m_trkSelector;
112 ToolHandle < InDet::VertexPointEstimator > m_vertexEstimator;
113 ServiceHandle<IPartPropSvc> m_partPropSvc{this, "PartPropSvc", "PartPropSvc"};
115 std::string m_elSelection;
117 };
118} // end of namespace
119#endif
120
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
SG::ReadHandleKey< xAOD::ElectronContainer > m_electronCollectionKey
ToolHandle< Trk::ITrackSelectorTool > m_trkSelector
ServiceHandle< IPartPropSvc > m_partPropSvc
std::vector< JpsiEECandidate > selectCharges(const std::vector< JpsiEECandidate > &, const std::string &) const
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_gsfCaloLinkKey
xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &, const xAOD::TrackParticleContainer *importedTrackCollection) const
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
TVector3 trackMomentum(const xAOD::Vertex *vxCandidate, int trkIndex) const
double getInvariantMass(const JpsiEECandidate &, const std::vector< double > &) const
ToolHandle< Trk::IVertexFitter > m_iV0VertexFitter
ToolHandle< Trk::IVertexFitter > m_iVertexFitter
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".
Vertex_v1 Vertex
Define the latest version of the vertex class.
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