81 inputDoubleList_ = inputList;
86 orderTestDoubleList();
88 switch(blockingMethod){
93 cout <<
"[L1TLSBlock::doBlocking()]: Blocking method does not exist or is not implemented" << endl;
105 inputIntList_ = inputList;
112 switch(blockingMethod){
114 cout <<
"[L1TLSBlock::doBlocking()]: Blocking by statistics require doubles as inputs for test variable and threshold" << endl;
117 cout <<
"[L1TLSBlock::doBlocking()]: Blocking method does not exist or is not implemented" << endl;
128 inputIntList_.clear();
129 inputDoubleList_.clear();
154 double currentError(0);
155 bool resetFlag(
true);
157 for(LumiTestDoubleList::iterator
i=inputDoubleList_.begin();
i!=inputDoubleList_.end();
i++){
159 currentRange = std::make_pair(
i->first,
i->first);
163 currentRange = std::make_pair(currentRange.first,
i->first);
164 currentError = computeErrorFromRange(currentRange);
165 if(currentError < thresholdD_){
166 outputList_.push_back(currentRange);
174 std::vector<double> errorList;
177 for(
size_t i=0;
i < inputDoubleList_.size();
i++){
178 if(inputDoubleList_[
i].
first>lumiRange.first && inputDoubleList_[
i].first<lumiRange.second)
179 errorList.push_back(inputDoubleList_[
i].
second);
183 for(
size_t i=0;
i<errorList.size();
i++)
184 error += 1 / (errorList[
i] * errorList[
i] );
std::vector< LumiRange > LumiRangeList
U second(std::pair< T, U > const &p)
LumiRangeList doBlocking(LumiTestDoubleList, double, BLOCKBY)
std::pair< int, int > LumiRange
std::vector< std::pair< int, double > > LumiTestDoubleList
double computeErrorFromRange(LumiRange &)
std::vector< std::pair< int, double > > LumiTestIntList
void orderTestDoubleList()