CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
HTrack Class Reference

#include <HTrack.h>

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 

Public Member Functions

double computeEfficiency (HTrackVariables *sim, DQMStore::IBooker &)
 
void computePull (const FreeTrajectoryState &fts, SimTrack &simTracks, HResolution *hReso)
 
void computeResolution (const FreeTrajectoryState &fts, SimTrack &simTracks, HResolution *hReso)
 
void computeResolutionAndPull (TrajectoryStateOnSurface &vtx, SimTrack &simTrack)
 
void computeResolutionAndPull (const FreeTrajectoryState &fts, SimTrack &simTrack)
 
void computeTDRResolution (const FreeTrajectoryState &fts, SimTrack &simTracks, HResolution *hReso)
 
void Fill (TrajectoryStateOnSurface &)
 
void Fill (const FreeTrajectoryState &)
 
void FillDeltaR (double)
 
 HTrack (DQMStore::IBooker &, std::string, std::string name, std::string whereIs="")
 
double pull (double rec, double sim, double sigmarec)
 
double resolution (double rec, double sim)
 

Private Attributes

bool doSubHisto
 
HResolutionhPull
 
HResolutionhPull_08
 
HResolutionhPull_08_12
 
HResolutionhPull_10_40
 
HResolutionhPull_12_21
 
HResolutionhPull_12_21_minus
 
HResolutionhPull_12_21_plus
 
HResolutionhPull_12_24
 
HResolutionhPull_12_24_minus
 
HResolutionhPull_12_24_plus
 
HResolutionhPull_40_70
 
HResolutionhPull_5_10
 
HResolutionhPull_70_100
 
HResolutionhResolution
 
HResolutionhResolution_08
 
HResolutionhResolution_08_12
 
HResolutionhResolution_10_40
 
HResolutionhResolution_12_21
 
HResolutionhResolution_12_21_minus
 
HResolutionhResolution_12_21_plus
 
HResolutionhResolution_12_24
 
HResolutionhResolution_12_24_minus
 
HResolutionhResolution_12_24_plus
 
HResolutionhResolution_40_70
 
HResolutionhResolution_5_10
 
HResolutionhResolution_70_100
 
HResolutionhTDRPull
 
HResolutionhTDRResolution
 
HResolutionhTDRResolution_08
 
HResolutionhTDRResolution_08_12
 
HResolutionhTDRResolution_10_40
 
HResolutionhTDRResolution_12_21
 
HResolutionhTDRResolution_12_21_minus
 
HResolutionhTDRResolution_12_21_plus
 
HResolutionhTDRResolution_12_24
 
HResolutionhTDRResolution_12_24_minus
 
HResolutionhTDRResolution_12_24_plus
 
HResolutionhTDRResolution_40_70
 
HResolutionhTDRResolution_5_10
 
HResolutionhTDRResolution_70_100
 
HTrackVariableshVariables
 
TString theName
 
TString where
 

Detailed Description

Definition at line 12 of file HTrack.h.

Member Typedef Documentation

◆ DQMStore

Definition at line 14 of file HTrack.h.

◆ MonitorElement

Definition at line 15 of file HTrack.h.

Constructor & Destructor Documentation

◆ HTrack()

HTrack::HTrack ( DQMStore::IBooker ,
std::string  ,
std::string  name,
std::string  whereIs = "" 
)

Definition at line 15 of file HTrack.cc.

References dqm::implementation::NavigatorBase::cd(), TrackerOfflineValidation_Dqm_cff::dirName, doSubHisto, hPull, hPull_08, hPull_08_12, hPull_10_40, hPull_12_21, hPull_12_21_minus, hPull_12_21_plus, hPull_12_24, hPull_12_24_minus, hPull_12_24_plus, hPull_40_70, hPull_5_10, hPull_70_100, hResolution, hResolution_08, hResolution_08_12, hResolution_10_40, hResolution_12_21, hResolution_12_21_minus, hResolution_12_21_plus, hResolution_12_24, hResolution_12_24_minus, hResolution_12_24_plus, hResolution_40_70, hResolution_5_10, hResolution_70_100, hTDRPull, hTDRResolution, hTDRResolution_08, hTDRResolution_08_12, hTDRResolution_10_40, hTDRResolution_12_21, hTDRResolution_12_21_minus, hTDRResolution_12_21_plus, hTDRResolution_12_24, hTDRResolution_12_24_minus, hTDRResolution_12_24_plus, hTDRResolution_40_70, hTDRResolution_5_10, hTDRResolution_70_100, hVariables, mergeVDriftHistosByStation::name, dqm::implementation::NavigatorBase::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

16  : theName(name.c_str()), where(whereIs.c_str()) {
17  ibooker.cd();
18  std::string dirName = dirName_;
19  dirName += "/";
20  dirName += name;
21  dirName += "_";
22  dirName += whereIs;
23 
24  ibooker.setCurrentFolder(dirName);
25  hVariables = new HTrackVariables(ibooker, dirName, name, whereIs);
26 
27  ibooker.cd();
28  string resName = dirName;
29  resName += "/Resolution";
30  hResolution = new HResolution(ibooker, resName, name + "_Res", whereIs);
31  ibooker.cd();
32  ibooker.setCurrentFolder(dirName);
33  hTDRResolution = new HResolution(ibooker, resName, name + "_TDRRes", whereIs);
34 
35  ibooker.cd();
36  ibooker.setCurrentFolder(dirName);
37  string pullName = dirName;
38  pullName += "/Pull";
39  hPull = new HResolution(ibooker, pullName, name + "_Pull", whereIs);
40  hTDRPull = new HResolution(ibooker, pullName, name + "_TDRPull", whereIs);
41 
42  doSubHisto = false;
43 
44  if (doSubHisto) {
45  ibooker.cd();
46  ibooker.setCurrentFolder(dirName);
47  string subName = dirName;
48  subName += "/subHistos";
49  // [5-10] GeV range
50  hResolution_5_10 = new HResolution(ibooker, subName, name + "_Res_Pt_5_10", whereIs);
51  hTDRResolution_5_10 = new HResolution(ibooker, subName, name + "_TDRRes_Pt_5_10", whereIs);
52  hPull_5_10 = new HResolution(ibooker, subName, name + "_Pull_Pt_5_10", whereIs);
53 
54  hResolution_10_40 = new HResolution(ibooker, subName, name + "_Res_Pt_10_40", whereIs);
55  hTDRResolution_10_40 = new HResolution(ibooker, subName, name + "_TDRRes_Pt_10_40", whereIs);
56  hPull_10_40 = new HResolution(ibooker, subName, name + "_Pull_Pt_10_40", whereIs);
57 
58  hResolution_40_70 = new HResolution(ibooker, subName, name + "_Res_Pt_40_70", whereIs);
59  hTDRResolution_40_70 = new HResolution(ibooker, subName, name + "_TDRRes_Pt_40_70", whereIs);
60  hPull_40_70 = new HResolution(ibooker, subName, name + "_Pull_Pt_40_70", whereIs);
61 
62  hResolution_70_100 = new HResolution(ibooker, subName, name + "_Res_Pt_70_100", whereIs);
63  hTDRResolution_70_100 = new HResolution(ibooker, subName, name + "_TDRRes_Pt_70_100", whereIs);
64  hPull_70_100 = new HResolution(ibooker, subName, name + "_Pull_Pt_70_100", whereIs);
65 
66  hResolution_08 = new HResolution(ibooker, subName, name + "_Res_Eta_08", whereIs);
67  hTDRResolution_08 = new HResolution(ibooker, subName, name + "_TDRRes_Eta_08", whereIs);
68  hPull_08 = new HResolution(ibooker, subName, name + "_Pull_Eta_08", whereIs);
69 
70  hResolution_08_12 = new HResolution(ibooker, subName, name + "_Res_Eta_08_12", whereIs);
71  hTDRResolution_08_12 = new HResolution(ibooker, subName, name + "_TDRRes_Eta_08_12", whereIs);
72  hPull_08_12 = new HResolution(ibooker, subName, name + "_Pull_Eta_08_12", whereIs);
73 
74  hResolution_12_21 = new HResolution(ibooker, subName, name + "_Res_Eta_12_21", whereIs);
75  hTDRResolution_12_21 = new HResolution(ibooker, subName, name + "_TDRRes_Eta_12_21", whereIs);
76  hPull_12_21 = new HResolution(ibooker, subName, name + "_Pull_Eta_12_21", whereIs);
77 
78  hResolution_12_24 = new HResolution(ibooker, subName, name + "_Res_Eta_12_24", whereIs);
79  hTDRResolution_12_24 = new HResolution(ibooker, subName, name + "_TDRRes_Eta_12_24", whereIs);
80  hPull_12_24 = new HResolution(ibooker, subName, name + "_Pull_Eta_12_24", whereIs);
81 
82  hResolution_12_21_plus = new HResolution(ibooker, subName, name + "_Res_Eta_12_21_plus", whereIs);
83  hTDRResolution_12_21_plus = new HResolution(ibooker, subName, name + "_TDRRes_Eta_12_21_plus", whereIs);
84  hPull_12_21_plus = new HResolution(ibooker, subName, name + "_Pull_Eta_12_21_plus", whereIs);
85 
86  hResolution_12_24_plus = new HResolution(ibooker, subName, name + "_Res_Eta_12_24_plus", whereIs);
87  hTDRResolution_12_24_plus = new HResolution(ibooker, subName, name + "_TDRRes_Eta_12_24_plus", whereIs);
88  hPull_12_24_plus = new HResolution(ibooker, subName, name + "_Pull_Eta_12_24_plus", whereIs);
89 
90  hResolution_12_21_minus = new HResolution(ibooker, subName, name + "_Res_Eta_12_21_minus", whereIs);
91  hTDRResolution_12_21_minus = new HResolution(ibooker, subName, name + "_TDRRes_Eta_12_21_minus", whereIs);
92  hPull_12_21_minus = new HResolution(ibooker, subName, name + "_Pull_Eta_12_21_minus", whereIs);
93 
94  hResolution_12_24_minus = new HResolution(ibooker, subName, name + "_Res_Eta_12_24_minus", whereIs);
95  hTDRResolution_12_24_minus = new HResolution(ibooker, subName, name + "_TDRRes_Eta_12_24_minus", whereIs);
96  hPull_12_24_minus = new HResolution(ibooker, subName, name + "_Pull_Eta_12_24_minus", whereIs);
97  }
98 }
HResolution * hPull_08_12
Definition: HTrack.h:78
HResolution * hResolution_12_21
Definition: HTrack.h:81
HResolution * hTDRResolution
Definition: HTrack.h:47
HResolution * hTDRResolution_12_24_plus
Definition: HTrack.h:97
HResolution * hPull
Definition: HTrack.h:44
HResolution * hResolution
Definition: HTrack.h:43
HResolution * hTDRResolution_12_24
Definition: HTrack.h:87
HResolution * hTDRResolution_40_70
Definition: HTrack.h:62
HResolution * hResolution_12_24_plus
Definition: HTrack.h:96
TString where
Definition: HTrack.h:111
HResolution * hResolution_10_40
Definition: HTrack.h:56
HResolution * hPull_10_40
Definition: HTrack.h:58
HResolution * hResolution_12_24
Definition: HTrack.h:86
HResolution * hResolution_12_21_plus
Definition: HTrack.h:91
TString theName
Definition: HTrack.h:110
HResolution * hTDRResolution_5_10
Definition: HTrack.h:52
HResolution * hResolution_12_24_minus
Definition: HTrack.h:106
HResolution * hResolution_5_10
Definition: HTrack.h:51
HTrackVariables * hVariables
Definition: HTrack.h:40
HResolution * hTDRResolution_12_21_minus
Definition: HTrack.h:102
HResolution * hPull_12_21
Definition: HTrack.h:83
HResolution * hResolution_08_12
Definition: HTrack.h:76
HResolution * hTDRResolution_12_21
Definition: HTrack.h:82
HResolution * hTDRResolution_12_24_minus
Definition: HTrack.h:107
HResolution * hResolution_40_70
Definition: HTrack.h:61
HResolution * hResolution_08
Definition: HTrack.h:71
HResolution * hPull_70_100
Definition: HTrack.h:68
bool doSubHisto
Definition: HTrack.h:113
HResolution * hTDRPull
Definition: HTrack.h:48
HResolution * hPull_40_70
Definition: HTrack.h:63
HResolution * hTDRResolution_08_12
Definition: HTrack.h:77
HResolution * hPull_12_24_minus
Definition: HTrack.h:108
HResolution * hPull_12_21_minus
Definition: HTrack.h:103
HResolution * hPull_12_24
Definition: HTrack.h:88
HResolution * hTDRResolution_70_100
Definition: HTrack.h:67
HResolution * hTDRResolution_08
Definition: HTrack.h:72
HResolution * hPull_12_24_plus
Definition: HTrack.h:98
HResolution * hResolution_70_100
Definition: HTrack.h:66
HResolution * hTDRResolution_10_40
Definition: HTrack.h:57
HResolution * hPull_5_10
Definition: HTrack.h:53
HResolution * hPull_08
Definition: HTrack.h:73
HResolution * hResolution_12_21_minus
Definition: HTrack.h:101
HResolution * hPull_12_21_plus
Definition: HTrack.h:93
HResolution * hTDRResolution_12_21_plus
Definition: HTrack.h:92

Member Function Documentation

◆ computeEfficiency()

double HTrack::computeEfficiency ( HTrackVariables sim,
DQMStore::IBooker ibooker 
)

Definition at line 113 of file HTrack.cc.

References HTrackVariables::computeEfficiency(), and hVariables.

113  {
114  return hVariables->computeEfficiency(sim, ibooker);
115 }
double computeEfficiency(HTrackVariables *sim, DQMStore::IBooker &ibooker)
Definition: Histograms.h:89
HTrackVariables * hVariables
Definition: HTrack.h:40

◆ computePull()

void HTrack::computePull ( const FreeTrajectoryState fts,
SimTrack simTracks,
HResolution hReso 
)

Definition at line 238 of file HTrack.cc.

References funct::abs(), FreeTrajectoryState::cartesianError(), FreeTrajectoryState::charge(), FreeTrajectoryState::curvilinearError(), PV3DBase< T, PVType, FrameType >::eta(), HResolution::Fill(), PV3DBase< T, PVType, FrameType >::mag(), CartesianTrajectoryError::matrix(), CurvilinearTrajectoryError::matrix(), FreeTrajectoryState::momentum(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), funct::pow(), HiEvtPlane_cfi::pterror, pull(), cscDigiValidation_cfi::simTrack, funct::sin(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::theta(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by computeResolutionAndPull().

238  {
239  // x,y,z, px,py,pz
241 
242  double partialPterror = errors[3][3] * pow(fts.momentum().x(), 2) + errors[4][4] * pow(fts.momentum().y(), 2);
243 
244  // sqrt( (px*spx)^2 + (py*spy)^2 ) / pt
245  double pterror = sqrt(partialPterror) / fts.momentum().perp();
246 
247  // sqrt( (px*spx)^2 + (py*spy)^2 + (pz*spz)^2 ) / p
248  double perror = sqrt(partialPterror + errors[5][5] * pow(fts.momentum().z(), 2)) / fts.momentum().mag();
249 
250  double phierror = sqrt(fts.curvilinearError().matrix()[2][2]);
251 
252  double etaerror = sqrt(fts.curvilinearError().matrix()[1][1]) * abs(sin(fts.momentum().theta()));
253 
254  hReso->Fill(simTrack.momentum().mag(),
255  sqrt(simTrack.momentum().Perp2()),
256  simTrack.momentum().eta(),
257  simTrack.momentum().phi(),
258  pull(fts.momentum().mag(), simTrack.momentum().mag(), perror),
259  pull(fts.momentum().perp(), sqrt(simTrack.momentum().Perp2()), pterror),
260  pull(fts.momentum().eta(), simTrack.momentum().eta(), etaerror),
261  pull(fts.momentum().phi(), simTrack.momentum().phi(), phierror),
262  pull(fts.charge(), -simTrack.type() / abs(simTrack.type()), 1.)); // FIXME
263 }
T perp() const
Definition: PV3DBase.h:69
CartesianTrajectoryError cartesianError() const
const CurvilinearTrajectoryError & curvilinearError() const
T z() const
Definition: PV3DBase.h:61
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T eta() const
Definition: PV3DBase.h:73
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
T sqrt(T t)
Definition: SSEVec.h:23
TrackCharge charge() const
T mag() const
Definition: PV3DBase.h:64
Int_t Fill(Double_t x, Double_t y) override
Definition: Histograms.h:1830
GlobalVector momentum() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
const AlgebraicSymMatrix55 & matrix() const
double pull(double rec, double sim, double sigmarec)
Definition: HTrack.cc:100
const AlgebraicSymMatrix66 & matrix() const
Definition: errors.py:1
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72

◆ computeResolution()

void HTrack::computeResolution ( const FreeTrajectoryState fts,
SimTrack simTracks,
HResolution hReso 
)

Definition at line 212 of file HTrack.cc.

References funct::abs(), FreeTrajectoryState::charge(), PV3DBase< T, PVType, FrameType >::eta(), HResolution::Fill(), PV3DBase< T, PVType, FrameType >::mag(), FreeTrajectoryState::momentum(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), resolution(), cscDigiValidation_cfi::simTrack, and mathSSE::sqrt().

Referenced by computeResolutionAndPull().

212  {
213  hReso->Fill(simTrack.momentum().mag(),
214  sqrt(simTrack.momentum().Perp2()),
215  simTrack.momentum().eta(),
216  simTrack.momentum().phi(),
217  resolution(fts.momentum().mag(), simTrack.momentum().mag()),
218  resolution(fts.momentum().perp(), sqrt(simTrack.momentum().Perp2())),
219  fts.momentum().eta() - simTrack.momentum().eta(),
220  fts.momentum().phi() - simTrack.momentum().phi(),
221  fts.charge() + simTrack.type() / abs(simTrack.type())); // FIXME
222 }
T perp() const
Definition: PV3DBase.h:69
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
double resolution(double rec, double sim)
Definition: HTrack.cc:102
T eta() const
Definition: PV3DBase.h:73
T sqrt(T t)
Definition: SSEVec.h:23
TrackCharge charge() const
T mag() const
Definition: PV3DBase.h:64
Int_t Fill(Double_t x, Double_t y) override
Definition: Histograms.h:1830
GlobalVector momentum() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ computeResolutionAndPull() [1/2]

void HTrack::computeResolutionAndPull ( TrajectoryStateOnSurface vtx,
SimTrack simTrack 
)

Definition at line 117 of file HTrack.cc.

References TrajectoryStateOnSurface::freeState(), and cscDigiValidation_cfi::simTrack.

117  {
118  computeResolutionAndPull(*tsos.freeState(), simTrack);
119 }
void computeResolutionAndPull(TrajectoryStateOnSurface &vtx, SimTrack &simTrack)
Definition: HTrack.cc:117

◆ computeResolutionAndPull() [2/2]

void HTrack::computeResolutionAndPull ( const FreeTrajectoryState fts,
SimTrack simTrack 
)

Definition at line 121 of file HTrack.cc.

References funct::abs(), computePull(), computeResolution(), computeTDRResolution(), doSubHisto, HTrackVariables::Fill(), hPull, hPull_08, hPull_08_12, hPull_10_40, hPull_12_21, hPull_12_21_minus, hPull_12_21_plus, hPull_12_24, hPull_12_24_minus, hPull_12_24_plus, hPull_40_70, hPull_5_10, hPull_70_100, hResolution, hResolution_08, hResolution_08_12, hResolution_10_40, hResolution_12_21, hResolution_12_21_minus, hResolution_12_21_plus, hResolution_12_24, hResolution_12_24_minus, hResolution_12_24_plus, hResolution_40_70, hResolution_5_10, hResolution_70_100, hTDRResolution, hTDRResolution_08, hTDRResolution_08_12, hTDRResolution_10_40, hTDRResolution_12_21, hTDRResolution_12_21_minus, hTDRResolution_12_21_plus, hTDRResolution_12_24, hTDRResolution_12_24_minus, hTDRResolution_12_24_plus, hTDRResolution_40_70, hTDRResolution_5_10, hTDRResolution_70_100, hVariables, cscDigiValidation_cfi::simTrack, and mathSSE::sqrt().

121  {
122  // Global Resolution
124  computePull(fts, simTrack, hPull);
125 
126  // TDR Resolution
128  // computeTDRPull(fts,simTracks,hTDRPull);
129 
130  hVariables->Fill(sqrt(simTrack.momentum().Perp2()), simTrack.momentum().eta(),
131  simTrack.momentum().phi()); //FIXME
132 
133  if (doSubHisto) {
134  // [5-10] GeV range
135  if (sqrt(simTrack.momentum().Perp2()) < 10) {
139  }
140 
141  // [10-40] GeV range
142  if (sqrt(simTrack.momentum().Perp2()) >= 10 && sqrt(simTrack.momentum().Perp2()) < 40) {
146  }
147 
148  // [40-70] GeV range
149  if (sqrt(simTrack.momentum().Perp2()) >= 40 && sqrt(simTrack.momentum().Perp2()) < 70) {
153  }
154 
155  // [70-100] GeV range
156  if (sqrt(simTrack.momentum().Perp2()) >= 70 && sqrt(simTrack.momentum().Perp2()) < 100) {
160  }
161 
162  // eta range |eta|<0.8
163  if (abs(simTrack.momentum().eta()) <= 0.8) {
167  }
168 
169  // eta range 0.8<|eta|<1.2
170  if (abs(simTrack.momentum().eta()) > 0.8 && abs(simTrack.momentum().eta()) <= 1.2) {
174  }
175 
176  // eta range 1.2<|eta|<2.1
177  if (abs(simTrack.momentum().eta()) > 1.2 && abs(simTrack.momentum().eta()) <= 2.1) {
181 
182  if (simTrack.momentum().eta() > 0) {
186  } else {
190  }
191  }
192 
193  // eta range 1.2<|eta|<2.4
194  if (abs(simTrack.momentum().eta()) > 1.2 && abs(simTrack.momentum().eta()) <= 2.4) {
198 
199  if (simTrack.momentum().eta() > 0) {
203  } else {
207  }
208  }
209  }
210 }
HResolution * hPull_08_12
Definition: HTrack.h:78
HResolution * hResolution_12_21
Definition: HTrack.h:81
HResolution * hTDRResolution
Definition: HTrack.h:47
HResolution * hTDRResolution_12_24_plus
Definition: HTrack.h:97
HResolution * hPull
Definition: HTrack.h:44
HResolution * hResolution
Definition: HTrack.h:43
HResolution * hTDRResolution_12_24
Definition: HTrack.h:87
HResolution * hTDRResolution_40_70
Definition: HTrack.h:62
HResolution * hResolution_12_24_plus
Definition: HTrack.h:96
void computeTDRResolution(const FreeTrajectoryState &fts, SimTrack &simTracks, HResolution *hReso)
Definition: HTrack.cc:224
HResolution * hResolution_10_40
Definition: HTrack.h:56
HResolution * hPull_10_40
Definition: HTrack.h:58
HResolution * hResolution_12_24
Definition: HTrack.h:86
void computeResolution(const FreeTrajectoryState &fts, SimTrack &simTracks, HResolution *hReso)
Definition: HTrack.cc:212
HResolution * hResolution_12_21_plus
Definition: HTrack.h:91
HResolution * hTDRResolution_5_10
Definition: HTrack.h:52
HResolution * hResolution_12_24_minus
Definition: HTrack.h:106
HResolution * hResolution_5_10
Definition: HTrack.h:51
HTrackVariables * hVariables
Definition: HTrack.h:40
HResolution * hTDRResolution_12_21_minus
Definition: HTrack.h:102
HResolution * hPull_12_21
Definition: HTrack.h:83
HResolution * hResolution_08_12
Definition: HTrack.h:76
T sqrt(T t)
Definition: SSEVec.h:23
HResolution * hTDRResolution_12_21
Definition: HTrack.h:82
HResolution * hTDRResolution_12_24_minus
Definition: HTrack.h:107
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HResolution * hResolution_40_70
Definition: HTrack.h:61
HResolution * hResolution_08
Definition: HTrack.h:71
HResolution * hPull_70_100
Definition: HTrack.h:68
bool doSubHisto
Definition: HTrack.h:113
HResolution * hPull_40_70
Definition: HTrack.h:63
HResolution * hTDRResolution_08_12
Definition: HTrack.h:77
HResolution * hPull_12_24_minus
Definition: HTrack.h:108
HResolution * hPull_12_21_minus
Definition: HTrack.h:103
void Fill(double p, double pt, double eta, double phi, double charge)
Definition: Histograms.h:72
HResolution * hPull_12_24
Definition: HTrack.h:88
HResolution * hTDRResolution_70_100
Definition: HTrack.h:67
HResolution * hTDRResolution_08
Definition: HTrack.h:72
HResolution * hPull_12_24_plus
Definition: HTrack.h:98
HResolution * hResolution_70_100
Definition: HTrack.h:66
HResolution * hTDRResolution_10_40
Definition: HTrack.h:57
void computePull(const FreeTrajectoryState &fts, SimTrack &simTracks, HResolution *hReso)
Definition: HTrack.cc:238
HResolution * hPull_5_10
Definition: HTrack.h:53
HResolution * hPull_08
Definition: HTrack.h:73
HResolution * hResolution_12_21_minus
Definition: HTrack.h:101
HResolution * hPull_12_21_plus
Definition: HTrack.h:93
HResolution * hTDRResolution_12_21_plus
Definition: HTrack.h:92

◆ computeTDRResolution()

void HTrack::computeTDRResolution ( const FreeTrajectoryState fts,
SimTrack simTracks,
HResolution hReso 
)

Definition at line 224 of file HTrack.cc.

References funct::abs(), FreeTrajectoryState::charge(), HResolution::Fill(), FreeTrajectoryState::momentum(), PV3DBase< T, PVType, FrameType >::perp(), resolution(), FreeTrajectoryState::signedInverseMomentum(), cscDigiValidation_cfi::simTrack, and mathSSE::sqrt().

Referenced by computeResolutionAndPull().

224  {
225  int simCharge = -simTrack.type() / abs(simTrack.type());
226 
227  double invSimP = (simTrack.momentum().mag() == 0) ? 0 : simTrack.momentum().mag();
228  double signedInverseRecMom = (simTrack.momentum().mag() == 0) ? 0 : fts.signedInverseMomentum();
229 
230  hReso->Fill(simTrack.momentum().mag(),
231  sqrt(simTrack.momentum().Perp2()),
232  simTrack.momentum().eta(),
233  simTrack.momentum().phi(),
234  resolution(signedInverseRecMom, simCharge * invSimP),
235  resolution(fts.charge() / fts.momentum().perp(), simCharge / sqrt(simTrack.momentum().Perp2())));
236 }
T perp() const
Definition: PV3DBase.h:69
double resolution(double rec, double sim)
Definition: HTrack.cc:102
T sqrt(T t)
Definition: SSEVec.h:23
TrackCharge charge() const
Int_t Fill(Double_t x, Double_t y) override
Definition: Histograms.h:1830
GlobalVector momentum() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double signedInverseMomentum() const

◆ Fill() [1/2]

void HTrack::Fill ( TrajectoryStateOnSurface tsos)

Definition at line 104 of file HTrack.cc.

References TrajectoryStateOnSurface::freeState().

104 { Fill(*tsos.freeState()); }
void Fill(TrajectoryStateOnSurface &)
Definition: HTrack.cc:104
FreeTrajectoryState const * freeState(bool withErrors=true) const

◆ Fill() [2/2]

void HTrack::Fill ( const FreeTrajectoryState fts)

Definition at line 106 of file HTrack.cc.

References FreeTrajectoryState::charge(), PV3DBase< T, PVType, FrameType >::eta(), HTrackVariables::Fill(), hVariables, PV3DBase< T, PVType, FrameType >::mag(), FreeTrajectoryState::momentum(), PV3DBase< T, PVType, FrameType >::perp(), and PV3DBase< T, PVType, FrameType >::phi().

106  {
107  hVariables->Fill(
108  fts.momentum().mag(), fts.momentum().perp(), fts.momentum().eta(), fts.momentum().phi(), fts.charge());
109 }
T perp() const
Definition: PV3DBase.h:69
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
T eta() const
Definition: PV3DBase.h:73
HTrackVariables * hVariables
Definition: HTrack.h:40
TrackCharge charge() const
T mag() const
Definition: PV3DBase.h:64
GlobalVector momentum() const
void Fill(double p, double pt, double eta, double phi, double charge)
Definition: Histograms.h:72

◆ FillDeltaR()

void HTrack::FillDeltaR ( double  deltaR)

Definition at line 111 of file HTrack.cc.

References eleIsoSequence_cff::deltaR, HTrackVariables::FillDeltaR(), and hVariables.

HTrackVariables * hVariables
Definition: HTrack.h:40
void FillDeltaR(double deltaR)
Definition: Histograms.h:87

◆ pull()

double HTrack::pull ( double  rec,
double  sim,
double  sigmarec 
)

Definition at line 100 of file HTrack.cc.

Referenced by computePull().

100 { return (rec - sim) / sigmarec; }

◆ resolution()

double HTrack::resolution ( double  rec,
double  sim 
)

Definition at line 102 of file HTrack.cc.

References MultiTrackValidator_cfi::sim.

Referenced by computeResolution(), and computeTDRResolution().

102 { return (rec - sim) / sim; }

Member Data Documentation

◆ doSubHisto

bool HTrack::doSubHisto
private

Definition at line 113 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull

HResolution* HTrack::hPull
private

Definition at line 44 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_08

HResolution* HTrack::hPull_08
private

Definition at line 73 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_08_12

HResolution* HTrack::hPull_08_12
private

Definition at line 78 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_10_40

HResolution* HTrack::hPull_10_40
private

Definition at line 58 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_12_21

HResolution* HTrack::hPull_12_21
private

Definition at line 83 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_12_21_minus

HResolution* HTrack::hPull_12_21_minus
private

Definition at line 103 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_12_21_plus

HResolution* HTrack::hPull_12_21_plus
private

Definition at line 93 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_12_24

HResolution* HTrack::hPull_12_24
private

Definition at line 88 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_12_24_minus

HResolution* HTrack::hPull_12_24_minus
private

Definition at line 108 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_12_24_plus

HResolution* HTrack::hPull_12_24_plus
private

Definition at line 98 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_40_70

HResolution* HTrack::hPull_40_70
private

Definition at line 63 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_5_10

HResolution* HTrack::hPull_5_10
private

Definition at line 53 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hPull_70_100

HResolution* HTrack::hPull_70_100
private

Definition at line 68 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution

HResolution* HTrack::hResolution
private

Definition at line 43 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_08

HResolution* HTrack::hResolution_08
private

Definition at line 71 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_08_12

HResolution* HTrack::hResolution_08_12
private

Definition at line 76 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_10_40

HResolution* HTrack::hResolution_10_40
private

Definition at line 56 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_12_21

HResolution* HTrack::hResolution_12_21
private

Definition at line 81 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_12_21_minus

HResolution* HTrack::hResolution_12_21_minus
private

Definition at line 101 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_12_21_plus

HResolution* HTrack::hResolution_12_21_plus
private

Definition at line 91 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_12_24

HResolution* HTrack::hResolution_12_24
private

Definition at line 86 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_12_24_minus

HResolution* HTrack::hResolution_12_24_minus
private

Definition at line 106 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_12_24_plus

HResolution* HTrack::hResolution_12_24_plus
private

Definition at line 96 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_40_70

HResolution* HTrack::hResolution_40_70
private

Definition at line 61 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_5_10

HResolution* HTrack::hResolution_5_10
private

Definition at line 51 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hResolution_70_100

HResolution* HTrack::hResolution_70_100
private

Definition at line 66 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRPull

HResolution* HTrack::hTDRPull
private

Definition at line 48 of file HTrack.h.

Referenced by HTrack().

◆ hTDRResolution

HResolution* HTrack::hTDRResolution
private

Definition at line 47 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_08

HResolution* HTrack::hTDRResolution_08
private

Definition at line 72 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_08_12

HResolution* HTrack::hTDRResolution_08_12
private

Definition at line 77 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_10_40

HResolution* HTrack::hTDRResolution_10_40
private

Definition at line 57 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_12_21

HResolution* HTrack::hTDRResolution_12_21
private

Definition at line 82 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_12_21_minus

HResolution* HTrack::hTDRResolution_12_21_minus
private

Definition at line 102 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_12_21_plus

HResolution* HTrack::hTDRResolution_12_21_plus
private

Definition at line 92 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_12_24

HResolution* HTrack::hTDRResolution_12_24
private

Definition at line 87 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_12_24_minus

HResolution* HTrack::hTDRResolution_12_24_minus
private

Definition at line 107 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_12_24_plus

HResolution* HTrack::hTDRResolution_12_24_plus
private

Definition at line 97 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_40_70

HResolution* HTrack::hTDRResolution_40_70
private

Definition at line 62 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_5_10

HResolution* HTrack::hTDRResolution_5_10
private

Definition at line 52 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hTDRResolution_70_100

HResolution* HTrack::hTDRResolution_70_100
private

Definition at line 67 of file HTrack.h.

Referenced by computeResolutionAndPull(), and HTrack().

◆ hVariables

HTrackVariables* HTrack::hVariables
private

Definition at line 40 of file HTrack.h.

Referenced by computeEfficiency(), computeResolutionAndPull(), Fill(), FillDeltaR(), and HTrack().

◆ theName

TString HTrack::theName
private

Definition at line 110 of file HTrack.h.

◆ where

TString HTrack::where
private

Definition at line 111 of file HTrack.h.