![]() |
![]() |
00001 #ifndef DeDxTools_H 00002 #define DeDxTools_H 00003 #include <vector> 00004 #include "DataFormats/TrackReco/interface/DeDxHit.h" 00005 #include "DataFormats/TrackReco/interface/TrackDeDxHits.h" 00006 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h" 00007 #include "DataFormats/DetId/interface/DetId.h" 00008 #include "TrackingTools/PatternTools/interface/Trajectory.h" 00009 00010 class reco::Track; 00011 namespace DeDxTools { 00012 00013 struct RawHits { 00014 // double charge[3]; // charge on the up to three fibers 00015 double charge; 00016 double angleCosine; 00017 DetId detId; 00018 const TrajectoryMeasurement* trajectoryMeasurement; 00019 00020 }; 00021 00022 void trajectoryRawHits(const edm::Ref<std::vector<Trajectory> >& trajectory, std::vector<RawHits>& hits, bool usePixel, bool useStrip); 00023 // std::vector<RawHits> trajectoryRawHits(const Trajectory & trajectory); 00024 00026 00027 float massFromBeta(float beta, const reco::Track &); 00028 00029 double genericAverage(const reco::DeDxHitCollection &, float expo = 1.); 00030 00039 Measurement1D beta(const reco::TrackDeDxHits & trackWithHits); 00040 00041 /* 00042 * Invert bethe bloch formula 00043 */ 00044 float betaFromInvertedBetheBloch(float dedx); 00045 00046 } 00047 00048 #endif