1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#ifndef DataFormatsL1TCorrelator_TkPhiCandidate_h
#define DataFormatsL1TCorrelator_TkPhiCandidate_h
// -*- C++ -*-
//
// Package: DataFormats/L1TCorrelator
// Class: TkPhiCandidate
//
#include "DataFormats/Common/interface/Ref.h"
#include "DataFormats/Common/interface/Ptr.h"
#include "DataFormats/L1Trigger/interface/L1Candidate.h"
#include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
namespace l1t {
class TkPhiCandidate : public L1Candidate {
public:
static constexpr double kmass = 0.493; // GeV
static constexpr double phi_polemass = 1.019445; // GeV
using L1TTTrackType = TTTrack<Ref_Phase2TrackerDigi_>;
using L1TTTrackCollection = std::vector<L1TTTrackType>;
TkPhiCandidate();
TkPhiCandidate(const LorentzVector& p4,
const edm::Ptr<L1TTTrackType>& trkPtr1,
const edm::Ptr<L1TTTrackType>& trkPtr2);
~TkPhiCandidate() override {}
// ---------- const member functions ---------------------
const edm::Ptr<L1TTTrackType>& trkPtr(size_t i) const { return trkPtrList_.at(i); }
// ---------- member functions ---------------------------
// deltaR between track pair
double dRTrkPair() const;
// difference from nominal mass
double dmass() const;
// position difference between track pair
double dxyTrkPair() const;
double dzTrkPair() const;
double vx() const override;
double vy() const override;
double vz() const override;
private:
std::vector<edm::Ptr<L1TTTrackType>> trkPtrList_;
};
} // namespace l1t
#endif
|