Go to the documentation of this file. 1 #ifndef RecoEgamma_EgammaPhotonProducers_ConversionProducer_h
2 #define RecoEgamma_EgammaPhotonProducers_ConversionProducer_h
76 std::multimap<double, reco::CaloClusterPtr>& basicClusterPtrs,
77 std::multimap<double, reco::CaloClusterPtr>& superClusterPtrs);
137 const std::multimap<double, reco::CaloClusterPtr>& superClusterPtrs,
138 const std::multimap<double, reco::CaloClusterPtr>& basicClusterPtrs,
175 bool getMatchedBC(
const std::multimap<double, reco::CaloClusterPtr>& bcMap,
180 bool matchingSC(
const std::multimap<double, reco::CaloClusterPtr>& scMap,
192 return geom->idToDet(
hit.geographicalId());
const GeomDet * recHitDet(const TrackingRecHit &hit, const TrackingGeometry *geom)
bool getMatchedBC(const std::multimap< double, reco::CaloClusterPtr > &bcMap, const math::XYZPointF &trackImpactPosition, reco::CaloClusterPtr &closestBC)
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilder_
bool trackQualityFilter(const edm::RefToBase< reco::Track > &ref, bool isLeft)
static HepMC::IO_HEPEVT conv
void buildCollection(edm::Event &iEvent, const edm::EventSetup &iSetup, const std::multimap< float, edm::Ptr< reco::ConversionTrack > > &allTracks, const std::multimap< double, reco::CaloClusterPtr > &superClusterPtrs, const std::multimap< double, reco::CaloClusterPtr > &basicClusterPtrs, const reco::Vertex &the_pvtx, reco::ConversionCollection &outputConvPhotonCollection)
bool checkTrackPair(const std::pair< edm::RefToBase< reco::Track >, reco::CaloClusterPtr > &ll, const std::pair< edm::RefToBase< reco::Track >, reco::CaloClusterPtr > &rr)
bool bypassPreselEcalEcal_
const BoundPlane & recHitSurface(const TrackingRecHit &hit, const TrackingGeometry *geom)
void buildSuperAndBasicClusterGeoMap(const edm::Event &, std::multimap< double, reco::CaloClusterPtr > &basicClusterPtrs, std::multimap< double, reco::CaloClusterPtr > &superClusterPtrs)
bool matchingSC(const std::multimap< double, reco::CaloClusterPtr > &scMap, reco::Conversion &conv, reco::CaloClusterPtrVector &mSC)
std::vector< Point > PointCollection
bool trackD0Cut(const edm::RefToBase< reco::Track > &ref)
const TransientTrackBuilder * thettbuilder_
Global3DVector GlobalVector
bool preselectTrackPair(const reco::TransientTrack &ttk_l, const reco::TransientTrack &ttk_r, double &appDist)
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
const Plane & surface() const
The nominal surface of the GeomDet.
math::XYZVectorF toFConverterV(const math::XYZVector &val)
bool checkPhi(const edm::RefToBase< reco::Track > &tk_l, const edm::RefToBase< reco::Track > &tk_r, const TrackerGeometry *trackerGeom, const MagneticField *magField, const reco::Vertex &the_vertex)
math::XYZPointF toFConverterP(const math::XYZPoint &val)
double dEtacutForSCmatching_
ConversionProducer(const edm::ParameterSet &)
ConversionVertexFinder * theVertexFinder_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scEndcapProducer_
XYZPointD XYZPoint
point in space with cartesian internal representation
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcBarrelCollection_
edm::EDGetTokenT< reco::VertexCollection > vertexProducer_
bool getTrackImpactPosition(const reco::Track *tk_ref, const TrackerGeometry *trackerGeom, const MagneticField *magField, math::XYZPointF &ew)
unsigned int maxNumOfTrackInPU_
XYZVectorD XYZVector
spatial vector with cartesian internal representation
edm::EDGetTokenT< edm::View< reco::ConversionTrack > > src_
~ConversionProducer() override
bool checkVertex(const reco::TransientTrack &ttk_l, const reco::TransientTrack &ttk_r, const MagneticField *magField, reco::Vertex &the_vertex)
double dPhicutForSCmatching_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometry_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcEndcapCollection_
std::string ConvertedPhotonCollection_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticField_
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
void produce(edm::Event &, const edm::EventSetup &) override
double etaTransformation(float EtaParticle, float Zvertex)
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scBarrelProducer_
math::XYZVector Vector
spatial vector