CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GoodSeedProducer.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFTracking_GoodSeedProducer_H
2 #define RecoParticleFlow_PFTracking_GoodSeedProducer_H
3 // system include files
4 #include <memory>
5 
6 // user include files
7 
20 #include "TMVA/Reader.h"
25 
27 
29 
31 
43 //namespace reco {
44 class PFResolutionMap;
45 // }
46 
47 class PFTrackTransformer;
48 class TrajectoryFitter;
49 class TrajectorySmoother;
50 class TrackerGeometry;
52 
53 
54 
55 namespace goodseedhelpers {
57  constexpr static unsigned int kMaxWeights = 9;
58  public:
60  std::array<std::unique_ptr<const GBRForest>,kMaxWeights> gbr;
61  private:
62  // for temporary variable binding while reading
65  };
66 }
67 
68 class GoodSeedProducer final : public edm::stream::EDProducer<edm::GlobalCache<goodseedhelpers::HeavyObjectCache> > {
70  public:
72 
73  static std::unique_ptr<goodseedhelpers::HeavyObjectCache>
75  return std::unique_ptr<goodseedhelpers::HeavyObjectCache>(new goodseedhelpers::HeavyObjectCache(conf));
76  }
77 
79  }
80 
81  private:
82  virtual void beginRun(const edm::Run & run,const edm::EventSetup&) override;
83  virtual void produce(edm::Event&, const edm::EventSetup&) override;
84 
86  int getBin(float,float);
87 
91  // ----------member data ---------------------------
92 
95 
98 
101 
103  std::unique_ptr<TrajectoryFitter> fitter_;
104 
106  std::unique_ptr<TrajectorySmoother> smoother_;
107 
108  // needed by the above
110 
112  std::unique_ptr<PFTrackTransformer> pfTransformer_;
113 
116 
118  double minPt_;
119  double maxPt_;
120  double maxEta_;
121 
127  double minEoverP_;
128  double maxHoverP_;
129 
132 
134  double minEp_;
135  double maxEp_;
136 
139 
142 
145 
148 
150  float thr[150];
151 
152  // ----------access to event data
157  std::vector<edm::EDGetTokenT<std::vector<Trajectory> > > trajContainers_;
158  std::vector<edm::EDGetTokenT<reco::TrackCollection > > tracksContainers_;
159 
164 
165  std::unique_ptr<PFResolutionMap> resMapEtaECAL_;
166  std::unique_ptr<PFResolutionMap> resMapPhiECAL_;
167 
171 
175  double Min_dr_;
176 
178  bool useTmva_;
179 
182 
185 
187  std::map<reco::TrackRef,unsigned> refMap_;
188 
190 };
191 #endif
int nHitsInSeed_
Number of hits in the seed;.
std::string preidckf_
Name of the Seed(Ckf) Collection.
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagPSLabel_
TrackQuality
track quality
Definition: TrackBase.h:151
float eP
VARIABLES NEEDED FOR TMVA.
std::unique_ptr< TrajectorySmoother > smoother_
Smoother.
std::unique_ptr< PFResolutionMap > resMapEtaECAL_
General CMS geometry parameters used during Particle Flow reconstruction or drawing. All methods and members are static.
Definition: PFGeometry.h:23
double EcalStripSumE_minClusEnergy_
float thr[150]
vector of thresholds for different bins of eta and pt
GoodSeedProducer(const edm::ParameterSet &, const goodseedhelpers::HeavyObjectCache *)
#define constexpr
TkClonerImpl hitCloner
int getBin(float, float)
Find the bin in pt and eta.
std::unique_ptr< TrajectoryFitter > fitter_
Fitter.
edm::ParameterSet conf_
std::string method_
TMVA method.
HeavyObjectCache(const edm::ParameterSet &conf)
double EcalStripSumE_deltaEta_
double EcalStripSumE_deltaPhiOverQ_minValue_
double EcalStripSumE_deltaPhiOverQ_maxValue_
virtual void produce(edm::Event &, const edm::EventSetup &) override
TrajectoryStateOnSurface TSOS
math::XYZVector B_
B field.
std::string preidname_
Name of the preid Collection (FB)
PFGeometry pfGeometry_
std::string propagatorName_
std::array< std::unique_ptr< const GBRForest >, kMaxWeights > gbr
bool useQuality_
TRACK QUALITY.
void fillPreIdRefValueMap(edm::Handle< reco::TrackCollection > tkhandle, const edm::OrphanHandle< reco::PreIdCollection > &, edm::ValueMap< reco::PreIdRef >::Filler &filler)
double minPt_
Minimum transverse momentum and maximum pseudorapidity.
std::string fitterName_
bool disablePreId_
switch to disable the pre-id
static void globalEndJob(goodseedhelpers::HeavyObjectCache const *)
virtual void beginRun(const edm::Run &run, const edm::EventSetup &) override
reco::TrackBase::TrackQuality trackQuality_
double clusThreshold_
Cut on the energy of the clusters.
bool produceCkfseed_
Produce the Seed for Ckf tracks?
bool useTmva_
USE OF TMVA.
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
std::unique_ptr< PFResolutionMap > resMapPhiECAL_
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tracksContainers_
std::map< reco::TrackRef, unsigned > refMap_
Map used to create the TrackRef, PreIdRef value map.
bool producePreId_
Produce the pre-id debugging collection.
std::unique_ptr< PFTrackTransformer > pfTransformer_
PFTrackTransformer.
std::string trackerRecHitBuilderName_
std::string smootherName_
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagHCLabel_
Resolution Map (resolution as a function of eta and E)
std::string preidgsf_
Name of the Seed(Gsf) Collection.
edm::EDGetTokenT< reco::PFClusterCollection > pfCLusTagECLabel_
double minEp_
Min and MAx allowed values forEoverP.
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajContainers_
static std::unique_ptr< goodseedhelpers::HeavyObjectCache > initializeGlobalCache(const edm::ParameterSet &conf)
Definition: Run.h:42
double PtThresholdSavePredId_
Threshold to save Pre Idinfo.