Go to the documentation of this file.00001 #ifndef SHALLOW_GAINCALIBRATION_PRODUCER
00002 #define SHALLOW_GAINCALIBRATION_PRODUCER
00003
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "FWCore/Framework/interface/Frameworkfwd.h"
00006
00007 #include "CalibTracker/SiStripCommon/interface/ShallowTools.h"
00008
00009 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00010 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
00011 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
00012 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h"
00013
00014
00015 #include "MagneticField/Engine/interface/MagneticField.h"
00016 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
00017 #include "CondFormats/SiStripObjects/interface/SiStripLorentzAngle.h"
00018 #include "CondFormats/DataRecord/interface/SiStripLorentzAngleRcd.h"
00019 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00020 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00021 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
00022 #include "Geometry/CommonTopologies/interface/StripTopology.h"
00023 #include "FWCore/Framework/interface/ESHandle.h"
00024 #include "FWCore/Framework/interface/Event.h"
00025
00026
00027 #include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h"
00028 #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"
00029
00030 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00031 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
00032 #include "Geometry/CommonTopologies/interface/StripTopology.h"
00033
00034 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00035 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00036 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
00037 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
00038 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"
00039 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
00040
00041
00042
00043 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
00044 #include "DataFormats/TrackReco/interface/Track.h"
00045 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00046 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h"
00047 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
00048 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h"
00049 #include "DataFormats/SiStripDetId/interface/SiStripSubStructure.h"
00050 #include "DataFormats/DetId/interface/DetId.h"
00051 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
00052 #include "DataFormats/SiStripDetId/interface/TECDetId.h"
00053 #include "DataFormats/SiStripDetId/interface/TIBDetId.h"
00054 #include "DataFormats/SiStripDetId/interface/TIDDetId.h"
00055 #include "DataFormats/SiStripDetId/interface/TOBDetId.h"
00056 #include "DataFormats/TrackReco/interface/DeDxHit.h"
00057 #include "DataFormats/TrackReco/interface/TrackDeDxHits.h"
00058
00059
00060 #include <ext/hash_map>
00061
00062
00063 class ShallowGainCalibration : public edm::EDProducer {
00064 public:
00065 explicit ShallowGainCalibration(const edm::ParameterSet&);
00066 private:
00067 edm::InputTag theTracksLabel;
00068 std::string Suffix;
00069 std::string Prefix;
00070
00071 void produce( edm::Event &, const edm::EventSetup & );
00072
00073
00074 bool IsFarFromBorder(TrajectoryStateOnSurface* trajState, const uint32_t detid, const edm::EventSetup* iSetup);
00075 double thickness (DetId id);
00076
00077 const TrackerGeometry* m_tracker;
00078 std::map<DetId,double> m_thicknessMap;
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089 };
00090 #endif
00091
00092
00093