1 |
#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
|
2 |
#include "TrackingTools/TrajectoryState/interface/TrajectoryStateAccessor.h"
|
3 |
#include "DataFormats/GeometrySurface/interface/Surface.h"
|
4 |
#include "DataFormats/GeometrySurface/interface/BoundPlane.h"
|
5 |
#include "MagneticField/Engine/interface/MagneticField.h"
|
6 |
|
7 |
#include "TrackingTools/TrajectoryState/interface/BasicSingleTrajectoryState.h"
|
8 |
#include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
|
9 |
|
10 |
|
11 |
#include <iostream>
|
12 |
|
13 |
class ConstMagneticField : public MagneticField {
|
14 |
public:
|
15 |
|
16 |
virtual GlobalVector inTesla ( const GlobalPoint& ) const {
|
17 |
return GlobalVector(0,0,4);
|
18 |
}
|
19 |
|
20 |
};
|
21 |
|
22 |
int main() {
|
23 |
|
24 |
std::cout << "sizes tsos, bsts, fts" << std::endl;
|
25 |
std::cout << sizeof( TrajectoryStateOnSurface) << std::endl;
|
26 |
std::cout << sizeof(BasicSingleTrajectoryState) << std::endl;
|
27 |
std::cout << sizeof(FreeTrajectoryState) << std::endl;
|
28 |
|
29 |
|
30 |
using namespace std;
|
31 |
|
32 |
MagneticField * field = new ConstMagneticField;
|
33 |
GlobalPoint gp(0,0,0);
|
34 |
GlobalVector gv(1,1,1);
|
35 |
GlobalTrajectoryParameters gtp(gp,gv,1,field);
|
36 |
double v[15] = {0.01,-0.01,0. ,0.,0.,
|
37 |
0.01,0. ,0.,0.,
|
38 |
0.01,0.,0.,
|
39 |
1.,0.,
|
40 |
1.};
|
41 |
AlgebraicSymMatrix55 gerr(v,15);
|
42 |
BoundPlane* plane = new BoundPlane( gp, Surface::RotationType());
|
43 |
|
44 |
TrajectoryStateOnSurface ts(gtp,gerr,*plane);
|
45 |
|
46 |
cout << "ts.globalMomentum() " << ts.globalMomentum() << endl;
|
47 |
cout << "ts.localMomentum() " << ts.localMomentum() << endl;
|
48 |
cout << "ts.transverseCurvature() " << ts.transverseCurvature() << endl;
|
49 |
cout << "ts inversePtErr " << TrajectoryStateAccessor(*ts.freeState()).inversePtError() << std::endl;
|
50 |
|
51 |
|
52 |
LocalPoint lp(0,0,0);
|
53 |
LocalVector lv(1,1,1);
|
54 |
LocalTrajectoryParameters ltp(lp,lv,1);
|
55 |
LocalTrajectoryError lerr(1.,1.,0.1,0.1,0.1);
|
56 |
TrajectoryStateOnSurface ts2(ltp,lerr, *plane, field);
|
57 |
cout << "ts2.globalMomentum() " << ts2.globalMomentum() << endl;
|
58 |
cout << "ts2.localMomentum() " << ts2.localMomentum() << endl;
|
59 |
cout << "ts2.transverseCurvature() " << ts2.transverseCurvature() << endl;
|
60 |
cout << "ts2 inversePtErr " << TrajectoryStateAccessor(*ts2.freeState()).inversePtError() << std::endl;
|
61 |
}
|