Belle II Software release-09-00-07
ARICHCalibrationChecker Class Reference

ARICH calibration checker. More...

#include <ARICHCalibrationChecker.h>

Collaboration diagram for ARICHCalibrationChecker:

Public Member Functions

 ARICHCalibrationChecker ()
 Constructor.
 
 ~ARICHCalibrationChecker ()
 Destructor.
 
void setExperimentRun (int experiment, int run)
 Set experiment and run numbers.
 
void setTestingPayload (const std::string &testingPayloadName)
 Set testing payload name.
 
void setGlobalTag (const std::string &globalTagName)
 Set Global Tag name.
 
void setChannelMaskResultsFile (const std::string &channelMaskResultsFile)
 Set channel mask results file.
 
void checkChannelMask ()
 Check channel mask.
 
int getSector (int modID)
 Get HAPD sector number.
 
int getRing (int modID)
 Get HAPD ring number.
 

Private Member Functions

void initializeDatabase ()
 Initialize the database.
 
void resetDatabase ()
 Reset the database.
 
template<class T >
void printPayloadInformation (DBObjPtr< T > &dbObject)
 Print payload information.
 

Private Attributes

int m_experiment
 Experiment number.
 
int m_run
 Run number.
 
std::string m_testingPayloadName = ""
 Testing payload location.
 
std::string m_GlobalTagName = ""
 Global Tag name.
 
std::string m_channelMaskResultsFile = "channel_mask.root"
 Output file for channel mask results.
 
StoreObjPtr< EventMetaDatam_EventMetaData
 Event metadata.
 

Detailed Description

ARICH calibration checker.

Definition at line 29 of file ARICHCalibrationChecker.h.

Constructor & Destructor Documentation

◆ ARICHCalibrationChecker()

Constructor.

Definition at line 31 of file ARICHCalibrationChecker.cc.

31 :
32 m_experiment(0),
33 m_run(0)
34{
35}

◆ ~ARICHCalibrationChecker()

Destructor.

Definition at line 37 of file ARICHCalibrationChecker.cc.

38{
39}

Member Function Documentation

◆ checkChannelMask()

void checkChannelMask ( )

Check channel mask.

Definition at line 105 of file ARICHCalibrationChecker.cc.

106{
107 /* Initialize the database. */
109 /* Now we can read the payload. */
110 DBObjPtr<ARICHChannelMask> channelMask;
111 if (!channelMask.isValid())
112 B2FATAL("ARICHChannelMask is not valid.");
113 if (m_GlobalTagName != "")
114 printPayloadInformation(channelMask);
115 /* Create tree with fractions of masked channels in each sector. */
116 float frac_masked_sector[6] = {0.};
117 float frac_masked = 0.;
118 TFile* channelMaskResults =
119 new TFile(m_channelMaskResultsFile.c_str(), "recreate");
120 TTree* maskTree = new TTree("arich_masked", "ARICH channel masking");
121 maskTree->Branch("experiment", &m_experiment, "experiment/I");
122 maskTree->Branch("run", &m_run, "run/I");
123 maskTree->Branch("frac_masked_sector", &frac_masked_sector, "frac_masked_sector[6]/F");
124 maskTree->Branch("frac_masked", &frac_masked, "frac_masked/F");
125
126 for (int mod = 1; mod < 421; mod++) {
127 int sector = getSector(mod);
128 for (int chn = 0; chn < 144; chn++) {
129 if (!channelMask->isActive(mod, chn)) { frac_masked_sector[sector - 1]++; frac_masked++;}
130 }
131 }
132
133 for (int sec = 0; sec < 6; sec++) frac_masked_sector[sec] /= 10080.;
134 frac_masked /= 60480.;
135 maskTree->Fill();
136
137 maskTree->Write();
138 delete maskTree;
139 delete channelMaskResults;
140 /* Reset the database. Needed to avoid mess if we call this method multiple times with different GTs. */
142}
void resetDatabase()
Reset the database.
void initializeDatabase()
Initialize the database.
std::string m_channelMaskResultsFile
Output file for channel mask results.
int getSector(int modID)
Get HAPD sector number.
std::string m_GlobalTagName
Global Tag name.
void printPayloadInformation(DBObjPtr< T > &dbObject)
Print payload information.
bool isValid() const
Check whether a valid object was obtained from the database.
Class for accessing objects in the database.
Definition: DBObjPtr.h:21

◆ getRing()

int getRing ( int  modID)

Get HAPD ring number.

Definition at line 81 of file ARICHCalibrationChecker.cc.

82{
83 if (modID <= 42) return 1;
84 if (modID <= 90) return 2;
85 if (modID <= 144) return 3;
86 if (modID <= 204) return 4;
87 if (modID <= 270) return 5;
88 if (modID <= 342) return 6;
89 if (modID <= 420) return 7;
90 return 0;
91}

◆ getSector()

int getSector ( int  modID)

Get HAPD sector number.

Definition at line 93 of file ARICHCalibrationChecker.cc.

94{
95 if (getRing(modID) == 1) return (modID - 1) / 7 + 1;
96 if (getRing(modID) == 2) return (modID - 43) / 8 + 1;
97 if (getRing(modID) == 3) return (modID - 91) / 9 + 1;
98 if (getRing(modID) == 4) return (modID - 145) / 10 + 1;
99 if (getRing(modID) == 5) return (modID - 205) / 11 + 1;
100 if (getRing(modID) == 6) return (modID - 271) / 12 + 1;
101 if (getRing(modID) == 7) return (modID - 343) / 13 + 1;
102 return 0;
103}
int getRing(int modID)
Get HAPD ring number.

◆ initializeDatabase()

void initializeDatabase ( )
private

Initialize the database.

Definition at line 51 of file ARICHCalibrationChecker.cc.

52{
53 /* Mimic a module initialization. */
55 m_EventMetaData.registerInDataStore();
57 if (!m_EventMetaData.isValid())
58 m_EventMetaData.construct(1, m_run, m_experiment);
59 /* Database instance and configuration. */
60 DBStore& dbStore = DBStore::Instance();
61 dbStore.update();
62 dbStore.updateEvent();
63 auto& dbConfiguration = Conditions::Configuration::getInstance();
64 if ((m_testingPayloadName != "") and (m_GlobalTagName == ""))
65 dbConfiguration.prependTestingPayloadLocation(m_testingPayloadName);
66 else if ((m_testingPayloadName == "") and (m_GlobalTagName != ""))
67 dbConfiguration.prependGlobalTag(m_GlobalTagName);
68 else
69 B2FATAL("Setting both testing payload and Global Tag or setting no one of them.");
70}
std::string m_testingPayloadName
Testing payload location.
StoreObjPtr< EventMetaData > m_EventMetaData
Event metadata.
static Configuration & getInstance()
Get a reference to the instance which will be used when the Database is initialized.
Singleton class to cache database objects.
Definition: DBStore.h:31
static DataStore & Instance()
Instance of singleton Store.
Definition: DataStore.cc:54
void setInitializeActive(bool active)
Setter for m_initializeActive.
Definition: DataStore.cc:94
static DBStore & Instance()
Instance of a singleton DBStore.
Definition: DBStore.cc:28
void updateEvent()
Updates all intra-run dependent objects.
Definition: DBStore.cc:142
void update()
Updates all objects that are outside their interval of validity.
Definition: DBStore.cc:79

◆ printPayloadInformation()

void printPayloadInformation ( DBObjPtr< T > &  dbObject)
inlineprivate

Print payload information.

Definition at line 103 of file ARICHCalibrationChecker.h.

104 {
105 B2INFO("Analyzing the following payload:"
106 << LogVar("Global Tag", m_GlobalTagName.c_str())
107 << LogVar("Name", dbObject.getName())
108 << LogVar("Revision", dbObject.getRevision())
109 << LogVar("IoV", dbObject.getIoV()));
110 }
Class to store variables with their name which were sent to the logging service.

◆ resetDatabase()

void resetDatabase ( )
private

Reset the database.

Definition at line 72 of file ARICHCalibrationChecker.cc.

73{
74 /* Reset both DataStore and Database. */
76 // Database::Instance().reset(false);
77 Database::Instance().reset(true); // keep the configuration
78 DBStore::Instance().reset(false);
79}
void reset(EDurability durability)
Frees memory occupied by data store items and removes all objects from the map.
Definition: DataStore.cc:86
void reset(bool keepEntries=false)
Invalidate all payloads.
Definition: DBStore.cc:177
static Database & Instance()
Instance of a singleton Database.
Definition: Database.cc:42
static void reset(bool keepConfig=false)
Reset the database instance.
Definition: Database.cc:50

◆ setChannelMaskResultsFile()

void setChannelMaskResultsFile ( const std::string &  channelMaskResultsFile)
inline

Set channel mask results file.

Definition at line 67 of file ARICHCalibrationChecker.h.

69 {
70 m_channelMaskResultsFile = channelMaskResultsFile;
71 }

◆ setExperimentRun()

void setExperimentRun ( int  experiment,
int  run 
)

Set experiment and run numbers.

Definition at line 41 of file ARICHCalibrationChecker.cc.

42{
43 m_experiment = experiment;
44 m_run = run;
45 if (m_EventMetaData.isValid()) {
46 m_EventMetaData->setExperiment(experiment);
47 m_EventMetaData->setRun(run);
48 }
49}

◆ setGlobalTag()

void setGlobalTag ( const std::string &  globalTagName)
inline

Set Global Tag name.

Definition at line 59 of file ARICHCalibrationChecker.h.

60 {
61 m_GlobalTagName = globalTagName;
62 }

◆ setTestingPayload()

void setTestingPayload ( const std::string &  testingPayloadName)
inline

Set testing payload name.

Definition at line 51 of file ARICHCalibrationChecker.h.

52 {
53 m_testingPayloadName = testingPayloadName;
54 }

Member Data Documentation

◆ m_channelMaskResultsFile

std::string m_channelMaskResultsFile = "channel_mask.root"
private

Output file for channel mask results.

Definition at line 125 of file ARICHCalibrationChecker.h.

◆ m_EventMetaData

StoreObjPtr<EventMetaData> m_EventMetaData
private

Event metadata.

Definition at line 128 of file ARICHCalibrationChecker.h.

◆ m_experiment

int m_experiment
private

Experiment number.

Definition at line 113 of file ARICHCalibrationChecker.h.

◆ m_GlobalTagName

std::string m_GlobalTagName = ""
private

Global Tag name.

Definition at line 122 of file ARICHCalibrationChecker.h.

◆ m_run

int m_run
private

Run number.

Definition at line 116 of file ARICHCalibrationChecker.h.

◆ m_testingPayloadName

std::string m_testingPayloadName = ""
private

Testing payload location.

Definition at line 119 of file ARICHCalibrationChecker.h.


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