CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BeamSpot.h
Go to the documentation of this file.
1 #ifndef BeamSpot_BeamSpot_h
2 #define BeamSpot_BeamSpot_h
3 
14 #include <Rtypes.h>
17 #include <string>
18 #include <sstream>
19 
20 
21 namespace reco {
22 
23  class BeamSpot {
24  public:
25 
27  enum BeamType { Unknown=-1, Fake=0, LHC=1, Tracker=2 };
28 
31  enum { dimension = 7 };
33  enum { dim3 = 3 };
35  enum { resdim = 2 };
37 
39  BeamSpot();
40 
42  BeamSpot( const Point &point,
43  double sigmaZ,
44  double dxdz,
45  double dydz,
46  double BeamWidthX,
47  const CovarianceMatrix &error,
48  BeamType type = Unknown) {
49  position_ = point;
50  sigmaZ_ = sigmaZ;
51  dxdz_ = dxdz;
52  dydz_ = dydz;
55  error_ = error;
56  type_ = type;
58  betaStar_ = 0;
59  };
60 
61 
63  const Point & position() const { return position_; }
65  double x0() const { return position_.X(); }
67  double y0() const { return position_.Y(); }
69  double z0() const { return position_.Z(); }
70 
72  double x(const double z) const { return x0() + dxdz() * (z - z0()); }
74  double y(const double z) const { return y0() + dydz() * (z - z0()); }
76  const Point position(const double z) const;
77  // const Point position(const double z) const {Point pos(x(z),y(z),z); return pos;}
78 
79 
81  double sigmaZ() const { return sigmaZ_; }
83  double dxdz() const { return dxdz_; }
85  double dydz() const { return dydz_; }
87  double BeamWidthX() const { return BeamWidthX_; }
89  double BeamWidthY() const { return BeamWidthY_; }
91  double x0Error() const { return sqrt( error_(0,0) ); }
93  double y0Error() const { return sqrt( error_(1,1) ); }
95  double z0Error() const { return sqrt( error_(2,2) ); }
97  double sigmaZ0Error() const { return sqrt ( error_(3,3) ); }
99  double dxdzError() const { return sqrt ( error_(4,4) ); }
101  double dydzError() const { return sqrt ( error_(5,5) ); }
102 
104  double BeamWidthXError() const { return sqrt ( error_(6,6) );}
106  double BeamWidthYError() const { return sqrt ( error_(6,6) );}
107 
109  void setBeamWidthX( double v ) { BeamWidthX_ = v; }
110  void setBeamWidthY( double v ) { BeamWidthY_ = v; }
111 
113  double covariance( int i, int j) const {
114  return error_(i,j);
115  }
117  CovarianceMatrix covariance() const { return error_; }
120 
122  for (int j=0; j<3; j++) {
123  for (int k=j; k<3; k++) {
124  matrix(j,k) = error_(j,k);
125  }
126  }
127  return matrix;
128  };
130  BeamType type() const { return type_; }
132  void setType( BeamType type ) { type_ = type; }
135 
137  double emittanceX() const { return emittanceX_; }
138  double emittanceY() const { return emittanceY_; }
139  double betaStar() const { return betaStar_; }
140  double beamWidthFromBeta( double z, double e ) const {
141  return sqrt( e*betaStar_*(1 + pow((z-position_.Z())/betaStar_,2) ) );
142  }
144  void setEmittanceX( double v ) { emittanceX_ = v; }
145  void setEmittanceY( double v ) { emittanceY_ = v; }
146  void setbetaStar( double v ) { betaStar_ = v; }
147 
149  void print( std::stringstream& ss ) const;
150 
151  private:
156 
157  Double32_t sigmaZ_;
158  Double32_t BeamWidthX_;
159  Double32_t BeamWidthY_;
160  Double32_t dxdz_;
161  Double32_t dydz_;
162  Double32_t emittanceX_;
163  Double32_t emittanceY_;
164  Double32_t betaStar_;
165 
167 
168  };
170  std::ostream& operator<< ( std::ostream&, BeamSpot beam );
171 
172 }
173 
174 #endif
type
Definition: HCALResponse.h:21
math::Error< dimension >::type CovarianceMatrix
Definition: BeamSpot.h:32
double z0() const
z coordinate
Definition: BeamSpot.h:69
BeamType
beam spot flags
Definition: BeamSpot.h:27
int i
Definition: DBlmapReader.cc:9
double sigmaZ0Error() const
error on sigma z
Definition: BeamSpot.h:97
Covariance3DMatrix covariance3D() const
return only 3D position covariance matrix
Definition: BeamSpot.h:119
math::Error< dim3 >::type Covariance3DMatrix
Definition: BeamSpot.h:34
void setbetaStar(double v)
Definition: BeamSpot.h:146
Double32_t dxdz_
Definition: BeamSpot.h:160
double dydzError() const
error on dydz
Definition: BeamSpot.h:101
BeamSpot()
default constructor
Definition: BeamSpot.cc:25
Double32_t emittanceX_
Definition: BeamSpot.h:162
math::XYZPoint Point
point in the space
Definition: BeamSpot.h:30
ErrorD< N >::type type
Definition: Error.h:30
CovarianceMatrix covariance() const
return full covariance matrix of dim 7
Definition: BeamSpot.h:117
CovarianceMatrix error_
errors
Definition: BeamSpot.h:155
double beamWidthFromBeta(double z, double e) const
Definition: BeamSpot.h:140
float float float z
double emittanceX() const
additional information
Definition: BeamSpot.h:137
void setType(BeamType type)
set beam type
Definition: BeamSpot.h:132
double betaStar() const
Definition: BeamSpot.h:139
Double32_t BeamWidthX_
Definition: BeamSpot.h:158
double dydz() const
dydz slope
Definition: BeamSpot.h:85
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:72
void setBeamWidthY(double v)
Definition: BeamSpot.h:110
double emittanceY() const
Definition: BeamSpot.h:138
double dxdzError() const
error on dxdz
Definition: BeamSpot.h:99
Point position_
position
Definition: BeamSpot.h:153
void setEmittanceY(double v)
Definition: BeamSpot.h:145
T sqrt(T t)
Definition: SSEVec.h:48
math::XYZPoint Point
Double32_t emittanceY_
Definition: BeamSpot.h:163
int j
Definition: DBlmapReader.cc:9
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:87
double BeamWidthYError() const
error on beam width Y, assume error in X = Y
Definition: BeamSpot.h:106
BeamSpot(const Point &point, double sigmaZ, double dxdz, double dydz, double BeamWidthX, const CovarianceMatrix &error, BeamType type=Unknown)
constructor from values
Definition: BeamSpot.h:42
double BeamWidthXError() const
error on beam width X, assume error in X = Y
Definition: BeamSpot.h:104
double z0Error() const
error on z
Definition: BeamSpot.h:95
double dxdz() const
dxdz slope
Definition: BeamSpot.h:83
double x0Error() const
error on x
Definition: BeamSpot.h:91
int k[5][pyjets_maxn]
double y0Error() const
error on y
Definition: BeamSpot.h:93
void print(std::stringstream &ss) const
print information
Definition: BeamSpot.cc:51
double x(const double z) const
x coordinate of the beeam spot position at a given z value (it takes into account the dxdz slope) ...
Definition: BeamSpot.h:72
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
double sigmaZ() const
sigma z
Definition: BeamSpot.h:81
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:89
double covariance(int i, int j) const
(i,j)-th element of error matrix
Definition: BeamSpot.h:113
void setBeamWidthX(double v)
Definition: BeamSpot.h:109
double y(const double z) const
y coordinate of the beeam spot position at a given z value (it takes into account the dydz slope) ...
Definition: BeamSpot.h:74
Double32_t BeamWidthY_
Definition: BeamSpot.h:159
double y0() const
y coordinate
Definition: BeamSpot.h:67
math::Error< resdim >::type ResCovMatrix
Definition: BeamSpot.h:36
const Point & position() const
position
Definition: BeamSpot.h:63
BeamType type_
Definition: BeamSpot.h:166
Covariance3DMatrix rotatedCovariance3D() const
Definition: BeamSpot.cc:79
void setEmittanceX(double v)
Definition: BeamSpot.h:144
Double32_t betaStar_
Definition: BeamSpot.h:164
Double32_t sigmaZ_
Definition: BeamSpot.h:157
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
BeamType type() const
return beam type
Definition: BeamSpot.h:130
double x0() const
x coordinate
Definition: BeamSpot.h:65
Double32_t dydz_
Definition: BeamSpot.h:161