49 std::vector<TLumiBlockRange>::operator=(other);
62 if (runnr==-1)
return overlaprun;
64 std::vector<Root::TLumiBlockRange>::const_iterator itr1 = this->begin();
65 std::vector<Root::TLumiBlockRange>::const_iterator itr2 = other.begin();
67 for (; itr1!=this->end(); ++itr1) {
68 for (itr2=other.begin(); itr2!=other.end(); ++itr2) {
70 if (!lbr.
IsEmpty()) overlaprun.push_back(lbr);
84 if (runnr==-1)
return sumrun;
90 std::vector<Root::TLumiBlockRange>::const_iterator itr;
91 for (itr=overlap.begin(); itr!=overlap.end(); ++itr) sumrun.push_back(*itr);
92 for (itr=onlyinother.begin(); itr!=onlyinother.end(); ++itr) sumrun.push_back(*itr);
93 for (itr=notinother.begin(); itr!=notinother.end(); ++itr) sumrun.push_back(*itr);
103 return other.GetPartNotIn(*
this);
115 std::vector<Root::TLumiBlockRange>::const_iterator itro,itrt,lbvecitr;
117 for (itro=other.begin(); itro!=other.end(); ++itro) {
119 for (itrt=notinother.begin(); itrt!=notinother.end(); ++itrt) {
120 std::vector<Root::TLumiBlockRange> lbvec = itrt->GetPartNotIn(*itro);
121 for (lbvecitr=lbvec.begin(); lbvecitr!=lbvec.end(); ++lbvecitr)
122 tmprun.push_back(*lbvecitr);
135 std::vector<TLumiBlockRange>::const_iterator itr = this->begin();
136 std::vector<TLumiBlockRange>::const_iterator end = this->end();
139 for (; itr!=end; ++itr) {
140 pass = pass || itr->Contains(lumiblocknr) ;
148std::vector< Root::TLumiBlockRange >::iterator
151 std::vector<TLumiBlockRange>::iterator itr = this->begin();
154 for (; itr!=this->end(); ++itr) {
155 pass = itr->Contains(lumiblocknr) ;
163std::vector< Root::TLumiBlockRange >::const_iterator
166 std::vector<TLumiBlockRange>::const_iterator itr = this->begin();
169 for (; itr!=this->end(); ++itr) {
170 pass = itr->Contains(lumiblocknr) ;
184 std::vector<TLumiBlockRange>::const_iterator itr = this->begin();
185 std::vector<TLumiBlockRange>::const_iterator end = this->end();
187 for (; itr!=end; ++itr)
207 std::vector<TLumiBlockRange>::iterator itr, cbegin, cend;
208 int fbegin(-1), tbegin(-1), tend(-1), lbegin(-1), lend(-1);
210 for (itr=this->begin(); itr!=this->end();) {
215 fbegin = cbegin->Begin();
220 for (++itr; itr!=this->end() && go_on; ++itr) {
221 tbegin = cend->Begin();
223 lbegin = itr->Begin();
225 if ( lbegin>=tbegin && lend>=tend ) {
226 if (tend+1<lbegin) { go_on=
false; }
236 fbegin = cbegin->Begin();
240 itr = this->erase(cbegin,itr);
252 if (this->
empty())
return kTRUE;
254 Bool_t isEmpty(kTRUE);
255 std::vector< TLumiBlockRange >::const_iterator litr = this->begin();
256 for (; litr!=this->end() && isEmpty; ++litr)
257 isEmpty = isEmpty && litr->IsEmpty();
266 if ( lumiblocknr<0 )
return;
267 if ( this->
HasLB(lumiblocknr) )
return;
270 std::vector< TLumiBlockRange >::iterator eitr = this->
Find(lumiblocknr-1);
271 if (eitr!=this->end()) {
272 eitr->SetEnd(lumiblocknr);
277 std::vector< TLumiBlockRange >::iterator bitr = this->
Find(lumiblocknr+1);
278 if (bitr!=this->end()) {
279 bitr->SetBegin(lumiblocknr);
ClassImp(Root::TGoodRun) Root
static const Attributes_t empty
TGoodRun & operator=(const TGoodRun &other)
void AddLB(const Int_t &lumiblocknr)
const Root::TGoodRun GetPartNotIn(const TGoodRun &other) const
std::vector< Root::TLumiBlockRange >::iterator Find(const Int_t &lumiblocknr)
const Root::TGoodRun GetSumWith(const TGoodRun &other) const
Bool_t HasLB(const Int_t &lumiblocknr) const
Int_t GetRunNumber() const
const Root::TGoodRun GetOverlapWith(const TGoodRun &other) const
const Root::TGoodRun GetPartOnlyIn(const TGoodRun &other) const
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.