29 double threshSeedBarrel =
32 double threshPtBarrel =
34 double threshPtSeedBarrel =
37 double threshCleanBarrel =
39 std::vector<double> minS4S1CleanBarrel =
40 iConfig.
getParameter< std::vector<double> >(
"minS4S1_Clean_Barrel");
44 double threshSeedEndcap =
47 double threshPtEndcap =
49 double threshPtSeedEndcap =
52 double threshCleanEndcap =
54 std::vector<double> minS4S1CleanEndcap =
55 iConfig.
getParameter< std::vector<double> >(
"minS4S1_Clean_Endcap");
57 double threshDoubleSpikeBarrel =
58 iConfig.
getParameter<
double>(
"thresh_DoubleSpike_Barrel");
59 double minS6S2DoubleSpikeBarrel =
60 iConfig.
getParameter<
double>(
"minS6S2_DoubleSpike_Barrel");
61 double threshDoubleSpikeEndcap =
62 iConfig.
getParameter<
double>(
"thresh_DoubleSpike_Endcap");
63 double minS6S2DoubleSpikeEndcap =
64 iConfig.
getParameter<
double>(
"minS6S2_DoubleSpike_Endcap");
81 bool cleanRBXandHPDs =
85 clusterAlgo_.setThreshBarrel( threshBarrel );
86 clusterAlgo_.setThreshSeedBarrel( threshSeedBarrel );
88 clusterAlgo_.setThreshPtBarrel( threshPtBarrel );
89 clusterAlgo_.setThreshPtSeedBarrel( threshPtSeedBarrel );
91 clusterAlgo_.setThreshCleanBarrel(threshCleanBarrel);
92 clusterAlgo_.setS4S1CleanBarrel(minS4S1CleanBarrel);
94 clusterAlgo_.setThreshDoubleSpikeBarrel( threshDoubleSpikeBarrel );
95 clusterAlgo_.setS6S2DoubleSpikeBarrel( minS6S2DoubleSpikeBarrel );
97 clusterAlgo_.setThreshEndcap( threshEndcap );
98 clusterAlgo_.setThreshSeedEndcap( threshSeedEndcap );
100 clusterAlgo_.setThreshPtEndcap( threshPtEndcap );
101 clusterAlgo_.setThreshPtSeedEndcap( threshPtSeedEndcap );
103 clusterAlgo_.setThreshCleanEndcap(threshCleanEndcap);
104 clusterAlgo_.setS4S1CleanEndcap(minS4S1CleanEndcap);
106 clusterAlgo_.setThreshDoubleSpikeEndcap( threshDoubleSpikeEndcap );
107 clusterAlgo_.setS6S2DoubleSpikeEndcap( minS6S2DoubleSpikeEndcap );
109 clusterAlgo_.setNNeighbours( nNeighbours );
112 double posCalcP1 = threshBarrel<threshEndcap ? threshBarrel:threshEndcap;
113 clusterAlgo_.setPosCalcP1( posCalcP1 );
114 clusterAlgo_.setPosCalcNCrystal( posCalcNCrystal );
115 clusterAlgo_.setShowerSigma( showerSigma );
117 clusterAlgo_.setUseCornerCells( useCornerCells );
118 clusterAlgo_.setCleanRBXandHPDs( cleanRBXandHPDs);
148 produces<reco::PFClusterCollection>();
149 produces<reco::PFRecHitCollection>(
"Cleaned");
173 err<<
"cannot find rechits: "<<inputTagPFRecHits_;
174 LogError(
"PFClusterProducer")<<err.str()<<endl;
181 clusterAlgo_.doClustering( rechitsHandle );
185 <<
" clusters --------------------------------- "<<endl
186 <<clusterAlgo_<<endl;
191 auto_ptr< vector<reco::PFCluster> > outClusters( clusterAlgo_.clusters() );
192 auto_ptr< vector<reco::PFRecHit> > recHitsCleaned ( clusterAlgo_.rechitsCleaned() );
193 iEvent.
put( outClusters );
194 iEvent.
put( recHitsCleaned,
"Cleaned" );
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
static void setDepthCorParameters(int mode, double a, double b, double ap, double bp)
virtual void produce(edm::Event &, const edm::EventSetup &)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
PFClusterProducer(const edm::ParameterSet &)