1 #ifndef SequentialCombinationGenerator_H
2 #define SequentialCombinationGenerator_H
45 if (newcomb.size()==0) {
69 for (
int i=0;
i<
n;cold.push_back(++
i));
73 if (k==1)
return empty;
76 Vecint cold1(cold.begin()+p[0],cold.end());
80 if (cnew1.size()!=0) {
81 copy(cnew1.begin(),cnew1.end(),cnew.begin()+p[0]);
84 Vecint cold2(cold.begin(),cold.begin()+p[0]);
86 sort(cold.begin(),cold.end());
87 sort(cold2.begin(),cold2.end());
89 if (cnew2.size()==0)
return empty;
90 copy(cnew2.begin(),cnew2.begin()+p[0],cnew.begin());
92 set_difference(cold.begin(),cold.end(),
93 cnew2.begin(),cnew2.end(),ss.begin());
95 for (
int i=1;
i<
k;
i++) {
97 copy(ss.begin(),ss.end(),&cnew[ip]);
100 int mincnew2=cnew2[0];
101 if (ss[n1-1]<mincnew2)
return empty;
102 Vecint::iterator j1=find_if(ss.begin(),ss.end(),bind2nd(std::greater<int>(),mincnew2));
103 if (ss.end()-j1 < p[
i])
return empty;
105 for (
int j=0;
j<p[
i];cnew[ip+
j]=cnew2[
j]=sss[
j++]);
106 int n2=ss.size()-cnew2.size();
107 if (n2==0)
return cnew;
109 set_difference(ss.begin(),ss.end(),cnew2.begin(),cnew2.end(),s.begin());
123 typename Vecint::iterator ind;
124 for (
int i=k-1;
i>=0;
i--) {
130 Vecint::iterator
g2 = g.begin();
Vecint next_subset(Vecint g, Vecint c)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
SequentialPartitionGenerator::Partition Partition
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
void vecprint(const Vecint &v) const
Combination next_combination(Collection &coll)
std::vector< Collection > Combination
std::vector< int > Vecint
std::vector< int > Partition
SequentialCombinationGenerator(Partition &part)
Vecint next_combi(Vecint &cold, int n, const Partition &p)
std::vector< T > Collection
tuple size
Write out results.