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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
// -*- C++ -*-
//
// Package: Tracks
// Class : FWPFDetailView
#include "Rtypes.h"
#include "Fireworks/Core/interface/FWDetailViewGL.h"
#include "Fireworks/Core/interface/CSGActionSupervisor.h"
#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
class TGLEmbeddedViewer;
class FWIntValueListener;
class TEveCaloLego;
class TGSlider;
namespace reco {
// class PFCandidate;
class PFRecHit;
class PFCluster;
class PFRecTrack;
} // namespace reco
class FWPFCandidateDetailView : public FWDetailViewGL<reco::PFCandidate>, public CSGActionSupervisor {
public:
FWPFCandidateDetailView();
~FWPFCandidateDetailView() override;
FWPFCandidateDetailView(const FWPFCandidateDetailView &) = delete; // stop default
const FWPFCandidateDetailView &operator=(const FWPFCandidateDetailView &) = delete; // stop default
private:
using FWDetailView<reco::PFCandidate>::build;
void build(const FWModelId &id, const reco::PFCandidate *) override;
void setTextInfo(const FWModelId &id, const reco::PFCandidate *) override;
void makeLegend(void);
bool isPntInRng(float x, float y);
void rangeChanged(int x);
void plotEtChanged();
void rnrHcalChanged();
void buildGLEventScene();
void voteMaxEtEVal(const std::vector<reco::PFRecHit> *hits);
void addHits(const std::vector<reco::PFRecHit> *);
void addClusters(const std::vector<reco::PFCluster> *);
void addTracks(const std::vector<reco::PFRecTrack> *);
float eta();
float phi();
float etaMin() { return eta() - m_range; }
float etaMax() { return eta() + m_range; }
float phiMin() { return phi() - m_range; }
float phiMax() { return phi() + m_range; }
float m_range;
const reco::PFCandidate *m_candidate;
TLegend *m_legend;
TGSlider *m_slider;
FWIntValueListener *m_sliderListener;
TEveElementList *m_eventList;
bool m_plotEt;
bool m_rnrHcal;
};
|