CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/Alignment/OfflineValidation/interface/TrackerValidationVariables.h

Go to the documentation of this file.
00001 #ifndef TrackerTrackerValidationVariables_h
00002 #define TrackerTrackerValidationVariables_h
00003 
00004 // system include files
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   // need the following method for MonitorTrackResiduals in DQM/TrackerMonitorTrack
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