CMS 3D CMS Logo

Conv4HitsReco2.h
Go to the documentation of this file.
1 //
2 // Simple photon conversion seeding class (inc)
3 //
4 // Author: E Song
5 //
6 // Version: 1; 6 Aug 2012
7 //
8 
9 #ifndef Conv4HitsReco2_h
10 #define Conv4HitsReco2_h
11 
12 #include <iostream>
13 #include <iomanip>
14 #include <cmath>
17 
19 public:
23 
24  // Main publics
25  int ConversionCandidate(math::XYZVector &, double &, double &);
26  void Reconstruct(); // Not directly called when in use
27  void Dump();
28  void Refresh(
30 
33 
34  // Optional publics
36  void SetRadiusECut(double val) { fRadiusECut = val; };
37  void SetPhiECut(double val) { fPhiECut = val; };
38  void SetRECut(double val) { fRECut = val; };
40  void SetBField(double val) { fBField = val; };
41 
42  double GetRecPhi() { return fRecPhi; };
43  double GetRecR() { return fRecR; };
44  double GetRecR1() { return fRecR1; };
45  double GetRecR2() { return fRecR2; };
46  int GetLoop() { return fLoop; };
47 
48  bool RegisterUnsolvable(int &num) {
49  if (fSolved == 1)
50  return true;
51  else {
52  num += 1;
53  return false;
54  }
55  };
57  if (fSolved == 1)
58  return true;
59  else
60  return false;
61  };
62  bool RegisterBadSign(int &num) {
63  if (fSignSatisfied == 1)
64  return true;
65  else {
66  num += 1;
67  return false;
68  }
69  };
70  bool RegisterBadSign() {
71  if (fSignSatisfied == 1)
72  return true;
73  else
74  return false;
75  };
76  bool RegisterBadConverge(int &num) {
77  if (fCutSatisfied == 1)
78  return true;
79  else {
80  num += 1;
81  return false;
82  }
83  };
85  if (fCutSatisfied == 1)
86  return true;
87  else
88  return false;
89  };
90 
91 private:
92  void LocalTransformation(const math::XYZVector &v11,
93  const math::XYZVector &v12,
94  const math::XYZVector &v21,
95  const math::XYZVector &v22,
96  math::XYZVector &V11,
97  math::XYZVector &V12,
98  math::XYZVector &V21,
99  math::XYZVector &V22,
100  double Phi);
104 
105  double fRecPhi;
106  double fRecR;
107  double fRecR1;
108  double fRecR2; // original input coordinates in cm,
109 
110  int fCutSatisfied; // Target cut met within iters?
111  int fSignSatisfied; // All values positive?
112  int fSolved; // No break due to /0 or no real root?
113 
115  int fLoop; // The number of loops actually performed
116  int fFixedNumberOfIterations; // Default 0: use cuts. If > 0, employ fixed loop.
117  double fRadiusECut;
118  double fPhiECut;
119  double fRECut; // Note that these cuts are NOT independent.
120 
121  double fRadiusE;
122  double fPhiE;
123  double fRE;
124  double fBField; // tesla
125 };
126 
127 #endif
Conv4HitsReco2::fHitv11
math::XYZVector fHitv11
Definition: Conv4HitsReco2.h:101
Conv4HitsReco2::SetRECut
void SetRECut(double val)
Definition: Conv4HitsReco2.h:38
Conv4HitsReco2::GetRecPhi
double GetRecPhi()
Definition: Conv4HitsReco2.h:42
Conv4HitsReco2::fLoop
int fLoop
Definition: Conv4HitsReco2.h:115
Conv4HitsReco2::fFixedNumberOfIterations
int fFixedNumberOfIterations
Definition: Conv4HitsReco2.h:116
Conv4HitsReco2::RegisterUnsolvable
bool RegisterUnsolvable()
Definition: Conv4HitsReco2.h:56
Conv4HitsReco2::fMaxNumberOfIterations
int fMaxNumberOfIterations
Definition: Conv4HitsReco2.h:114
Conv4HitsReco2::Dump
void Dump()
Definition: Conv4HitsReco2.cc:270
Conv4HitsReco2::fRECut
double fRECut
Definition: Conv4HitsReco2.h:119
Conv4HitsReco2::GetRecR1
double GetRecR1()
Definition: Conv4HitsReco2.h:44
Conv4HitsReco2::GetMinusCenter
math::XYZVector GetMinusCenter(double &)
Definition: Conv4HitsReco2.cc:285
Conv4HitsReco2::~Conv4HitsReco2
~Conv4HitsReco2()
Definition: Conv4HitsReco2.cc:21
Conv4HitsReco2::SetMaxNumberOfIterations
void SetMaxNumberOfIterations(int val)
Definition: Conv4HitsReco2.h:35
Conv4HitsReco2::fRecR
double fRecR
Definition: Conv4HitsReco2.h:106
Conv4HitsReco2::RegisterBadSign
bool RegisterBadSign(int &num)
Definition: Conv4HitsReco2.h:62
Conv4HitsReco2::SetFixedNumberOfIterations
void SetFixedNumberOfIterations(double val)
Definition: Conv4HitsReco2.h:39
Conv4HitsReco2::fRecR2
double fRecR2
Definition: Conv4HitsReco2.h:108
Conv4HitsReco2::SetPhiECut
void SetPhiECut(double val)
Definition: Conv4HitsReco2.h:37
Conv4HitsReco2::Refresh
void Refresh(math::XYZVector &vPhotVertex, math::XYZVector &h1, math::XYZVector &h2, math::XYZVector &h3, math::XYZVector &h4)
Definition: Conv4HitsReco2.cc:24
Conv4HitsReco2::GetPlusCenter
math::XYZVector GetPlusCenter(double &)
Definition: Conv4HitsReco2.cc:281
Conv4HitsReco2::fPhiE
double fPhiE
Definition: Conv4HitsReco2.h:122
Conv4HitsReco2::fCutSatisfied
int fCutSatisfied
Definition: Conv4HitsReco2.h:110
Conv4HitsReco2::GetRecR2
double GetRecR2()
Definition: Conv4HitsReco2.h:45
Conv4HitsReco2
Definition: Conv4HitsReco2.h:18
Conv4HitsReco2::fRecV
math::XYZVector fRecV
Definition: Conv4HitsReco2.h:103
Conv4HitsReco2::SetRadiusECut
void SetRadiusECut(double val)
Definition: Conv4HitsReco2.h:36
Conv4HitsReco2::GetRecR
double GetRecR()
Definition: Conv4HitsReco2.h:43
VtxSmearedParameters_cfi.Phi
Phi
Definition: VtxSmearedParameters_cfi.py:112
Conv4HitsReco2::RegisterBadConverge
bool RegisterBadConverge()
Definition: Conv4HitsReco2.h:84
Conv4HitsReco2::fSolved
int fSolved
Definition: Conv4HitsReco2.h:112
Conv4HitsReco2::Conv4HitsReco2
Conv4HitsReco2()
Conv4HitsReco2::fHitv22
math::XYZVector fHitv22
Definition: Conv4HitsReco2.h:101
Conv4HitsReco2::fRecR1
double fRecR1
Definition: Conv4HitsReco2.h:107
Conv4HitsReco2::fRadiusECut
double fRadiusECut
Definition: Conv4HitsReco2.h:117
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
Conv4HitsReco2::fRadiusE
double fRadiusE
Definition: Conv4HitsReco2.h:121
Conv4HitsReco2::fRecPhi
double fRecPhi
Definition: Conv4HitsReco2.h:105
Conv4HitsReco2::Reconstruct
void Reconstruct()
Definition: Conv4HitsReco2.cc:119
EgammaValidation_cff.num
num
Definition: EgammaValidation_cff.py:33
Conv4HitsReco2::fHitv21
math::XYZVector fHitv21
Definition: Conv4HitsReco2.h:101
Conv4HitsReco2::RegisterUnsolvable
bool RegisterUnsolvable(int &num)
Definition: Conv4HitsReco2.h:48
Conv4HitsReco2::fHitv12
math::XYZVector fHitv12
Definition: Conv4HitsReco2.h:101
heppy_batch.val
val
Definition: heppy_batch.py:351
Conv4HitsReco2::fPV
math::XYZVector fPV
Definition: Conv4HitsReco2.h:102
Conv4HitsReco2::ConversionCandidate
int ConversionCandidate(math::XYZVector &, double &, double &)
Definition: Conv4HitsReco2.cc:109
Point3D.h
Conv4HitsReco2::fSignSatisfied
int fSignSatisfied
Definition: Conv4HitsReco2.h:111
Conv4HitsReco2::fRecC2
math::XYZVector fRecC2
Definition: Conv4HitsReco2.h:103
Conv4HitsReco2::RegisterBadSign
bool RegisterBadSign()
Definition: Conv4HitsReco2.h:70
Conv4HitsReco2::LocalTransformation
void LocalTransformation(const math::XYZVector &v11, const math::XYZVector &v12, const math::XYZVector &v21, const math::XYZVector &v22, math::XYZVector &V11, math::XYZVector &V12, math::XYZVector &V21, math::XYZVector &V22, double Phi)
Definition: Conv4HitsReco2.cc:64
Conv4HitsReco2::RegisterBadConverge
bool RegisterBadConverge(int &num)
Definition: Conv4HitsReco2.h:76
Conv4HitsReco2::fRE
double fRE
Definition: Conv4HitsReco2.h:123
Vector3D.h
Conv4HitsReco2::SetBField
void SetBField(double val)
Definition: Conv4HitsReco2.h:40
Conv4HitsReco2::fRecC1
math::XYZVector fRecC1
Definition: Conv4HitsReco2.h:103
Conv4HitsReco2::fBField
double fBField
Definition: Conv4HitsReco2.h:124
Conv4HitsReco2::fPhiECut
double fPhiECut
Definition: Conv4HitsReco2.h:118
Conv4HitsReco2::GetLoop
int GetLoop()
Definition: Conv4HitsReco2.h:46