Go to the documentation of this file.00001 #ifndef TrackerTrackerValidationVariables_h
00002 #define TrackerTrackerValidationVariables_h
00003
00004
00005 #include <vector>
00006
00007 #include "FWCore/Framework/interface/Event.h"
00008 #include "FWCore/Framework/interface/EventSetup.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00010 #include "FWCore/Framework/interface/ESHandle.h"
00011
00012 class MagneticField;
00013 class TrackerGeometry;
00014 class Trajectory;
00015
00016 class TrackerValidationVariables
00017 {
00018 public:
00019
00020 struct AVHitStruct
00021 {
00022 AVHitStruct() : resX(-999.), resY(-999.), resErrX(-999.), resErrY(-999.), resXprime(-999.), resXprimeErr(-999.),
00023 resYprime(-999.), resYprimeErr(-999.), phi(-999.), eta(-999.),
00024 inside(false), localX(-999.), localY(-999.), localXnorm(-999.), localYnorm(-999.), localAlpha(-999.), localBeta(-999.),
00025 rawDetId(0) {}
00026 float resX;
00027 float resY;
00028 float resErrX;
00029 float resErrY;
00030 float resXprime;
00031 float resXprimeErr;
00032 float resYprime;
00033 float resYprimeErr;
00034 float phi;
00035 float eta;
00036 bool inside;
00037 float localX;
00038 float localY;
00039 float localXnorm;
00040 float localYnorm;
00041 float localAlpha;
00042 float localBeta;
00043 uint32_t rawDetId;
00044 };
00045
00046 struct AVTrackStruct
00047 {
00048 AVTrackStruct() : p(0.), pt(0.), ptError(0.), px(0.), py(0.), pz(0.), eta(0.), phi(0.), kappa(0.),
00049 chi2(0.), normchi2(0), d0(-999.), dz(-999.), charge(-999), numberOfValidHits(0), numberOfLostHits(0) {};
00050 float p;
00051 float pt;
00052 float ptError;
00053 float px;
00054 float py;
00055 float pz;
00056 float eta;
00057 float phi;
00058 float kappa;
00059 float chi2;
00060 float chi2Prob;
00061 float normchi2;
00062 float d0;
00063 float dz;
00064 int charge;
00065 int numberOfValidHits;
00066 int numberOfLostHits;
00067 std::vector<AVHitStruct> hits;
00068 };
00069
00070 TrackerValidationVariables();
00071 TrackerValidationVariables(const edm::EventSetup&, const edm::ParameterSet&);
00072 ~TrackerValidationVariables();
00073
00074 void fillHitQuantities(const Trajectory* trajectory, std::vector<AVHitStruct> & v_avhitout);
00075 void fillTrackQuantities(const edm::Event&, std::vector<AVTrackStruct> & v_avtrackout);
00076
00077
00078 void fillHitQuantities(const edm::Event&, std::vector<AVHitStruct> & v_avhitout);
00079
00080 private:
00081
00082 const edm::ParameterSet conf_;
00083 edm::ESHandle<TrackerGeometry> tkGeom_;
00084 edm::ESHandle<MagneticField> magneticField_;
00085 };
00086
00087 #endif