CMS 3D CMS Logo

Public Member Functions | Private Attributes

SiPixelFolderOrganizer Class Reference

#include <DQM/SiPixelCommon/interface/SiPixelFolderOrganizer.h>

List of all members.

Public Member Functions

void getModuleFolder (const uint32_t &rawdetid, std::string &path, bool isUpgrade)
bool setFedFolder (const uint32_t FedId)
 Set folder name for a FED (used in the case of errors without detId)
bool setModuleFolder (const uint32_t &rawdetid=0, int type=0, bool isUpgrade=false)
 Set folder name for a module or plaquette.
 SiPixelFolderOrganizer ()
 Constructor.
virtual ~SiPixelFolderOrganizer ()
 Destructor.

Private Attributes

DQMStoredbe_
std::string rootFolder
std::string slash

Detailed Description

Description: <Organizes the folders for the monitoring elements of the Pixel detector. Its methods return strings with names of folders to be created and used.>

Usage: <usage>

Definition at line 24 of file SiPixelFolderOrganizer.h.


Constructor & Destructor Documentation

SiPixelFolderOrganizer::SiPixelFolderOrganizer ( )

Constructor.

DQM and Framework services.

Data Formats Constructor

Definition at line 17 of file SiPixelFolderOrganizer.cc.

                                               :
  rootFolder("Pixel"),
  slash("/"),
  dbe_(edm::Service<DQMStore>().operator->())
{  
}
SiPixelFolderOrganizer::~SiPixelFolderOrganizer ( ) [virtual]

Destructor.

Definition at line 24 of file SiPixelFolderOrganizer.cc.

{}

Member Function Documentation

void SiPixelFolderOrganizer::getModuleFolder ( const uint32_t &  rawdetid,
std::string &  path,
bool  isUpgrade 
)

Definition at line 204 of file SiPixelFolderOrganizer.cc.

References PixelEndcapNameUpgrade::bladeName(), PixelEndcapName::bladeName(), PixelEndcapName::diskName(), PixelEndcapNameUpgrade::diskName(), Exception, PixelEndcapNameUpgrade::halfCylinder(), PixelEndcapName::halfCylinder(), PixelBarrelName::ladderName(), PixelBarrelNameUpgrade::ladderName(), PixelBarrelNameUpgrade::layerName(), PixelBarrelName::layerName(), PixelBarrelName::moduleName(), PixelBarrelNameUpgrade::moduleName(), PixelEndcapName::pannelName(), PixelEndcapNameUpgrade::pannelName(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, PixelEndcapName::plaquetteName(), PixelEndcapNameUpgrade::plaquetteName(), rootFolder, PixelBarrelNameUpgrade::shell(), PixelBarrelName::shell(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by SiStripInformationExtractor::getSingleModuleHistos(), and SiPixelInformationExtractor::getTrackerMapHistos().

                                                             {

  path = rootFolder;
  if(rawdetid == 0) {
    return;
  }else if( (DetId(rawdetid).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) && (!isUpgrade) ) {
    std::string subDetectorFolder = "Barrel";
    PixelBarrelName::Shell DBshell = PixelBarrelName(DetId(rawdetid)).shell();
    int DBlayer  = PixelBarrelName(DetId(rawdetid)).layerName();
    int DBladder = PixelBarrelName(DetId(rawdetid)).ladderName();
    int DBmodule = PixelBarrelName(DetId(rawdetid)).moduleName();
    
    //char sshell[80];  sprintf(sshell, "Shell_%i",   DBshell);
    char slayer[80];  sprintf(slayer, "Layer_%i",   DBlayer);
    char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder);
    char smodule[80]; sprintf(smodule,"Module_%i",  DBmodule);
    
    std::ostringstream sfolder;
    sfolder << rootFolder << "/" << subDetectorFolder << "/Shell_" <<DBshell << "/" << slayer << "/" << sladder;
    if ( PixelBarrelName(DetId(rawdetid)).isHalfModule() ) sfolder <<"H"; 
    else sfolder <<"F";
    sfolder << "/" <<smodule;
    path = sfolder.str().c_str();
   
    //path = path + "/" + subDetectorFolder + "/" + sshell + "/" + slayer + "/" + sladder;
    //if(PixelBarrelName(DetId(rawdetid)).isHalfModule() )
    //  path = path + "H"; 
    //else path = path + "F";
    //path = path + "/" + smodule;

  }else if( (DetId(rawdetid).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) && (isUpgrade) ) {
    std::string subDetectorFolder = "Barrel";
    PixelBarrelNameUpgrade::Shell DBshell = PixelBarrelNameUpgrade(DetId(rawdetid)).shell();
    int DBlayer  = PixelBarrelNameUpgrade(DetId(rawdetid)).layerName();
    int DBladder = PixelBarrelNameUpgrade(DetId(rawdetid)).ladderName();
    int DBmodule = PixelBarrelNameUpgrade(DetId(rawdetid)).moduleName();
    
    //char sshell[80];  sprintf(sshell, "Shell_%i",   DBshell);
    char slayer[80];  sprintf(slayer, "Layer_%i",   DBlayer);
    char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder);
    char smodule[80]; sprintf(smodule,"Module_%i",  DBmodule);
    
    std::ostringstream sfolder;
    sfolder << rootFolder << "/" << subDetectorFolder << "/Shell_" <<DBshell << "/" << slayer << "/" << sladder;
    if ( PixelBarrelNameUpgrade(DetId(rawdetid)).isHalfModule() ) sfolder <<"H"; 
    else sfolder <<"F";
    sfolder << "/" <<smodule;
    path = sfolder.str().c_str();
   
    //path = path + "/" + subDetectorFolder + "/" + sshell + "/" + slayer + "/" + sladder;
    //if(PixelBarrelNameUpgrade(DetId(rawdetid)).isHalfModule() )
    //  path = path + "H"; 
    //else path = path + "F";
    //path = path + "/" + smodule;

  } else if( (DetId(rawdetid).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) && (!isUpgrade) ) {
    std::string subDetectorFolder = "Endcap";
    PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(rawdetid)).halfCylinder();
    int disk   = PixelEndcapName(DetId(rawdetid)).diskName();
    int blade  = PixelEndcapName(DetId(rawdetid)).bladeName();
    int panel  = PixelEndcapName(DetId(rawdetid)).pannelName();
    int module = PixelEndcapName(DetId(rawdetid)).plaquetteName();

    //char shc[80];  sprintf(shc,  "HalfCylinder_%i",side);
    char sdisk[80];  sprintf(sdisk,  "Disk_%i",disk);
    char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
    char spanel[80]; sprintf(spanel, "Panel_%i",panel);
    char smodule[80];sprintf(smodule,"Module_%i",module);

    std::ostringstream sfolder;
    sfolder <<rootFolder <<"/" << subDetectorFolder << "/HalfCylinder_" << side << "/" << sdisk << "/" << sblade << "/" << spanel << "/" << smodule;
    path = sfolder.str().c_str();
    
    //path = path + "/" + subDetectorFolder + "/" + shc + "/" + sdisk + "/" + sblade + "/" + spanel + "/" + smodule;

  } else if( (DetId(rawdetid).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) && (isUpgrade) ) {
    std::string subDetectorFolder = "Endcap";
    PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId(rawdetid)).halfCylinder();
    int disk   = PixelEndcapNameUpgrade(DetId(rawdetid)).diskName();
    int blade  = PixelEndcapNameUpgrade(DetId(rawdetid)).bladeName();
    int panel  = PixelEndcapNameUpgrade(DetId(rawdetid)).pannelName();
    int module = PixelEndcapNameUpgrade(DetId(rawdetid)).plaquetteName();

    //char shc[80];  sprintf(shc,  "HalfCylinder_%i",side);
    char sdisk[80];  sprintf(sdisk,  "Disk_%i",disk);
    char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
    char spanel[80]; sprintf(spanel, "Panel_%i",panel);
    char smodule[80];sprintf(smodule,"Module_%i",module);

    std::ostringstream sfolder;
    sfolder <<rootFolder <<"/" << subDetectorFolder << "/HalfCylinder_" << side << "/" << sdisk << "/" << sblade << "/" << spanel << "/" << smodule;
    path = sfolder.str().c_str();
    
    //path = path + "/" + subDetectorFolder + "/" + shc + "/" + sdisk + "/" + sblade + "/" + spanel + "/" + smodule;

  } else throw cms::Exception("LogicError")
     << "[SiPixelFolderOrganizer::getModuleFolder] Not a Pixel detector DetId ";
     
  //std::cout<<"resulting final path name: "<<path<<std::endl;   
     
  return;
}
bool SiPixelFolderOrganizer::setFedFolder ( const uint32_t  FedId)

Set folder name for a FED (used in the case of errors without detId)

Definition at line 191 of file SiPixelFolderOrganizer.cc.

References dbe_, rootFolder, DQMStore::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by SiPixelRawDataErrorSource::bookMEs().

                                                              {

  std::string subDetectorFolder = "AdditionalPixelErrors";
  char sFed[80];  sprintf(sFed,  "FED_%i",FedId);
  std::ostringstream sfolder;
  
  sfolder << rootFolder << "/" << subDetectorFolder << "/" << sFed;
  dbe_->setCurrentFolder(sfolder.str().c_str());
  
  return true;

}
bool SiPixelFolderOrganizer::setModuleFolder ( const uint32_t &  rawdetid = 0,
int  type = 0,
bool  isUpgrade = false 
)

Set folder name for a module or plaquette.

Pixel Barrel

Pixel Endcap

Definition at line 26 of file SiPixelFolderOrganizer.cc.

References PixelEndcapNameUpgrade::bladeName(), PixelEndcapName::bladeName(), dbe_, PixelEndcapName::diskName(), PixelEndcapNameUpgrade::diskName(), Exception, PixelEndcapNameUpgrade::halfCylinder(), PixelEndcapName::halfCylinder(), PixelBarrelName::ladderName(), PixelBarrelNameUpgrade::ladderName(), PixelBarrelNameUpgrade::layerName(), PixelBarrelName::layerName(), PixelBarrelName::moduleName(), PixelBarrelNameUpgrade::moduleName(), PixelEndcapName::pannelName(), PixelEndcapNameUpgrade::pannelName(), PixelSubdetector::PixelBarrel, GeomDetEnumerators::PixelEndcap, PixelEndcapName::plaquetteName(), PixelEndcapNameUpgrade::plaquetteName(), rootFolder, DQMStore::setCurrentFolder(), PixelBarrelNameUpgrade::shell(), PixelBarrelName::shell(), AlCaHLTBitMon_QueryRunRegistry::string, and DetId::subdetId().

Referenced by SiPixelTrackResidualSource::beginRun(), SiPixelHitEfficiencySource::beginRun(), SiPixelRawDataErrorSource::bookMEs(), SiPixelDigiSource::bookMEs(), SiPixelClusterSource::bookMEs(), SiPixelRecHitSource::bookMEs(), SiPixelErrorsDigisToCalibDigis::setDQMDirectory(), and SiPixelOfflineCalibAnalysisBase::setDQMDirectory().

                                                                                               {

  bool flag = false;

   if(rawdetid == 0) {
     dbe_->setCurrentFolder(rootFolder);
     flag = true;
   }
   else if(DetId(rawdetid).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {

     if (!isUpgrade) {
       //for endcap types there is nothing to do: 
       if(type>3 && type!=7) return true;
       
       std::string subDetectorFolder = "Barrel";
       PixelBarrelName::Shell DBshell = PixelBarrelName(DetId(rawdetid)).shell();
       int DBlayer  = PixelBarrelName(DetId(rawdetid)).layerName();
       int DBladder = PixelBarrelName(DetId(rawdetid)).ladderName();
       int DBmodule = PixelBarrelName(DetId(rawdetid)).moduleName();
       
       char slayer[80];  sprintf(slayer, "Layer_%i",   DBlayer);
       char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder);
       char smodule[80]; sprintf(smodule,"Module_%i",  DBmodule);
       
       std::ostringstream sfolder;
       
       sfolder << rootFolder << "/" << subDetectorFolder; 
       if(type<4){
       sfolder << "/Shell_" <<DBshell
               << "/" << slayer;
       }
       if(type<2){
         sfolder << "/" << sladder;
         if ( PixelBarrelName(DetId(rawdetid)).isHalfModule() ) sfolder <<"H"; 
         else sfolder <<"F";
       }
       if(type==0) sfolder << "/" <<smodule;
       //if(type==3) sfolder << "/all_" << smodule;
       
       //std::cout<<"set barrel folder: "<<rawdetid<<" : "<<sfolder.str().c_str()<<std::endl;
       
       dbe_->setCurrentFolder(sfolder.str().c_str());
       flag = true;
     } else if (isUpgrade) {
       //for endcap types there is nothing to do: 
       if(type>3 && type!=7) return true;
       
       std::string subDetectorFolder = "Barrel";
       PixelBarrelNameUpgrade::Shell DBshell = PixelBarrelNameUpgrade(DetId(rawdetid)).shell();
       int DBlayer  = PixelBarrelNameUpgrade(DetId(rawdetid)).layerName();
       int DBladder = PixelBarrelNameUpgrade(DetId(rawdetid)).ladderName();
       int DBmodule = PixelBarrelNameUpgrade(DetId(rawdetid)).moduleName();
       
       char slayer[80];  sprintf(slayer, "Layer_%i",   DBlayer);
       char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder);
       char smodule[80]; sprintf(smodule,"Module_%i",  DBmodule);
       
       std::ostringstream sfolder;
       
       sfolder << rootFolder << "/" << subDetectorFolder; 
       if(type<4){
       sfolder << "/Shell_" <<DBshell
               << "/" << slayer;
       }
       if(type<2){
         sfolder << "/" << sladder;
         if ( PixelBarrelNameUpgrade(DetId(rawdetid)).isHalfModule() ) sfolder <<"H"; 
         else sfolder <<"F";
       }
       if(type==0) sfolder << "/" <<smodule;
       //if(type==3) sfolder << "/all_" << smodule;
       
       //std::cout<<"set barrel folder: "<<rawdetid<<" : "<<sfolder.str().c_str()<<std::endl;
       
       dbe_->setCurrentFolder(sfolder.str().c_str());
       flag = true;
     }//endif(isUpgrade)
   } 
   
   else if(DetId(rawdetid).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) {
     
     if (!isUpgrade) {
       //for barrel types there is nothing to do: 
       if(type>0 && type < 4) return true;
       
       std::string subDetectorFolder = "Endcap";
       PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(rawdetid)).halfCylinder();
        int disk   = PixelEndcapName(DetId(rawdetid)).diskName();
        int blade  = PixelEndcapName(DetId(rawdetid)).bladeName();
        int panel  = PixelEndcapName(DetId(rawdetid)).pannelName();
        int module = PixelEndcapName(DetId(rawdetid)).plaquetteName();
        
        char sdisk[80];  sprintf(sdisk,  "Disk_%i",disk);
        char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
        char spanel[80]; sprintf(spanel, "Panel_%i",panel);
        char smodule[80];sprintf(smodule,"Module_%i",module);
        
        std::ostringstream sfolder;
        
        sfolder <<rootFolder <<"/" << subDetectorFolder << 
          "/HalfCylinder_" << side << "/" << sdisk; 
        if(type==0 || type ==4){
          sfolder << "/" << sblade; 
        }
        if(type==0){
          sfolder << "/" << spanel << "/" << smodule;
        }
//        if(type==6){
//          sfolder << "/" << spanel << "_all_" << smodule;
//        }
       
       //std::cout<<"set endcap folder: "<<rawdetid<<" : "<<sfolder.str().c_str()<<std::endl;
       
       dbe_->setCurrentFolder(sfolder.str().c_str());
       flag = true;
       
     } else if (isUpgrade) {
       //for barrel types there is nothing to do: 
       if(type>0 && type < 4) return true;
       
       std::string subDetectorFolder = "Endcap";
       PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId(rawdetid)).halfCylinder();
        int disk   = PixelEndcapNameUpgrade(DetId(rawdetid)).diskName();
        int blade  = PixelEndcapNameUpgrade(DetId(rawdetid)).bladeName();
        int panel  = PixelEndcapNameUpgrade(DetId(rawdetid)).pannelName();
        int module = PixelEndcapNameUpgrade(DetId(rawdetid)).plaquetteName();
        
        
        char sdisk[80];  sprintf(sdisk,  "Disk_%i",disk);
        char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
        char spanel[80]; sprintf(spanel, "Panel_%i",panel);
        char smodule[80];sprintf(smodule,"Module_%i",module);
        
        std::ostringstream sfolder;
        
        sfolder <<rootFolder <<"/" << subDetectorFolder << 
          "/HalfCylinder_" << side << "/" << sdisk; 
        if(type==0 || type ==4){
          sfolder << "/" << sblade; 
        }
        if(type==0){
          sfolder << "/" << spanel << "/" << smodule;
        }
//        if(type==6){
//          sfolder << "/" << spanel << "_all_" << smodule;
//        }
       
       //std::cout<<"set endcap folder: "<<rawdetid<<" : "<<sfolder.str().c_str()<<std::endl;
       
       dbe_->setCurrentFolder(sfolder.str().c_str());
       flag = true;
     }//endifendcap&&isUpgrade
   } else throw cms::Exception("LogicError")
     << "[SiPixelFolderOrganizer::setModuleFolder] Not a Pixel detector DetId ";
   
   return flag;

}

Member Data Documentation

Definition at line 47 of file SiPixelFolderOrganizer.h.

Referenced by setFedFolder(), and setModuleFolder().

std::string SiPixelFolderOrganizer::rootFolder [private]

Definition at line 45 of file SiPixelFolderOrganizer.h.

Referenced by getModuleFolder(), setFedFolder(), and setModuleFolder().

std::string SiPixelFolderOrganizer::slash [private]

Definition at line 46 of file SiPixelFolderOrganizer.h.