CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

SiPixelActionExecutor Class Reference

#include <SiPixelActionExecutor.h>

List of all members.

Public Member Functions

void bookDeviations (DQMStore *bei)
void bookEfficiency (DQMStore *bei)
void bookOccupancyPlots (DQMStore *bei, bool hiRes, bool isbarrel)
void bookOccupancyPlots (DQMStore *bei, bool hiRes)
void bookTrackerMaps (DQMStore *bei, std::string name)
void checkQTestResults (DQMStore *bei)
void createEfficiency (DQMStore *bei)
void createLayout (DQMStore *bei)
void createMaps (DQMStore *bei, std::string type, std::string name, funcType ff)
void createOccupancy (DQMStore *bei)
void createSummary (DQMStore *bei)
void createTkMap (DQMStore *bei, std::string mEName, std::string theTKType)
void dumpBarrelModIds (DQMStore *bei, edm::EventSetup const &eSetup)
void dumpBarrelRefValues (DQMStore *bei, edm::EventSetup const &eSetup)
void dumpEndcapModIds (DQMStore *bei, edm::EventSetup const &eSetup)
void dumpEndcapRefValues (DQMStore *bei, edm::EventSetup const &eSetup)
void dumpModIds (DQMStore *bei, edm::EventSetup const &eSetup)
void dumpRefValues (DQMStore *bei, edm::EventSetup const &eSetup)
void fillEfficiency (DQMStore *bei, bool isbarrel)
void fillLayout (DQMStore *bei)
int getTkMapMENames (std::vector< std::string > &names)
bool readConfiguration (int &tkmap_freq, int &sum_barrel_freq, int &sum_endcap_freq, int &sum_grandbarrel_freq, int &sum_grandendcap_freq, int &message_limit, int &source_type, int &calib_type)
void readConfiguration ()
bool readConfiguration (int &tkmap_freq, int &summary_freq)
void setupQTests (DQMStore *bei)
 SiPixelActionExecutor (bool offlineXMLfile, bool Tier0Flag)
 ~SiPixelActionExecutor ()

Private Member Functions

int createMap (Double_t map[][NLev2][NLev3][NLev4], std::string type, DQMStore *bei, funcType ff, bool isBarrel)
void fillDeviations (DQMStore *bei)
void fillFEDErrorSummary (DQMStore *bei, std::string dir_name, std::vector< std::string > &me_names)
void fillGrandBarrelSummaryHistos (DQMStore *bei, std::vector< std::string > &me_names)
void fillGrandEndcapSummaryHistos (DQMStore *bei, std::vector< std::string > &me_names)
void fillOccupancy (DQMStore *bei, bool isbarrel)
void fillSummary (DQMStore *bei, std::string dir_name, std::vector< std::string > &me_names, bool isbarrel)
void GetBladeSubdirs (DQMStore *bei, std::vector< std::string > &blade_subdirs)
void getData (Double_t map[][NLev2][NLev3][NLev4], std::string type, DQMStore *bei, funcType ff, Int_t i, Int_t j, Int_t k, Int_t l)
MonitorElementgetFEDSummaryME (DQMStore *bei, std::string me_name)
void getGrandSummaryME (DQMStore *bei, int nbin, std::string &me_name, std::vector< MonitorElement * > &mes)
MonitorElementgetSummaryME (DQMStore *bei, std::string me_name)
Double_t mapMax (const Double_t map[][NLev2][NLev3][NLev4], bool isBarrel)
Double_t mapMin (const Double_t map[][NLev2][NLev3][NLev4], bool isBarrel)
void prephistosB (MonitorElement *me[NCyl], DQMStore *bei, const Double_t map[][NLev2][NLev3][NLev4], std::string name, Double_t min, Double_t max)
void prephistosE (MonitorElement *me[NCyl], DQMStore *bei, const Double_t map[][NLev2][NLev3][NLev4], std::string name, Double_t min, Double_t max)

Private Attributes

int calib_type_
SiPixelConfigParserconfigParser_
SiPixelConfigWriterconfigWriter_
MonitorElementDEV_adc_Barrel
MonitorElementDEV_adc_Endcap
MonitorElementDEV_charge_Barrel
MonitorElementDEV_charge_Endcap
MonitorElementDEV_nclusters_Barrel
MonitorElementDEV_nclusters_Endcap
MonitorElementDEV_ndigis_Barrel
MonitorElementDEV_ndigis_Endcap
MonitorElementDEV_size_Barrel
MonitorElementDEV_size_Endcap
MonitorElementHitEfficiency_Dm1
MonitorElementHitEfficiency_Dm2
MonitorElementHitEfficiency_Dp1
MonitorElementHitEfficiency_Dp2
MonitorElementHitEfficiency_L1
MonitorElementHitEfficiency_L2
MonitorElementHitEfficiency_L3
int message_limit_
int ndet_
MonitorElementOccupancyMap
bool offlineXMLfile_
MonitorElementPixelOccupancyMap
QTestHandleqtHandler_
int source_type_
std::vector< std::string > summaryMENames
TH2F * temp_1x2
TH2F * temp_1x5
TH2F * temp_2x3
TH2F * temp_2x4
TH2F * temp_2x5
TH2F * temp_H
edm::ESHandle
< SiPixelFedCablingMap
theCablingMap
bool Tier0Flag_
std::vector< std::string > tkMapMENames

Detailed Description

Definition at line 47 of file SiPixelActionExecutor.h.


Constructor & Destructor Documentation

SiPixelActionExecutor::SiPixelActionExecutor ( bool  offlineXMLfile,
bool  Tier0Flag 
)

Definition at line 35 of file SiPixelActionExecutor.cc.

References configParser_, configWriter_, ndet_, and qtHandler_.

                                                             : 
  offlineXMLfile_(offlineXMLfile), 
  Tier0Flag_(Tier0Flag) {
  edm::LogInfo("SiPixelActionExecutor") << 
    " Creating SiPixelActionExecutor " << "\n" ;
  configParser_ = 0;
  configWriter_ = 0;
  qtHandler_ = 0;  
  ndet_ = 0;
  //collationDone = false;
}
SiPixelActionExecutor::~SiPixelActionExecutor ( )

Definition at line 51 of file SiPixelActionExecutor.cc.

References configParser_, configWriter_, and qtHandler_.

                                              {
  edm::LogInfo("SiPixelActionExecutor") << 
    " Deleting SiPixelActionExecutor " << "\n" ;
  if (configParser_) delete configParser_;
  if (configWriter_) delete configWriter_;  
  if (qtHandler_) delete qtHandler_;
}

Member Function Documentation

void SiPixelActionExecutor::bookDeviations ( DQMStore bei)

Definition at line 232 of file SiPixelActionExecutor.cc.

References DQMStore::book1D(), DQMStore::cd(), DEV_adc_Barrel, DEV_adc_Endcap, DEV_charge_Barrel, DEV_charge_Endcap, DEV_nclusters_Barrel, DEV_nclusters_Endcap, DEV_ndigis_Barrel, DEV_ndigis_Endcap, DEV_size_Barrel, DEV_size_Endcap, and DQMStore::setCurrentFolder().

Referenced by SiPixelEDAClient::beginRun().

                                                        {
  bei->cd();
  bei->setCurrentFolder("Pixel/Barrel");
  DEV_adc_Barrel = bei->book1D("DEV_adc_Barrel","Deviation from reference;Module;<adc_ref>-<adc>",768,0.,768.);
  DEV_ndigis_Barrel = bei->book1D("DEV_ndigis_Barrel","Deviation from reference;Module;<ndigis_ref>-<ndigis>",768,0.,768.);
  DEV_charge_Barrel = bei->book1D("DEV_charge_Barrel","Deviation from reference;Module;<charge_ref>-<charge>",768,0.,768.);
  DEV_nclusters_Barrel = bei->book1D("DEV_nclusters_Barrel","Deviation from reference;Module;<nclusters_ref>-<nclusters>",768,0.,768.);
  DEV_size_Barrel = bei->book1D("DEV_size_Barrel","Deviation from reference;Module;<size_ref>-<size>",768,0.,768.);
  bei->cd();
  bei->setCurrentFolder("Pixel/Endcap");
  DEV_adc_Endcap = bei->book1D("DEV_adc_Endcap","Deviation from reference;Module;<adc_ref>-<adc>",672,0.,672.);
  DEV_ndigis_Endcap = bei->book1D("DEV_ndigis_Endcap","Deviation from reference;Module;<ndigis_ref>-<ndigis>",672,0.,672.);
  DEV_charge_Endcap = bei->book1D("DEV_charge_Endcap","Deviation from reference;Module;<charge_ref>-<charge>",672,0.,672.);
  DEV_nclusters_Endcap = bei->book1D("DEV_nclusters_Endcap","Deviation from reference;Module;<nclusters_ref>-<nclusters>",672,0.,672.);
  DEV_size_Endcap = bei->book1D("DEV_size_Endcap","Deviation from reference;Module;<size_ref>-<size>",672,0.,672.);  
  bei->cd();
}
void SiPixelActionExecutor::bookEfficiency ( DQMStore bei)

Definition at line 2269 of file SiPixelActionExecutor.cc.

References DQMStore::book2D(), DQMStore::cd(), HitEfficiency_Dm1, HitEfficiency_Dm2, HitEfficiency_Dp1, HitEfficiency_Dp2, HitEfficiency_L1, HitEfficiency_L2, HitEfficiency_L3, DQMStore::setCurrentFolder(), and Tier0Flag_.

Referenced by SiPixelEDAClient::beginRun().

                                                        {
  // Barrel
  bei->cd();
  bei->setCurrentFolder("Pixel/Barrel");
  if(Tier0Flag_){
    HitEfficiency_L1 = bei->book2D("HitEfficiency_L1","Hit Efficiency in Barrel_Layer1;z-side;Ladder",2,-1.,1.,20,-10.,10.);
    HitEfficiency_L2 = bei->book2D("HitEfficiency_L2","Hit Efficiency in Barrel_Layer2;z-side;Ladder",2,-1.,1.,32,-16.,16.);
    HitEfficiency_L3 = bei->book2D("HitEfficiency_L3","Hit Efficiency in Barrel_Layer3;z-side;Ladder",2,-1.,1.,44,-22.,22.);
  }else{
    HitEfficiency_L1 = bei->book2D("HitEfficiency_L1","Hit Efficiency in Barrel_Layer1;Module;Ladder",8,-4.,4.,20,-10.,10.);
    HitEfficiency_L2 = bei->book2D("HitEfficiency_L2","Hit Efficiency in Barrel_Layer2;Module;Ladder",8,-4.,4.,32,-16.,16.);
    HitEfficiency_L3 = bei->book2D("HitEfficiency_L3","Hit Efficiency in Barrel_Layer3;Module;Ladder",8,-4.,4.,44,-22.,22.);
  }
  // Endcap
  bei->cd();
  bei->setCurrentFolder("Pixel/Endcap");
  if(Tier0Flag_){
    HitEfficiency_Dp1 = bei->book2D("HitEfficiency_Dp1","Hit Efficiency in Endcap_Disk_p1;Blades;",24,-12.,12.,1,0.,1.);
    HitEfficiency_Dp2 = bei->book2D("HitEfficiency_Dp2","Hit Efficiency in Endcap_Disk_p2;Blades;",24,-12.,12.,1,0.,1.);
    HitEfficiency_Dm1 = bei->book2D("HitEfficiency_Dm1","Hit Efficiency in Endcap_Disk_m1;Blades;",24,-12.,12.,1,0.,1.);
    HitEfficiency_Dm2 = bei->book2D("HitEfficiency_Dm2","Hit Efficiency in Endcap_Disk_m2;Blades;",24,-12.,12.,1,0.,1.);
  }else{
    HitEfficiency_Dp1 = bei->book2D("HitEfficiency_Dp1","Hit Efficiency in Endcap_Disk_p1;Blades;Modules",24,-12.,12.,7,1.,8.);
    HitEfficiency_Dp2 = bei->book2D("HitEfficiency_Dp2","Hit Efficiency in Endcap_Disk_p2;Blades;Modules",24,-12.,12.,7,1.,8.);
    HitEfficiency_Dm1 = bei->book2D("HitEfficiency_Dm1","Hit Efficiency in Endcap_Disk_m1;Blades;Modules",24,-12.,12.,7,1.,8.);
    HitEfficiency_Dm2 = bei->book2D("HitEfficiency_Dm2","Hit Efficiency in Endcap_Disk_m2;Blades;Modules",24,-12.,12.,7,1.,8.);
  }
}
void SiPixelActionExecutor::bookOccupancyPlots ( DQMStore bei,
bool  hiRes,
bool  isbarrel 
)

Definition at line 1476 of file SiPixelActionExecutor.cc.

References DQMStore::book2D(), DQMStore::cd(), DQMStore::getSubdirs(), DQMStore::goUp(), OccupancyMap, MonitorElement::setAxisTitle(), and Tier0Flag_.

Referenced by SiPixelEDAClient::beginRun(), and bookOccupancyPlots().

{
  if(Tier0Flag_) return;
  vector<string> subdirs = bei->getSubdirs();
  for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++)
    {
      if(isbarrel && (*it).find("Barrel")==string::npos) continue;
      if(!isbarrel && (*it).find("Endcap")==string::npos) continue;
                
      if((*it).find("Module_")!=string::npos) continue;
      if((*it).find("Panel_")!=string::npos) continue;
      if((*it).find("Ladder_")!=string::npos) continue;
      if((*it).find("Blade_")!=string::npos) continue;
      if((*it).find("Layer_")!=string::npos) continue;
      if((*it).find("Disk_")!=string::npos) continue;
      bei->cd(*it);
      bookOccupancyPlots(bei, hiRes, isbarrel);
      if(!hiRes){
        //occupancyprinting cout<<"booking low res barrel occ plot now!"<<endl;
        OccupancyMap = bei->book2D((isbarrel?"barrelOccupancyMap":"endcapOccupancyMap"),"Barrel Digi Occupancy Map (4 pix per bin)",isbarrel?208:130,0.,isbarrel?416.:260.,80,0.,160.);
      }else{
        //occupancyprinting cout<<"booking high res barrel occ plot now!"<<endl;
        OccupancyMap = bei->book2D((isbarrel?"barrelOccupancyMap":"endcapOccupancyMap"),"Barrel Digi Occupancy Map (1 pix per bin)",isbarrel?416:260,0.,isbarrel?416.:260.,160,0.,160.);
      }
      OccupancyMap->setAxisTitle("Columns",1);
      OccupancyMap->setAxisTitle("Rows",2);
                
      bei->goUp();
                
    }
        
        
        
}
void SiPixelActionExecutor::bookOccupancyPlots ( DQMStore bei,
bool  hiRes 
)

Definition at line 1511 of file SiPixelActionExecutor.cc.

References bookOccupancyPlots(), DQMStore::cd(), DQMStore::setCurrentFolder(), and Tier0Flag_.

                                                                        {
        
  if(Tier0Flag_) return;
  // Barrel
  bei->cd();
  bei->setCurrentFolder("Pixel");
  this->bookOccupancyPlots(bei, hiRes, true);
        
  // Endcap
  bei->cd();
  bei->setCurrentFolder("Pixel");
  this->bookOccupancyPlots(bei, hiRes, false);
        
}
void SiPixelActionExecutor::bookTrackerMaps ( DQMStore bei,
std::string  name 
)

Definition at line 1597 of file SiPixelActionExecutor.cc.

References DQMStore::book2D(), NCyl, AlCaHLTBitMon_ParallelJobs::p, and DQMStore::setCurrentFolder().

{
        bei->setCurrentFolder("Pixel/Barrel");
        std::string partB[] = { "Layer_1", "Layer_2", "Layer_3"};
        bei->book2D("TRKMAP_" + name + "_" + partB[0], "TRKMAP_" + name + "_" + partB[0], 20, 1., 21., 8, 1., 9.);
        bei->book2D("TRKMAP_" + name + "_" + partB[1], "TRKMAP_" + name + "_" + partB[1], 32, 1., 33., 8, 1., 9.);
        bei->book2D("TRKMAP_" + name + "_" + partB[2], "TRKMAP_" + name + "_" + partB[2], 44, 1., 45., 8, 1., 9.);
                
        bei->setCurrentFolder("Pixel/Endcap");
        std::string partE[] = { "Disc_1_M", "Disc_2_M", "Disc_1_P", "Disc_2_P" };
        for(Int_t p = 0 ; p < NCyl ; p++)
                bei->book2D("TRKMAP_" + name + "_" + partE[p], "TRKMAP_" + name + "_" + partE[p], 24, 1., 25., 7, 1., 8.);
}
void SiPixelActionExecutor::checkQTestResults ( DQMStore bei)

Definition at line 1905 of file SiPixelActionExecutor.cc.

References calib_type_, configParser_, relmon_rootfiles_spy::contents, benchmark_cfg::errors, DQMStore::get(), SiPixelConfigParser::getCalibType(), DQMStore::getContents(), MonitorElement::getMean(), SiPixelUtility::getMEList(), SiPixelConfigParser::getMessageLimitForQTests(), MonitorElement::getName(), MonitorElement::getQErrors(), MonitorElement::getQWarnings(), MonitorElement::getRMS(), MonitorElement::hasWarning(), LogDebug, message_limit_, DQMStore::pwd(), MonitorElement::runQTests(), and benchmark_cfg::warnings.

Referenced by SiPixelWebInterface::performAction().

                                                            {
  //printing cout<<"Entering SiPixelActionExecutor::checkQTestResults..."<<endl;
        
  int messageCounter=0;
  string currDir = bei->pwd();
  vector<string> contentVec;
  bei->getContents(contentVec);
  configParser_->getCalibType(calib_type_);
  //  cout << calib_type_ << endl;
  configParser_->getMessageLimitForQTests(message_limit_);
  for (vector<string>::iterator it = contentVec.begin();
       it != contentVec.end(); it++) {
    vector<string> contents;
    int nval = SiPixelUtility::getMEList((*it), contents);
    if (nval == 0) continue;
    for (vector<string>::const_iterator im = contents.begin();
         im != contents.end(); im++) {
                        
      MonitorElement * me = bei->get((*im));
      if (me) {
        me->runQTests();
        // get all warnings associated with me
        vector<QReport*> warnings = me->getQWarnings();
        for(vector<QReport *>::const_iterator wi = warnings.begin();
            wi != warnings.end(); ++wi) {
          messageCounter++;
          if(messageCounter<message_limit_) {
            //edm::LogWarning("SiPixelQualityTester::checkTestResults") << 
            //  " *** Warning for " << me->getName() << 
            //  "," << (*wi)->getMessage() << "\n";
                                                
            edm::LogWarning("SiPixelActionExecutor::checkQTestResults") <<  " *** Warning for " << me->getName() << "," 
                                                                        << (*wi)->getMessage() << " " << me->getMean() 
                                                                        << " " << me->getRMS() << me->hasWarning() 
                                                                        << endl;
          }
        }
        warnings=vector<QReport*>();
        // get all errors associated with me
        vector<QReport *> errors = me->getQErrors();
        for(vector<QReport *>::const_iterator ei = errors.begin();
            ei != errors.end(); ++ei) {
                                        
          float empty_mean = me->getMean();
          float empty_rms = me->getRMS();
          if((empty_mean != 0 && empty_rms != 0) || (calib_type_ == 0)){
            messageCounter++;
            if(messageCounter<=message_limit_) {
              //edm::LogError("SiPixelQualityTester::checkTestResults") << 
              //  " *** Error for " << me->getName() << 
              //  "," << (*ei)->getMessage() << "\n";
                                                        
              edm::LogWarning("SiPixelActionExecutor::checkQTestResults")  <<   " *** Error for " << me->getName() << ","
                                                                           << (*ei)->getMessage() << " " << me->getMean() 
                                                                           << " " << me->getRMS() 
                                                                           << endl;
            }
          }
        }
        errors=vector<QReport*>();
      }
      me=0;
    }
    nval=int(); contents=vector<string>();
  }
  LogDebug("SiPixelActionExecutor::checkQTestResults") <<"messageCounter: "<<messageCounter<<" , message_limit: "<<message_limit_<<endl;
  //  if (messageCounter>=message_limit_)
  //    edm::LogWarning("SiPixelActionExecutor::checkQTestResults") << "WARNING: too many QTest failures! Giving up after "<<message_limit_<<" messages."<<endl;
  contentVec=vector<string>(); currDir=string(); messageCounter=int();
  //printing cout<<"...leaving SiPixelActionExecutor::checkQTestResults!"<<endl;
}
void SiPixelActionExecutor::createEfficiency ( DQMStore bei)

Definition at line 2300 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), and fillEfficiency().

Referenced by SiPixelEDAClient::endLuminosityBlock(), and SiPixelEDAClient::endRun().

                                                          {
  //std::cout<<"entering SiPixelActionExecutor::createEfficiency..."<<std::endl;
  bei->cd();
  fillEfficiency(bei, true); // Barrel
  bei->cd();
  fillEfficiency(bei, false); // Endcap
  bei->cd();
  //std::cout<<"leaving SiPixelActionExecutor::createEfficiency..."<<std::endl;
}
void SiPixelActionExecutor::createLayout ( DQMStore bei)

Definition at line 1978 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), configWriter_, SiPixelConfigWriter::createLayout(), SiPixelConfigWriter::createRow(), fillLayout(), DQMStore::getSubdirs(), DQMStore::goUp(), SiPixelConfigWriter::init(), mergeVDriftHistosByStation::name, and DQMStore::pwd().

                                                      {
  if (configWriter_ == 0) {
    configWriter_ = new SiPixelConfigWriter();
    if (!configWriter_->init()) return;
  }
  string currDir = bei->pwd();   
  if (currDir.find("Layer") != string::npos) {
    string name = "Default";
    configWriter_->createLayout(name);
    configWriter_->createRow();
    fillLayout(bei);
  } else {
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      bei->cd(*it);
      createLayout(bei);
      bei->goUp();
    }
  }  
}
int SiPixelActionExecutor::createMap ( Double_t  map[][NLev2][NLev3][NLev4],
std::string  type,
DQMStore bei,
funcType  ff,
bool  isBarrel 
) [private]

Definition at line 1652 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), getData(), DQMStore::getSubdirs(), i, j, gen::k, prof2calltree::l, NLev4, and Tier0Flag_.

Referenced by createMaps().

{
        // cout << "Starting with SiPixelActionExecutor::createMap" << endl;
        //int createMap(Double_t map[][NLev2][NLev3][NLev4], TString type, TDirectoryFile* dirMain, funcType ff){
        vector<string> dirLev1 = bei->getSubdirs();
        Int_t i = 0;
        for (vector<string>::const_iterator it = dirLev1.begin(); it != dirLev1.end(); it++) // goes over HalfCylinders in Endcap and over Shells in Barrel
        {
                //cout << "Current Directory: " << *it << endl;
                bei->cd(*it);
                vector<string> dirLev2 = bei->getSubdirs();
                Int_t j = 0;
                for (vector<string>::const_iterator it2 = dirLev2.begin(); it2 != dirLev2.end(); it2++) // goes over Disks in Endcap and over Layers in Barrel
                {
                        //cout << "Current Directory: " << *it2 << endl;
                        bei->cd(*it2);
                        Int_t k = 0;
                        vector<string> dirLev3 = bei->getSubdirs();
                        for (vector<string>::const_iterator it3 = dirLev3.begin(); it3 != dirLev3.end(); it3++) // goes over Blades in Endcap and over Ladders in Barrel
                        {
                                //cout << "Current Directory: " << *it3 << endl;
                                bei->cd(*it3);
                                if(Tier0Flag_)
                                        for (Int_t l = 0; l < NLev4; l++)
                                                getData(map, type, bei, ff, i, j, k, l);
                                else
                                {
                                        Int_t l = 0;
                                        vector<string> dirLev4 = bei->getSubdirs();
                                        for (vector<string>::const_iterator it4 = dirLev4.begin(); it4 != dirLev4.end(); it4++)
                                        {
                                                // cout << "Current Directory: " << *it4 << endl;
                                                bei->cd(*it4);
                                                if (isBarrel)
                                                        getData(map, type, bei, ff, i, j, k, l++);
                                                else
                                                {
                                                        vector<string> dirLev5 = bei->getSubdirs();
                                                        for (vector<string>::const_iterator it5 = dirLev5.begin(); it5 != dirLev5.end(); it5++)
                                                        {
                                                                // cout << "Current Directory: " << *it5 << endl;
                                                                bei->cd(*it5);
                                                                getData(map, type, bei, ff, i, j, k, l++);
                                                        }
                                                }
                                        }
                                }
                                k++;
                        }
                        j++;
                }
                i++;
        }
        
        // cout << "Done with SiPixelActionExecutor::createMap" << endl;
        return 0;
}
void SiPixelActionExecutor::createMaps ( DQMStore bei,
std::string  type,
std::string  name,
funcType  ff 
)

Definition at line 1612 of file SiPixelActionExecutor.cc.

References createMap(), mapMax(), mapMin(), max(), min, NCyl, NLayer, NLev1, NLev2, NLev3, NLev4, prephistosB(), prephistosE(), and DQMStore::setCurrentFolder().

{
//      cout << "Starting with SiPixelActionExecutor::createMaps" << endl;

        Double_t mapB[NLev1][NLev2][NLev3][NLev4];
        bei->setCurrentFolder("Pixel/Barrel/");
        createMap(mapB, type, bei, ff, true);
        Double_t minB = mapMin(mapB, true);
        Double_t maxB = mapMax(mapB, true);
        
        
        Double_t mapE[NLev1][NLev2][NLev3][NLev4];
        bei->setCurrentFolder("Pixel/Endcap/");
        createMap(mapE, type, bei, ff, false);
        Double_t minE = mapMin(mapE, false);
        Double_t maxE = mapMax(mapE, false);
        
        Double_t min = minE<=minB?minE:minB;
        Double_t max = maxE>=maxB?maxE:maxB;
        if(!min)
                min = -0.01;
        
        //      prephistosB(histB, mapB, type, min, max);
        //      prephistosE(histE, mapE, type, min, max);


        MonitorElement* meB[NLayer];
        //      TH2F* histB[NLayer];
        MonitorElement* meE[NCyl];
        //      TH2F* histE[NCyl];
        bei->setCurrentFolder("Pixel/Barrel");
        prephistosB(meB, bei, mapB, name, min, max);
        bei->setCurrentFolder("Pixel/Endcap");
        prephistosE(meE, bei, mapE, name, min, max);

//      cout << "Done with SiPixelActionExecutor::createMaps" << endl;
}
void SiPixelActionExecutor::createOccupancy ( DQMStore bei)

Definition at line 1526 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), fillOccupancy(), and Tier0Flag_.

Referenced by SiPixelEDAClient::endLuminosityBlock(), SiPixelEDAClient::endRun(), and SiPixelWebInterface::performAction().

                                                         {
  //std::cout<<"entering SiPixelActionExecutor::createOccupancy..."<<std::endl;
  if(Tier0Flag_) return;
  bei->cd();
  fillOccupancy(bei, true);
  bei->cd();
  fillOccupancy(bei, false);
  bei->cd();
  //std::cout<<"leaving SiPixelActionExecutor::createOccupancy..."<<std::endl;
}
void SiPixelActionExecutor::createSummary ( DQMStore bei)

Definition at line 171 of file SiPixelActionExecutor.cc.

References configParser_, configWriter_, gather_cfg::cout, fillFEDErrorSummary(), fillSummary(), DQMParserBase::getDocument(), SiPixelConfigParser::getMENamesForBarrelSummary(), SiPixelConfigParser::getMENamesForEndcapSummary(), SiPixelConfigParser::getMENamesForFEDErrorSummary(), SiPixelConfigParser::getSourceType(), offlineXMLfile_, DQMStore::setCurrentFolder(), and source_type_.

Referenced by SiPixelEDAClient::beginRun(), and SiPixelWebInterface::performAction().

                                                       {
  //cout<<"entering SiPixelActionExecutor::createSummary..."<<endl;
  string barrel_structure_name;
  vector<string> barrel_me_names;
  string localPath;
  if(offlineXMLfile_) localPath = string("DQM/SiPixelMonitorClient/test/sipixel_tier0_config.xml");
  else localPath = string("DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
//  cout<<"*********************ATTENTION! LOCALPATH= "<<localPath<<endl;
  if (configParser_ == 0) {
    configParser_ = new SiPixelConfigParser();
    configParser_->getDocument(edm::FileInPath(localPath).fullPath());
  }
  if (!configParser_->getMENamesForBarrelSummary(barrel_structure_name, barrel_me_names)){
    cout << "SiPixelActionExecutor::createSummary: Failed to read Barrel Summary configuration parameters!! ";
    return;
  }
  configParser_->getSourceType(source_type_); 
//  cout<<"++++++++++++++++++++++++++SOURCE TYPE= "<<source_type_<<endl;
  bei->setCurrentFolder("Pixel/");
  //bei->cd();
  fillSummary(bei, barrel_structure_name, barrel_me_names, true); // Barrel
  bei->setCurrentFolder("Pixel/");
  //bei->cd();
  string endcap_structure_name;
  vector<string> endcap_me_names;
  if (!configParser_->getMENamesForEndcapSummary(endcap_structure_name, endcap_me_names)){
    edm::LogInfo("SiPixelActionExecutor")  << "Failed to read Endcap Summary configuration parameters!! " << "\n" ;
    return;
  }

//  cout << "--- Processing endcap" << endl;

  bei->setCurrentFolder("Pixel/");
  //bei->cd();
  fillSummary(bei, endcap_structure_name, endcap_me_names, false); // Endcap
  bei->setCurrentFolder("Pixel/");
  //if(!Tier0Flag_) fillDeviations(bei);
  bei->setCurrentFolder("Pixel/");
  //bei->cd();
  if(source_type_==0||source_type_==5 || source_type_ == 20){//do this only if RawData source is present
    string federror_structure_name;
    vector<string> federror_me_names;
    if (!configParser_->getMENamesForFEDErrorSummary(federror_structure_name, federror_me_names)){
      cout << "SiPixelActionExecutor::createSummary: Failed to read FED Error Summary configuration parameters!! ";
      return;
    }
    bei->setCurrentFolder("Pixel/");
    //bei->cd();
    fillFEDErrorSummary(bei, federror_structure_name, federror_me_names);
    bei->setCurrentFolder("Pixel/");
    //bei->cd();
  }
  //createLayout(bei);
  //string fname = "test.xml";
  // configWriter_->write(fname);
  if (configWriter_) delete configWriter_;
  configWriter_ = 0;
//  cout<<"leaving SiPixelActionExecutor::createSummary..."<<endl;
}
void SiPixelActionExecutor::createTkMap ( DQMStore bei,
std::string  mEName,
std::string  theTKType 
)
void SiPixelActionExecutor::dumpBarrelModIds ( DQMStore bei,
edm::EventSetup const &  eSetup 
)

Definition at line 2061 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), relmon_rootfiles_spy::contents, gather_cfg::cout, compare_using_db::dir_name, edm::EventSetup::get(), DQMStore::getMEs(), DQMStore::getSubdirs(), DQMStore::goUp(), sipixelobjects::ElectronicIndex::link, ndet_, edm::ESHandle< T >::product(), DQMStore::pwd(), and theCablingMap.

Referenced by dumpModIds().

                                                                                       {
  string currDir = bei->pwd();
  string dir_name = "Ladder_";
  eSetup.get<SiPixelFedCablingMapRcd>().get(theCablingMap);
  int fedId=-1; int linkId=-1;
  if (currDir.find(dir_name) != string::npos)  {
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      if ( (*it).find("Module_") == string::npos) continue;
      bei->cd(*it);
      ndet_++;
      // long version:
      //cout<<"Ndet: "<<ndet_<<"  ,  Module: "<<bei->pwd();  
      // short version:
      cout<<bei->pwd();  
      vector<string> contents = bei->getMEs(); 
      bool first_me = false;
      int detId = -999;
      for (vector<string>::const_iterator im = contents.begin();
           im != contents.end(); im++) {
        if(first_me) break;
        string mEName = (*im);
        string detIdString = mEName.substr((mEName.find_last_of("_"))+1,9);
        std::istringstream isst;
        isst.str(detIdString);
        if(mEName.find("_3")!=string::npos) isst>>detId;
      }
      bei->goUp();
      // long version:
      //cout<<"  , detector ID: "<<detId;
      // short version:
      cout<<" "<<detId;
      for(int fedid=0; fedid<=40; ++fedid){
        SiPixelFrameConverter converter(theCablingMap.product(),fedid);
        uint32_t newDetId = detId;
        if(converter.hasDetUnit(newDetId)){
          fedId=fedid;
          break;   
        }
      }
      if(fedId==-1) continue; 
      sipixelobjects::ElectronicIndex cabling; 
      SiPixelFrameConverter formatter(theCablingMap.product(),fedId);
      assert(detId >= 0);
      sipixelobjects::DetectorIndex detector = {static_cast<unsigned int>(detId), 1, 1};           
      formatter.toCabling(cabling,detector);
      linkId = cabling.link;
      // long version:
      //cout<<"  , FED ID: "<<fedId<<"  , Link ID: "<<linkId<<endl;
      // short version:
      cout<<" "<<fedId<<" "<<linkId<<endl;
    }
  } else {  
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      if((*it).find("Endcap")!=string::npos) continue;
      bei->cd(*it);
      dumpBarrelModIds(bei,eSetup);
      bei->goUp();
    }
  }
}
void SiPixelActionExecutor::dumpBarrelRefValues ( DQMStore bei,
edm::EventSetup const &  eSetup 
)

Definition at line 2208 of file SiPixelActionExecutor.cc.

References gather_cfg::cout, DQMStore::get(), MonitorElement::getBinContent(), and i.

Referenced by dumpRefValues().

                                                                                          {
  MonitorElement* me;
  me = bei->get("Pixel/Barrel/SUMDIG_adc_Barrel");
  if(me){
    std::cout<<"SUMDIG_adc_Barrel: "<<std::endl;
    for(int i=1; i!=769; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Barrel/SUMDIG_ndigis_Barrel");
  if(me){
    std::cout<<"SUMDIG_ndigis_Barrel: "<<std::endl;
    for(int i=1; i!=769; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Barrel/SUMCLU_charge_Barrel");
  if(me){
    std::cout<<"SUMCLU_charge_Barrel: "<<std::endl;
    for(int i=1; i!=769; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Barrel/SUMCLU_nclusters_Barrel");
  if(me){
    std::cout<<"SUMCLU_nclusters_Barrel: "<<std::endl;
    for(int i=1; i!=769; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Barrel/SUMCLU_size_Barrel");
  if(me){
    std::cout<<"SUMCLU_size_Barrel: "<<std::endl;
    for(int i=1; i!=769; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
}
void SiPixelActionExecutor::dumpEndcapModIds ( DQMStore bei,
edm::EventSetup const &  eSetup 
)

Definition at line 2127 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), relmon_rootfiles_spy::contents, gather_cfg::cout, spr::find(), edm::EventSetup::get(), DQMStore::getMEs(), DQMStore::getSubdirs(), DQMStore::goUp(), sipixelobjects::ElectronicIndex::link, ndet_, edm::ESHandle< T >::product(), DQMStore::pwd(), and theCablingMap.

Referenced by dumpModIds().

                                                                                       {
  string currDir = bei->pwd();
  string dir_name = "Panel_";
  eSetup.get<SiPixelFedCablingMapRcd>().get(theCablingMap);
  int fedId=-1; int linkId=-1;
  if (currDir.find(dir_name) != string::npos)  {
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      if ( (*it).find("Module_") == string::npos) continue;
      bei->cd(*it);
      ndet_++;
      // long version:
      //cout<<"Ndet: "<<ndet_<<"  ,  Module: "<<bei->pwd();  
      // short version:
      cout<<bei->pwd();  
      vector<string> contents = bei->getMEs(); 
      bool first_me = false;
      int detId = -999;
      for (vector<string>::const_iterator im = contents.begin();
           im != contents.end(); im++) {
        if(first_me) break;
        string mEName = (*im);
        string detIdString = mEName.substr((mEName.find_last_of("_"))+1,9);
        std::istringstream isst;
        isst.str(detIdString);
        if(mEName.find("_3")!=string::npos) isst>>detId;
      }
      bei->goUp();
      // long version:
      //cout<<"  , detector ID: "<<detId;
      // short version:
      cout<<" "<<detId;
      for(int fedid=0; fedid<=40; ++fedid){
        SiPixelFrameConverter converter(theCablingMap.product(),fedid);
        uint32_t newDetId = detId;
        if(converter.hasDetUnit(newDetId)){
          fedId=fedid;
          break;   
        }
      }
      if(fedId==-1) continue; 
      sipixelobjects::ElectronicIndex cabling; 
      SiPixelFrameConverter formatter(theCablingMap.product(),fedId);
      assert(detId >= 0);
      sipixelobjects::DetectorIndex detector = {static_cast<unsigned int>(detId), 1, 1};           
      formatter.toCabling(cabling,detector);
      linkId = cabling.link;
      // long version:
      //cout<<"  , FED ID: "<<fedId<<"  , Link ID: "<<linkId<<endl;
      // short version:
      cout<<" "<<fedId<<" "<<linkId<<endl;
    }
  } else {  
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      if((bei->pwd()).find("Barrel")!=string::npos) bei->goUp();
      bei->cd((*it));
      if((*it).find("Barrel")!=string::npos) continue;
      dumpEndcapModIds(bei,eSetup);
      bei->goUp();
    }
  }
        
}
void SiPixelActionExecutor::dumpEndcapRefValues ( DQMStore bei,
edm::EventSetup const &  eSetup 
)

Definition at line 2238 of file SiPixelActionExecutor.cc.

References gather_cfg::cout, DQMStore::get(), MonitorElement::getBinContent(), and i.

Referenced by dumpRefValues().

                                                                                          {
  MonitorElement* me;
  me = bei->get("Pixel/Endcap/SUMDIG_adc_Endcap");
  if(me){
    std::cout<<"SUMDIG_adc_Endcap: "<<std::endl;
    for(int i=1; i!=673; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Endcap/SUMDIG_ndigis_Endcap");
  if(me){
    std::cout<<"SUMDIG_ndigis_Endcap: "<<std::endl;
    for(int i=1; i!=673; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Endcap/SUMCLU_charge_Endcap");
  if(me){
    std::cout<<"SUMCLU_charge_Endcap: "<<std::endl;
    for(int i=1; i!=673; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Endcap/SUMCLU_nclusters_Endcap");
  if(me){
    std::cout<<"SUMCLU_nclusters_Endcap: "<<std::endl;
    for(int i=1; i!=673; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
  me = bei->get("Pixel/Endcap/SUMCLU_size_Endcap");
  if(me){
    std::cout<<"SUMCLU_size_Endcap: "<<std::endl;
    for(int i=1; i!=673; i++) std::cout<<i<<" "<<me->getBinContent(i)<<std::endl;
  }
}
void SiPixelActionExecutor::dumpModIds ( DQMStore bei,
edm::EventSetup const &  eSetup 
)

Definition at line 2049 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), dumpBarrelModIds(), and dumpEndcapModIds().

                                                                                 {
  //printing cout<<"Going to dump module IDs now!"<<endl;
  bei->cd();
  dumpBarrelModIds(bei,eSetup);
  bei->cd();
  dumpEndcapModIds(bei,eSetup);
  bei->cd();
  //printing cout<<"Done dumping module IDs!"<<endl;
}
void SiPixelActionExecutor::dumpRefValues ( DQMStore bei,
edm::EventSetup const &  eSetup 
)

Definition at line 2196 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), dumpBarrelRefValues(), and dumpEndcapRefValues().

                                                                                    {
  //printing cout<<"Going to dump module IDs now!"<<endl;
  bei->cd();
  dumpBarrelRefValues(bei,eSetup);
  bei->cd();
  dumpEndcapRefValues(bei,eSetup);
  bei->cd();
  //printing cout<<"Done dumping module IDs!"<<endl;
}
void SiPixelActionExecutor::fillDeviations ( DQMStore bei) [private]

Definition at line 251 of file SiPixelActionExecutor.cc.

References DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getRefTH1(), i, n, and MonitorElement::setBinContent().

                                                        {
  int n = 768;
  MonitorElement* me1; MonitorElement* me2; 
  MonitorElement* me3; MonitorElement* me4; 
  MonitorElement* me5; 
  TH1* ref1; TH1* ref2; 
  TH1* ref3; TH1* ref4; 
  TH1* ref5; 
  MonitorElement* dev1; MonitorElement* dev2; 
  MonitorElement* dev3; MonitorElement* dev4; 
  MonitorElement* dev5; 
  me1 = bei->get("Pixel/Barrel/SUMDIG_adc_Barrel");
  ref1 = me1->getRefTH1();
  dev1 = bei->get("Pixel/Barrel/DEV_adc_Barrel");
  me2 = bei->get("Pixel/Barrel/SUMDIG_ndigis_Barrel");
  ref2 = me2->getRefTH1();
  dev2 = bei->get("Pixel/Barrel/DEV_ndigis_Barrel");
  me3 = bei->get("Pixel/Barrel/SUMCLU_charge_Barrel");
  ref3 = me3->getRefTH1();
  dev3 = bei->get("Pixel/Barrel/DEV_charge_Barrel");
  me4 = bei->get("Pixel/Barrel/SUMCLU_nclusters_Barrel");
  ref4 = me4->getRefTH1();
  dev4 = bei->get("Pixel/Barrel/DEV_nclusters_Barrel");
  me5 = bei->get("Pixel/Barrel/SUMCLU_size_Barrel");
  ref5 = me5->getRefTH1();
  dev5 = bei->get("Pixel/Barrel/DEV_size_Barrel");
  for(int i=1; i!=n+1; i++){
    float ref_value; float new_value;
    // Barrel adc: 
    if(me1)if(ref1)if(dev1){
      new_value = me1->getBinContent(i);
      ref_value = ref1->GetBinContent(i); 
      dev1->setBinContent(i,ref_value-new_value);
    }
    //Barrel ndigis:
    if(me2)if(ref2)if(dev2){
      new_value = me2->getBinContent(i);
      ref_value = ref2->GetBinContent(i); 
      dev2->setBinContent(i,ref_value-new_value);
    }
    // Barrel cluster charge:
    if(me3)if(ref3)if(dev3){
      new_value = me3->getBinContent(i);
      ref_value = ref3->GetBinContent(i); 
      dev3->setBinContent(i,ref_value-new_value);
    }
    // Barrel nclusters:
    if(me4)if(ref4)if(dev4){
      new_value = me4->getBinContent(i);
      ref_value = ref4->GetBinContent(i); 
      dev4->setBinContent(i,ref_value-new_value);
    }
    // Barrel cluster size:
    if(me5)if(ref5)if(dev5){
      new_value = me5->getBinContent(i);
      ref_value = ref5->GetBinContent(i); 
      dev5->setBinContent(i,ref_value-new_value);
    }
  }

  int nn = 672;
  MonitorElement* me11; MonitorElement* me12; 
  MonitorElement* me13; MonitorElement* me14; 
  MonitorElement* me15; 
  TH1* ref11; TH1* ref12; 
  TH1* ref13; TH1* ref14; 
  TH1* ref15; 
  MonitorElement* dev11; MonitorElement* dev12; 
  MonitorElement* dev13; MonitorElement* dev14; 
  MonitorElement* dev15; 
  me11 = bei->get("Pixel/Endcap/SUMDIG_adc_Endcap");
  ref11 = me11->getRefTH1();
  dev11 = bei->get("Pixel/Endcap/DEV_adc_Endcap");
  me12 = bei->get("Pixel/Endcap/SUMDIG_ndigis_Endcap");
  ref12 = me12->getRefTH1();
  dev12 = bei->get("Pixel/Endcap/DEV_ndigis_Endcap");
  me13 = bei->get("Pixel/Endcap/SUMCLU_charge_Endcap");
  ref13 = me13->getRefTH1();
  dev13 = bei->get("Pixel/Endcap/DEV_charge_Endcap");
  me14 = bei->get("Pixel/Endcap/SUMCLU_nclusters_Endcap");
  ref14 = me14->getRefTH1();
  dev14 = bei->get("Pixel/Endcap/DEV_nclusters_Endcap");
  me15 = bei->get("Pixel/Endcap/SUMCLU_size_Endcap");
  ref15 = me15->getRefTH1();
  dev15 = bei->get("Pixel/Endcap/DEV_size_Endcap");
  for(int i=1; i!=nn+1; i++){
    float ref_value; float new_value;
    // Endcap adc: 
    if(me11)if(ref11)if(dev11){
      new_value = me11->getBinContent(i);
      ref_value = ref11->GetBinContent(i); 
      dev11->setBinContent(i,ref_value-new_value);
    }
    //Endcap ndigis:
    if(me12)if(ref12)if(dev12){
      new_value = me12->getBinContent(i);
      ref_value = ref12->GetBinContent(i); 
      dev12->setBinContent(i,ref_value-new_value);
    }
    // Endcap cluster charge:
    if(me13)if(ref13)if(dev13){
      new_value = me13->getBinContent(i);
      ref_value = ref13->GetBinContent(i); 
      dev13->setBinContent(i,ref_value-new_value);
    }
    // Endcap nclusters:
    if(me14)if(ref14)if(dev14){
      new_value = me14->getBinContent(i);
      ref_value = ref14->GetBinContent(i); 
      dev14->setBinContent(i,ref_value-new_value);
    }
    // Endcap cluster size:
    if(me15)if(ref15)if(dev15){
      new_value = me15->getBinContent(i);
      ref_value = ref15->GetBinContent(i); 
      dev15->setBinContent(i,ref_value-new_value);
    }
  }
}
void SiPixelActionExecutor::fillEfficiency ( DQMStore bei,
bool  isbarrel 
)

Definition at line 2312 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), RefreshWebPage::dname, DQMStore::get(), MonitorElement::getEntries(), DQMStore::getMEs(), DQMStore::getSubdirs(), DQMStore::goUp(), HitEfficiency_Dm1, HitEfficiency_Dm2, HitEfficiency_Dp1, HitEfficiency_Dp2, HitEfficiency_L1, HitEfficiency_L2, HitEfficiency_L3, DQMStore::pwd(), MonitorElement::setBinContent(), and Tier0Flag_.

Referenced by createEfficiency().

                                                                      {
  //cout<<"entering SiPixelActionExecutor::fillEfficiency..."<<std::endl;
  string currDir = bei->pwd();
  string dname = currDir.substr(currDir.find_last_of("/")+1);
  //cout<<"currDir= "<<currDir<< " , dname= "<<dname<<std::endl;
  
  if(Tier0Flag_){ // Offline    
    if(isbarrel && dname.find("Ladder_")!=string::npos){ 
      vector<string> meVec = bei->getMEs();
      for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
        string full_path = currDir + "/" + (*it);
        if(full_path.find("missing_")!=string::npos){ // If we have missing hits ME
          MonitorElement * me = bei->get(full_path);
          if (!me) continue;
          float missingHits = me->getEntries();
          //if(currDir.find("Barrel/Shell_mI/Layer_1/Ladder_09F")!=string::npos) cout<<"missingHits= "<<missingHits<<endl;
          string new_path = full_path.replace(full_path.find("missing"),7,"valid");
          me = bei->get(new_path);
          if (!me) continue;
          float validHits = me->getEntries();
          //if(currDir.find("Barrel/Shell_mI/Layer_1/Ladder_09F")!=string::npos) cout<<"validHits= "<<validHits<<endl;
          float hitEfficiency = -1.;
          if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
          //if(currDir.find("Barrel/Shell_mI/Layer_1/Ladder_09F")!=string::npos) cout<<"hitEfficiency= "<<hitEfficiency<<endl;
          int binx = 0; int biny = 0;
          if(currDir.find("Shell_m")!=string::npos){ binx = 1;}else{ binx = 2;}
          if(dname.find("01")!=string::npos){ biny = 1;}else if(dname.find("02")!=string::npos){ biny = 2;}
          else if(dname.find("03")!=string::npos){ biny = 3;}else if(dname.find("04")!=string::npos){ biny = 4;}
          else if(dname.find("05")!=string::npos){ biny = 5;}else if(dname.find("06")!=string::npos){ biny = 6;}
          else if(dname.find("07")!=string::npos){ biny = 7;}else if(dname.find("08")!=string::npos){ biny = 8;}
          else if(dname.find("09")!=string::npos){ biny = 9;}else if(dname.find("10")!=string::npos){ biny = 10;}
          else if(dname.find("11")!=string::npos){ biny = 11;}else if(dname.find("12")!=string::npos){ biny = 12;}
          else if(dname.find("13")!=string::npos){ biny = 13;}else if(dname.find("14")!=string::npos){ biny = 14;}
          else if(dname.find("15")!=string::npos){ biny = 15;}else if(dname.find("16")!=string::npos){ biny = 16;}
          else if(dname.find("17")!=string::npos){ biny = 17;}else if(dname.find("18")!=string::npos){ biny = 18;}
          else if(dname.find("19")!=string::npos){ biny = 19;}else if(dname.find("20")!=string::npos){ biny = 20;}
          else if(dname.find("21")!=string::npos){ biny = 21;}else if(dname.find("22")!=string::npos){ biny = 22;}
          if(currDir.find("Shell_mO")!=string::npos || currDir.find("Shell_pO")!=string::npos){
            if(currDir.find("Layer_1")!=string::npos){ biny = biny + 10;}
            else if(currDir.find("Layer_2")!=string::npos){ biny = biny + 16;}
            else if(currDir.find("Layer_3")!=string::npos){ biny = biny + 22;}
          }
          if(currDir.find("Layer_1")!=string::npos){
            HitEfficiency_L1 = bei->get("Pixel/Barrel/HitEfficiency_L1");
            if(HitEfficiency_L1) HitEfficiency_L1->setBinContent(binx, biny,(float)hitEfficiency);
            //if(currDir.find("Barrel/Shell_mI/Layer_1/Ladder_09F")!=string::npos) cout<<"setting bin ("<<binx<<","<<biny<<") with "<<(float)hitEfficiency<<endl;
          }else if(currDir.find("Layer_2")!=string::npos){
            HitEfficiency_L2 = bei->get("Pixel/Barrel/HitEfficiency_L2");
            if(HitEfficiency_L2) HitEfficiency_L2->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Layer_3")!=string::npos){
            HitEfficiency_L3 = bei->get("Pixel/Barrel/HitEfficiency_L3");
            if(HitEfficiency_L3) HitEfficiency_L3->setBinContent(binx, biny,(float)hitEfficiency);
          } 
        }
      }
    }else if(!isbarrel && dname.find("Blade_")!=string::npos){ 
      vector<string> meVec = bei->getMEs();
      for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
        string full_path = currDir + "/" + (*it);
        if(full_path.find("missing_")!=string::npos){ // If we have missing hits ME
          MonitorElement * me = bei->get(full_path);
          if (!me) continue;
          float missingHits = me->getEntries();
          string new_path = full_path.replace(full_path.find("missing"),7,"valid");
          me = bei->get(new_path);
          if (!me) continue;
          float validHits = me->getEntries();
          float hitEfficiency = -1.;
          if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
          int binx = 0; int biny = 1;
          if(currDir.find("01")!=string::npos){ binx = 1;}else if(currDir.find("02")!=string::npos){ binx = 2;}
          else if(currDir.find("03")!=string::npos){ binx = 3;}else if(currDir.find("04")!=string::npos){ binx = 4;}
          else if(currDir.find("05")!=string::npos){ binx = 5;}else if(currDir.find("06")!=string::npos){ binx = 6;}
          else if(currDir.find("07")!=string::npos){ binx = 7;}else if(currDir.find("08")!=string::npos){ binx = 8;}
          else if(currDir.find("09")!=string::npos){ binx = 9;}else if(currDir.find("10")!=string::npos){ binx = 10;}
          else if(currDir.find("11")!=string::npos){ binx = 11;}else if(currDir.find("12")!=string::npos){ binx = 12;}
          if(currDir.find("HalfCylinder_mI")!=string::npos || currDir.find("HalfCylinder_pI")!=string::npos){ binx = binx + 12;}
          else{ 
            if(binx==1) binx = 12;
            else if(binx==2) binx = 11;
            else if(binx==3) binx = 10;
            else if(binx==4) binx = 9;
            else if(binx==5) binx = 8;
            else if(binx==6) binx = 7;
            else if(binx==7) binx = 6;
            else if(binx==8) binx = 5;
            else if(binx==9) binx = 4;
            else if(binx==10) binx = 3;
            else if(binx==11) binx = 2;
            else if(binx==12) binx = 1;
          }
          if(currDir.find("Disk_1")!=string::npos && currDir.find("HalfCylinder_m")!=string::npos){
            HitEfficiency_Dm1 = bei->get("Pixel/Endcap/HitEfficiency_Dm1");
            if(HitEfficiency_Dm1) HitEfficiency_Dm1->setBinContent(binx, biny, (float)hitEfficiency);
          }else if(currDir.find("Disk_2")!=string::npos && currDir.find("HalfCylinder_m")!=string::npos){
            HitEfficiency_Dm2 = bei->get("Pixel/Endcap/HitEfficiency_Dm2");
            if(HitEfficiency_Dm2) HitEfficiency_Dm2->setBinContent(binx, biny, (float)hitEfficiency);
          }else if(currDir.find("Disk_1")!=string::npos && currDir.find("HalfCylinder_p")!=string::npos){
            HitEfficiency_Dp1 = bei->get("Pixel/Endcap/HitEfficiency_Dp1");
            if(HitEfficiency_Dp1) HitEfficiency_Dp1->setBinContent(binx, biny, (float)hitEfficiency);
          }else if(currDir.find("Disk_2")!=string::npos && currDir.find("HalfCylinder_p")!=string::npos){
            HitEfficiency_Dp2 = bei->get("Pixel/Endcap/HitEfficiency_Dp2");
            if(HitEfficiency_Dp2) HitEfficiency_Dp2->setBinContent(binx, biny, (float)hitEfficiency);
          }
          //std::cout<<"EFFI: "<<currDir<<" , x: "<<binx<<" , y: "<<biny<<std::endl;
        }
      } 
    }else{  
      //cout<<"finding subdirs now"<<std::endl;
      vector<string> subdirs = bei->getSubdirs();
      for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++) {
        bei->cd(*it);
        //cout<<"now I am in "<<bei->pwd()<<std::endl;
        if(*it != "Pixel" && ((isbarrel && (*it).find("Barrel")==string::npos) || (!isbarrel && (*it).find("Endcap")==string::npos))) continue;
        //cout<<"calling myself again "<<std::endl;
        fillEfficiency(bei, isbarrel);
        bei->goUp();
      }
    }
  }else{ // Online
    if(dname.find("Module_")!=string::npos){ 
      vector<string> meVec = bei->getMEs();
      for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
        string full_path = currDir + "/" + (*it);
        if(full_path.find("missing_")!=string::npos){ // If we have missing hits ME
          MonitorElement * me = bei->get(full_path);
          if (!me) continue;
          float missingHits = me->getEntries();
          string new_path = full_path.replace(full_path.find("missing"),7,"valid");
          me = bei->get(new_path);
          if (!me) continue;
          float validHits = me->getEntries();
          float hitEfficiency = -1.;
          if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
          int binx = 0; int biny = 0;
          if(isbarrel){
            if(currDir.find("Shell_m")!=string::npos){
              if(currDir.find("Module_4")!=string::npos){ binx = 1;}else if(currDir.find("Module_3")!=string::npos){ binx = 2;}
              if(currDir.find("Module_2")!=string::npos){ binx = 3;}else if(currDir.find("Module_1")!=string::npos){ binx = 4;}
            }else if(currDir.find("Shell_p")!=string::npos){
              if(currDir.find("Module_1")!=string::npos){ binx = 5;}else if(currDir.find("Module_2")!=string::npos){ binx = 6;}
              if(currDir.find("Module_3")!=string::npos){ binx = 7;}else if(currDir.find("Module_4")!=string::npos){ binx = 8;}
            }
            if(currDir.find("01")!=string::npos){ biny = 1;}else if(currDir.find("02")!=string::npos){ biny = 2;}
            else if(currDir.find("03")!=string::npos){ biny = 3;}else if(currDir.find("04")!=string::npos){ biny = 4;}
            else if(currDir.find("05")!=string::npos){ biny = 5;}else if(currDir.find("06")!=string::npos){ biny = 6;}
            else if(currDir.find("07")!=string::npos){ biny = 7;}else if(currDir.find("08")!=string::npos){ biny = 8;}
            else if(currDir.find("09")!=string::npos){ biny = 9;}else if(currDir.find("10")!=string::npos){ biny = 10;}
            else if(currDir.find("11")!=string::npos){ biny = 11;}else if(currDir.find("12")!=string::npos){ biny = 12;}
            else if(currDir.find("13")!=string::npos){ biny = 13;}else if(currDir.find("14")!=string::npos){ biny = 14;}
            else if(currDir.find("15")!=string::npos){ biny = 15;}else if(currDir.find("16")!=string::npos){ biny = 16;}
            else if(currDir.find("17")!=string::npos){ biny = 17;}else if(currDir.find("18")!=string::npos){ biny = 18;}
            else if(currDir.find("19")!=string::npos){ biny = 19;}else if(currDir.find("20")!=string::npos){ biny = 20;}
            else if(currDir.find("21")!=string::npos){ biny = 21;}else if(currDir.find("22")!=string::npos){ biny = 22;}
            if(currDir.find("Shell_mO")!=string::npos || currDir.find("Shell_pO")!=string::npos){
              if(currDir.find("Layer_1")!=string::npos){ biny = biny + 10;}
              else if(currDir.find("Layer_2")!=string::npos){ biny = biny + 16;}
              else if(currDir.find("Layer_3")!=string::npos){ biny = biny + 22;}
            }
          }else{
            if(currDir.find("01")!=string::npos){ binx = 1;}else if(currDir.find("02")!=string::npos){ binx = 2;}
            else if(currDir.find("03")!=string::npos){ binx = 3;}else if(currDir.find("04")!=string::npos){ binx = 4;}
            else if(currDir.find("05")!=string::npos){ binx = 5;}else if(currDir.find("06")!=string::npos){ binx = 6;}
            else if(currDir.find("07")!=string::npos){ binx = 7;}else if(currDir.find("08")!=string::npos){ binx = 8;}
            else if(currDir.find("09")!=string::npos){ binx = 9;}else if(currDir.find("10")!=string::npos){ binx = 10;}
            else if(currDir.find("11")!=string::npos){ binx = 11;}else if(currDir.find("12")!=string::npos){ binx = 12;}
            if(currDir.find("HalfCylinder_mO")!=string::npos || currDir.find("HalfCylinder_pO")!=string::npos){ binx = binx + 12;}
            if(currDir.find("Panel_1/Module_1")!=string::npos){ biny = 1;}else if(currDir.find("Panel_2/Module_1")!=string::npos){ biny = 2;}
            else if(currDir.find("Panel_1/Module_2")!=string::npos){ biny = 3;}else if(currDir.find("Panel_2/Module_2")!=string::npos){ biny = 4;}
            else if(currDir.find("Panel_1/Module_3")!=string::npos){ biny = 5;}else if(currDir.find("Panel_2/Module_3")!=string::npos){ biny = 6;}
            else if(currDir.find("Panel_1/Module_4")!=string::npos){ biny = 7;}
          }
          
          if(currDir.find("Layer_1")!=string::npos){
            HitEfficiency_L1 = bei->get("Pixel/Barrel/HitEfficiency_L1");
            if(HitEfficiency_L1) HitEfficiency_L1->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Layer_2")!=string::npos){
            HitEfficiency_L2 = bei->get("Pixel/Barrel/HitEfficiency_L2");
            if(HitEfficiency_L2) HitEfficiency_L2->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Layer_3")!=string::npos){
            HitEfficiency_L3 = bei->get("Pixel/Barrel/HitEfficiency_L3");
            if(HitEfficiency_L3) HitEfficiency_L3->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Disk_1")!=string::npos && currDir.find("HalfCylinder_m")!=string::npos){
            HitEfficiency_Dm1 = bei->get("Pixel/Endcap/HitEfficiency_Dm1");
            if(HitEfficiency_Dm1) HitEfficiency_Dm1->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Disk_2")!=string::npos && currDir.find("HalfCylinder_m")!=string::npos){
            HitEfficiency_Dm2 = bei->get("Pixel/Endcap/HitEfficiency_Dm2");
            if(HitEfficiency_Dm2) HitEfficiency_Dm2->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Disk_1")!=string::npos && currDir.find("HalfCylinder_p")!=string::npos){
            HitEfficiency_Dp1 = bei->get("Pixel/Endcap/HitEfficiency_Dp1");
            if(HitEfficiency_Dp1) HitEfficiency_Dp1->setBinContent(binx, biny,(float)hitEfficiency);
          }else if(currDir.find("Disk_2")!=string::npos && currDir.find("HalfCylinder_p")!=string::npos){
            HitEfficiency_Dp2 = bei->get("Pixel/Endcap/HitEfficiency_Dp2");
            if(HitEfficiency_Dp2) HitEfficiency_Dp2->setBinContent(binx, biny,(float)hitEfficiency);
          }
        }
      }
    }else{  
      //cout<<"finding subdirs now"<<std::endl;
      vector<string> subdirs = bei->getSubdirs();
      for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++) {
        bei->cd(*it);
        //cout<<"now I am in "<<bei->pwd()<<std::endl;
        if(*it != "Pixel" && ((isbarrel && (*it).find("Barrel")==string::npos) || (!isbarrel && (*it).find("Endcap")==string::npos))) continue;
        //cout<<"calling myself again "<<std::endl;
        fillEfficiency(bei, isbarrel);
        bei->goUp();
      }
    }
  } // end online/offline
        
  //cout<<"leaving SiPixelActionExecutor::fillEfficiency..."<<std::endl;
        
}
void SiPixelActionExecutor::fillFEDErrorSummary ( DQMStore bei,
std::string  dir_name,
std::vector< std::string > &  me_names 
) [private]

Definition at line 739 of file SiPixelActionExecutor.cc.

References DQMStore::book2D(), DQMStore::cd(), relmon_rootfiles_spy::contents, spr::find(), DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getEntries(), getFEDSummaryME(), MonitorElement::getIntValue(), MonitorElement::getMean(), DQMStore::getMEs(), DQMStore::getSubdirs(), DQMStore::goUp(), i, isum, findQualityFiles::jj, n, prof2calltree::prefix, DQMStore::pwd(), MonitorElement::Reset(), MonitorElement::setBinContent(), MonitorElement::setBinLabel(), lumiContext::sname, source_type_, GlobalPosition_Frontier_DevDB_cff::tag, groupFilesInBlocks::temp, and indexGen::title.

Referenced by createSummary().

                                                                          {
  //printing cout<<"entering SiPixelActionExecutor::fillFEDErrorSummary..."<<endl;
  string currDir = bei->pwd();
  string prefix;
  if(source_type_==0) prefix="SUMRAW";
  else if(source_type_==20) prefix="SUMOFF";
  
  if (currDir.find(dir_name) != string::npos)  {
    vector<MonitorElement*> sum_mes;
    for (vector<string>::const_iterator iv = me_names.begin();
         iv != me_names.end(); iv++) {
      bool isBooked = false;
      vector<string> contents = bei->getMEs();
      for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++)
        if ((*im).find(*iv) != string::npos) isBooked = true;
      if(source_type_==5||source_type_==6){
        if((*iv)=="errorType"||(*iv)=="NErrors"||(*iv)=="fullType"||(*iv)=="chanNmbr"||
           (*iv)=="TBMType"||(*iv)=="EvtNbr"||(*iv)=="evtSize"||(*iv)=="linkId"||
           (*iv)=="ROCId"||(*iv)=="DCOLId"||(*iv)=="PXId"||(*iv)=="ROCNmbr"||
           (*iv)=="TBMMessage"||(*iv)=="Type36Hitmap"||
           (*iv)=="FedChLErrArray"||(*iv)=="FedChNErrArray"||(*iv)=="FedETypeNErrArray") 
          prefix="SUMRAW";
      }
      if((*iv)=="errorType"||(*iv)=="NErrors"||(*iv)=="fullType"||(*iv)=="chanNmbr"||
         (*iv)=="TBMType"||(*iv)=="EvtNbr"||(*iv)=="evtSize"||(*iv)=="linkId"||
         (*iv)=="ROCId"||(*iv)=="DCOLId"||(*iv)=="PXId"||(*iv)=="ROCNmbr"||
         (*iv)=="TBMMessage"||(*iv)=="Type36Hitmap"){
        string tag = prefix + "_" + (*iv) + "_FEDErrors";
        MonitorElement* temp = getFEDSummaryME(bei, tag);
        sum_mes.push_back(temp);
      }else if((*iv)=="FedChLErrArray"||(*iv)=="FedChNErrArray"||(*iv)=="FedETypeNErrArray"){
        string tag = prefix + "_" + (*iv);
        MonitorElement* temp;
        if((*iv)=="FedChLErrArray") {if (!isBooked) temp = bei->book2D("FedChLErrArray","Type of last error",40,-0.5,39.5,37,0.,37.);
          else{ 
            string fullpathname = bei->pwd() + "/" + (*iv);
            temp = bei->get(fullpathname);
            temp->Reset();}}  //If I don't reset this one, then I instead start adding error codes..
        if((*iv)=="FedChNErrArray") {if (!isBooked) temp = bei->book2D("FedChNErrArray","Total number of errors",40,-0.5,39.5,37,0.,37.);
          else{ 
            string fullpathname = bei->pwd() + "/" + (*iv);
            temp = bei->get(fullpathname);
            temp->Reset();}}  //If I don't reset this one, then I instead start adding error codes..
        if((*iv)=="FedETypeNErrArray"){
          if(!isBooked){
            temp = bei->book2D("FedETypeNErrArray","Number of each error type",40,-0.5,39.5,21,0.,21.);
            temp->setBinLabel(1,"ROC of 25",2);
            temp->setBinLabel(2,"Gap word",2);
            temp->setBinLabel(3,"Dummy word",2);
            temp->setBinLabel(4,"FIFO full",2);
            temp->setBinLabel(5,"Timeout",2);
            temp->setBinLabel(6,"Stack full",2);
            temp->setBinLabel(7,"Pre-cal issued",2);
            temp->setBinLabel(8,"Trigger clear or sync",2);
            temp->setBinLabel(9,"No token bit",2);
            temp->setBinLabel(10,"Overflow",2);
            temp->setBinLabel(11,"FSM error",2);
            temp->setBinLabel(12,"Invalid #ROCs",2);
            temp->setBinLabel(13,"Event number",2);
            temp->setBinLabel(14,"Slink header",2);
            temp->setBinLabel(15,"Slink trailer",2);
            temp->setBinLabel(16,"Event size",2);
            temp->setBinLabel(17,"Invalid channel#",2);
            temp->setBinLabel(18,"ROC value",2);
            temp->setBinLabel(19,"Dcol or pixel value",2);
            temp->setBinLabel(20,"Readout order",2);
            temp->setBinLabel(21,"CRC error",2);
          }
          else{
            string fullpathname = bei->pwd() + "/" + (*iv);
            temp = bei->get(fullpathname);
            temp->Reset();}  //If I don't reset this one, then I instead start adding error codes..
        }
        sum_mes.push_back(temp);
      }
    }
    if (sum_mes.size() == 0) {
      edm::LogInfo("SiPixelActionExecutor") << " Summary MEs can not be created" << "\n" ;
      return;
    }
    vector<string> subdirs = bei->getSubdirs();
    int ndet = 0;
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      if ( (*it).find("FED_") == string::npos) continue;
      bei->cd(*it);
      string fedid = (*it).substr((*it).find("_")+1);
      std::istringstream isst;
      isst.str(fedid);
      isst>>ndet; ndet++;
      vector<string> contents = bei->getMEs(); 
                        
      for (vector<MonitorElement*>::const_iterator isum = sum_mes.begin();
           isum != sum_mes.end(); isum++) {
        for (vector<string>::const_iterator im = contents.begin();
             im != contents.end(); im++) {
          if(((*im).find("FedChNErrArray_")!=std::string::npos && (*isum)->getName().find("FedChNErrArray")!=std::string::npos) ||
             ((*im).find("FedChLErrArray_")!=std::string::npos && (*isum)->getName().find("FedChLErrArray")!=std::string::npos) ||
             ((*im).find("FedETypeNErrArray_")!=std::string::npos && (*isum)->getName().find("FedETypeNErrArray")!=std::string::npos)){
            string fullpathname = bei->pwd() + "/" + (*im); 
            MonitorElement *  me = bei->get(fullpathname);
            if(me && me->getIntValue()>0){
              for(int i=0; i!=37; i++){
                int n = (*im).find("_"); n++;
                string channel_str = (*im).substr(n);
                std::istringstream jsst;
                jsst.str(channel_str);
                int channel=-1;
                jsst>>channel;
                if(channel==i){
                  if((*im).find("FedETypeNErrArray_")!=std::string::npos && i<21) (*isum)->Fill(ndet-1,i,me->getIntValue());
                  else (*isum)->Fill(ndet-1,i,me->getIntValue());
                }
              }
            }
          }
          string sname = ((*isum)->getName());
          string tname = " ";
          tname = sname.substr(7,(sname.find("_",7)-6));
          if (((*im)).find(tname) == 0) {
            string fullpathname = bei->pwd() + "/" + (*im); 
            MonitorElement *  me = bei->get(fullpathname);
                                                
            if (me){ 
              if(me->getMean()>0.){
                if (sname.find("_NErrors_")!=string::npos){
                  string path1 = fullpathname;
                  path1 = path1.replace(path1.find("NErrors"),7,"errorType");
                  MonitorElement * me1 = bei->get(path1);
                  bool notReset=true;
                  if(me1){
                    for(int jj=1; jj<16; jj++){
                      if(me1->getBinContent(jj)>0.){
                        if(jj==6){ //errorType=30 (reset)
                          string path2 = path1;
                          path2 = path2.replace(path2.find("errorType"),9,"TBMMessage");
                          MonitorElement * me2 = bei->get(path2);
                          if(me2) if(me2->getBinContent(6)>0. || me2->getBinContent(7)>0.) notReset=false; 
                        }
                      }
                    }
                  }
                  if(notReset) (*isum)->setBinContent(ndet, (*isum)->getBinContent(ndet) + me1->getEntries());
                }else (*isum)->setBinContent(ndet, (*isum)->getBinContent(ndet) + me->getEntries());
              }
              (*isum)->setAxisTitle("FED #",1);
              string title = " ";
              title = sname.substr(7,(sname.find("_",7)-7)) + " per FED"; 
              (*isum)->setAxisTitle(title,2);
            }
            break;
          }
        }
      }
      bei->goUp();
    }
  } else {  
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      if((*it).find("Endcap")!=string::npos ||
         (*it).find("Barrel")!=string::npos) continue;
      bei->cd(*it);
      fillFEDErrorSummary(bei, dir_name, me_names);
      bei->goUp();
    }
  }
  //printing cout<<"...leaving SiPixelActionExecutor::fillFEDErrorSummary!"<<endl;
}
void SiPixelActionExecutor::fillGrandBarrelSummaryHistos ( DQMStore bei,
std::vector< std::string > &  me_names 
) [private]

Definition at line 913 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), relmon_rootfiles_spy::contents, compare_using_db::dir_name, DQMStore::get(), MonitorElement::getBinContent(), getGrandSummaryME(), DQMStore::getMEs(), MonitorElement::getName(), DQMStore::getSubdirs(), MonitorElement::getTH1F(), DQMStore::goUp(), gen::k, create_public_lumi_plots::path_name, prof2calltree::prefix, DQMStore::pwd(), source_type_, and indexGen::title.

Referenced by StorageAccount::fillSummary().

                                                                                   {
//  cout<<"Entering SiPixelActionExecutor::fillGrandBarrelSummaryHistos...:"<<me_names.size()<<endl;
  vector<MonitorElement*> gsum_mes;
  string currDir = bei->pwd();
  string path_name = bei->pwd();
  string dir_name =  path_name.substr(path_name.find_last_of("/")+1);
//  cout<<"I am in "<<path_name<<" now."<<endl;
  if ((dir_name.find("DQMData") == 0) ||
      (dir_name.find("Pixel") == 0) ||
      (dir_name.find("AdditionalPixelErrors") == 0) ||
      (dir_name.find("Endcap") == 0) ||
      (dir_name.find("HalfCylinder") == 0) ||
      (dir_name.find("Disk") == 0) ||
      (dir_name.find("Blade") == 0) ||
      (dir_name.find("Panel") == 0) ) return;
  vector<string> subdirs = bei->getSubdirs();
  int nDirs = subdirs.size();
  int iDir =0;
  int nbin = 0;
  int nbin_i = 0; 
  int nbin_subdir = 0; 
  int cnt=0;
  bool first_subdir = true;
  for (vector<string>::const_iterator it = subdirs.begin();
       it != subdirs.end(); it++) {
    cnt++;
    bei->cd(*it);
//    cout << "--- " << cnt << "\t" << bei->pwd() << endl;
    vector<string> contents = bei->getMEs();
                
    bei->goUp();
                
                string prefix;
                if(source_type_==0) prefix="SUMRAW";
                else if (source_type_==1) prefix="SUMDIG";
                else if (source_type_==2) prefix="SUMCLU";
                else if (source_type_==3) prefix="SUMTRK";
                else if (source_type_==4) prefix="SUMHIT";
                else if (source_type_>=7 && source_type_<20) prefix="SUMCAL";
                else if (source_type_==20) prefix="SUMOFF";

                
    for (vector<string>::const_iterator im = contents.begin();
         im != contents.end(); im++) {
//      cout<<"A: iterating over "<<(*im)<<" now:"<<endl;
      for (vector<string>::const_iterator iv = me_names.begin();
           iv != me_names.end(); iv++) {
        string var = "_" + (*iv) + "_";
//      cout<<"\t B: iterating over "<<(*iv)<<" now, var is set to: "<<var<<endl;
        if ((*im).find(var) != string::npos) {
          if((var=="_charge_" || var=="_nclusters_" || var=="_size_" || var=="_sizeX_" || var=="_sizeY_") && 
             (*im).find("Track_")!=string::npos) continue;
//        cout << "Looking into " << (*iv) << endl;
          string full_path = (*it) + "/" +(*im);
          MonitorElement * me = bei->get(full_path.c_str());
          if (!me) continue; 
          if(source_type_==5||source_type_==6){
            if((*iv)=="errorType"||(*iv)=="NErrors"||(*iv)=="fullType"||(*iv)=="chanNmbr"||
               (*iv)=="TBMType"||(*iv)=="EvtNbr"||(*iv)=="evtSize"||(*iv)=="linkId"||
               (*iv)=="ROCId"||(*iv)=="DCOLId"||(*iv)=="PXId"||(*iv)=="ROCNmbr"||
               (*iv)=="TBMMessage"||(*iv)=="Type36Hitmap") 
              prefix="SUMRAW";
            else if((*iv)=="ndigis"||(*iv)=="adc" ||
                    (*iv)=="ndigisFREQ" || (*iv)=="adcCOMB")
              prefix="SUMDIG";
            else if((*iv)=="nclusters"||(*iv)=="x"||(*iv)=="y"||(*iv)=="charge"||(*iv)=="chargeCOMB"||
                    (*iv)=="size"||(*iv)=="sizeX"||(*iv)=="sizeY"||(*iv)=="minrow"||
                    (*iv)=="maxrow"||(*iv)=="mincol"||(*iv)=="maxcol")
              prefix="SUMCLU";
              if(currDir.find("Track")!=string::npos) prefix="SUMTRK";
            else if((*iv)=="residualX_mean"||(*iv)=="residualY_mean"||
                    (*iv)=="residualX_RMS"||(*iv)=="residualY_RMS")
              prefix="SUMTRK";
            else if((*iv)=="ClustX"||(*iv)=="ClustY"||(*iv)=="nRecHits"||(*iv)=="ErrorX"||(*iv)=="ErrorY")
              prefix="SUMHIT";
            else if((*iv)=="Gain1d_mean"||(*iv)=="GainChi2NDF1d_mean"||
                    (*iv)=="GainChi2Prob1d_mean"||(*iv)=="Pedestal1d_mean"||
                    (*iv)=="ScurveChi2ProbSummary_mean"||(*iv)=="ScurveFitResultSummary_mean"||
                    (*iv)=="ScurveSigmasSummary_mean"||(*iv)=="ScurveThresholdSummary_mean"||
                    (*iv)=="Gain1d_RMS"||(*iv)=="GainChi2NDF1d_RMS"||
                    (*iv)=="GainChi2Prob1d_RMS"||(*iv)=="Pedestal1d_RMS"||
                    (*iv)=="GainNPoints1d_mean" || (*iv)=="GainNPoints1d_RMS" ||
                    (*iv)=="GainHighPoint1d_mean" || (*iv)=="GainHighPoint1d_RMS" ||
                    (*iv)=="GainLowPoint1d_mean" || (*iv)=="GainLowPoint1d_RMS" ||
                    (*iv)=="GainEndPoint1d_mean" || (*iv)=="GainEndPoint1d_RMS" ||
                    (*iv)=="GainFitResult2d_mean" || (*iv)=="GainFitResult2d_RMS" ||
                    (*iv)=="GainDynamicRange2d_mean" || (*iv)=="GainDynamicRange2d_RMS" ||
                    (*iv)=="GainSaturate2d_mean" || (*iv)=="GainSaturate2d_RMS" ||
                    (*iv)=="ScurveChi2ProbSummary_RMS"||(*iv)=="ScurveFitResultSummary_RMS"||
                    (*iv)=="ScurveSigmasSummary_RMS"||(*iv)=="ScurveThresholdSummary_RMS"||
                    (*iv)=="pixelAliveSummary_mean"||(*iv)=="pixelAliveSummary_FracOfPerfectPix" ||
                    (*iv)=="SiPixelErrorsCalibDigis_NCalibErrors" )
              prefix="SUMCAL";
          } // end source_type if
          
          // bugfix: gsum_mes is filled using the contents of me_names. Proceeding with each entry in me_names.
      /*
          int actual_size = gsum_mes.size();
          int wanted_size = me_names.size();
          // printing cout << actual_size << "\t" << wanted_size << endl;
          if (actual_size !=  wanted_size) { */
          if (first_subdir){
//          bool create_me = true;
            nbin = me->getTH1F()->GetNbinsX();        
            string me_name = prefix + "_" + (*iv) + "_" + dir_name;
            if((*iv)=="adcCOMB"||(*iv)=="chargeCOMB") me_name = "ALLMODS_" + (*iv) + "_" + dir_name;
            else if(prefix=="SUMOFF" && dir_name=="Barrel") nbin=192;
            else if((*iv)=="adcCOMB") nbin=256;
            else if(dir_name=="Barrel") nbin=768;
            else if(prefix=="SUMOFF" && dir_name.find("Shell")!=string::npos) nbin=48;
            else if(dir_name.find("Shell")!=string::npos) nbin=192;
            else nbin=nbin*nDirs;

                getGrandSummaryME(bei, nbin, me_name, gsum_mes);
          }
          /*
            for (vector<MonitorElement*>::const_iterator igm = gsum_mes.begin();
                 igm !=gsum_mes.end(); igm++) { 
              // To be further optimized
              if( (*iv).find("Clust") != string::npos && (*igm)->getName().find(me_name) != string::npos ) create_me = false; //cout << "Already have it" << endl;
            }
          
            // printing cout<<"me_name to be created= "<<me_name<<endl;
            if(create_me) getGrandSummaryME(bei, nbin, me_name, gsum_mes);
          }
          */
          // end bugfix: gsum_mes.


          for (vector<MonitorElement*>::const_iterator igm = gsum_mes.begin();
               igm != gsum_mes.end(); igm++) {
//          cout<<"\t \t C: iterating over "<<(*igm)->getName()<<" now:"<<endl;
            if ((*igm)->getName().find(var) != string::npos) {
//            cout<<"\t \t D: Have the correct var now!"<<endl;
              if(prefix=="SUMOFF") (*igm)->setAxisTitle("Ladders",1);
              else if((*igm)->getName().find("adcCOMB_")!=string::npos) (*igm)->setAxisTitle("Digi charge [ADC]",1);
              else if((*igm)->getName().find("chargeCOMB_")!=string::npos) (*igm)->setAxisTitle("Cluster charge [kilo electrons]",1);
              else (*igm)->setAxisTitle("Modules",1);

              // Setting title

                  string title="";
              if((*igm)->getName().find("NErrors_") != string::npos && prefix=="SUMOFF") title = "Total number of errors per Ladder";
              else if((*igm)->getName().find("NErrors_") != string::npos && prefix=="SUMRAW") title = "Total number of errors per Module";
              else if(prefix=="SUMOFF") title = "mean " + (*iv) + " per Ladder"; 
              else if((*igm)->getName().find("FREQ_") != string::npos && prefix!="SUMOFF") title = "NEvents with digis per Module"; 
              else if((*igm)->getName().find("FREQ_") != string::npos && prefix=="SUMOFF") title = "NEvents with digis per Ladder/Blade"; 
              else if((*igm)->getName().find("adcCOMB_") != string::npos) title = "NDigis";
              else if((*igm)->getName().find("chargeCOMB_") != string::npos) title = "NClusters";
              else title = "mean " + (*iv) + " per Module"; 
              (*igm)->setAxisTitle(title,2);
                  
                  // Setting binning

              if((*igm)->getName().find("ALLMODS_adcCOMB_")!=string::npos){
                nbin_subdir=128;
              }else if((*igm)->getName().find("ALLMODS_chargeCOMB_")!=string::npos){
                nbin_subdir=100;
              }else if((*igm)->getName().find("Ladder") != string::npos){
                nbin_i=0; nbin_subdir=4;
              }else if((*igm)->getName().find("Layer") != string::npos){
                nbin_i=(cnt-1)*4; nbin_subdir=4;
              }else if((*igm)->getName().find("Shell") != string::npos){
                if(prefix!="SUMOFF"){
                  if(iDir==0){ nbin_i=0; nbin_subdir=40; }
                  else if(iDir==1){ nbin_i=40; nbin_subdir=64; }
                  else if(iDir==2){ nbin_i=104; nbin_subdir=88; }
                }else{
                  if(iDir==0){ nbin_i=0; nbin_subdir=10; }
                  else if(iDir==1){ nbin_i=10; nbin_subdir=16; }
                  else if(iDir==2){ nbin_i=26; nbin_subdir=22; }
                }
              }else if((*igm)->getName().find("Barrel") != string::npos){
                if(prefix!="SUMOFF"){
                  if(iDir==0){ nbin_i=0; nbin_subdir=192; }
                  else if(iDir==1){ nbin_i=192; nbin_subdir=192; }
                  else if(iDir==2){ nbin_i=384; nbin_subdir=192; }
                  else if(iDir==3){ nbin_i=576; nbin_subdir=192; }
                }else{
                  if(iDir==0){ nbin_i=0; nbin_subdir=48; }
                  else if(iDir==1){ nbin_i=48; nbin_subdir=48; }
                  else if(iDir==2){ nbin_i=96; nbin_subdir=48; }
                  else if(iDir==3){ nbin_i=144; nbin_subdir=48; }
                }
              }


                        if((*igm)->getName().find("ndigisFREQ")==string::npos)
                        { 
                                if(((*igm)->getName().find("adcCOMB")!=string::npos && me->getName().find("adcCOMB")!=string::npos) 
                                                || ((*igm)->getName().find("chargeCOMB")!=string::npos && me->getName().find("chargeCOMB")!=string::npos))
                                {
                                        (*igm)->getTH1F()->Add(me->getTH1F());
                                }else if(((*igm)->getName().find("charge_")!=string::npos && (*igm)->getName().find("Track_")==string::npos && 
                                          me->getName().find("charge_")!=string::npos && me->getName().find("Track_")==string::npos) || 
                                         ((*igm)->getName().find("nclusters_")!=string::npos && (*igm)->getName().find("Track_")==string::npos && 
                                          me->getName().find("nclusters_")!=string::npos && me->getName().find("Track_")==string::npos) || 
                                         ((*igm)->getName().find("size_")!=string::npos && (*igm)->getName().find("Track_")==string::npos && 
                                          me->getName().find("size_")!=string::npos && me->getName().find("Track_")==string::npos) || 
                                         ((*igm)->getName().find("charge_OffTrack_")!=string::npos && me->getName().find("charge_OffTrack_")!=string::npos) || 
                                         ((*igm)->getName().find("nclusters_OffTrack_")!=string::npos && me->getName().find("nclusters_OffTrack_")!=string::npos) || 
                                         ((*igm)->getName().find("size_OffTrack_")!=string::npos && me->getName().find("size_OffTrack_")!=string::npos) || 
                                         ((*igm)->getName().find("charge_OnTrack_")!=string::npos && me->getName().find("charge_OnTrack_")!=string::npos) || 
                                         ((*igm)->getName().find("nclusters_OnTrack_")!=string::npos && me->getName().find("nclusters_OnTrack_")!=string::npos) || 
                                         ((*igm)->getName().find("size_OnTrack_")!=string::npos && me->getName().find("size_OnTrack_")!=string::npos) || 
                                         ((*igm)->getName().find("charge_")==string::npos && (*igm)->getName().find("nclusters_")==string::npos && 
                                          (*igm)->getName().find("size_")==string::npos)){
                                        for (int k = 1; k < nbin_subdir+1; k++) if(me->getBinContent(k) > 0) (*igm)->setBinContent(k+nbin_i, me->getBinContent(k));
                                }
                        }
                        else if(me->getName().find("ndigisFREQ")!=string::npos)
                        {
                                for (int k = 1; k < nbin_subdir+1; k++) if(me->getBinContent(k) > 0) (*igm)->setBinContent(k+nbin_i, me->getBinContent(k));
                        }
            } // end var in igm (gsum_mes)
          } // end igm loop
        } // end var in im (contents)
      } // end of iv loop
    } // end of im loop
    iDir++;
  first_subdir = false; // We are done processing the first directory, we don't add any new MEs in the future passes.   
  } // end of it loop (subdirs)
//  cout<<"...leaving SiPixelActionExecutor::fillGrandBarrelSummaryHistos!"<<endl;
}
void SiPixelActionExecutor::fillGrandEndcapSummaryHistos ( DQMStore bei,
std::vector< std::string > &  me_names 
) [private]

Definition at line 1140 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), relmon_rootfiles_spy::contents, compare_using_db::dir_name, DQMStore::get(), MonitorElement::getBinContent(), getGrandSummaryME(), DQMStore::getMEs(), MonitorElement::getName(), DQMStore::getSubdirs(), MonitorElement::getTH1F(), DQMStore::goUp(), gen::k, create_public_lumi_plots::path_name, prof2calltree::prefix, DQMStore::pwd(), source_type_, and indexGen::title.

Referenced by StorageAccount::fillSummary().

                                                                                   {
  //printing cout<<"Entering SiPixelActionExecutor::fillGrandEndcapSummaryHistos..."<<endl;
  vector<MonitorElement*> gsum_mes;
  string currDir = bei->pwd();
  string path_name = bei->pwd();
  string dir_name =  path_name.substr(path_name.find_last_of("/")+1);
  if ((dir_name.find("DQMData") == 0) ||
      (dir_name.find("Pixel") == 0) ||
      (dir_name.find("AdditionalPixelErrors") == 0) ||
      (dir_name.find("Barrel") == 0) ||
      (dir_name.find("Shell") == 0) ||
      (dir_name.find("Layer") == 0) ||
      (dir_name.find("Ladder") == 0) ) return;
  vector<string> subdirs = bei->getSubdirs();
  int iDir =0;
  int nbin = 0;
  int nbin_i = 0; 
  int nbin_subdir = 0; 
  int cnt=0;
  bool first_subdir = true;  
  for (vector<string>::const_iterator it = subdirs.begin();
       it != subdirs.end(); it++) {
    cnt++;
    bei->cd(*it);
    vector<string> contents = bei->getMEs();
    bei->goUp();
                
    string prefix;
    if(source_type_==0) prefix="SUMRAW";
    else if (source_type_==1) prefix="SUMDIG";
    else if (source_type_==2) prefix="SUMCLU";
    else if (source_type_==3) prefix="SUMTRK";
    else if (source_type_==4) prefix="SUMHIT";
    else if (source_type_>=7 && source_type_<20) prefix="SUMCAL";
    else if (source_type_==20) prefix="SUMOFF";
                
    for (vector<string>::const_iterator im = contents.begin();
         im != contents.end(); im++) {
      for (vector<string>::const_iterator iv = me_names.begin();
           iv != me_names.end(); iv++) {
        string var = "_" + (*iv) + "_";
        if ((*im).find(var) != string::npos) {
          if((var=="_charge_" || var=="_nclusters_" || var=="_size_" || var=="_sizeX_" || var=="_sizeY_") && 
             (*im).find("Track_")!=string::npos) continue;
          string full_path = (*it) + "/" +(*im);
          MonitorElement * me = bei->get(full_path.c_str());
          if (!me) continue; 
          if(source_type_==5||source_type_==6){
            if((*iv)=="errorType"||(*iv)=="NErrors"||(*iv)=="fullType"||(*iv)=="chanNmbr"||
               (*iv)=="TBMType"||(*iv)=="EvtNbr"||(*iv)=="evtSize"||(*iv)=="linkId"||
               (*iv)=="ROCId"||(*iv)=="DCOLId"||(*iv)=="PXId"||(*iv)=="ROCNmbr"||
               (*iv)=="TBMMessage"||(*iv)=="Type36Hitmap") 
              prefix="SUMRAW";
            else if((*iv)=="ndigis"||(*iv)=="adc" ||
                    (*iv)=="ndigisFREQ"||(*iv)=="adcCOMB")
              prefix="SUMDIG";
            else if((*iv)=="nclusters"||(*iv)=="x"||(*iv)=="y"||(*iv)=="charge"||(*iv)=="chargeCOMB"||
                    (*iv)=="size"||(*iv)=="sizeX"||(*iv)=="sizeY"||(*iv)=="minrow"||
                    (*iv)=="maxrow"||(*iv)=="mincol"||(*iv)=="maxcol")
              prefix="SUMCLU";
              if(currDir.find("Track")!=string::npos) prefix="SUMTRK";
            else if((*iv)=="residualX_mean"||(*iv)=="residualY_mean"||
                    (*iv)=="residualX_RMS"||(*iv)=="residualY_RMS")
              prefix="SUMTRK";
            else if((*iv)=="ClustX"||(*iv)=="ClustY"||(*iv)=="nRecHits"||(*iv)=="ErrorX"||(*iv)=="ErrorY")
              prefix="SUMHIT";
            else if((*iv)=="Gain1d_mean"||(*iv)=="GainChi2NDF1d_mean"||
                    (*iv)=="GainChi2Prob1d_mean"||(*iv)=="Pedestal1d_mean"||
                    (*iv)=="ScurveChi2ProbSummary_mean"||(*iv)=="ScurveFitResultSummary_mean"||
                    (*iv)=="ScurveSigmasSummary_mean"||(*iv)=="ScurveThresholdSummary_mean"||
                    (*iv)=="Gain1d_RMS"||(*iv)=="GainChi2NDF1d_RMS"||
                    (*iv)=="GainChi2Prob1d_RMS"||(*iv)=="Pedestal1d_RMS"||
                    (*iv)=="GainNPoints1d_mean" || (*iv)=="GainNPoints1d_RMS" ||
                    (*iv)=="GainHighPoint1d_mean" || (*iv)=="GainHighPoint1d_RMS" ||
                    (*iv)=="GainLowPoint1d_mean" || (*iv)=="GainLowPoint1d_RMS" ||
                    (*iv)=="GainEndPoint1d_mean" || (*iv)=="GainEndPoint1d_RMS" ||
                    (*iv)=="GainFitResult2d_mean" || (*iv)=="GainFitResult2d_RMS" ||
                    (*iv)=="GainDynamicRange2d_mean" || (*iv)=="GainDynamicRange2d_RMS" ||
                    (*iv)=="GainSaturate2d_mean" || (*iv)=="GainSaturate2d_RMS" ||
                    (*iv)=="ScurveChi2ProbSummary_RMS"||(*iv)=="ScurveFitResultSummary_RMS"||
                    (*iv)=="ScurveSigmasSummary_RMS"||(*iv)=="ScurveThresholdSummary_RMS"||
                    (*iv)=="pixelAliveSummary_mean"||(*iv)=="pixelAliveSummary_FracOfPerfectPix"|| 
                    (*iv) == "SiPixelErrorsCalibDigis_NCalibErrors")
              prefix="SUMCAL"; 
          }

          // bugfix: gsum_mes is filled using the contents of me_names. Proceeding with each entry in me_names.
          /*
          int actual_size = gsum_mes.size();
          int wanted_size = me_names.size();
          if (actual_size !=  wanted_size) { */
          if (first_subdir){
//          bool create_me = true;
            nbin = me->getTH1F()->GetNbinsX();        
            string me_name = prefix + "_" + (*iv) + "_" + dir_name;
            if((*iv)=="adcCOMB"||(*iv)=="chargeCOMB") me_name = "ALLMODS_" + (*iv) + "_" + dir_name;
            else if(prefix=="SUMOFF" && dir_name=="Endcap") nbin=96;
            else if(dir_name=="Endcap") nbin=672;
            else if(prefix=="SUMOFF" && dir_name.find("HalfCylinder")!=string::npos) nbin=24;
            else if(dir_name.find("HalfCylinder")!=string::npos) nbin=168;
            else if(prefix=="SUMOFF" && dir_name.find("Disk")!=string::npos) nbin=12;
            else if(dir_name.find("Disk")!=string::npos) nbin=84;
            else if(dir_name.find("Blade")!=string::npos) nbin=7;
            //else if(dir_name.find("Panel_1")!=string::npos) nbin=4;
            //else if(dir_name.find("Panel_2")!=string::npos) nbin=3;
                //cout << dir_name.c_str() << "\t" << nbin << endl;
                getGrandSummaryME(bei, nbin, me_name, gsum_mes);
          }
          /*

            for (vector<MonitorElement*>::const_iterator igm = gsum_mes.begin();
                 igm !=gsum_mes.end(); igm++) { 
              // To be further optimized
              if( (*iv).find("Clust") != string::npos && (*igm)->getName().find(me_name) != string::npos ) create_me = false; //cout << "Already have it" << endl;
            }

            // printing cout<<"me_name to be created= "<<me_name<<endl;
            if(create_me) getGrandSummaryME(bei, nbin, me_name, gsum_mes);
          }
          */
          // end bugfix: gsum_mes.

          for (vector<MonitorElement*>::const_iterator igm = gsum_mes.begin();
               igm != gsum_mes.end(); igm++) { 
            if ((*igm)->getName().find(var) != string::npos) {
              if(prefix=="SUMOFF") (*igm)->setAxisTitle("Blades",1);
              else if((*igm)->getName().find("adcCOMB_")!=string::npos) (*igm)->setAxisTitle("Digi charge [ADC]",1);
              else if((*igm)->getName().find("chargeCOMB_")!=string::npos) (*igm)->setAxisTitle("Cluster charge [kilo electrons]",1);
              else (*igm)->setAxisTitle("Modules",1);
              string title="";
              if((*igm)->getName().find("NErrors_") != string::npos && prefix=="SUMOFF") title = "Total number of errors per Blade";
              else if((*igm)->getName().find("NErrors_") != string::npos && prefix=="SUMRAW") title = "Total number of errors per Module";
              else if(prefix=="SUMOFF") title = "mean " + (*iv) + " per Blade"; 
              else if((*igm)->getName().find("FREQ_") != string::npos) title = "NEvents with digis per Module"; 
              else if((*igm)->getName().find("adcCOMB_")!=string::npos) title = "NDigis";
              else if((*igm)->getName().find("chargeCOMB_")!=string::npos) title = "NClusters";
              else title = "mean " + (*iv) + " per Module"; 
              (*igm)->setAxisTitle(title,2);
              nbin_i=0; 
              if((*igm)->getName().find("ALLMODS_adcCOMB_")!=string::npos){
                nbin_subdir=128;
              }else if((*igm)->getName().find("ALLMODS_chargeCOMB_")!=string::npos){
                nbin_subdir=100;
              }else if((*igm)->getName().find("Panel_") != string::npos){
                nbin_subdir=7;
//            }else if((*igm)->getName().find("Panel_1") != string::npos){
//              nbin_subdir=4;
//            }else if((*igm)->getName().find("Panel_2") != string::npos){
//              nbin_subdir=3;
              }else if((*igm)->getName().find("Blade") != string::npos){
                if((*im).find("_1") != string::npos) nbin_subdir=4;
                if((*im).find("_2") != string::npos) {nbin_i=4; nbin_subdir=3;}
              }else if((*igm)->getName().find("Disk") != string::npos){
                nbin_i=((cnt-1)%12)*7; nbin_subdir=7;
              }else if((*igm)->getName().find("HalfCylinder") != string::npos){
                if(prefix!="SUMOFF"){
                  nbin_subdir=84;
                  if((*im).find("_2") != string::npos) nbin_i=84;
                }else{
                  nbin_subdir=12;
                  if((*im).find("_2") != string::npos) nbin_i=12;
                }
              }else if((*igm)->getName().find("Endcap") != string::npos){
                if(prefix!="SUMOFF"){
                  nbin_subdir=168;
                  if((*im).find("_mO") != string::npos) nbin_i=168;
                  if((*im).find("_pI") != string::npos) nbin_i=336;
                  if((*im).find("_pO") != string::npos) nbin_i=504;
                }else{
                  nbin_subdir=24;
                  if((*im).find("_mO") != string::npos) nbin_i=24;
                  if((*im).find("_pI") != string::npos) nbin_i=48;
                  if((*im).find("_pO") != string::npos) nbin_i=72;
                }
              }
                                                        
              //               for (int k = 1; k < nbin_subdir+1; k++) {
              if((*igm)->getName().find("ndigisFREQ")==string::npos){ 
                if(((*igm)->getName().find("adcCOMB")!=string::npos && me->getName().find("adcCOMB")!=string::npos) || ((*igm)->getName().find("chargeCOMB")!=string::npos && me->getName().find("chargeCOMB")!=string::npos)){
                  (*igm)->getTH1F()->Add(me->getTH1F());
                }else if(((*igm)->getName().find("charge_")!=string::npos && (*igm)->getName().find("Track_")==string::npos && 
                           me->getName().find("charge_")!=string::npos && me->getName().find("Track_")==string::npos) || 
                          ((*igm)->getName().find("nclusters_")!=string::npos && (*igm)->getName().find("Track_")==string::npos && 
                           me->getName().find("nclusters_")!=string::npos && me->getName().find("Track_")==string::npos) || 
                          ((*igm)->getName().find("size_")!=string::npos && (*igm)->getName().find("Track_")==string::npos && 
                           me->getName().find("size_")!=string::npos && me->getName().find("Track_")==string::npos) || 
                          ((*igm)->getName().find("charge_OffTrack_")!=string::npos && me->getName().find("charge_OffTrack_")!=string::npos) || 
                          ((*igm)->getName().find("nclusters_OffTrack_")!=string::npos && me->getName().find("nclusters_OffTrack_")!=string::npos) || 
                          ((*igm)->getName().find("size_OffTrack_")!=string::npos && me->getName().find("size_OffTrack_")!=string::npos) || 
                          ((*igm)->getName().find("charge_OnTrack_")!=string::npos && me->getName().find("charge_OnTrack_")!=string::npos) || 
                          ((*igm)->getName().find("nclusters_OnTrack_")!=string::npos && me->getName().find("nclusters_OnTrack_")!=string::npos) || 
                          ((*igm)->getName().find("size_OnTrack_")!=string::npos && me->getName().find("size_OnTrack_")!=string::npos) || 
                          ((*igm)->getName().find("charge_")==string::npos && (*igm)->getName().find("nclusters_")==string::npos && 
                           (*igm)->getName().find("size_")==string::npos)){
                  for (int k = 1; k < nbin_subdir+1; k++) if(me->getBinContent(k) > 0) (*igm)->setBinContent(k+nbin_i, me->getBinContent(k));
                }
              }else if(me->getName().find("ndigisFREQ")!=string::npos){
                for (int k = 1; k < nbin_subdir+1; k++)  if(me->getBinContent(k) > 0) (*igm)->setBinContent(k+nbin_i, me->getBinContent(k));
              }
              //               }// for
                                                        
            }
          }
        }
      }
    }
                
    iDir++;
  first_subdir = false; // We are done processing the first directory, we don't add any new MEs in the future passes.   
  }  // end for it (subdirs)
}
void SiPixelActionExecutor::fillLayout ( DQMStore bei)

Definition at line 2001 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), configWriter_, relmon_rootfiles_spy::contents, SiPixelConfigWriter::createColumn(), SiPixelConfigWriter::createRow(), DQMStore::getMEs(), DQMStore::getSubdirs(), DQMStore::goUp(), and DQMStore::pwd().

Referenced by createLayout().

                                                    {
        
  static int icount = 0;
  string currDir = bei->pwd();
  if (currDir.find("Ladder_") != string::npos) {
                
    vector<string> contents = bei->getMEs(); 
                
    for (vector<string>::const_iterator im = contents.begin();
         im != contents.end(); im++) {
      if ((*im).find("Clusters") != string::npos) {
        icount++;
        if (icount != 0 && icount%6 == 0) {
          configWriter_->createRow();
        }
        ostringstream full_path;
        full_path << "test/" << currDir << "/" << *im ;
        string element = "monitorable";
        string element_name = full_path.str();     
        configWriter_->createColumn(element, element_name);
      }
    }
  } else {
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin();
         it != subdirs.end(); it++) {
      bei->cd(*it);
      fillLayout(bei);
      bei->goUp();
    }
  }
}
void SiPixelActionExecutor::fillOccupancy ( DQMStore bei,
bool  isbarrel 
) [private]

Definition at line 1539 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), RefreshWebPage::dname, DQMStore::get(), MonitorElement::getBinContent(), DQMStore::getMEs(), MonitorElement::getNbinsX(), MonitorElement::getNbinsY(), DQMStore::getSubdirs(), MonitorElement::getTH2F(), DQMStore::goUp(), i, j, OccupancyMap, scaleCards::path, DQMStore::pwd(), MonitorElement::setBinContent(), and Tier0Flag_.

Referenced by createOccupancy().

{
  //occupancyprinting cout<<"entering SiPixelActionExecutor::fillOccupancy..."<<std::endl;
  if(Tier0Flag_) return;
  string currDir = bei->pwd();
  string dname = currDir.substr(currDir.find_last_of("/")+1);
  //occupancyprinting cout<<"currDir= "<<currDir<< " , dname= "<<dname<<std::endl;
        
  if(dname.find("Layer_")!=string::npos || dname.find("Disk_")!=string::npos){ 
    vector<string> meVec = bei->getMEs();
    for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
      string full_path = currDir + "/" + (*it);
      if(full_path.find("hitmap_siPixelDigis")!=string::npos){ // If we have the hitmap ME
        MonitorElement * me = bei->get(full_path);
        if (!me) continue;
        //occupancyprinting cout << full_path << endl;
        string path = full_path;
        while (path.find_last_of("/") != 5) // Stop before Pixel/
          {
            path = path.substr(0,path.find_last_of("/"));
            //                                                  cout << "\t" << path << endl;
            OccupancyMap = bei->get(path + "/" + (isbarrel?"barrel":"endcap") + "OccupancyMap");
                                        
            if(OccupancyMap){ 
                for(int i=1; i!=me->getNbinsX()+1; i++) for(int j=1; j!=me->getNbinsY()+1; j++){
                  float previous = OccupancyMap->getBinContent(i,j);
                  OccupancyMap->setBinContent(i,j,previous + me->getBinContent(i,j));
                }
              OccupancyMap->getTH2F()->SetEntries(OccupancyMap->getTH2F()->Integral());
            }       
                                        
          }
      }
                        
    }
    //bei->goUp();
  } else {  
    //occupancyprinting cout<<"finding subdirs now"<<std::endl;
    vector<string> subdirs = bei->getSubdirs();
    for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++) {
      bei->cd(*it);
      //occupancyprinting cout<<"now I am in "<<bei->pwd()<<std::endl;
      if(*it != "Pixel" && ((isbarrel && (*it).find("Barrel")==string::npos) || (!isbarrel && (*it).find("Endcap")==string::npos))) continue;
      //occupancyprinting cout<<"calling myself again "<<std::endl;
      fillOccupancy(bei, isbarrel);
      bei->goUp();
    }
  }
        
  //occupancyprinting cout<<"leaving SiPixelActionExecutor::fillOccupancy..."<<std::endl;
        
}
void SiPixelActionExecutor::fillSummary ( DQMStore bei,
std::string  dir_name,
std::vector< std::string > &  me_names,
bool  isbarrel 
) [private]
void SiPixelActionExecutor::GetBladeSubdirs ( DQMStore bei,
std::vector< std::string > &  blade_subdirs 
) [private]

Definition at line 373 of file SiPixelActionExecutor.cc.

References DQMStore::cd(), and DQMStore::getSubdirs().

Referenced by StorageAccount::fillSummary().

                                                                                        {
        blade_subdirs.clear();
//      cout << "BladeSubdirs::" << bei->pwd() << endl;
        vector<string> panels = bei->getSubdirs();
        vector<string> modules;
        for (vector<string>::const_iterator it = panels.begin(); it != panels.end(); it++) {
                bei->cd(*it);
                modules = bei->getSubdirs();
                for (vector<string>::const_iterator m_it = modules.begin(); m_it != modules.end(); m_it++) {
//                      cout << "Would have added " << (*m_it) << "." << endl;
                        blade_subdirs.push_back(*m_it);
                }
        }
//      cout << "Got Blade subdirs" << endl;
}
void SiPixelActionExecutor::getData ( Double_t  map[][NLev2][NLev3][NLev4],
std::string  type,
DQMStore bei,
funcType  ff,
Int_t  i,
Int_t  j,
Int_t  k,
Int_t  l 
) [private]

Definition at line 1712 of file SiPixelActionExecutor.cc.

References relmon_rootfiles_spy::contents, EachBinContent, Entries, DQMStore::get(), DQMStore::getMEs(), MonitorElement::getTH1F(), interpolateCardsSimple::histo, i, j, gen::k, prof2calltree::l, m, Mean, pileupCalc::nbins, DQMStore::pwd(), Sum, and WeightedSum.

Referenced by createMap().

                                                                                                                                                       {
        
//      cout << "Starting with SiPixelActionExecutor::getData" << endl;
        vector<string> contents = bei->getMEs();
        for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++)
        {
                if((*im).find(type + "_") == string::npos){
                        // cout << "Skip";
                        continue; // Searching for specific type
                }
                //cout << "Name: "  << *im << endl;
                std::string fullpathname = bei->pwd() + "/" + (*im);    
                MonitorElement*  me = bei->get(fullpathname);
                
                if (me) {
                TH1F* histo = me->getTH1F();
                
                Int_t nbins = histo->GetNbinsX();
                // cout << "# of bins: " << nbins << endl;
                switch (ff){
                        case EachBinContent:
                                map[i][j][k][l] = histo->GetBinContent(l + 1);
                                break;
                                
                        case Entries:
                                map[i][j][k][l] = histo->GetEntries();
                                break;
                                        
                        case Mean:
                                map[i][j][k][l] = histo->GetMean();
                                break;
                                                        
                        case Sum:
                        {
                                Double_t sum = 0;
                                for(Int_t m = 0; m < nbins; m++)
                                        sum += histo->GetBinContent(m + 1);
                                map[i][j][k][l] = sum;
                        }
                                break;
                                                        
                        case WeightedSum:
                        {
                                Double_t sum = 0;
                                for(Int_t m = 0; m < nbins; m++)
                                        sum += histo->GetBinContent(m + 1) * histo->GetBinLowEdge(m + 1);
                                map[i][j][k][l] = sum;
                        }
                                break;
                                
                        default:
                                        map[i][j][k][l] = 0;
                }
        }}
//      cout << "Done with SiPixelActionExecutor::getData" << endl;
}
MonitorElement * SiPixelActionExecutor::getFEDSummaryME ( DQMStore bei,
std::string  me_name 
) [private]

Definition at line 1447 of file SiPixelActionExecutor.cc.

References DQMStore::book1D(), relmon_rootfiles_spy::contents, spr::find(), DQMStore::get(), DQMStore::getMEs(), DQMStore::pwd(), and MonitorElement::Reset().

Referenced by fillFEDErrorSummary().

                                                                       {
  //printing cout<<"Entering SiPixelActionExecutor::getFEDSummaryME..."<<endl;
  MonitorElement* me = 0;
  if((bei->pwd()).find("Pixel")==string::npos) return me;
  vector<string> contents = bei->getMEs();
        
  for (vector<string>::const_iterator it = contents.begin();
       it != contents.end(); it++) {
    if ((*it).find(me_name) == 0) {
      string fullpathname = bei->pwd() + "/" + (*it); 
                        
      me = bei->get(fullpathname);
                        
      if (me) {
        //printing cout<<"got the ME: "<<fullpathname<<endl;
        me->Reset();
        return me;
      }
    }
  }
  contents.clear();
  me = bei->book1D(me_name.c_str(), me_name.c_str(),40,-0.5,39.5);
  //if(me) cout<<"finally got the ME: "<<me_name<<endl;
  return me;
  //printing cout<<"...leaving SiPixelActionExecutor::getFEDSummaryME!"<<endl;
}
void SiPixelActionExecutor::getGrandSummaryME ( DQMStore bei,
int  nbin,
std::string &  me_name,
std::vector< MonitorElement * > &  mes 
) [private]

Definition at line 1356 of file SiPixelActionExecutor.cc.

References DQMStore::book1D(), relmon_rootfiles_spy::contents, spr::find(), DQMStore::get(), DQMStore::getMEs(), DQMStore::pwd(), and MonitorElement::Reset().

Referenced by fillGrandBarrelSummaryHistos(), and fillGrandEndcapSummaryHistos().

                                                                             {
  //printing cout<<"Entering SiPixelActionExecutor::getGrandSummaryME for: "<<me_name<<endl;
  if((bei->pwd()).find("Pixel")==string::npos) return; // If one doesn't find pixel
  vector<string> contents = bei->getMEs();
        
  for (vector<string>::const_iterator it = contents.begin();
       it != contents.end(); it++) {
    //printing cout<<"in grand summary me: "<<me_name<<","<<(*it)<<endl;
    if ((*it).find(me_name) == 0) {
      string fullpathname = bei->pwd() + "/" + me_name;
      //                                cout << "###\t" << fullpathname << endl;
      MonitorElement* me = bei->get(fullpathname);
                        
      if (me) {
        //      cout<<"Found grand ME: "<<fullpathname<<endl;
        me->Reset();
        mes.push_back(me);
        // if printing cout<<"reset and add the following me: "<<me->getName()<<endl;
        return;
      }
    }
  }

  //  MonitorElement* temp_me = bei->book1D(me_name.c_str(),me_name.c_str(),nbin,1.,nbin+1.);
  //  if (temp_me) mes.push_back(temp_me);
  MonitorElement* temp_me(0);
  if(me_name.find("ALLMODS_adcCOMB_")!=string::npos) temp_me = bei->book1D(me_name.c_str(),me_name.c_str(),128,0,256);
  else if(me_name.find("ALLMODS_chargeCOMB_")!=string::npos) temp_me = bei->book1D(me_name.c_str(),me_name.c_str(),100,0,200);
  else temp_me = bei->book1D(me_name.c_str(),me_name.c_str(),nbin,1.,nbin+1.);
  if (temp_me) mes.push_back(temp_me);
        
  //  if(temp_me) cout<<"finally found grand ME: "<<me_name<<endl;
}
MonitorElement* SiPixelActionExecutor::getSummaryME ( DQMStore bei,
std::string  me_name 
) [private]
int SiPixelActionExecutor::getTkMapMENames ( std::vector< std::string > &  names)

Definition at line 2038 of file SiPixelActionExecutor.cc.

References tkMapMENames.

                                                                      {
  if (tkMapMENames.size() == 0) return 0;
  for (vector<string>::iterator it = tkMapMENames.begin();
       it != tkMapMENames.end(); it++) {
    names.push_back(*it) ;
  }
  return names.size();
}
Double_t SiPixelActionExecutor::mapMax ( const Double_t  map[][NLev2][NLev3][NLev4],
bool  isBarrel 
) [private]

Definition at line 1860 of file SiPixelActionExecutor.cc.

References b, i, max(), NLev1, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by createMaps().

                                                                                              {
        
        Double_t max = map[0][0][0][0];
        
        for(Int_t p = 0 ; p < NLev1 ; p++)
                for(Int_t d = 0 ; d < (isBarrel?3:2); d++)
                        for(Int_t b = 0 ; b < (isBarrel?(d*6+10):12); b++)
                                for(Int_t i = 0 ; i < (isBarrel?4:7); i++)
                                        if(map[p][d][b][i] > max)
                                                max = map[p][d][b][i];
        // cout << "Done with SiPixelActionExecutor::mapMax" << endl;
        return max;
}
Double_t SiPixelActionExecutor::mapMin ( const Double_t  map[][NLev2][NLev3][NLev4],
bool  isBarrel 
) [private]

Definition at line 1843 of file SiPixelActionExecutor.cc.

References b, i, min, NLev1, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by createMaps().

                                                                                              {
        
        Double_t min = map[0][0][0][0];
        
        for(Int_t p = 0 ; p < NLev1 ; p++)
                for(Int_t d = 0 ; d < (isBarrel?3:2) ; d++)
                        for(Int_t b = 0 ; b < (isBarrel?(d*6+10):12) ; b++)
                                for(Int_t i = 0 ; i < (isBarrel?4:7); i++){
                                        if(map[p][d][b][i] < min)
                                                min = map[p][d][b][i];
                                }
        // cout << "Done with SiPixelActionExecutor::mapMin" << endl;
        return min;
}
void SiPixelActionExecutor::prephistosB ( MonitorElement me[NCyl],
DQMStore bei,
const Double_t  map[][NLev2][NLev3][NLev4],
std::string  name,
Double_t  min,
Double_t  max 
) [private]

Definition at line 1771 of file SiPixelActionExecutor.cc.

References b, gather_cfg::cout, DQMStore::get(), i, NLayer, NModuleB, AlCaHLTBitMon_ParallelJobs::p, scaleCards::path, DQMStore::pwd(), and groupFilesInBlocks::temp.

Referenced by createMaps().

                                                                                                                                                                      {
        // cout << "Starting with SiPixelActionExecutor::prephistosB" << endl;
        std::string part[] = { "Layer_1", "Layer_2", "Layer_3"};
        std::string path = bei->pwd();
        for (Int_t i = 0; i < NLayer; i++)
        {
                std::string fullpath = path + "/" + "TRKMAP_" + name + "_" + part[i];
                MonitorElement* temp = bei->get(fullpath);
                if(temp)
                        me[i] = temp;
                else
                        cout << "Problem: " << fullpath << endl;
        }
        
        for(Int_t p = 0 ; p < NLayer ; p++){
                for(Int_t b = 0 ; b < (10 + 6 * p); b++)
                        for(Int_t i = 0 ; i < NModuleB ; i++){
                                me[p]->getTH2F()->SetBinContent(b + 1, i + 1, map[0][p][b][i]);
                                me[p]->getTH2F()->SetBinContent(b + 1, i + 1 + NModuleB, map[1][p][b][i]);
                                me[p]->getTH2F()->SetBinContent(b + 1 + 10 + 6 * p, i + 1, map[2][p][b][i]);
                                me[p]->getTH2F()->SetBinContent(b + 1 + 10 + 6 * p, i + 1 + NModuleB, map[3][p][b][i]);
                        }
                me[p]->getTH2F()->SetMinimum(min);
                me[p]->getTH2F()->SetMaximum(max);
        }
        // cout << "Done with SiPixelActionExecutor::prephistosB" << endl;
}
void SiPixelActionExecutor::prephistosE ( MonitorElement me[NCyl],
DQMStore bei,
const Double_t  map[][NLev2][NLev3][NLev4],
std::string  name,
Double_t  min,
Double_t  max 
) [private]

Definition at line 1801 of file SiPixelActionExecutor.cc.

References b, trackerHits::c, gather_cfg::cout, DQMStore::get(), i, NBlade, NCyl, NDisk, scaleCards::path, DQMStore::pwd(), and groupFilesInBlocks::temp.

Referenced by createMaps().

                                                                                                                                                                     {
        // cout << "Starting with SiPixelActionExecutor::prephistosE" << endl;
        std::string part[] = { "Disc_1_M", "Disc_2_M", "Disc_1_P", "Disc_2_P" };
        std::string path = bei->pwd();
        for (Int_t i = 0; i < NCyl; i++)
        {
                std::string fullpath = path + "/" + "TRKMAP_" + name + "_" + part[i];
                MonitorElement* temp = bei->get(fullpath);
                if(temp)
                {
                        me[i] = temp;
                        me[i]->getTH2F()->SetMinimum(min);
                        me[i]->getTH2F()->SetMaximum(max);
                }
                else
                        cout << "Problem: " << fullpath << endl;
        }

        for(Int_t c = 0 ; c < NCyl ; c += 2)
                for(Int_t d = 0 ; d < NDisk ; d++)
                        for(Int_t b = 0 ; b < NBlade ; b++){
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 1, map[c][d][b][0]);
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 2, map[c][d][b][4]);
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 3, map[c][d][b][1]);
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 4, map[c][d][b][5]);
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 5, map[c][d][b][2]);
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 6, map[c][d][b][6]);
                                me[c + d]->getTH2F()->SetBinContent(b + 1, 7, map[c][d][b][3]);
                                
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 1, map[c + 1][d][b][0]);
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 2, map[c + 1][d][b][4]);
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 3, map[c + 1][d][b][1]);
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 4, map[c + 1][d][b][5]);
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 5, map[c + 1][d][b][2]);
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 6, map[c + 1][d][b][6]);
                                me[c + d]->getTH2F()->SetBinContent(2 * NBlade - b, 7, map[c + 1][d][b][3]);
                        }
        // cout << "Done with SiPixelActionExecutor::prephistosE" << endl;
}
bool SiPixelActionExecutor::readConfiguration ( int &  tkmap_freq,
int &  summary_freq 
)

Definition at line 128 of file SiPixelActionExecutor.cc.

References configParser_, gather_cfg::cout, DQMParserBase::getDocument(), SiPixelConfigParser::getFrequencyForBarrelSummary(), SiPixelConfigParser::getFrequencyForTrackerMap(), and offlineXMLfile_.

                                                                                {
  //printing cout<<"Entering SiPixelActionExecutor::readConfiguration..."<<endl;
  string localPath;
  if(offlineXMLfile_) localPath = string("DQM/SiPixelMonitorClient/test/sipixel_tier0_config.xml");
  else localPath = string("DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
  if (configParser_ == 0) {
    configParser_ = new SiPixelConfigParser();
    configParser_->getDocument(edm::FileInPath(localPath).fullPath());
  }
        
  if (!configParser_->getFrequencyForTrackerMap(tkmap_freq)){
    cout << "SiPixelActionExecutor::readConfiguration: Failed to read TrackerMap configuration parameters!! ";
    return false;
  }
  if (!configParser_->getFrequencyForBarrelSummary(summary_freq)){
    edm::LogInfo("SiPixelActionExecutor") << "Failed to read Summary configuration parameters!! " << "\n" ;
    return false;
  }
  //printing cout<<"...leaving SiPixelActionExecutor::readConfiguration..."<<endl;
  return true;
}
void SiPixelActionExecutor::readConfiguration ( )

Definition at line 62 of file SiPixelActionExecutor.cc.

References configParser_, DQMParserBase::getDocument(), and offlineXMLfile_.

                                              {
  string localPath;
  if(offlineXMLfile_) localPath = string("DQM/SiPixelMonitorClient/test/sipixel_tier0_config.xml");
  else localPath = string("DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
  if (configParser_ == 0) {
    configParser_ = new SiPixelConfigParser();
    configParser_->getDocument(edm::FileInPath(localPath).fullPath());
  }
}
bool SiPixelActionExecutor::readConfiguration ( int &  tkmap_freq,
int &  sum_barrel_freq,
int &  sum_endcap_freq,
int &  sum_grandbarrel_freq,
int &  sum_grandendcap_freq,
int &  message_limit,
int &  source_type,
int &  calib_type 
)

Definition at line 75 of file SiPixelActionExecutor.cc.

References configParser_, gather_cfg::cout, SiPixelConfigParser::getCalibType(), DQMParserBase::getDocument(), SiPixelConfigParser::getFrequencyForBarrelSummary(), SiPixelConfigParser::getFrequencyForEndcapSummary(), SiPixelConfigParser::getFrequencyForGrandBarrelSummary(), SiPixelConfigParser::getFrequencyForGrandEndcapSummary(), SiPixelConfigParser::getFrequencyForTrackerMap(), SiPixelConfigParser::getMessageLimitForQTests(), SiPixelConfigParser::getSourceType(), and offlineXMLfile_.

Referenced by SiPixelWebInterface::readConfiguration().

                                                                {
  //printing cout<<"Entering SiPixelActionExecutor::readConfiguration..."<<endl;
  string localPath;
  if(offlineXMLfile_) localPath = string("DQM/SiPixelMonitorClient/test/sipixel_tier0_config.xml");
  else localPath = string("DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
  if (configParser_ == 0) {
    configParser_ = new SiPixelConfigParser();
    configParser_->getDocument(edm::FileInPath(localPath).fullPath());
  }
        
  if (!configParser_->getFrequencyForTrackerMap(tkmap_freq)){
    cout << "SiPixelActionExecutor::readConfiguration: Failed to read TrackerMap configuration parameters!! ";
    return false;
  }
  if (!configParser_->getFrequencyForBarrelSummary(sum_barrel_freq)){
    edm::LogInfo("SiPixelActionExecutor") << "Failed to read Barrel Summary configuration parameters!! " << "\n" ;
    return false;
  }
  if (!configParser_->getFrequencyForEndcapSummary(sum_endcap_freq)){
    edm::LogInfo("SiPixelActionExecutor")  << "Failed to read Endcap Summary configuration parameters!! " << "\n" ;
    return false;
  }
  if (!configParser_->getFrequencyForGrandBarrelSummary(sum_grandbarrel_freq)){
    edm::LogInfo("SiPixelActionExecutor") << "Failed to read Grand Barrel Summary configuration parameters!! " << "\n" ;
    return false;
  }
  if (!configParser_->getFrequencyForGrandEndcapSummary(sum_grandendcap_freq)){
    edm::LogInfo("SiPixelActionExecutor")  << "Failed to read Grand Endcap Summary configuration parameters!! " << "\n" ;
    return false;
  }
  if (!configParser_->getMessageLimitForQTests(message_limit_)){
    edm::LogInfo("SiPixelActionExecutor")  << "Failed to read QTest Message Limit" << "\n" ;
    return false;
  }
  if (!configParser_->getSourceType(source_type_)){
    edm::LogInfo("SiPixelActionExecutor")  << "Failed to read Source Type" << "\n" ;
    return false;
  }
  if (!configParser_->getCalibType(calib_type_)){
    edm::LogInfo("SiPixelActionExecutor")  << "Failed to read Calib Type" << "\n" ;
    return false;
  }
  //printing cout<<"...leaving SiPixelActionExecutor::readConfiguration..."<<endl;
  return true;
}
void SiPixelActionExecutor::setupQTests ( DQMStore bei)

Definition at line 1880 of file SiPixelActionExecutor.cc.

References QTestHandle::attachTests(), DQMStore::cd(), QTestHandle::configureTests(), gather_cfg::cout, edm::FileInPath::fullPath(), offlineXMLfile_, and qtHandler_.

Referenced by SiPixelWebInterface::performAction().

                                                      {
  //printing cout<<"Entering SiPixelActionExecutor::setupQTests: "<<endl;
        
  bei->cd();
  bei->cd("Pixel");
        
  string localPath;
  if(offlineXMLfile_) localPath = string("DQM/SiPixelMonitorClient/test/sipixel_tier0_qualitytest.xml");
  else localPath = string("DQM/SiPixelMonitorClient/test/sipixel_qualitytest_config.xml");
  if(!qtHandler_){
    qtHandler_ = new QTestHandle();
  }
  if(!qtHandler_->configureTests(edm::FileInPath(localPath).fullPath(),bei)){
    qtHandler_->attachTests(bei,false);
    bei->cd();
  }else{
    cout << " Problem setting up quality tests "<<endl;
  }
        
  //printing cout<<" leaving SiPixelActionExecutor::setupQTests. "<<endl;
}

Member Data Documentation

Definition at line 139 of file SiPixelActionExecutor.h.

Referenced by checkQTestResults().

Definition at line 155 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 160 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 157 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 162 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 158 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 163 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 156 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 161 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 159 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 164 of file SiPixelActionExecutor.h.

Referenced by bookDeviations().

Definition at line 153 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 154 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 151 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 152 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 148 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 149 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 150 of file SiPixelActionExecutor.h.

Referenced by bookEfficiency(), and fillEfficiency().

Definition at line 137 of file SiPixelActionExecutor.h.

Referenced by checkQTestResults().

Definition at line 146 of file SiPixelActionExecutor.h.

Referenced by bookOccupancyPlots(), and fillOccupancy().

Definition at line 147 of file SiPixelActionExecutor.h.

std::vector<std::string> SiPixelActionExecutor::summaryMENames [private]

Definition at line 134 of file SiPixelActionExecutor.h.

Definition at line 175 of file SiPixelActionExecutor.h.

Definition at line 176 of file SiPixelActionExecutor.h.

Definition at line 177 of file SiPixelActionExecutor.h.

Definition at line 178 of file SiPixelActionExecutor.h.

Definition at line 179 of file SiPixelActionExecutor.h.

Definition at line 174 of file SiPixelActionExecutor.h.

Definition at line 132 of file SiPixelActionExecutor.h.

Referenced by dumpBarrelModIds(), and dumpEndcapModIds().

std::vector<std::string> SiPixelActionExecutor::tkMapMENames [private]

Definition at line 135 of file SiPixelActionExecutor.h.

Referenced by getTkMapMENames().