CMS 3D CMS Logo

ConvertedPhotonProducer.h
Go to the documentation of this file.
1 #ifndef RecoEgamma_EgammaPhotonProducers_ConvertedPhotonProducer_h
2 #define RecoEgamma_EgammaPhotonProducers_ConvertedPhotonProducer_h
3 
30 
35 public:
37  ~ConvertedPhotonProducer() override;
38 
39  void beginRun(edm::Run const&, const edm::EventSetup& es) final;
40  void produce(edm::Event& evt, const edm::EventSetup& es) override;
41 
42 private:
43  void buildCollections(
44  edm::EventSetup const& es,
45  const edm::Handle<edm::View<reco::CaloCluster> >& scHandle,
46  const edm::Handle<edm::View<reco::CaloCluster> >& bcHandle,
47  const edm::Handle<CaloTowerCollection>& hcalTowersHandle,
48  const edm::Handle<reco::TrackCollection>& trkHandle,
49  std::map<std::vector<reco::TransientTrack>, reco::CaloClusterPtr, CompareTwoTracksVectors>& allPairs,
50  reco::ConversionCollection& outputConvPhotonCollection);
53  reco::ConversionCollection& outputCollection);
54 
55  std::vector<reco::ConversionRef> solveAmbiguity(const edm::OrphanHandle<reco::ConversionCollection>& conversionHandle,
56  reco::CaloClusterPtr const& sc);
57 
58  float calculateMinApproachDistance(const reco::TrackRef& track1, const reco::TrackRef& track2);
59  void getCircleCenter(const reco::TrackRef& tk, double r, double& x0, double& y0);
60 
63 
66 
68 
71 
78 
82 
86  int nEvt_;
88 
90  double maxHOverE_;
91  double minSCEt_;
94  double deltaCotCut_;
98 
101 
102  math::XYZPointF toFConverterP(const math::XYZPoint& val) { return math::XYZPointF(val.x(), val.y(), val.z()); }
103 
104  math::XYZVectorF toFConverterV(const math::XYZVector& val) { return math::XYZVectorF(val.x(), val.y(), val.z()); }
105 };
106 #endif
edm::EDGetTokenT< reco::TrackCaloClusterPtrAssociation > outInTrackSCAssociationCollection_
edm::ESHandle< CaloGeometry > theCaloGeom_
ConversionTrackPairFinder * theTrackPairFinder_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcEndcapCollection_
edm::EDGetTokenT< reco::TrackCollection > conversionIOTrackProducer_
edm::ESHandle< TransientTrackBuilder > theTransientTrackBuilder_
ConversionVertexFinder * theVertexFinder_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scIslandEndcapProducer_
void buildCollections(edm::EventSetup const &es, const edm::Handle< edm::View< reco::CaloCluster > > &scHandle, const edm::Handle< edm::View< reco::CaloCluster > > &bcHandle, const edm::Handle< CaloTowerCollection > &hcalTowersHandle, const edm::Handle< reco::TrackCollection > &trkHandle, std::map< std::vector< reco::TransientTrack >, reco::CaloClusterPtr, CompareTwoTracksVectors > &allPairs, reco::ConversionCollection &outputConvPhotonCollection)
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
Definition: ConversionFwd.h:9
void beginRun(edm::Run const &, const edm::EventSetup &es) final
edm::EDGetTokenT< reco::TrackCollection > generalTrackProducer_
math::XYZVectorF toFConverterV(const math::XYZVector &val)
void cleanCollections(const edm::Handle< edm::View< reco::CaloCluster > > &scHandle, const edm::OrphanHandle< reco::ConversionCollection > &conversionHandle, reco::ConversionCollection &outputCollection)
edm::EDGetTokenT< CaloTowerCollection > hcalTowers_
std::vector< reco::ConversionRef > solveAmbiguity(const edm::OrphanHandle< reco::ConversionCollection > &conversionHandle, reco::CaloClusterPtr const &sc)
float calculateMinApproachDistance(const reco::TrackRef &track1, const reco::TrackRef &track2)
edm::EDGetTokenT< reco::TrackCollection > conversionOITrackProducer_
edm::EDGetTokenT< reco::TrackCaloClusterPtrAssociation > inOutTrackSCAssociationCollection_
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:16
edm::ESHandle< MagneticField > theMF_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcBarrelCollection_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scHybridBarrelProducer_
ConversionTrackEcalImpactPoint * theEcalImpactPositionFinder_
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
void produce(edm::Event &evt, const edm::EventSetup &es) override
ConvertedPhotonProducer(const edm::ParameterSet &ps)
math::XYZPointF toFConverterP(const math::XYZPoint &val)
ConversionLikelihoodCalculator * theLikelihoodCalc_
Definition: Run.h:45
void getCircleCenter(const reco::TrackRef &tk, double r, double &x0, double &y0)