00001 #ifndef TrackerTrackerValidationVariables_h
00002 #define TrackerTrackerValidationVariables_h
00003
00004 #include <memory>
00005 #include <vector>
00006
00007
00008 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
00009
00010 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00011
00012 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentParameterStore.h"
00013
00014 class TrackerValidationVariables {
00015 public:
00016 struct AVHitStruct{
00017 AVHitStruct() : resX(-999.), resY(-999.), resErrX(-999.), resErrY(-999.), resXprime(-999.),
00018 phi(-999.), eta(-999.), rawDetId(0), overlapres(std::make_pair(0,-999.)) {}
00019 float resX;
00020 float resY;
00021 float resErrX;
00022 float resErrY;
00023 float resXprime;
00024 float phi;
00025 float eta;
00026 uint32_t rawDetId;
00027 std::pair<uint,float> overlapres;
00028 };
00029 struct AVTrackStruct{
00030 AVTrackStruct() : pt(0.), px(0.), py(0.), pz(0.), eta(0.), phi(0.), kappa(0.),
00031 chi2(0.), normchi2(0), d0(-999.), dz(-999.), charge(-999) {};
00032 float pt;
00033 float px;
00034 float py;
00035 float pz;
00036 float eta;
00037 float phi;
00038 float kappa;
00039 float chi2;
00040 float normchi2;
00041 float d0;
00042 float dz;
00043 int charge;
00044
00045
00046 };
00047 TrackerValidationVariables();
00048 TrackerValidationVariables(const edm::EventSetup&, const edm::ParameterSet&);
00049 ~TrackerValidationVariables();
00050 void fillHitQuantities(const edm::Event&, std::vector<AVHitStruct> & v_avhitout );
00051 void fillTrackQuantities(const edm::Event&, std::vector<AVTrackStruct> & v_avtrackout );
00052 private:
00053 const edm::ParameterSet conf_;
00054 edm::ESHandle<TrackerGeometry> tkgeom;
00055
00056 double fBfield;
00057 };
00058 #endif