CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalDataFrameFilter.cc
Go to the documentation of this file.
2 
3 namespace HcalDataFrameFilter_impl {
4 
5  template <class DataFrame>
6  bool check(const DataFrame& df, bool capcheck, bool dvercheck) {
7  if (capcheck || dvercheck) {
8  int lastcapid=0, capid=0;
9  for (int i=0; i<df.size(); i++) {
10  capid=df[i].capid();
11  if (capcheck && i!=0 && ((lastcapid+1)%4)!=capid)
12  return false;
13  if (dvercheck && ( df[i].er() || !df[i].dv() ))
14  return false;
15  lastcapid=capid;
16  }
17  }
18  return true;
19  }
20 
21  template <class DataFrame>
22  double energySum(const DataFrame& df, int fs, int ls) {
23  double es=0;
24  for (int i=fs; i<=ls && i<=df.size(); i++)
25  es+=df[i].nominal_fC();
26  return es;
27  }
28 
29 }
30 
31 
32 HcalDataFrameFilter::HcalDataFrameFilter(bool requireCapid, bool requireDVER, bool energyFilter, int firstSample, int lastSample, double minAmpl) :
33  requireCapid_(requireCapid), requireDVER_(requireDVER), energyFilter_(energyFilter),
34  firstSample_(firstSample), lastSample_(lastSample), minimumAmplitude_(minAmpl) {
35 }
36 
39  for (HBHEDigiCollection::const_iterator i=incol.begin(); i!=incol.end(); i++) {
41  r.countBadQualityDigi(i->id());
43  output.push_back(*i);
44  }
45  return output;
46 }
47 
48 
51  for (HODigiCollection::const_iterator i=incol.begin(); i!=incol.end(); i++) {
53  r.countBadQualityDigi(i->id());
55  output.push_back(*i);
56 
57  }
58  return output;
59 }
60 
63  for (HcalCalibDigiCollection::const_iterator i=incol.begin(); i!=incol.end(); i++) {
65  r.countBadQualityDigi(i->id());
67  output.push_back(*i);
68 
69  }
70  return output;
71 }
72 
75  for (HFDigiCollection::const_iterator i=incol.begin(); i!=incol.end(); i++) {
77  r.countBadQualityDigi(i->id());
79  output.push_back(*i);
80  }
81  return output;
82 }
83 
86  for (ZDCDigiCollection::const_iterator i=incol.begin(); i!=incol.end(); i++) {
88  r.countBadQualityDigi(i->id());
90  output.push_back(*i);
91  }
92  return output;
93 }
94 
95 
98 }
99 
int i
Definition: DBlmapReader.cc:9
def ls
Definition: eostools.py:348
double energySum(const DataFrame &df, int fs, int ls)
std::vector< HBHEDataFrame >::const_iterator const_iterator
void push_back(T const &t)
bool check(const DataFrame &df, bool capcheck, bool dvercheck)
const_iterator end() const
bool active() const
whether any filters are on
HBHEDigiCollection filter(const HBHEDigiCollection &incol, HcalUnpackerReport &r)
filter HB/HE data frames
HcalDataFrameFilter(bool requireCapid, bool requireDVER, bool energyFilter, int firstSample=-1, int lastSample=-1, double minAmpl=-1)
const_iterator begin() const