CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Attributes

RPCMultiplicityTest Class Reference

#include <RPCMultiplicityTest.h>

Inheritance diagram for RPCMultiplicityTest:
RPCClient

List of all members.

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &)
 Analyze.
void beginJob (DQMStore *)
 BeginJob.
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 Begin Lumi block.
void beginRun (const edm::Run &, const edm::EventSetup &)
virtual void clientOperation (edm::EventSetup const &c)
void endJob ()
 Endjob.
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 End Lumi Block.
void endRun (const edm::Run &, const edm::EventSetup &, std::vector< MonitorElement * >, std::vector< RPCDetId >)
 RPCMultiplicityTest (const edm::ParameterSet &ps)
 Constructor.
virtual ~RPCMultiplicityTest ()
 Destructor.

Protected Member Functions

void fillGlobalME (RPCDetId &detId, MonitorElement *myMe)

Private Attributes

DQMStoredbe_
std::string globalFolder_
MonitorElementMULTDDisk [10]
MonitorElementMULTDisk [10]
MonitorElementMULTDWheel [5]
MonitorElementMULTWheel [5]
std::vector< RPCDetIdmyDetIds_
std::vector< MonitorElement * > myNumDigiMe_
int numberOfDisks_
int numberOfRings_
int prescaleFactor_

Detailed Description

Definition at line 11 of file RPCMultiplicityTest.h.


Constructor & Destructor Documentation

RPCMultiplicityTest::RPCMultiplicityTest ( const edm::ParameterSet ps)

Constructor.

Definition at line 16 of file RPCMultiplicityTest.cc.

References edm::ParameterSet::getUntrackedParameter(), globalFolder_, numberOfDisks_, numberOfRings_, and prescaleFactor_.

                                                                  {
  edm::LogVerbatim ("multiplicity") << "[RPCMultiplicityTest]: Constructor";

  globalFolder_ = ps.getUntrackedParameter<std::string>("RPCGlobalFolder", "RPC/RecHits/SummaryHistograms");
  prescaleFactor_ = ps.getUntrackedParameter<int>("DiagnosticPrescale", 1);
  numberOfDisks_ = ps.getUntrackedParameter<int>("NumberOfEndcapDisks", 3);
  numberOfRings_ = ps.getUntrackedParameter<int>("NumberOfEndcapRings", 2);
}
RPCMultiplicityTest::~RPCMultiplicityTest ( ) [virtual]

Destructor.

Definition at line 25 of file RPCMultiplicityTest.cc.

References dbe_.

                                         {
  dbe_ = 0;
}

Member Function Documentation

void RPCMultiplicityTest::analyze ( const edm::Event iEvent,
const edm::EventSetup c 
) [virtual]

Analyze.

Implements RPCClient.

Definition at line 131 of file RPCMultiplicityTest.cc.

{}
void RPCMultiplicityTest::beginJob ( DQMStore dbe) [virtual]

BeginJob.

Implements RPCClient.

Definition at line 30 of file RPCMultiplicityTest.cc.

References dbe_.

                                                  {
 edm::LogVerbatim ("multiplicity") << "[RPCMultiplicityTest]: Begin job";
 dbe_=dbe;
}
void RPCMultiplicityTest::beginLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
) [virtual]

Begin Lumi block.

Implements RPCClient.

Definition at line 129 of file RPCMultiplicityTest.cc.

{}
void RPCMultiplicityTest::beginRun ( const edm::Run r,
const edm::EventSetup c 
) [virtual]

Implements RPCClient.

Definition at line 157 of file RPCMultiplicityTest.cc.

{}
void RPCMultiplicityTest::clientOperation ( edm::EventSetup const &  c) [virtual]

Implements RPCClient.

Definition at line 135 of file RPCMultiplicityTest.cc.

References fillGlobalME(), i, MessageLogger_cff::limit, MULTDDisk, MULTDWheel, myDetIds_, myNumDigiMe_, numberOfDisks_, and MonitorElement::Reset().

                                                                     {

  edm::LogVerbatim ("multiplicity") <<"[RPCMultiplicityTest]: Client Operation";

  //Clear Distributions
  int limit = numberOfDisks_ * 2;
  if(numberOfDisks_<2) limit = 5;

  for(int i =0 ; i<limit; i++){

    if(i < numberOfDisks_ * 2)
      MULTDDisk[i]->Reset();
    if(i<5)
      MULTDWheel[i]->Reset();
  }
 
  //Loop on MEs
  for (unsigned int  i = 0 ; i<myNumDigiMe_.size();i++){
    this->fillGlobalME(myDetIds_[i],myNumDigiMe_[i]);
  }//End loop on MEs
}
void RPCMultiplicityTest::endJob ( void  ) [virtual]

Endjob.

Implements RPCClient.

Definition at line 159 of file RPCMultiplicityTest.cc.

{}
void RPCMultiplicityTest::endLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  iSetup 
) [virtual]

End Lumi Block.

Implements RPCClient.

Definition at line 133 of file RPCMultiplicityTest.cc.

{}
void RPCMultiplicityTest::endRun ( const edm::Run r,
const edm::EventSetup iSetup,
std::vector< MonitorElement * >  meVector,
std::vector< RPCDetId detIdVector 
) [virtual]

Implements RPCClient.

Definition at line 36 of file RPCMultiplicityTest.cc.

References DQMStore::book1D(), DQMStore::book2D(), dbe_, DQMStore::get(), MonitorElement::getName(), globalFolder_, i, rpcdqm::utils::labelXAxisSector(), rpcdqm::utils::labelXAxisSegment(), rpcdqm::utils::labelYAxisRing(), rpcdqm::utils::labelYAxisRoll(), MessageLogger_cff::limit, MULTDDisk, MULTDisk, MULTDWheel, rpcdqm::MULTIPLICITY, MULTWheel, myDetIds_, myNumDigiMe_, NULL, numberOfDisks_, numberOfRings_, evf::evtn::offset(), DQMStore::removeElement(), DQMStore::setCurrentFolder(), and packageDocSplitter::tagList.

                                                                                                                                                  {

  edm::LogVerbatim ("multiplicity") << "[RPCMultiplicityTest]: End run";
  
  MonitorElement* me=NULL;
  dbe_->setCurrentFolder(globalFolder_);
  
  std::stringstream histoName;
  
  rpcdqm::utils rpcUtils;
  
  int limit = numberOfDisks_;
  if(numberOfDisks_ < 2) limit = 2;
  
  for (int i = -1 * limit; i<=limit;i++ ){//loop on wheels and disks
  
    if (i>-3 && i<3){//wheels  
      histoName.str("");
      histoName<<"NumberOfDigi_Mean_Roll_vs_Sector_Wheel"<<i;
      me = 0;
      me = dbe_->get(globalFolder_ +"/"+ histoName.str());
      if ( 0!=me) {
        dbe_->removeElement(me->getName());
      }
      
      MULTWheel[i+2] = dbe_->book2D(histoName.str().c_str(), histoName.str().c_str(), 12, 0.5, 12.5, 21, 0.5, 21.5);
      
      rpcUtils.labelXAxisSector( MULTWheel[i+2]);
      rpcUtils.labelYAxisRoll( MULTWheel[i+2], 0, i);
      
      histoName.str("");
      histoName<<"NumberOfDigi_Mean_Distribution_Wheel"<<i;
      me = 0;
      me = dbe_->get(globalFolder_ +"/"+ histoName.str());
      if ( 0!=me) {
        dbe_->removeElement(me->getName());
      }
      
      MULTDWheel[i+2] = dbe_->book1D(histoName.str().c_str(), histoName.str().c_str(), 100, 0.5, 50.5);
    }//end wheels
    
    if (i == 0 || i< (-1 * numberOfDisks_) || i > numberOfDisks_)continue;

    int offset = numberOfDisks_;
    if (i>0) offset --; //used to skip case equale to zero
  
    histoName.str("");
    histoName<<"NumberOfDigi_Mean_Ring_vs_Segment_Disk"<<i;
    me = 0;
    me = dbe_->get(globalFolder_ +"/"+ histoName.str());
    if ( 0!=me) {
      dbe_->removeElement(me->getName());
    }
    MULTDisk[i+offset]   = dbe_->book2D(histoName.str().c_str(), histoName.str().c_str(),36, 0.5, 36.5, 3*numberOfRings_, 0.5,3*numberOfRings_+ 0.5);
    rpcUtils.labelXAxisSegment(MULTDisk[i+offset]);
    rpcUtils.labelYAxisRing(MULTDisk[i+offset], numberOfRings_);

    histoName.str("");
    histoName<<"NumberOfDigi_Mean_Distribution_Disk"<<i;
    me = 0;
    me = dbe_->get(globalFolder_ +"/"+ histoName.str());
    if ( 0!=me) {
      dbe_->removeElement(me->getName());
    }
    
    MULTDDisk[i+offset] = dbe_->book1D(histoName.str().c_str(), histoName.str().c_str(), 100, 0.5, 50.5);
  }//end loop on wheels and disks


  //Get NumberOfDigi ME for each roll
  for (unsigned int i = 0 ; i<meVector.size(); i++){
    
    bool flag= false;
    
    DQMNet::TagList tagList;
    tagList = meVector[i]->getTags();
    DQMNet::TagList::iterator tagItr = tagList.begin();
    
    while (tagItr != tagList.end() && !flag ) {
      if((*tagItr) ==  rpcdqm::MULTIPLICITY)
        flag= true;
      
      tagItr++;
    }
    
    if(flag){
      myNumDigiMe_.push_back(meVector[i]);
      myDetIds_.push_back(detIdVector[i]);
    }
  }
}
void RPCMultiplicityTest::fillGlobalME ( RPCDetId detId,
MonitorElement myMe 
) [protected]

Definition at line 161 of file RPCMultiplicityTest.cc.

References rpcdqm::utils::detId2RollNr(), MonitorElement::Fill(), MonitorElement::getMean(), plotscripts::mean(), MULTDDisk, MULTDisk, MULTDWheel, MULTWheel, NULL, numberOfDisks_, numberOfRings_, RPCDetId::region(), RPCDetId::ring(), RPCDetId::roll(), RPCDetId::sector(), RPCGeomServ::segment(), MonitorElement::setBinContent(), and RPCDetId::station().

Referenced by clientOperation().

                                                                              {

  MonitorElement * MULT =NULL;
  MonitorElement * MULTD = NULL;

  if (detId.region()==0) {
    MULT = MULTWheel[detId.ring()+2];
    MULTD = MULTDWheel[detId.ring()+2];
  }else{
    if(-detId.station() + numberOfDisks_ >= 0 ){
    
      if(detId.region()<0){
      MULT = MULTDisk[-detId.station() + numberOfDisks_];
      MULTD = MULTDDisk[-detId.station()+ numberOfDisks_];
      }else{
        MULT = MULTDisk[detId.station()+ numberOfDisks_ -1];
        MULTD = MULTDDisk[detId.station()+ numberOfDisks_-1];
      }
    }
  }

  if ( MULT && MULTD ){
    
    int xBin,yBin;
    if(detId.region()==0){//Barrel
      xBin= detId.sector();
      rpcdqm::utils rollNumber;
      yBin = rollNumber.detId2RollNr(detId);
    }else{//Endcap
      //get segment number
      RPCGeomServ RPCServ(detId);
      xBin = RPCServ.segment();
      (numberOfRings_ == 3 ? yBin= detId.ring()*3-detId.roll()+1 : yBin= (detId.ring()-1)*3-detId.roll()+1);
    }
    
    float mean = myMe->getMean();
    
    MULT->setBinContent(xBin,yBin, mean );
    MULTD->Fill(mean);
  }
  
  
}

Member Data Documentation

Definition at line 64 of file RPCMultiplicityTest.h.

Referenced by beginJob(), endRun(), and ~RPCMultiplicityTest().

std::string RPCMultiplicityTest::globalFolder_ [private]

Definition at line 52 of file RPCMultiplicityTest.h.

Referenced by endRun(), and RPCMultiplicityTest().

Definition at line 62 of file RPCMultiplicityTest.h.

Referenced by clientOperation(), endRun(), and fillGlobalME().

Definition at line 61 of file RPCMultiplicityTest.h.

Referenced by endRun(), and fillGlobalME().

Definition at line 60 of file RPCMultiplicityTest.h.

Referenced by clientOperation(), endRun(), and fillGlobalME().

Definition at line 59 of file RPCMultiplicityTest.h.

Referenced by endRun(), and fillGlobalME().

std::vector<RPCDetId> RPCMultiplicityTest::myDetIds_ [private]

Definition at line 57 of file RPCMultiplicityTest.h.

Referenced by clientOperation(), and endRun().

Definition at line 56 of file RPCMultiplicityTest.h.

Referenced by clientOperation(), and endRun().

Definition at line 53 of file RPCMultiplicityTest.h.

Referenced by clientOperation(), endRun(), fillGlobalME(), and RPCMultiplicityTest().

Definition at line 54 of file RPCMultiplicityTest.h.

Referenced by endRun(), fillGlobalME(), and RPCMultiplicityTest().

Definition at line 51 of file RPCMultiplicityTest.h.

Referenced by RPCMultiplicityTest().