emcBadModulesv1.h

Go to the documentation of this file.
00001 #ifndef __EMCBADMODULESV1_H__
00002 #define __EMCBADMODULESV1_H__
00003 
00004 #include <vector>
00005 #include <map>
00006 #include <string>
00007 #ifndef __EMCBADMODULES_H__
00008 #  include "emcBadModules.h"
00009 #endif
00010 #ifndef __PHTIMESTAMP_H__
00011 #  include "PHTimeStamp.h"
00012 #endif
00013 #ifndef __EMCMANAGEABLE_H__
00014 #  include "emcManageable.h"
00015 #endif
00016 #ifndef __EMCDATASTORAGEMAP_H__
00017 #  include "emcDataStorageMap.h"
00018 #endif
00019 
00032 class emcBadModulesv1 : public emcBadModules
00033 {
00034 
00035 public:
00036 
00048 
00050   emcBadModulesv1();
00051 
00053   emcBadModulesv1(const char* directory, 
00054                 emcBadModules::EInformationOrigin origin = emcBadModules::kAll,
00055                   bool init=true,
00056                   const char* sectors="emcal");
00057 
00061   emcBadModulesv1(const PHTimeStamp& ts,
00062                   emcBadModules::EInformationOrigin origin=emcBadModules::kAll,
00063                   const emcDataStorageMap& source = emcDataStorageMap(emcManageable::kDB_Pg),
00064                   bool init = true,
00065                   const char* sectors="emcal");
00067 
00069   emcBadModulesv1(const emcBadModulesv1&);
00070 
00071   emcBadModulesv1& operator=(const emcBadModulesv1&);
00072 
00073   emcBadModulesv1* clone(void) const { return new emcBadModulesv1(*this); }
00074 
00076   virtual ~emcBadModulesv1();
00077 
00083 
00084   unsigned int Deadmap(int towerID);
00086   unsigned int DeadmapFast(int towerID) const;
00087   
00089   unsigned int Warnmap(int towerID);
00091   unsigned int WarnmapFast(int towerID) const;
00093   
00099 
00101   unsigned int Error(emcBadModules::EInformationOrigin source, int towerID);
00103   unsigned int ErrorFast(emcBadModules::EInformationOrigin source, 
00104                          int towerID) const;
00106   unsigned int Warning(emcBadModules::EInformationOrigin source, int towerID);
00108   unsigned int WarningFast(emcBadModules::EInformationOrigin source, 
00109                            int towerID) const;
00110 
00112 
00113   void identify(std::ostream& os=std::cout) const;
00114 
00115   int isValid() const;
00116 
00118   void Reset();
00119 
00121   std::ostream& Print(int towerid=-1, std::ostream& out=std::cout);
00122 
00124   unsigned int size(void) const { return fErrorMap.size(); }
00125 
00126 private:
00127 
00129   void Allocate(void);
00130 
00132   std::string CollectPhysicsQA(void);
00133 
00135   std::string CollectOnlineQA(void);
00136 
00138   std::string CollectOnlineQA(size_t ifem);
00139 
00140   void Collect(size_t ifem);
00141 
00144   void ComputeMaps(size_t ifem);
00145 
00147   void ComputeMaps(const char* sectors="emcal");
00148 
00150   void GetListOfNeighbourFEMs(size_t ifem, std::vector<size_t>& fems);
00151 
00154   bool IsValid(int towerID) const;
00155 
00159   void update(int towerID);
00160 
00162   std::ostream& PrintOne(int towerid, std::ostream& out=std::cout);
00163 
00164 #ifndef __CINT__
00165 private:
00166 
00168   void copyTo(emcBadModulesv1&) const;
00169 
00170   emcDataStorageMap fDataSource;
00171   emcBadModules::EInformationOrigin fOrigin;
00172   std::string fDirectory;
00173   PHTimeStamp fTimeStamp;
00174   bool fIsRejectListAlreadyRead;
00175 
00176   std::vector<unsigned int> fErrorMap;
00177   std::vector<unsigned int> fWarnMap;
00178 
00179   std::vector<bool> fCollectedFEMs;
00180   std::vector<bool> fComputedFEMs;
00181 
00182   std::map<EInformationOrigin, std::vector<unsigned int> > fErrorRaw;
00183   std::map<EInformationOrigin, std::vector<unsigned int> > fWarnRaw;
00184 
00185   typedef 
00186   std::map<EInformationOrigin, std::vector<unsigned int> >::const_iterator 
00187   RawMapIterator;
00188 
00189   static const unsigned int fMASK_Ampl_Physics    = 0x0000F;
00190   static const unsigned int fMASK_Ampl_Online     = 0x40000;
00191   static const unsigned int fMASK_Ampl_OnlineWarn = 0x00000;
00192 
00193   static const unsigned int fMASK_TOF_Physics     = 0x000F0;
00194   static const unsigned int fMASK_TOF_Online      = 0x00000; 
00195   static const unsigned int fMASK_TOF_OnlineWarn  = 0x00000;
00196 
00197 #endif
00198 
00199   ClassDef(emcBadModulesv1,1)
00200 };
00201 
00202 #endif