00001 #ifndef L1TriggerScaler_h 00002 #define L1TriggerScaler_h 00003 00004 #include <iostream> 00005 #include<vector> 00006 00007 /* 00008 * \class L1TriggerScaler 00009 * 00010 * hosting L1TriggerScaler information 00011 * 00012 * \author Michele de Gruttola (degrutto) - INFN Naples / CERN (August-21-2008) 00013 * 00014 */ 00015 00016 00017 class L1TriggerScaler { 00018 public: 00019 // a struct with the information for each lumi 00020 00021 struct Lumi{ 00022 Lumi(){} 00023 ~Lumi(){} 00024 int m_runnumber; 00025 long long m_lumi_id; 00026 std::string m_start_time; 00027 // std::string m_date_str; 00028 //std::string m_string_value; 00029 std::string m_string_format; 00030 long m_rn; 00031 int m_lumisegment; 00032 // std::string m_version; 00033 //std::string m_context; 00034 std::string m_date; 00035 00036 00037 00038 00039 std::vector<int> m_GTAlgoCounts; 00040 // m_GTAlgoCounts.reserve(128); 00041 00042 std::vector<float> m_GTAlgoRates; 00043 00044 std::vector<int> m_GTAlgoPrescaling; 00045 00046 std::vector<int> m_GTTechCounts; 00047 00048 std::vector<float> m_GTTechRates; 00049 00050 std::vector<int> m_GTTechPrescaling; 00051 00052 std::vector<int> m_GTPartition0TriggerCounts; 00053 00054 std::vector<float> m_GTPartition0TriggerRates; 00055 00056 std::vector<int> m_GTPartition0DeadTime; 00057 00058 std::vector<float> m_GTPartition0DeadTimeRatio; 00059 00060 }; 00061 00062 // the fondamental object is a vector of struct Lumi 00063 L1TriggerScaler(); 00064 virtual ~L1TriggerScaler(){} 00065 // fondamental object 00066 std::vector<Lumi> m_run; 00067 00068 00069 // printing everything 00070 void printAllValues() const; 00071 void printRunValue()const; 00072 void printLumiSegmentValues() const; 00073 void printFormat() const; 00074 void printGTAlgoCounts() const; 00075 void printGTAlgoRates() const; 00076 void printGTAlgoPrescaling() const; 00077 void printGTTechCounts() const; 00078 void printGTTechRates() const; 00079 void printGTTechPrescaling() const; 00080 void printGTPartition0TriggerCounts() const; 00081 void printGTPartition0TriggerRates() const; 00082 void printGTPartition0DeadTime() const; 00083 void printGTPartition0DeadTimeRatio() const; 00084 00085 typedef std::vector<Lumi>::const_iterator LumiIterator; 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 void SetRunNumber(int n) { 00096 m_runnumber= n; 00097 } 00098 00099 00100 private: 00101 int m_lumisegment; 00102 int m_runnumber; 00103 // std::string m_string_value; 00104 //std::vector<int> m_GTAlgoCounts; 00105 }; 00106 00107 #endif