ATLAS Offline Software
Loading...
Searching...
No Matches
JpsiExample.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include <string>
6#include <vector>
7
9#include "GaudiKernel/ToolHandle.h"
10
13#include "EventPrimitives/EventPrimitives.h" //Needed for Amg::MatrixX
15
16class TFile;
17class TTree;
18class TVector3;
19class TLorentzVector;
20
22class JpsiExample : public AthAlgorithm {
23
24public:
25 JpsiExample (const std::string& name, ISvcLocator* pSvcLocator);
26 StatusCode initialize() override;
27 StatusCode execute() override;
28 StatusCode finalize() override;
29
30private:
31
32 void initializeBranches(void);
33 void clearBranches(void);
34
35 // The following methods will eventually be implemented in new "V0Tools". For now,
36 // we will keep them here.
37 TVector3 trackMomentum(const xAOD::Vertex * vxCandidate, uint trkIndex) const;
38 TLorentzVector track4Momentum(const xAOD::Vertex * vxCandidate, int trkIndex, double mass) const;
39 TVector3 origTrackMomentum(const xAOD::Vertex * vxCandidate, int trkIndex) const;
40 TLorentzVector origTrack4Momentum(const xAOD::Vertex * vxCandidate, int trkIndex, double mass) const;
41 double invariantMassError(const xAOD::Vertex* vxCandidate, const std::vector<double> &masses) const;
42 double massErrorVKalVrt(const xAOD::Vertex * vxCandidate, const std::vector<double> &masses) const;
43 double trackCharge(const xAOD::Vertex * vxCandidate, int i) const;
44 Amg::MatrixX* convertVKalCovMatrix(int NTrk, const std::vector<float> & Matrix) const;
45 double m_muonMass;
46 std::string m_userFName;
47
50
51 std::vector<double> * m_jpsiMass;
52 std::vector<double> * m_jpsiMassError;
53 std::vector<double> * m_jpsiMassRec;
54 std::vector<double> * m_jpsiMassPullRec;
55 std::vector<double> * m_jpsiMassPullMC;
56 std::vector<double> * m_jpsiChi2;
57
58// std::vector<double> * m_trkRefitCharge1;
59 std::vector<double> * m_trkRefitPx1;
60 std::vector<double> * m_trkRefitPy1;
61 std::vector<double> * m_trkRefitPz1;
62// std::vector<double> * m_trkRefitCharge2;
63 std::vector<double> * m_trkRefitPx2;
64 std::vector<double> * m_trkRefitPy2;
65 std::vector<double> * m_trkRefitPz2;
66
67 std::vector<double> * m_vx;
68 std::vector<double> * m_vy;
69 std::vector<double> * m_vz;
70
71 std::vector<double> * m_trkOrigCharge1;
72 std::vector<double> * m_trkOrigPx1;
73 std::vector<double> * m_trkOrigPy1;
74 std::vector<double> * m_trkOrigPz1;
75 std::vector<double> * m_trkOrigCharge2;
76 std::vector<double> * m_trkOrigPx2;
77 std::vector<double> * m_trkOrigPy2;
78 std::vector<double> * m_trkOrigPz2;
79
80// std::vector<double> * m_rxyError;
81
82
83 TFile* m_outputFile; // N-tuple output file
84 TTree* m_auxTree; // Tree for auxilliary n-tuple
85
90
91};
92
unsigned int uint
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::vector< double > * m_trkOrigPz1
Definition JpsiExample.h:74
StatusCode finalize() override
StatusCode execute() override
double invariantMassError(const xAOD::Vertex *vxCandidate, const std::vector< double > &masses) const
Amg::MatrixX * convertVKalCovMatrix(int NTrk, const std::vector< float > &Matrix) const
TLorentzVector track4Momentum(const xAOD::Vertex *vxCandidate, int trkIndex, double mass) const
TVector3 trackMomentum(const xAOD::Vertex *vxCandidate, uint trkIndex) const
std::vector< double > * m_trkOrigCharge2
Definition JpsiExample.h:75
std::vector< double > * m_jpsiMassPullMC
Definition JpsiExample.h:55
std::vector< double > * m_trkRefitPx1
Definition JpsiExample.h:59
TLorentzVector origTrack4Momentum(const xAOD::Vertex *vxCandidate, int trkIndex, double mass) const
std::vector< double > * m_vx
Definition JpsiExample.h:67
std::vector< double > * m_jpsiMass
Definition JpsiExample.h:51
TTree * m_auxTree
Definition JpsiExample.h:84
std::string m_userFName
Definition JpsiExample.h:46
std::vector< double > * m_jpsiChi2
Definition JpsiExample.h:56
std::vector< double > * m_vy
Definition JpsiExample.h:68
StatusCode initialize() override
std::vector< double > * m_trkOrigPx1
Definition JpsiExample.h:72
std::vector< double > * m_trkOrigCharge1
Definition JpsiExample.h:71
std::vector< double > * m_jpsiMassPullRec
Definition JpsiExample.h:54
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_refPY
Definition JpsiExample.h:88
SG::ReadHandleKey< xAOD::VertexContainer > m_JpsiCandidatesKey
Name of J/psi container.
Definition JpsiExample.h:86
double trackCharge(const xAOD::Vertex *vxCandidate, int i) const
std::vector< double > * m_trkOrigPy2
Definition JpsiExample.h:77
std::vector< double > * m_trkRefitPz1
Definition JpsiExample.h:61
std::vector< double > * m_trkOrigPy1
Definition JpsiExample.h:73
std::vector< double > * m_trkRefitPx2
Definition JpsiExample.h:63
TVector3 origTrackMomentum(const xAOD::Vertex *vxCandidate, int trkIndex) const
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_refPX
Definition JpsiExample.h:87
std::vector< double > * m_trkOrigPz2
Definition JpsiExample.h:78
void initializeBranches(void)
std::vector< double > * m_trkOrigPx2
Definition JpsiExample.h:76
std::vector< double > * m_trkRefitPy2
Definition JpsiExample.h:64
std::vector< double > * m_vz
Definition JpsiExample.h:69
std::vector< double > * m_trkRefitPz2
Definition JpsiExample.h:65
JpsiExample(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< double > * m_jpsiMassError
Definition JpsiExample.h:52
std::vector< double > * m_trkRefitPy1
Definition JpsiExample.h:60
void clearBranches(void)
double m_muonMass
Definition JpsiExample.h:45
double massErrorVKalVrt(const xAOD::Vertex *vxCandidate, const std::vector< double > &masses) const
std::vector< double > * m_jpsiMassRec
Definition JpsiExample.h:53
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_refPZ
Definition JpsiExample.h:89
TFile * m_outputFile
Definition JpsiExample.h:83
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.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Vertex_v1 Vertex
Define the latest version of the vertex class.