ATLAS Offline Software
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 
16 class TFile;
17 class TTree;
18 class TVector3;
19 class TLorentzVector;
20 
22 class JpsiExample : public AthAlgorithm {
23 
24 public:
25  JpsiExample (const std::string& name, ISvcLocator* pSvcLocator);
26  StatusCode initialize() override;
27  StatusCode execute() override;
28  StatusCode finalize() override;
29 
30 private:
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 
Matrix
Definition: Trigger/TrigT1/TrigT1RPChardware/TrigT1RPChardware/Matrix.h:15
JpsiExample::m_trkOrigPz2
std::vector< double > * m_trkOrigPz2
Definition: JpsiExample.h:78
JpsiExample::m_trkRefitPy2
std::vector< double > * m_trkRefitPy2
Definition: JpsiExample.h:64
JpsiExample::m_trkOrigPy2
std::vector< double > * m_trkOrigPy2
Definition: JpsiExample.h:77
JpsiExample::m_vz
std::vector< double > * m_vz
Definition: JpsiExample.h:69
VertexContainerFwd.h
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
JpsiExample::m_eventCntr
int m_eventCntr
Definition: JpsiExample.h:48
JpsiExample::trackCharge
double trackCharge(const xAOD::Vertex *vxCandidate, int i) const
Definition: JpsiExample.cxx:482
JpsiExample::m_vy
std::vector< double > * m_vy
Definition: JpsiExample.h:68
JpsiExample::m_refPX
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_refPX
Definition: JpsiExample.h:87
JpsiExample::origTrack4Momentum
TLorentzVector origTrack4Momentum(const xAOD::Vertex *vxCandidate, int trkIndex, double mass) const
Definition: JpsiExample.cxx:377
JpsiExample::m_trkRefitPz2
std::vector< double > * m_trkRefitPz2
Definition: JpsiExample.h:65
JpsiExample::m_jpsiMassError
std::vector< double > * m_jpsiMassError
Definition: JpsiExample.h:52
JpsiExample::m_trkOrigPy1
std::vector< double > * m_trkOrigPy1
Definition: JpsiExample.h:73
JpsiExample::finalize
StatusCode finalize() override
Definition: JpsiExample.cxx:208
JpsiExample::JpsiExample
JpsiExample(const std::string &name, ISvcLocator *pSvcLocator)
Definition: JpsiExample.cxx:28
JpsiExample::m_userFName
std::string m_userFName
Definition: JpsiExample.h:46
JpsiExample::m_refPY
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_refPY
Definition: JpsiExample.h:88
JpsiExample::m_trkOrigCharge1
std::vector< double > * m_trkOrigCharge1
Definition: JpsiExample.h:71
JpsiExample::m_trkRefitPy1
std::vector< double > * m_trkRefitPy1
Definition: JpsiExample.h:60
JpsiExample::m_muonMass
double m_muonMass
Definition: JpsiExample.h:45
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
JpsiExample::m_trkOrigPx2
std::vector< double > * m_trkOrigPx2
Definition: JpsiExample.h:76
JpsiExample::m_jpsiMassRec
std::vector< double > * m_jpsiMassRec
Definition: JpsiExample.h:53
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
JpsiExample::invariantMassError
double invariantMassError(const xAOD::Vertex *vxCandidate, const std::vector< double > &masses) const
Definition: JpsiExample.cxx:389
JpsiExample::origTrackMomentum
TVector3 origTrackMomentum(const xAOD::Vertex *vxCandidate, int trkIndex) const
Definition: JpsiExample.cxx:361
AthAlgorithm.h
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
JpsiExample::m_outputFile
TFile * m_outputFile
Definition: JpsiExample.h:83
JpsiExample
Definition: JpsiExample.h:22
lumiFormat.i
int i
Definition: lumiFormat.py:92
JpsiExample::m_trkRefitPx1
std::vector< double > * m_trkRefitPx1
Definition: JpsiExample.h:59
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
JpsiExample::convertVKalCovMatrix
Amg::MatrixX * convertVKalCovMatrix(int NTrk, const std::vector< float > &Matrix) const
Definition: JpsiExample.cxx:496
JpsiExample::initializeBranches
void initializeBranches(void)
Definition: JpsiExample.cxx:271
JpsiExample::m_trkRefitPz1
std::vector< double > * m_trkRefitPz1
Definition: JpsiExample.h:61
JpsiExample::track4Momentum
TLorentzVector track4Momentum(const xAOD::Vertex *vxCandidate, int trkIndex, double mass) const
Definition: JpsiExample.cxx:348
JpsiExample::m_jpsiMass
std::vector< double > * m_jpsiMass
Definition: JpsiExample.h:51
AthAlgorithm
Definition: AthAlgorithm.h:47
JpsiExample::m_auxTree
TTree * m_auxTree
Definition: JpsiExample.h:84
EventPrimitives.h
JpsiExample::m_jpsiCntr
int m_jpsiCntr
Definition: JpsiExample.h:49
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
JpsiExample::m_trkOrigPz1
std::vector< double > * m_trkOrigPz1
Definition: JpsiExample.h:74
JpsiExample::m_jpsiChi2
std::vector< double > * m_jpsiChi2
Definition: JpsiExample.h:56
JpsiExample::m_trkOrigCharge2
std::vector< double > * m_trkOrigCharge2
Definition: JpsiExample.h:75
JpsiExample::m_jpsiMassPullMC
std::vector< double > * m_jpsiMassPullMC
Definition: JpsiExample.h:55
JpsiExample::initialize
StatusCode initialize() override
Definition: JpsiExample.cxx:79
JpsiExample::clearBranches
void clearBranches(void)
Definition: JpsiExample.cxx:229
JpsiExample::massErrorVKalVrt
double massErrorVKalVrt(const xAOD::Vertex *vxCandidate, const std::vector< double > &masses) const
Definition: JpsiExample.cxx:411
JpsiExample::m_vx
std::vector< double > * m_vx
Definition: JpsiExample.h:67
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
JpsiExample::m_trkOrigPx1
std::vector< double > * m_trkOrigPx1
Definition: JpsiExample.h:72
TrackParticleFwd.h
JpsiExample::execute
StatusCode execute() override
Definition: JpsiExample.cxx:127
JpsiExample::m_JpsiCandidatesKey
SG::ReadHandleKey< xAOD::VertexContainer > m_JpsiCandidatesKey
Name of J/psi container.
Definition: JpsiExample.h:86
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
JpsiExample::m_jpsiMassPullRec
std::vector< double > * m_jpsiMassPullRec
Definition: JpsiExample.h:54
JpsiExample::m_refPZ
SG::ReadDecorHandleKey< xAOD::VertexContainer > m_refPZ
Definition: JpsiExample.h:89
JpsiExample::trackMomentum
TVector3 trackMomentum(const xAOD::Vertex *vxCandidate, uint trkIndex) const
Definition: JpsiExample.cxx:313
SUSY_SimplifiedModel_PreInclude.masses
dictionary masses
Definition: SUSY_SimplifiedModel_PreInclude.py:7
JpsiExample::m_trkRefitPx2
std::vector< double > * m_trkRefitPx2
Definition: JpsiExample.h:63