ATLAS Offline Software
Loading...
Searching...
No Matches
LumiBlockCollectionConverter Class Reference

#include <LumiBlockCollectionConverter.h>

Collaboration diagram for LumiBlockCollectionConverter:

Public Member Functions

 LumiBlockCollectionConverter ()
virtual ~LumiBlockCollectionConverter ()
 LumiBlockCollectionConverter (const LumiBlockCollectionConverter &)=delete
LumiBlockCollectionConverteroperator= (const LumiBlockCollectionConverter &)=delete
LumiBlockCollectionGetLumiBlockCollection (const Root::TGoodRunsList &grl, std::map< TString, TString > &metadata, TString &version)
LumiBlockCollectionGetLumiBlockCollection (const Root::TGoodRunsList &grl) const
LumiBlockCollectionGetLumiBlockCollection (const char *xmlfile)
LumiBlockCollectionGetLumiBlockCollectionFromString (const TString &xmlstring)
void CreateXMLFile (const Root::TGoodRunsList &grl, const TString &xmlfilename="", const TString &prefix="")
void CreateXMLFile (const Root::TGRLCollection &grlcollection, const char *xmlfilename)
void CreateXMLFile (const LumiBlockCollection &lbc, const grlmetadatamap &metadata=grlmetadatamap(), const char *version="", const TString &xmlfilename="", const TString &prefix="")
void CreateXMLFiles (const Root::TGRLCollection &grlcollection, const char *prefix)
const TString GetXMLString (const Root::TGoodRunsList &grl)
const TString GetXMLString (const Root::TGRLCollection &grlcollection)
const TString GetXMLString (const LumiBlockCollection &lbc, const grlmetadatamap &metadata=grlmetadatamap(), const char *version="")
const std::vector< TString > GetXMLStrings (const Root::TGRLCollection &grlcollection)
Root::TGoodRunsListGetGRLObject (const LumiBlockCollection &lbc, const grlmetadatamap &metadata=grlmetadatamap(), const char *version="") const
Root::TGoodRunsListGetGRLObject (const char *xmlfile)
Root::TGoodRunsListGetGRLObjectFromString (const TString &xmlstring)
Root::TGRLCollectionGetGRLCollection (const char *xmlfile)
Root::TGRLCollectionGetGRLCollectionFromString (const TString &xmlstring)
const TString GetSuggestedName (const LumiBlockCollection &lbc) const

Private Attributes

Root::TGoodRunsListReaderm_reader
Root::TGoodRunsListWriterm_writer

Detailed Description

Definition at line 33 of file LumiBlockCollectionConverter.h.

Constructor & Destructor Documentation

◆ LumiBlockCollectionConverter() [1/2]

LumiBlockCollectionConverter::LumiBlockCollectionConverter ( )

Definition at line 20 of file LumiBlockCollectionConverter.cxx.

21 : m_reader(new Root::TGoodRunsListReader())
22 , m_writer(new Root::TGoodRunsListWriter())
23{
24}

◆ ~LumiBlockCollectionConverter()

LumiBlockCollectionConverter::~LumiBlockCollectionConverter ( )
virtual

Definition at line 27 of file LumiBlockCollectionConverter.cxx.

28{
29 if (m_reader!=0) { delete m_reader; m_reader=0; }
30 if (m_writer!=0) { delete m_writer; m_writer=0; }
31}

◆ LumiBlockCollectionConverter() [2/2]

LumiBlockCollectionConverter::LumiBlockCollectionConverter ( const LumiBlockCollectionConverter & )
delete

Member Function Documentation

◆ CreateXMLFile() [1/3]

void LumiBlockCollectionConverter::CreateXMLFile ( const LumiBlockCollection & lbc,
const grlmetadatamap & metadata = grlmetadatamap(),
const char * version = "",
const TString & xmlfilename = "",
const TString & prefix = "" )

Definition at line 107 of file LumiBlockCollectionConverter.cxx.

109{
110 Root::TGoodRunsList* pgrl = this->GetGRLObject(lbc,metadata,version);
111 m_writer->SetGoodRunsList( *pgrl ) ;
112 TString xmlfile = ( xmlfilename.IsNull() ? prefix+pgrl->GetSuggestedName()+".xml" : xmlfilename );
113 m_writer->SetFilename( xmlfile.Data() ) ;
114 m_writer->WriteXMLFile() ;
115 delete pgrl;
116}
Root::TGoodRunsList * GetGRLObject(const LumiBlockCollection &lbc, const grlmetadatamap &metadata=grlmetadatamap(), const char *version="") const
TString GetSuggestedName() const
static std::vector< std::string > xmlfile
Definition iLumiCalc.h:29

◆ CreateXMLFile() [2/3]

void LumiBlockCollectionConverter::CreateXMLFile ( const Root::TGoodRunsList & grl,
const TString & xmlfilename = "",
const TString & prefix = "" )

Definition at line 97 of file LumiBlockCollectionConverter.cxx.

98{
99 m_writer->SetGoodRunsList( grl ) ;
100 TString xmlfile = ( xmlfilename.IsNull() ? prefix + grl.GetSuggestedName() + ".xml" : xmlfilename );
101 m_writer->SetFilename( xmlfile.Data() ) ;
102 m_writer->WriteXMLFile() ;
103}

◆ CreateXMLFile() [3/3]

void LumiBlockCollectionConverter::CreateXMLFile ( const Root::TGRLCollection & grlcollection,
const char * xmlfilename )

Definition at line 88 of file LumiBlockCollectionConverter.cxx.

89{
90 m_writer->SetGRLCollection( grlcollection ) ;
91 m_writer->SetFilename( xmlfilename ) ;
92 m_writer->WriteXMLFile() ;
93}

◆ CreateXMLFiles()

void LumiBlockCollectionConverter::CreateXMLFiles ( const Root::TGRLCollection & grlcollection,
const char * prefix )

Definition at line 120 of file LumiBlockCollectionConverter.cxx.

121{
122 m_writer->SetGRLCollection( grlcollection ) ;
123 m_writer->SetPrefix( prefix ) ;
124 m_writer->WriteXMLFiles() ;
125}

◆ GetGRLCollection()

Root::TGRLCollection * LumiBlockCollectionConverter::GetGRLCollection ( const char * xmlfile)

Definition at line 217 of file LumiBlockCollectionConverter.cxx.

218{
219 m_reader->SetXMLFile( xmlfile );
220 (void) m_reader->Interpret();
221 return (new Root::TGRLCollection( m_reader->GetMergedGRLCollection() ));
222}

◆ GetGRLCollectionFromString()

Root::TGRLCollection * LumiBlockCollectionConverter::GetGRLCollectionFromString ( const TString & xmlstring)

Definition at line 226 of file LumiBlockCollectionConverter.cxx.

227{
228 m_reader->SetXMLString( xmlstring );
229 (void) m_reader->Interpret();
230 return (new Root::TGRLCollection( m_reader->GetMergedGRLCollection() ));
231}

◆ GetGRLObject() [1/2]

Root::TGoodRunsList * LumiBlockCollectionConverter::GetGRLObject ( const char * xmlfile)

Definition at line 199 of file LumiBlockCollectionConverter.cxx.

200{
201 m_reader->SetXMLFile( xmlfile );
202 (void) m_reader->Interpret();
203 return (new Root::TGoodRunsList( m_reader->GetMergedGoodRunsList() ));
204}

◆ GetGRLObject() [2/2]

Root::TGoodRunsList * LumiBlockCollectionConverter::GetGRLObject ( const LumiBlockCollection & lbc,
const grlmetadatamap & metadata = grlmetadatamap(),
const char * version = "" ) const

Definition at line 164 of file LumiBlockCollectionConverter.cxx.

165{
166 Root::TGoodRunsList* grl = new Root::TGoodRunsList();
167 grl->SetVersion(version);
168 grl->SetMetaData(metadata);
169
170 if (!lbc.empty()) {
171 Root::TGoodRun goodrun;
172 int prev_runnbr(-1), cur_runnbr(-1), cur_lbstart(-1), cur_lbstop(-1);
173
174 for( LumiBlockCollection::const_iterator it=lbc.begin(); it != lbc.end(); ++it ) {
175 const LB_IOVRange* iovr = (*it);
176 cur_runnbr = iovr->start().run();
177 cur_lbstart = iovr->start().event();
178 cur_lbstop = iovr->stop().event();
179 // store previous run and reset
180 if (prev_runnbr!=cur_runnbr) {
181 if (prev_runnbr>=0) { (*grl)[prev_runnbr]=goodrun; }
182 goodrun.clear();
183 goodrun.SetRunNumber(cur_runnbr);
184 }
185 // store lumiblock range
186 goodrun.push_back( Root::TLumiBlockRange(cur_lbstart,cur_lbstop) ) ;
187 prev_runnbr = cur_runnbr;
188 } // loop over lbs
189 (*grl)[prev_runnbr]=goodrun; // also store last goodrun
190 } // lbc !empty
191
192
193 grl->Compress();
194 return grl;
195}
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
bool empty() const noexcept
Returns true if the collection is empty.
const IOVTime & stop() const
Definition IOVRange.h:39
const IOVTime & start() const
Definition IOVRange.h:38
uint32_t event() const noexcept
Definition IOVTime.h:106
uint32_t run() const noexcept
Definition IOVTime.h:105
void SetRunNumber(const Int_t &runnr)
Definition TGoodRun.h:43

◆ GetGRLObjectFromString()

Root::TGoodRunsList * LumiBlockCollectionConverter::GetGRLObjectFromString ( const TString & xmlstring)

Definition at line 208 of file LumiBlockCollectionConverter.cxx.

209{
210 m_reader->SetXMLString( xmlstring );
211 (void) m_reader->Interpret();
212 return (new Root::TGoodRunsList( m_reader->GetMergedGoodRunsList() ));
213}

◆ GetLumiBlockCollection() [1/3]

LumiBlockCollection * LumiBlockCollectionConverter::GetLumiBlockCollection ( const char * xmlfile)

Definition at line 69 of file LumiBlockCollectionConverter.cxx.

70{
71 Root::TGoodRunsList* pgrl = this->GetGRLObject( xmlfile );
72 LumiBlockCollection* iovc = this->GetLumiBlockCollection( *pgrl );
73 delete pgrl;
74 return iovc;
75}
LumiBlockCollection
LumiBlockCollection * GetLumiBlockCollection(const Root::TGoodRunsList &grl, std::map< TString, TString > &metadata, TString &version)

◆ GetLumiBlockCollection() [2/3]

LumiBlockCollection * LumiBlockCollectionConverter::GetLumiBlockCollection ( const Root::TGoodRunsList & grl) const

Definition at line 44 of file LumiBlockCollectionConverter.cxx.

45{
47
48 Root::TGoodRun goodrun;
49 std::map<Int_t, Root::TGoodRun>::const_iterator it;
50 std::vector< Root::TLumiBlockRange >::const_iterator itlbr;
51 int RunNumber(-1), LumiBlockStart(-1), LumiBlockEnd(-1);
52
53 for(it = grl.begin(); it != grl.end(); ++it) {
54 RunNumber = it->first;
55 goodrun = it->second;
56 for(itlbr = goodrun.begin(); itlbr != goodrun.end(); ++itlbr) {
57 LumiBlockStart = itlbr->Begin();
58 LumiBlockEnd = itlbr->End();
59 iovc->push_back(new LB_IOVRange(IOVTime(RunNumber, LumiBlockStart), IOVTime(RunNumber,LumiBlockEnd)));
60 }
61 }
62 iovc->sort(LumiBlockCollection::SortIOVRangeByStart());
63
64 return iovc;
65}
void sort()
Sort the container.
value_type push_back(value_type pElem)
Add an element to the end of the collection.

◆ GetLumiBlockCollection() [3/3]

LumiBlockCollection * LumiBlockCollectionConverter::GetLumiBlockCollection ( const Root::TGoodRunsList & grl,
std::map< TString, TString > & metadata,
TString & version )

Definition at line 35 of file LumiBlockCollectionConverter.cxx.

36{
37 metadata = grl.GetMetaData();
38 version = grl.GetVersion();
39 return this->GetLumiBlockCollection( grl );
40}

◆ GetLumiBlockCollectionFromString()

LumiBlockCollection * LumiBlockCollectionConverter::GetLumiBlockCollectionFromString ( const TString & xmlstring)

Definition at line 79 of file LumiBlockCollectionConverter.cxx.

80{
81 m_reader->SetXMLString( xmlstring );
82 (void) m_reader->Interpret();
83 return this->GetLumiBlockCollection( m_reader->GetMergedGoodRunsList() );
84}

◆ GetSuggestedName()

const TString LumiBlockCollectionConverter::GetSuggestedName ( const LumiBlockCollection & lbc) const

Definition at line 235 of file LumiBlockCollectionConverter.cxx.

236{
237 if (lbc.empty()) return "grl_empty";
238
239 Int_t beginrun(-1), endrun(-1), beginlb(-1), endlb(-1);
240
243
244 beginrun = (*itb)->start().run();
245 beginlb = (*itb)->start().event();
246 endrun = (*ite)->stop().run();
247 endlb = (*ite)->stop().event();
248
249 return Form("grl_%d.%d-%d.%d",beginrun,beginlb,endrun,endlb);
250}
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition DataVector.h:847

◆ GetXMLString() [1/3]

const TString LumiBlockCollectionConverter::GetXMLString ( const LumiBlockCollection & lbc,
const grlmetadatamap & metadata = grlmetadatamap(),
const char * version = "" )

Definition at line 153 of file LumiBlockCollectionConverter.cxx.

154{
155 Root::TGoodRunsList* pgrl = this->GetGRLObject(lbc,metadata,version);
156 m_writer->SetGoodRunsList( *pgrl ) ;
157 TString xmlstring = m_writer->GetXMLString() ;
158 delete pgrl;
159 return xmlstring;
160}

◆ GetXMLString() [2/3]

const TString LumiBlockCollectionConverter::GetXMLString ( const Root::TGoodRunsList & grl)

Definition at line 129 of file LumiBlockCollectionConverter.cxx.

130{
131 m_writer->SetGoodRunsList( grl ) ;
132 return m_writer->GetXMLString() ;
133}

◆ GetXMLString() [3/3]

const TString LumiBlockCollectionConverter::GetXMLString ( const Root::TGRLCollection & grlcollection)

Definition at line 137 of file LumiBlockCollectionConverter.cxx.

138{
139 m_writer->SetGRLCollection( grlcollection ) ;
140 return m_writer->GetXMLString() ;
141}

◆ GetXMLStrings()

const std::vector< TString > LumiBlockCollectionConverter::GetXMLStrings ( const Root::TGRLCollection & grlcollection)

Definition at line 145 of file LumiBlockCollectionConverter.cxx.

146{
147 m_writer->SetGRLCollection( grlcollection ) ;
148 return m_writer->GetXMLStrings() ;
149}

◆ operator=()

LumiBlockCollectionConverter & LumiBlockCollectionConverter::operator= ( const LumiBlockCollectionConverter & )
delete

Member Data Documentation

◆ m_reader

Root::TGoodRunsListReader* LumiBlockCollectionConverter::m_reader
private

Definition at line 70 of file LumiBlockCollectionConverter.h.

◆ m_writer

Root::TGoodRunsListWriter* LumiBlockCollectionConverter::m_writer
private

Definition at line 71 of file LumiBlockCollectionConverter.h.


The documentation for this class was generated from the following files: