74 bool meet_single_thresh =
false;
76 for (
int loop=0;
loop<int(BarrelSuperClusters.size());
loop++){
78 float eta1 = clus1.
eta();
79 float energy1 = clus1.
energy();
80 float theta1 = 2*atan(
exp(-1.*eta1));
81 float cluspt1 = energy1 *
sin(theta1);
83 saveBarrelSuperClusters.push_back(clus1);
85 meet_single_thresh =
true;
91 for (
int loop=0;
loop<int(EndcapSuperClusters.size());
loop++){
93 float eta1 = clus1.
eta();
94 float energy1 = clus1.
energy();
95 float theta1 = 2*atan(
exp(-1.*eta1));
96 float cluspt1 = energy1 *
sin(theta1);
98 saveEndcapSuperClusters.push_back(clus1);
100 meet_single_thresh =
true;
106 int TotClus = saveBarrelSuperClusters.size() + saveEndcapSuperClusters.size();
108 if (TotClus >=
nclus_sel_ || meet_single_thresh){
110 if (saveBarrelSuperClusters.size() > 0){
130 std::vector<DetId> saveTheseDetIds;
132 for (
int loop = 0;
loop < int(saveBarrelSuperClusters.size());
loop++){
137 std::pair<DetId, float> EDetty =
138 EcalClusterTools::getMaximum(*bc,rechits);
140 std::vector<DetId> detvec =
141 EcalClusterTools::matrixDetId(topology,EDetty.first, -1, 1, -1, 1);
143 for (
int ik = 0;ik<int(detvec.size());++ik)
144 saveTheseDetIds.push_back(detvec[ik]);
147 for (
int detloop=0; detloop < int(saveTheseDetIds.size());++detloop){
151 blah!=digis->
end();blah++){
153 if (detL == blah->id()){
155 SEBDigiCol->push_back(detL);
158 for (
int iq =0;iq<myDigi.
size();++iq){
172 if (saveEndcapSuperClusters.size() > 0){
192 std::set<DetId> saveTheseDetIds;
194 for (
int loop = 0;
loop < int(saveEndcapSuperClusters.size());
loop++){
199 std::pair<DetId, float> EDetty = EcalClusterTools::getMaximum(*bc,rechits);
201 std::vector<DetId> detvec =
202 EcalClusterTools::matrixDetId(topology,EDetty.first, -1, 1, -1, 1);
204 for (
int ik = 0;ik<int(detvec.size());++ik)
205 saveTheseDetIds.insert(detvec[ik]);
209 blah!=digis->
end();blah++){
210 std::set<DetId>::const_iterator finder = saveTheseDetIds.find(blah->id());
211 if (finder!=saveTheseDetIds.end()){
214 if (detL == blah->id()){
216 SEEDigiCol->push_back(detL);
218 for (
int iq =0;iq<myDigi.
size();++iq){
225 if (eecounter >=
int(saveTheseDetIds.size()))
break;
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
CaloTopology const * topology(0)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
T const * get() const
Returns C++ pointer to the item.
Sin< T >::type sin(const T &t)
EcalMGPASample sample(int i) const
const_iterator begin() const
uint16_t raw() const
get the raw word
double eta() const
pseudorapidity of cluster centroid
std::string selectedEcalEEDigiCollection_
edm::EDGetTokenT< reco::SuperClusterCollection > barrelSuperClusterProducer_
std::string selectedEcalEBDigiCollection_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
double cluster_pt_thresh_
edm::EDGetTokenT< EEDigiCollection > EcalEEDigiToken_
double energy() const
cluster energy
T const * product() const
T const * product() const
const_iterator end() const
void setSample(int i, EcalMGPASample sam)
const CaloClusterPtr & seed() const
seed BasicCluster
edm::EDGetTokenT< EBDigiCollection > EcalEBDigiToken_
edm::EDGetTokenT< EcalRecHitCollection > EcalEERecHitToken_
edm::EDGetTokenT< reco::SuperClusterCollection > endcapSuperClusterProducer_
edm::EDGetTokenT< EcalRecHitCollection > EcalEBRecHitToken_
double single_cluster_thresh_