ATLAS Offline Software
Loading...
Searching...
No Matches
BSFilePeeker Class Reference
Collaboration diagram for BSFilePeeker:

Public Member Functions

 BSFilePeeker (const std::string &filename)
const FileMetaDataget () const

Private Member Functions

bool extractValue (std::string_view source, std::string_view key, std::string &value)

Private Attributes

FileMetaData m_fmd

Detailed Description

Definition at line 14 of file BSFilePeeker.cxx.

Constructor & Destructor Documentation

◆ BSFilePeeker()

BSFilePeeker::BSFilePeeker ( const std::string & filename)

Definition at line 42 of file BSFilePeeker.cxx.

42 {
43
44 m_fmd.m_fileName=fName;
45 DataReader *pDR = pickDataReader(fName);
46
47 if(!pDR) {
48 std::cerr << "Problem opening or reading the bytestream file "
49 << fName << std::endl;
50 return;
51 }
52
53 if(!pDR->good()) {
54 std::cerr << "No events in file "<< fName << std::endl;
55 }
56
57 m_fmd.m_runNumbers.insert(pDR->runNumber());
58 m_fmd.m_lbNumbers.insert(pDR->lumiblockNumber());
59 m_fmd.m_project=pDR->projectTag();
60 m_fmd.m_stream=pDR->stream();
61 m_fmd.m_nEvents=pDR->eventsInFile();
62 m_fmd.m_beamEnergy=pDR->beamEnergy()*1000;
63 m_fmd.m_guid=pDR->GUID();
64
65 const unsigned bt=pDR->beamType();
66
67 //Accoring to info from Rainer and Guiseppe the beam type is
68 //0: No beam
69 //1: protons
70 //2: ions
71 switch (bt) {
72 case 0:
73 m_fmd.m_beamType="cosmics";
74 break;
75 case 1:
76 case 2: //actally heavy-ion
77 m_fmd.m_beamType="collisions";
78 break;
79 default:
80 std::cerr << "WARNING: Unexpected beam type integer in BS file. Got " << bt << std::endl;
81 m_fmd.m_beamType="unknown";
82 }
83
84
85 m_fmd.m_isMC=false; //Generaly, BS-files are real data
86 const std::vector<std::string> fmds=pDR->freeMetaDataStrings();
87 std::string eventTypeMD;
88 for (const std::string& fm : fmds) {
89 extractValue(fm,"GeoAtlas",m_fmd.m_geoTag);
90 extractValue(fm,"IOVDbGlobalTag",m_fmd.m_condTag);
91 extractValue(fm,"Event type",eventTypeMD);
92 }
93
94 if (eventTypeMD.find("is sim")!=std::string::npos) {
95 m_fmd.m_isMC=true; //This is a simulated bytestream file
96 }
97
98
99 m_fmd.m_valid=true;
100 delete pDR;
101}
bool extractValue(std::string_view source, std::string_view key, std::string &value)
FileMetaData m_fmd

Member Function Documentation

◆ extractValue()

bool BSFilePeeker::extractValue ( std::string_view source,
std::string_view key,
std::string & value )
private

Definition at line 30 of file BSFilePeeker.cxx.

30 {
31
32 const size_t sep=source.find(':');
33 if (sep==std::string_view::npos || source.substr(0,sep) != key) {
34 return false;
35 }
36 else {
37 value.assign(source.substr(sep+1));
38 return true;
39 }
40}

◆ get()

const FileMetaData & BSFilePeeker::get ( ) const
inline

Definition at line 19 of file BSFilePeeker.cxx.

19{return m_fmd;}

Member Data Documentation

◆ m_fmd

FileMetaData BSFilePeeker::m_fmd
private

Definition at line 25 of file BSFilePeeker.cxx.


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