CMS 3D CMS Logo

PFElecTkProducer.h
Go to the documentation of this file.
1 #ifndef PFElecTkProducer_H
2 #define PFElecTkProducer_H
6 
27 
29 
30 class PFTrackTransformer;
31 class GsfTrack;
32 class MagneticField;
33 class TrackerGeometry;
35 
37 
46 #include <unordered_map>
47 
48 class PFElecTkProducer final : public edm::stream::EDProducer<edm::GlobalCache<convbremhelpers::HeavyObjectCache> > {
49 public:
52 
53  static std::unique_ptr<convbremhelpers::HeavyObjectCache> initializeGlobalCache(const edm::ParameterSet& conf) {
54  return std::unique_ptr<convbremhelpers::HeavyObjectCache>(new convbremhelpers::HeavyObjectCache(conf));
55  }
56 
58 
60  ~PFElecTkProducer() override;
61 
62 private:
63  void beginRun(const edm::Run&, const edm::EventSetup&) override;
64  void endRun(const edm::Run&, const edm::EventSetup&) override;
65 
67  void produce(edm::Event&, const edm::EventSetup&) override;
68 
69  int FindPfRef(const reco::PFRecTrackCollection& PfRTkColl, const reco::GsfTrack&, bool);
70 
71  bool applySelection(const reco::GsfTrack&);
72 
73  bool resolveGsfTracks(const std::vector<reco::GsfPFRecTrack>& GsfPFVec,
74  unsigned int ngsf,
75  std::vector<unsigned int>& secondaries,
76  const reco::PFClusterCollection& theEClus);
77 
78  float minTangDist(const reco::GsfPFRecTrack& primGsf, const reco::GsfPFRecTrack& secGsf);
79 
80  bool isSameEgSC(const reco::ElectronSeed& nSeed,
81  const reco::ElectronSeed& iSeed,
82  bool& bothGsfEcalDriven,
83  float& SCEnergy);
84 
85  bool isSharingEcalEnergyWithEgSC(const reco::GsfPFRecTrack& nGsfPFRecTrack,
86  const reco::GsfPFRecTrack& iGsfPFRecTrack,
87  const reco::ElectronSeed& nSeed,
88  const reco::ElectronSeed& iSeed,
89  const reco::PFClusterCollection& theEClus,
90  bool& bothGsfTrackerDriven,
91  bool& nEcalDriven,
92  bool& iEcalDriven,
93  float& nEnergy,
94  float& iEnergy);
95 
96  bool isInnerMost(const reco::GsfTrackRef& nGsfTrack, const reco::GsfTrackRef& iGsfTrack, bool& sameLayer);
97 
98  bool isInnerMostWithLostHits(const reco::GsfTrackRef& nGsfTrack, const reco::GsfTrackRef& iGsfTrack, bool& sameLayer);
99 
101  std::vector<reco::GsfPFRecTrack>& gsfPFRecTrackPrimary,
102  const std::map<unsigned int, std::vector<reco::GsfPFRecTrack> >& MapPrimSec);
103 
104  // ----------member data ---------------------------
117  bool useV0_;
121 
123  std::unique_ptr<PFTrackTransformer> pfTransformer_;
125  std::unique_ptr<ConvBremPFTrackFinder> convBremFinder_;
126 
128  bool trajinev_;
130  bool applySel_;
134  // bool useFifthStepSec_;
136  double SCEne_;
137  double detaGsfSC_;
138  double dphiGsfSC_;
140 
143 
152 
153  // cache for multitrajectory states
154  std::vector<double> gsfInnerMomentumCache_;
155 };
156 #endif
bool trajinev_
Trajectory of GSfTracks in the event?
edm::EDGetTokenT< reco::PFRecTrackCollection > pfTrackLabel_
edm::EDGetTokenT< reco::GsfTrackCollection > gsfTrackLabel_
void createGsfPFRecTrackRef(const edm::OrphanHandle< reco::GsfPFRecTrackCollection > &gsfPfHandle, std::vector< reco::GsfPFRecTrack > &gsfPFRecTrackPrimary, const std::map< unsigned int, std::vector< reco::GsfPFRecTrack > > &MapPrimSec)
double mvaConvBremFinderIDEndcapsLowPt_
std::string path_mvaWeightFileConvBremEndcapsLowPt_
static std::unique_ptr< convbremhelpers::HeavyObjectCache > initializeGlobalCache(const edm::ParameterSet &conf)
bool applySelection(const reco::GsfTrack &)
reco::GsfPFRecTrack secpftrack_
std::unique_ptr< ConvBremPFTrackFinder > convBremFinder_
~PFElecTkProducer() override
Destructor.
edm::EDGetTokenT< reco::VertexCollection > primVtxLabel_
std::string path_mvaWeightFileConvBremBarrelHighPt_
double mvaConvBremFinderIDBarrelLowPt_
edm::EDGetTokenT< reco::PFV0Collection > pfV0_
std::string path_mvaWeightFileConvBremEndcapsHighPt_
edm::EDGetTokenT< reco::PFDisplacedTrackerVertexCollection > pfNuclear_
bool isSameEgSC(const reco::ElectronSeed &nSeed, const reco::ElectronSeed &iSeed, bool &bothGsfEcalDriven, float &SCEnergy)
bool isInnerMostWithLostHits(const reco::GsfTrackRef &nGsfTrack, const reco::GsfTrackRef &iGsfTrack, bool &sameLayer)
PFElecTkProducer(const edm::ParameterSet &, const convbremhelpers::HeavyObjectCache *)
Constructor.
void endRun(const edm::Run &, const edm::EventSetup &) override
int FindPfRef(const reco::PFRecTrackCollection &PfRTkColl, const reco::GsfTrack &, bool)
std::string path_mvaWeightFileConvBremBarrelLowPt_
bool resolveGsfTracks(const std::vector< reco::GsfPFRecTrack > &GsfPFVec, unsigned int ngsf, std::vector< unsigned int > &secondaries, const reco::PFClusterCollection &theEClus)
double mvaConvBremFinderIDBarrelHighPt_
double mvaConvBremFinderIDEndcapsHighPt_
edm::EDGetTokenT< reco::PFConversionCollection > pfConv_
void beginRun(const edm::Run &, const edm::EventSetup &) override
reco::GsfPFRecTrack pftrack_
void produce(edm::Event &, const edm::EventSetup &) override
Produce the PFRecTrack collection.
bool useConvBremFinder_
Conv Brem Finder.
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
std::unique_ptr< PFTrackTransformer > pfTransformer_
PFTrackTransformer.
std::vector< double > gsfInnerMomentumCache_
edm::ParameterSet conf_
float minTangDist(const reco::GsfPFRecTrack &primGsf, const reco::GsfPFRecTrack &secGsf)
std::vector< PFRecTrack > PFRecTrackCollection
collection of PFRecTrack objects
Definition: PFRecTrackFwd.h:9
edm::EDGetTokenT< reco::PFClusterCollection > pfEcalClusters_
bool isSharingEcalEnergyWithEgSC(const reco::GsfPFRecTrack &nGsfPFRecTrack, const reco::GsfPFRecTrack &iGsfPFRecTrack, const reco::ElectronSeed &nSeed, const reco::ElectronSeed &iSeed, const reco::PFClusterCollection &theEClus, bool &bothGsfTrackerDriven, bool &nEcalDriven, bool &iEcalDriven, float &nEnergy, float &iEnergy)
Definition: Run.h:45
MultiTrajectoryStateTransform mtsTransform_
static void globalEndJob(convbremhelpers::HeavyObjectCache const *)
bool isInnerMost(const reco::GsfTrackRef &nGsfTrack, const reco::GsfTrackRef &iGsfTrack, bool &sameLayer)