CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Attributes | Friends

DTLocalTriggerTask Class Reference

#include <DTLocalTriggerTask.h>

Inheritance diagram for DTLocalTriggerTask:
edm::EDAnalyzer

List of all members.

Public Member Functions

 DTLocalTriggerTask (const edm::ParameterSet &ps)
 Constructor.
virtual ~DTLocalTriggerTask ()
 Destructor.

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze.
void beginJob ()
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context)
 To reset the MEs.
void beginRun (const edm::Run &, const edm::EventSetup &)
 Beginrun.
void bookBarrelHistos (std::string histoTag)
 Book the histograms.
void bookHistos (const DTChamberId &dtCh, std::string folder, std::string histoTag)
 Book the histograms.
void bookWheelHistos (int wh, std::string histoTag)
 Book the histograms.
void endJob (void)
 EndJob.
void runDCCAnalysis (std::vector< L1MuDTChambPhDigi > *phTrigs, std::vector< L1MuDTChambThDigi > *thTrigs)
 Run analysis on DCC data.
void runDDUAnalysis (edm::Handle< DTLocalTriggerCollection > &trigsDDU)
 Run analysis on ROS data.
void runDDUvsDCCAnalysis (std::string &trigsrc)
 Run analysis on ROS data.
void runSegmentAnalysis (edm::Handle< DTRecSegment4DCollection > &segments4D)
 Run analysis using DT 4D segments.
void setQLabels (MonitorElement *me, short int iaxis)
 Set Quality labels.
std::string & topFolder (bool isDCC)
 Get the Top folder (different between Physics and TP and DCC/DDU)
void triggerSource (const edm::Event &e)
 Get the L1A source.

Private Attributes

std::string baseFolderDCC
std::string baseFolderDDU
DQMStoredbe
MonitorElementdcc_IDDataErrorPlot
int dduphcode_best [6][5][13]
int dduthcode_best [6][5][13]
bool detailedAnalysis
std::map< uint32_t, std::map
< std::string, MonitorElement * > > 
digiHistos
bool doDCCTheta
const L1MuDTChambPhDigiiphbest [6][5][13]
const DTLocalTriggeriphbestddu [6][5][13]
const L1MuDTChambThDigiithbest [6][5][13]
int mapDTTF [6][13][2]
edm::ESHandle< DTGeometrymuonGeom
int nevents
edm::ParameterSet parameters
int phcode_best [6][5][13]
int thcode_best [6][5][13]
bool tpMode
bool track_ok [6][5][15]
DTTrigGeomUtilstrigGeomUtils
std::string trigsrc
bool useDCC
bool useDDU
bool useSEG
std::map< int, std::map
< std::string, MonitorElement * > > 
wheelHistos

Friends

class DTMonitorModule

Detailed Description

Definition at line 44 of file DTLocalTriggerTask.h.


Constructor & Destructor Documentation

DTLocalTriggerTask::DTLocalTriggerTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 40 of file DTLocalTriggerTask.cc.

References baseFolderDCC, baseFolderDDU, dbe, detailedAnalysis, doDCCTheta, edm::ParameterSet::getUntrackedParameter(), LogTrace, cmsCodeRules::cppFunctionSkipper::operator, parameters, and tpMode.

                                                                : trigGeomUtils(0) {
  
  LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerTask") << "[DTLocalTriggerTask]: Constructor"<<endl;

  tpMode           = ps.getUntrackedParameter<bool>("testPulseMode", false);
  detailedAnalysis = ps.getUntrackedParameter<bool>("detailedAnalysis", false);
  doDCCTheta       = ps.getUntrackedParameter<bool>("enableDCCTheta", false);
  
  if (tpMode) {
    baseFolderDCC = "DT/11-LocalTriggerTP-DCC/";
    baseFolderDDU = "DT/12-LocalTriggerTP-DDU/";
  }
  else {
    baseFolderDCC = "DT/03-LocalTrigger-DCC/";
    baseFolderDDU = "DT/04-LocalTrigger-DDU/";
  }

  parameters = ps;
  
  dbe = edm::Service<DQMStore>().operator->();

}
DTLocalTriggerTask::~DTLocalTriggerTask ( ) [virtual]

Destructor.

Definition at line 64 of file DTLocalTriggerTask.cc.

References LogTrace, nevents, and trigGeomUtils.

                                        {

  LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerTask") << "[DTLocalTriggerTask]: analyzed " << nevents << " events" << endl;
  if (trigGeomUtils) { delete trigGeomUtils; }

}

Member Function Documentation

void DTLocalTriggerTask::analyze ( const edm::Event e,
const edm::EventSetup c 
) [protected, virtual]

Analyze.

Implements edm::EDAnalyzer.

Definition at line 248 of file DTLocalTriggerTask.cc.

References edm::Event::getByLabel(), edm::ParameterSet::getUntrackedParameter(), edm::HandleBase::isValid(), nevents, parameters, runDCCAnalysis(), runDDUAnalysis(), runDDUvsDCCAnalysis(), runSegmentAnalysis(), tpMode, triggerSource(), trigsrc, useDCC, useDDU, and useSEG.

                                                                         {
  
  string dcc_label  = parameters.getUntrackedParameter<string>("dcc_label", "dttpgprod");
  string ros_label  = parameters.getUntrackedParameter<string>("ros_label", "dtunpacker");
  string seg_label  = parameters.getUntrackedParameter<string>("seg_label", "dt4DSegments");

  if (!nevents){

    edm::Handle<L1MuDTChambPhContainer> l1DTTPGPh;
    e.getByLabel(dcc_label, l1DTTPGPh);
    edm::Handle<L1MuDTChambThContainer> l1DTTPGTh;
    e.getByLabel(dcc_label, l1DTTPGTh);
    useDCC = (l1DTTPGPh.isValid() || l1DTTPGTh.isValid()) && parameters.getUntrackedParameter<bool>("process_dcc", true) ;

    Handle<DTLocalTriggerCollection> l1DDUTrigs;
    e.getByLabel(ros_label,l1DDUTrigs);
    useDDU = l1DDUTrigs.isValid() && parameters.getUntrackedParameter<bool>("process_ros", true) ;

    Handle<DTRecSegment4DCollection> all4DSegments;
    e.getByLabel(seg_label, all4DSegments);  
    useSEG = all4DSegments.isValid() && parameters.getUntrackedParameter<bool>("process_seg", true) ;
    
  }

  nevents++;
    
  triggerSource(e);  

  if ( useDCC ) {   
    edm::Handle<L1MuDTChambPhContainer> l1DTTPGPh;
    e.getByLabel(dcc_label,l1DTTPGPh);
    vector<L1MuDTChambPhDigi>*  l1PhTrig = l1DTTPGPh->getContainer();

    edm::Handle<L1MuDTChambThContainer> l1DTTPGTh;
    e.getByLabel(dcc_label,l1DTTPGTh);
    vector<L1MuDTChambThDigi>*  l1ThTrig = l1DTTPGTh->getContainer();

    runDCCAnalysis(l1PhTrig,l1ThTrig);
  }  
  if ( useDDU ) {
    Handle<DTLocalTriggerCollection> l1DDUTrigs;
    e.getByLabel(ros_label,l1DDUTrigs);

    runDDUAnalysis(l1DDUTrigs);
  }
  if ( !tpMode && useSEG ) {
    Handle<DTRecSegment4DCollection> segments4D;
    e.getByLabel(seg_label, segments4D);  
    
    runSegmentAnalysis(segments4D);
  } 
  if ( !tpMode && useDCC && useDDU ) {
    runDDUvsDCCAnalysis(trigsrc);
  }

}
void DTLocalTriggerTask::beginJob ( void  ) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 72 of file DTLocalTriggerTask.cc.

References LogTrace, and nevents.

                                 {
 
  LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerTask") << "[DTLocalTriggerTask]: BeginJob" << endl;

  nevents = 0;

}
void DTLocalTriggerTask::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup context 
) [protected, virtual]

To reset the MEs.

Reimplemented from edm::EDAnalyzer.

Definition at line 220 of file DTLocalTriggerTask.cc.

References digiHistos, edm::ParameterSet::getUntrackedParameter(), timingPdfMaker::histo, edm::LuminosityBlockBase::id(), LogTrace, edm::LuminosityBlockID::luminosityBlock(), and parameters.

                                                                                                       {
  
  LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerTask") << "[DTLocalTriggerTask]: Begin of LS transition" << endl;
  
  if(lumiSeg.id().luminosityBlock()%parameters.getUntrackedParameter<int>("ResetCycle", 3) == 0) {
    for(map<uint32_t, map<string, MonitorElement*> > ::const_iterator histo = digiHistos.begin();
        histo != digiHistos.end();
        histo++) {
      for(map<string, MonitorElement*> ::const_iterator ht = (*histo).second.begin();
          ht != (*histo).second.end();
          ht++) {
        (*ht).second->Reset();
      }
    }
  }
  
}
void DTLocalTriggerTask::beginRun ( const edm::Run run,
const edm::EventSetup context 
) [protected, virtual]

Beginrun.

Reimplemented from edm::EDAnalyzer.

Definition at line 80 of file DTLocalTriggerTask.cc.

References bookBarrelHistos(), bookHistos(), bookWheelHistos(), detailedAnalysis, doDCCTheta, edm::EventSetup::get(), edm::ParameterSet::getUntrackedParameter(), LogTrace, muonGeom, parameters, tpMode, and trigGeomUtils.

                                                                                 {

  LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerTask") << "[DTLocalTriggerTask]: BeginRun" << endl;   

  context.get<MuonGeometryRecord>().get(muonGeom);
  trigGeomUtils = new DTTrigGeomUtils(muonGeom);

  if(parameters.getUntrackedParameter<bool>("staticBooking", true)) {  // Static histo booking
   
    vector<string> trigSources;
    if(parameters.getUntrackedParameter<bool>("localrun", true)) {
      trigSources.push_back("");
    }
    else {
      trigSources.push_back("_DTonly");
      trigSources.push_back("_NoDT");
      trigSources.push_back("_DTalso");
    }
    vector<string>::const_iterator trigSrcIt  = trigSources.begin();
    vector<string>::const_iterator trigSrcEnd = trigSources.end();
   
    if(parameters.getUntrackedParameter<bool>("process_dcc", true)) {
      bookBarrelHistos("DCC_ErrorsChamberID");
    }

    if (tpMode) {
      for (int stat=1;stat<5;++stat){
        for (int wh=-2;wh<3;++wh){
          for (int sect=1;sect<13;++sect){
            DTChamberId dtChId(wh,stat,sect);
            
            if (parameters.getUntrackedParameter<bool>("process_dcc", true)){ // DCC data
              bookHistos(dtChId,"LocalTriggerPhi","DCC_BXvsQual"+(*trigSrcIt));
              bookHistos(dtChId,"LocalTriggerPhi","DCC_QualvsPhirad"+(*trigSrcIt));
            }
            
            if (parameters.getUntrackedParameter<bool>("process_ros", true)){ // DDU data             
              bookHistos(dtChId,"LocalTriggerPhi","DDU_BXvsQual"+(*trigSrcIt));
            }
            
          }
        }
      } // end of loop
    }
    else {
      for (;trigSrcIt!=trigSrcEnd;++trigSrcIt){
        for (int wh=-2;wh<3;++wh){
          if (parameters.getUntrackedParameter<bool>("process_dcc", true) &&
              parameters.getUntrackedParameter<bool>("process_ros", true)){ // DCC+DDU data
            bookWheelHistos(wh,"COM_BXDiff"+(*trigSrcIt));
          }
          for (int sect=1;sect<13;++sect){
            for (int stat=1;stat<5;++stat){
              DTChamberId dtChId(wh,stat,sect);
              if (parameters.getUntrackedParameter<bool>("process_dcc", true)){ // DCC data
              
                bookHistos(dtChId,"LocalTriggerPhi","DCC_BXvsQual"+(*trigSrcIt));
                if (detailedAnalysis) {
                  bookHistos(dtChId,"LocalTriggerPhi","DCC_QualvsPhirad"+(*trigSrcIt));
                  bookHistos(dtChId,"LocalTriggerPhi","DCC_QualvsPhibend"+(*trigSrcIt));
                }
                bookHistos(dtChId,"LocalTriggerPhi","DCC_Flag1stvsQual"+(*trigSrcIt));
                bookHistos(dtChId,"LocalTriggerPhi","DCC_BestQual"+(*trigSrcIt));
                if (stat!=4 && doDCCTheta){                                                  
                  bookHistos(dtChId,"LocalTriggerTheta","DCC_PositionvsBX"+(*trigSrcIt));
//                bookHistos(dtChId,"LocalTriggerTheta","DCC_PositionvsQual"+(*trigSrcIt));  // DCC theta quality not available!        
//                bookHistos(dtChId,"LocalTriggerTheta","DCC_ThetaBXvsQual"+(*trigSrcIt));
//                bookHistos(dtChId,"LocalTriggerTheta","DCC_ThetaBestQual"+(*trigSrcIt));
                }
              
                if (parameters.getUntrackedParameter<bool>("process_seg", true)){ // DCC + Segemnt
                  bookHistos(dtChId,"Segment","DCC_PhitkvsPhitrig"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_PhibtkvsPhibtrig"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_PhiResidual"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_PhiResidualvsLUTPhi"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_PhibResidual"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_HitstkvsQualtrig"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_TrackPosvsAngle"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_TrackPosvsAngleandTrig"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DCC_TrackPosvsAngleandTrigHHHL"+(*trigSrcIt));
                  if(stat!=4){
                    bookHistos(dtChId,"Segment","DCC_TrackThetaPosvsAngle"+(*trigSrcIt)); // theta view
                    bookHistos(dtChId,"Segment","DCC_TrackThetaPosvsAngleandTrig"+(*trigSrcIt));
//                  bookHistos(dtChId,"Segment","DCC_TrackThetaPosvsAngleandTrigH"+(*trigSrcIt));     // DCC theta quality not available!
                  }
                }
              
              }
            
              if (parameters.getUntrackedParameter<bool>("process_ros", true)){ // DDU data
              
                bookHistos(dtChId,"LocalTriggerPhi","DDU_BXvsQual"+(*trigSrcIt));
                bookHistos(dtChId,"LocalTriggerPhi","DDU_Flag1stvsQual"+(*trigSrcIt));
                bookHistos(dtChId,"LocalTriggerPhi","DDU_BestQual"+(*trigSrcIt));
                if(stat!=4){                                                    // theta view
                  bookHistos(dtChId,"LocalTriggerTheta","DDU_ThetaBXvsQual"+(*trigSrcIt));
                  bookHistos(dtChId,"LocalTriggerTheta","DDU_ThetaBestQual"+(*trigSrcIt));
                }
              
                if (parameters.getUntrackedParameter<bool>("process_seg", true)){ // DDU + Segment
                  bookHistos(dtChId,"Segment","DDU_HitstkvsQualtrig"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DDU_TrackPosvsAngle"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DDU_TrackPosvsAngleandTrig"+(*trigSrcIt));
                  bookHistos(dtChId,"Segment","DDU_TrackPosvsAngleandTrigHHHL"+(*trigSrcIt));
                  if(stat!=4){
                    bookHistos(dtChId,"Segment","DDU_TrackThetaPosvsAngle"+(*trigSrcIt)); // theta view
                    bookHistos(dtChId,"Segment","DDU_TrackThetaPosvsAngleandTrig"+(*trigSrcIt));
                    bookHistos(dtChId,"Segment","DDU_TrackThetaPosvsAngleandTrigH"+(*trigSrcIt));
                  }
                }
              
              }
            
              if (parameters.getUntrackedParameter<bool>("process_dcc", true) &&
                  parameters.getUntrackedParameter<bool>("process_ros", true)){ // DCC+DDU data
                bookHistos(dtChId,"LocalTriggerPhi","COM_QualDDUvsQualDCC"+(*trigSrcIt));
              }
            
            }
          }
          for (int sect=13;sect<15;++sect){
            DTChamberId dtChId(wh,4,sect);
            if (parameters.getUntrackedParameter<bool>("process_dcc", true) &&
                parameters.getUntrackedParameter<bool>("process_seg", true)){ // DCC+SEG LUTs data
              bookHistos(dtChId,"Segment","DCC_PhitkvsPhitrig"+(*trigSrcIt));
              bookHistos(dtChId,"Segment","DCC_PhibtkvsPhibtrig"+(*trigSrcIt));
              bookHistos(dtChId,"Segment","DCC_PhiResidual"+(*trigSrcIt));
              bookHistos(dtChId,"Segment","DCC_PhiResidualvsLUTPhi"+(*trigSrcIt));
              bookHistos(dtChId,"Segment","DCC_PhibResidual"+(*trigSrcIt));
            }
          }     
        }                 
      }// end of loop
    }
    
  }

}
void DTLocalTriggerTask::bookBarrelHistos ( std::string  histoTag) [protected]

Book the histograms.

Definition at line 306 of file DTLocalTriggerTask.cc.

References DQMStore::book1D(), dbe, dcc_IDDataErrorPlot, MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), and topFolder().

Referenced by beginRun().

                                                         {

  bool isDCC = histoTag.substr(0,3) == "DCC";
  dbe->setCurrentFolder(topFolder(isDCC));
  if (histoTag == "DCC_ErrorsChamberID") {
    dcc_IDDataErrorPlot = dbe->book1D(histoTag.c_str(),"DCC Data ID Error",5,-2,3);
    dcc_IDDataErrorPlot->setAxisTitle("wheel",1);
  }
  
  return;

}
void DTLocalTriggerTask::bookHistos ( const DTChamberId dtCh,
std::string  folder,
std::string  histoTag 
) [protected]
void DTLocalTriggerTask::bookWheelHistos ( int  wh,
std::string  histoTag 
) [protected]

Book the histograms.

Referenced by beginRun().

void DTLocalTriggerTask::endJob ( void  ) [protected, virtual]

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 239 of file DTLocalTriggerTask.cc.

References dbe, edm::ParameterSet::getUntrackedParameter(), nevents, parameters, DQMStore::rmdir(), and topFolder().

                               {

  LogVerbatim("DTDQM|DTMonitorModule|DTLocalTriggerTask") << "[DTLocalTriggerTask]: analyzed " << nevents << " events" << endl;
  if (parameters.getUntrackedParameter<bool>("process_dcc", true)) dbe->rmdir(topFolder(0)); //DDU folder
  if (parameters.getUntrackedParameter<bool>("process_ros", true)) dbe->rmdir(topFolder(1)); //DCC folder

}
void DTLocalTriggerTask::runDCCAnalysis ( std::vector< L1MuDTChambPhDigi > *  phTrigs,
std::vector< L1MuDTChambThDigi > *  thTrigs 
) [protected]

Run analysis on DCC data.

Definition at line 507 of file DTLocalTriggerTask.cc.

References angle(), bookHistos(), dcc_IDDataErrorPlot, detailedAnalysis, digiHistos, doDCCTheta, MonitorElement::Fill(), i, iphbest, ithbest, j, gen::k, phcode_best, pos, DetId::rawId(), thcode_best, tpMode, DTTrigGeomUtils::trigDir(), trigGeomUtils, DTTrigGeomUtils::trigPos(), trigsrc, and x.

Referenced by analyze().

                                                                                {

  string histoType ;
  string histoTag ;

  // define best quality trigger segment (phi and theta)  
  // in any station start from 1 and zero is kept empty
  for (int i=0;i<5;++i){
    for (int j=0;j<6;++j){
      for (int k=0;k<13;++k){
        phcode_best[j][i][k] = -1;
        thcode_best[j][i][k] = -1;
      }
    }
  }

  vector<L1MuDTChambPhDigi>::const_iterator iph  = phTrigs->begin();
  vector<L1MuDTChambPhDigi>::const_iterator iphe = phTrigs->end();
  for(; iph !=iphe ; ++iph) {

    int phwheel = iph->whNum();
    int phsec   = iph->scNum() + 1; // SM The track finder goes from 0 to 11. I need them from 1 to 12 !!!!!
    int phst    = iph->stNum();
    int phbx    = iph->bxNum();
    int phcode  = iph->code();
    int phi1st  = iph->Ts2Tag();

    // FIXME: workaround for DCC data with station ID 
    if(phst == 0) {
      dcc_IDDataErrorPlot->Fill(phwheel);
      continue;
    }

    if(phcode>phcode_best[phwheel+3][phst][phsec] && phcode<7) {
      phcode_best[phwheel+3][phst][phsec]=phcode; 
      iphbest[phwheel+3][phst][phsec] = &(*iph);
    }
      
    DTChamberId dtChId(phwheel,phst,phsec);
      
    float x     = trigGeomUtils->trigPos(&(*iph));
    float angle = trigGeomUtils->trigDir(&(*iph));
    uint32_t indexCh = dtChId.rawId();
    
    map<string, MonitorElement*> &innerME = digiHistos[indexCh];
    if (innerME.find("DCC_BXvsQual"+trigsrc) == innerME.end()){
      if (tpMode) {
        bookHistos(dtChId,"LocalTriggerPhi","DCC_BXvsQual"+trigsrc);
        bookHistos(dtChId,"LocalTriggerPhi","DCC_QualvsPhirad"+trigsrc);
      }
      else {
        bookHistos(dtChId,"LocalTriggerPhi","DCC_BXvsQual"+trigsrc);
        bookHistos(dtChId,"LocalTriggerPhi","DCC_Flag1stvsQual"+trigsrc);
        if (detailedAnalysis) {
          bookHistos(dtChId,"LocalTriggerPhi","DCC_QualvsPhirad"+trigsrc);
          bookHistos(dtChId,"LocalTriggerPhi","DCC_QualvsPhibend"+trigsrc);
        }
      }
    }

    if (tpMode) {
      innerME.find("DCC_BXvsQual"+trigsrc)->second->Fill(phcode,phbx-phi1st);    // SM BX vs Qual Phi view (1st tracks) 
      innerME.find("DCC_QualvsPhirad"+trigsrc)->second->Fill(x,phcode);          // SM Qual vs radial angle Phi view
    }
    else {
      innerME.find("DCC_BXvsQual"+trigsrc)->second->Fill(phcode,phbx-phi1st);    // SM BX vs Qual Phi view (1st tracks) 
      innerME.find("DCC_Flag1stvsQual"+trigsrc)->second->Fill(phcode,phi1st);    // SM Qual 1st/2nd track flag Phi view
      if (detailedAnalysis) {
        innerME.find("DCC_QualvsPhirad"+trigsrc)->second->Fill(x,phcode);          // SM Qual vs radial angle Phi view
        innerME.find("DCC_QualvsPhibend"+trigsrc)->second->Fill(angle,phcode);     // SM Qual vs bending Phi view
      }
    }
      
  } 

  if (doDCCTheta) {
    int thcode[7];
    vector<L1MuDTChambThDigi>::const_iterator ith  = thTrigs->begin();
    vector<L1MuDTChambThDigi>::const_iterator ithe = thTrigs->end();
    for(; ith != ithe; ++ith) {
      int thwheel = ith->whNum();
      int thsec   = ith->scNum() + 1; // SM The track finder goes from 0 to 11. I need them from 1 to 12 !!!!!
      int thst    = ith->stNum();
      int thbx    = ith->bxNum();
      
      for (int pos=0; pos<7; pos++) {
        thcode[pos] = ith->code(pos);

        if(thcode[pos]>thcode_best[thwheel+3][thst][thsec] ) {
          thcode_best[thwheel+3][thst][thsec]=thcode[pos]; 
          ithbest[thwheel+3][thst][thsec] = &(*ith);
        }
      } 
      
      DTChamberId dtChId(thwheel,thst,thsec);
      uint32_t indexCh = dtChId.rawId();   

      map<string, MonitorElement*> &innerME = digiHistos[indexCh];
      if (innerME.find("DCC_PositionvsBX"+trigsrc) == innerME.end()){
        bookHistos(dtChId,"LocalTriggerTheta","DCC_PositionvsBX"+trigsrc);
//      if (detailedAnalysis) {
//        bookHistos(dtChId,"LocalTriggerTheta","DCC_PositionvsBX"+trigsrc);
//        bookHistos(dtChId,"LocalTriggerTheta","DCC_PositionvsQual"+trigsrc);
//      }
      }

      for (int pos=0; pos<7; pos++) { //SM fill position for non zero position bit in theta view
        if(thcode[pos]>0){
          innerME.find("DCC_PositionvsBX"+trigsrc)->second->Fill(thbx,pos);          // SM BX vs Position Theta view
//        if (detailedAnalysis) {
//          int thqual = (thcode[pos]/2)*2+1;
//          innerME.find("DCC_ThetaBXvsQual"+trigsrc)->second->Fill(thqual,thbx);      // SM BX vs Code Theta view
//          innerME.find("DCC_PositionvsQual"+trigsrc)->second->Fill(thqual,pos);      // SM Code vs Position Theta view
//        }
        }
      }
    }
  }

  
  // Fill Quality plots with best DCC triggers in phi & theta
  if (!tpMode) {
    for (int st=1;st<5;++st){
      for (int wh=-2;wh<3;++wh){
        for (int sc=1;sc<13;++sc){
          if (phcode_best[wh+3][st][sc]>-1 && phcode_best[wh+3][st][sc]<7){
            DTChamberId id(wh,st,sc);
            uint32_t indexCh = id.rawId();
            map<string, MonitorElement*> &innerME = digiHistos[indexCh];
            if (innerME.find("DCC_BestQual"+trigsrc) == innerME.end())
              bookHistos(id,"LocalTriggerPhi","DCC_BestQual"+trigsrc);
            innerME.find("DCC_BestQual"+trigsrc)->second->Fill(phcode_best[wh+3][st][sc]);  // Best Qual Trigger Phi view
          }
//        if (thcode_best[wh+3][st][sc]>0){
//          DTChamberId id(wh,st,sc);
//          uint32_t indexCh = id.rawId();
//          map<string, MonitorElement*> &innerME = digiHistos[indexCh];
//          if (innerME.find("DCC_ThetaBestQual"+trigsrc) == innerME.end())
//            bookHistos(id,"LocalTriggerTheta","DCC_ThetaBestQual"+trigsrc);
//          innerME.find("DCC_ThetaBestQual"+trigsrc)->second->Fill(thcode_best[wh+3][st][sc]); // Best Qual Trigger Theta view
//        }
        }
      }
    }
  }

}
void DTLocalTriggerTask::runDDUAnalysis ( edm::Handle< DTLocalTriggerCollection > &  trigsDDU) [protected]

Run analysis on ROS data.

Definition at line 656 of file DTLocalTriggerTask.cc.

References bookHistos(), dduphcode_best, dduthcode_best, digiHistos, i, iphbestddu, j, gen::k, DetId::rawId(), tpMode, and trigsrc.

Referenced by analyze().

                                                                                 {
    
  DTLocalTriggerCollection::DigiRangeIterator detUnitIt;
    
  for (int i=0;i<5;++i){
    for (int j=0;j<6;++j){
      for (int k=0;k<13;++k){
        dduphcode_best[j][i][k] = -1;
        dduthcode_best[j][i][k] = -1;
      }
    }
  }

  for (detUnitIt=trigsDDU->begin();
       detUnitIt!=trigsDDU->end();
       ++detUnitIt){
      
    const DTChamberId& id = (*detUnitIt).first;
    const DTLocalTriggerCollection::Range& range = (*detUnitIt).second;
    uint32_t indexCh = id.rawId();
    map<string, MonitorElement*> &innerME = digiHistos[indexCh];
      
    int wh = id.wheel();
    int sec = id.sector();
    int st = id.station();

    for (DTLocalTriggerCollection::const_iterator trigIt = range.first;
         trigIt!=range.second;
         ++trigIt){
        
      int bx = trigIt->bx();
      int quality = trigIt->quality();
      int thqual = trigIt->trTheta();
      int flag1st = trigIt->secondTrack() ? 1 : 0;

      // check if SC data exist: fill for any trigger
      if( quality>-1 && quality<7 ) {     // it is a phi trigger
        
        if(quality>dduphcode_best[wh+3][st][sec]) {
          dduphcode_best[wh+3][st][sec]=quality;
          iphbestddu[wh+3][st][sec] = &(*trigIt);
        }
        
        if (innerME.find("DDU_BXvsQual"+trigsrc) == innerME.end()){
          bookHistos(id,"LocalTriggerPhi","DDU_BXvsQual"+trigsrc);
          bookHistos(id,"LocalTriggerPhi","DDU_Flag1stvsQual"+trigsrc);
        }

        if(tpMode) {      
          innerME.find("DDU_BXvsQual"+trigsrc)->second->Fill(quality,bx-flag1st);     // SM BX vs Qual Phi view 
        }
        else {
          innerME.find("DDU_BXvsQual"+trigsrc)->second->Fill(quality,bx-flag1st);     // SM BX vs Qual Phi view 
          innerME.find("DDU_Flag1stvsQual"+trigsrc)->second->Fill(quality,flag1st); // SM Quality vs 1st/2nd track flag Phi view
        }
      }
      if( thqual>0 && !tpMode ) {  // it is a theta trigger
        
        if(thqual>dduthcode_best[wh+3][st][sec] ) {
          dduthcode_best[wh+3][st][sec]=thqual; 
        }
        if (innerME.find("DDU_ThetaBXvsQual"+trigsrc) == innerME.end())
          bookHistos(id,"LocalTriggerTheta","DDU_ThetaBXvsQual"+trigsrc);
        innerME.find("DDU_ThetaBXvsQual"+trigsrc)->second->Fill(thqual,bx);     // SM BX vs Qual Theta view
        
      }
    }
    
    // Fill Quality plots with best ddu triggers in phi & theta
    if (!tpMode) {
      if (dduphcode_best[wh+3][st][sec]>-1 &&
          dduphcode_best[wh+3][st][sec]<7){
        if (innerME.find("DDU_BestQual"+trigsrc) == innerME.end())
          bookHistos(id,"LocalTriggerPhi","DDU_BestQual"+trigsrc);
        innerME.find("DDU_BestQual"+trigsrc)->second->Fill(dduphcode_best[wh+3][st][sec]);  // Best Qual Trigger Phi view
      }
      if (dduthcode_best[wh+3][st][sec]>0){
        if (innerME.find("DDU_ThetaBestQual"+trigsrc) == innerME.end())
          bookHistos(id,"LocalTriggerTheta","DDU_ThetaBestQual"+trigsrc);
        innerME.find("DDU_ThetaBestQual"+trigsrc)->second->Fill(dduthcode_best[wh+3][st][sec]); // Best Qual Trigger Theta view
      }  
    }
  }
  
}
void DTLocalTriggerTask::runDDUvsDCCAnalysis ( std::string &  trigsrc) [protected]

Run analysis on ROS data.

Definition at line 965 of file DTLocalTriggerTask.cc.

References bookHistos(), DTLocalTrigger::bx(), L1MuDTChambPhDigi::bxNum(), dduphcode_best, digiHistos, spr::find(), iphbest, iphbestddu, phcode_best, DTLocalTrigger::secondTrack(), L1MuDTChambPhDigi::Ts2Tag(), and wheelHistos.

Referenced by analyze().

                                                           {

  string histoType ;
  string histoTag ;

  for (int st=1;st<5;++st){
    for (int wh=-2;wh<3;++wh){
      for (int sc=1;sc<13;++sc){
        if ( (phcode_best[wh+3][st][sc]>-1 && phcode_best[wh+3][st][sc]<7) ||
             (dduphcode_best[wh+3][st][sc]>-1 && dduphcode_best[wh+3][st][sc]<7) ){
          DTChamberId id(wh,st,sc);
          uint32_t indexCh = id.rawId();
          map<string, MonitorElement*> &innerME = digiHistos[indexCh];
          if (innerME.find("COM_QualDDUvsQualDCC"+trigsrc) == innerME.end())
            bookHistos(id,"LocalTriggerPhi","COM_QualDDUvsQualDCC"+trigsrc);
          innerME.find("COM_QualDDUvsQualDCC"+trigsrc)->second->Fill(phcode_best[wh+3][st][sc],dduphcode_best[wh+3][st][sc]);
          if ( (phcode_best[wh+3][st][sc]>-1 && phcode_best[wh+3][st][sc]<7) &&
               (dduphcode_best[wh+3][st][sc]>-1 && dduphcode_best[wh+3][st][sc]<7) ){
            int bxDDU = iphbestddu[wh+3][st][sc]->bx() - iphbestddu[wh+3][st][sc]->secondTrack();
            int bxDCC = iphbest[wh+3][st][sc]->bxNum() - iphbest[wh+3][st][sc]->Ts2Tag();
            (wheelHistos[wh]).find("COM_BXDiff"+trigsrc)->second->Fill(sc,st,bxDDU-bxDCC);
          }
        }
      }
    }
  }

}
void DTLocalTriggerTask::runSegmentAnalysis ( edm::Handle< DTRecSegment4DCollection > &  segments4D) [protected]

Run analysis using DT 4D segments.

Definition at line 743 of file DTLocalTriggerTask.cc.

References bookHistos(), DTRecSegment4D::chamberId(), DTTrigGeomUtils::computeSCCoordinates(), dduphcode_best, dduthcode_best, DTRecSegment2D::degreesOfFreedom(), digiHistos, DTChamberId, iphbest, phcode_best, DTRecSegment4D::phiSegment(), DetId::rawId(), relativeConstraints::station, thcode_best, track_ok, DTTrigGeomUtils::trigDir(), trigGeomUtils, DTTrigGeomUtils::trigPos(), trigsrc, DTTrigGeomUtils::trigToSeg(), useDCC, useDDU, and DTChamberId::wheel().

Referenced by analyze().

                                                                                       {    

  DTRecSegment4DCollection::const_iterator track;

  // Find best tracks & good tracks
  memset(track_ok,false,450*sizeof(bool));

  DTRecSegment4DCollection::id_iterator chamberId;
  vector<const DTRecSegment4D*> best4DSegments;

  // Preliminary loop finds best 4D Segment and high quality ones
  for (chamberId = segments4D->id_begin(); chamberId != segments4D->id_end(); ++chamberId){

    DTRecSegment4DCollection::range  range = segments4D->get(*chamberId);
    const DTRecSegment4D* tmpBest=0;
    int tmpdof = 0;
    int dof = 0;

    for ( track = range.first; track != range.second; ++track){

      if( (*track).hasPhi() ) {
        
        dof = (*track).phiSegment()->degreesOfFreedom();
        if ( dof>tmpdof ){
          tmpBest = &(*track);
          tmpdof = dof;
        
          int wheel = (*track).chamberId().wheel();
          int sector = (*track).chamberId().sector();
          int station = (*track).chamberId().station();
          if (sector==13){
            sector=4;
          }
          else if (sector==14){
            sector=10;
          }
          track_ok[wheel+3][station][sector] = (!track_ok[wheel+3][station][sector] && dof>=2);
        }

      }
    }
    if (tmpBest) best4DSegments.push_back(tmpBest);
  }
    
  vector<const DTRecSegment4D*>::const_iterator btrack;

  for ( btrack = best4DSegments.begin(); btrack != best4DSegments.end(); ++btrack ){

    if( (*btrack)->hasPhi() ) { // Phi component
        
      int wheel    = (*btrack)->chamberId().wheel();
      int station  = (*btrack)->chamberId().station();
      int sector   = (*btrack)->chamberId().sector();
      int scsector = 0;
      float x_track, y_track, x_angle, y_angle;
      trigGeomUtils->computeSCCoordinates((*btrack),scsector,x_track,x_angle,y_track,y_angle);
      int nHitsPhi = (*btrack)->phiSegment()->degreesOfFreedom()+2;

      DTChamberId dtChId(wheel,station,sector);      // get chamber for LUTs histograms (Sectors 1 to 14)
      uint32_t indexCh = dtChId.rawId(); 
      map<string, MonitorElement*> &innerMECh = digiHistos[indexCh];
      
      DTChamberId dtChIdSC = DTChamberId(wheel,station,scsector);  // get chamber for histograms SC granularity (sectors 1 to 12)
      indexCh = dtChIdSC.rawId(); 
      map<string, MonitorElement*> &innerME = digiHistos[indexCh];

      if (useDDU && 
          dduphcode_best[wheel+3][station][scsector] > -1 && 
          dduphcode_best[wheel+3][station][scsector] < 7 ) {

        // SM hits of the track vs quality of the trigger
        if (innerME.find("DDU_HitstkvsQualtrig"+trigsrc) == innerME.end())
          bookHistos(dtChIdSC,"Segment","DDU_HitstkvsQualtrig"+trigsrc);
        innerME.find("DDU_HitstkvsQualtrig"+trigsrc)->second->Fill(dduphcode_best[wheel+3][station][scsector],nHitsPhi);

      }
        
      if (useDCC &&
          phcode_best[wheel+3][station][scsector] > -1 && 
          phcode_best[wheel+3][station][scsector] < 7 ) {
        
        if (innerME.find("DCC_HitstkvsQualtrig"+trigsrc) == innerME.end()){
          bookHistos(dtChIdSC,"Segment","DCC_HitstkvsQualtrig"+trigsrc);
        }
        innerME.find("DCC_HitstkvsQualtrig"+trigsrc)->second->Fill(phcode_best[wheel+3][station][scsector],nHitsPhi);
     
        if (phcode_best[wheel+3][station][scsector]>3 && nHitsPhi>=7){
          
          float x_trigger     = trigGeomUtils->trigPos(iphbest[wheel+3][station][scsector]);
          float angle_trigger = trigGeomUtils->trigDir(iphbest[wheel+3][station][scsector]);
          trigGeomUtils->trigToSeg(station,x_trigger,x_angle);
            
          if (innerMECh.find("DCC_PhibResidual"+trigsrc) == innerMECh.end()){
            bookHistos(dtChId,"Segment","DCC_PhiResidual"+trigsrc);
            bookHistos(dtChId,"Segment","DCC_PhibResidual"+trigsrc);
            bookHistos(dtChId,"Segment","DCC_PhitkvsPhitrig"+trigsrc);
            bookHistos(dtChId,"Segment","DCC_PhibtkvsPhibtrig"+trigsrc);
            bookHistos(dtChId,"Segment","DCC_HitstkvsQualtrig"+trigsrc);
          }

          innerMECh.find("DCC_PhitkvsPhitrig"+trigsrc)->second->Fill(x_trigger,x_track);
          innerMECh.find("DCC_PhibtkvsPhibtrig"+trigsrc)->second->Fill(angle_trigger,x_angle);
          innerMECh.find("DCC_PhiResidual"+trigsrc)->second->Fill(x_trigger-x_track);
          innerMECh.find("DCC_PhibResidual"+trigsrc)->second->Fill(angle_trigger-x_angle);
        }



      }

      
      if (useDCC) {
          
        // check for triggers elsewhere in the sector
        bool trigFlagDCC =false;
        for (int ist=1; ist<5; ist++){
          if (ist!=station &&
              phcode_best[wheel+3][ist][scsector]>=2 && 
              phcode_best[wheel+3][ist][scsector]<7 &&
              track_ok[wheel+3][ist][scsector]==true){
            trigFlagDCC = true;
            break;
          }
        }
          
        if (trigFlagDCC && fabs(x_angle)<40. && nHitsPhi>=7){

          if (innerME.find("DCC_TrackPosvsAngle"+trigsrc) == innerME.end()){
            bookHistos(dtChIdSC,"Segment","DCC_TrackPosvsAngle"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DCC_TrackPosvsAngleandTrig"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DCC_TrackPosvsAngleandTrigHHHL"+trigsrc);
          }
            
          // position vs angle of track for reconstruced tracks (denom. for trigger efficiency)
          innerME.find("DCC_TrackPosvsAngle"+trigsrc)->second->Fill(x_angle,x_track);     
          if (phcode_best[wheel+3][station][scsector] >= 2 && phcode_best[wheel+3][station][scsector] < 7) {
            innerME.find("DCC_TrackPosvsAngleandTrig"+trigsrc)->second->Fill(x_angle,x_track);    
            if (phcode_best[wheel+3][station][scsector] > 4){  //HH & HL Triggers
              innerME.find("DCC_TrackPosvsAngleandTrigHHHL"+trigsrc)->second->Fill(x_angle,x_track);      
            }         
          }

        }
          
        if ((*btrack)->hasZed() && trigFlagDCC && fabs(y_angle)<40. && (*btrack)->zSegment()->degreesOfFreedom()>=1){

          if (innerME.find("DCC_TrackThetaPosvsAngle"+trigsrc) == innerME.end()){
            bookHistos(dtChIdSC,"Segment","DCC_TrackThetaPosvsAngle"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DCC_TrackThetaPosvsAngleandTrig"+trigsrc);
//          bookHistos(dtChIdSC,"Segment","DCC_TrackThetaPosvsAngleandTrigH"+trigsrc);          no DCC theta qual info
          }

          // position va angle of track for reconstruced tracks (denom. for trigger efficiency) along theta direction
          innerME.find("DCC_TrackThetaPosvsAngle"+trigsrc)->second->Fill(y_angle,y_track);
          if (thcode_best[wheel+3][station][scsector] > 0) {            
            innerME.find("DCC_TrackThetaPosvsAngleandTrig"+trigsrc)->second->Fill(y_angle,y_track);
//          if (thcode_best[wheel+3][station][scsector] == 3) {
//            innerME.find("DCC_TrackThetaPosvsAngleH"+trigsrc)->second->Fill(y_angle,y_track);
//          }            
          }

        }  
      }

      if (useDDU) {
          
        // check for triggers elsewhere in the sector
        bool trigFlagDDU =false;
        for (int ist=1; ist<5; ist++){
          if (ist!=station &&
              dduphcode_best[wheel+3][ist][scsector]>=2 && 
              dduphcode_best[wheel+3][ist][scsector]<7 &&
              track_ok[wheel+3][ist][scsector]==true){
            trigFlagDDU = true;
            break;
          }
        }

        if (trigFlagDDU && fabs(x_angle)<40. && nHitsPhi>=7){

          if (innerME.find("DDU_TrackPosvsAngle"+trigsrc) == innerME.end()){
            bookHistos(dtChIdSC,"Segment","DDU_TrackPosvsAngle"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DDU_TrackPosvsAngleandTrig"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DDU_TrackPosvsAngleandTrigHHHL"+trigsrc);
          }

          // position vs angle of track for reconstruced tracks (denom. for trigger efficiency)
          innerME.find("DDU_TrackPosvsAngle"+trigsrc)->second->Fill(x_angle,x_track);
          if (dduphcode_best[wheel+3][station][scsector] >= 2 && dduphcode_best[wheel+3][station][scsector] < 7) {
          innerME.find("DDU_TrackPosvsAngleandTrig"+trigsrc)->second->Fill(x_angle,x_track);
            if (dduphcode_best[wheel+3][station][scsector] > 4){  //HH & HL Triggers
              innerME.find("DDU_TrackPosvsAngleandTrigHHHL"+trigsrc)->second->Fill(x_angle,x_track);      
            }         
          }

        }
          
        if ((*btrack)->hasZed() && trigFlagDDU && fabs(y_angle)<40. && (*btrack)->zSegment()->degreesOfFreedom()>=1){

          if (innerME.find("DDU_TrackThetaPosvsAngle"+trigsrc) == innerME.end()){
            bookHistos(dtChIdSC,"Segment","DDU_TrackThetaPosvsAngle"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DDU_TrackThetaPosvsAngleandTrig"+trigsrc);
            bookHistos(dtChIdSC,"Segment","DDU_TrackThetaPosvsAngleandTrigH"+trigsrc);
          }

          // position va angle of track for reconstruced tracks (denom. for trigger efficiency) along theta direction
          innerME.find("DDU_TrackThetaPosvsAngle"+trigsrc)->second->Fill(y_angle,y_track);
          if (dduthcode_best[wheel+3][station][scsector] > 0) {         
            innerME.find("DDU_TrackThetaPosvsAngleandTrig"+trigsrc)->second->Fill(y_angle,y_track);
            if (dduthcode_best[wheel+3][station][scsector] == 3) {
              innerME.find("DDU_TrackThetaPosvsAngleandTrigH"+trigsrc)->second->Fill(y_angle,y_track);
            }            
          }

        }  
      }
    }
  } 

}
void DTLocalTriggerTask::setQLabels ( MonitorElement me,
short int  iaxis 
) [protected]

Set Quality labels.

Definition at line 994 of file DTLocalTriggerTask.cc.

References MonitorElement::getTH1(), timingPdfMaker::histo, i, and L1TDQM_cfg::labels.

                                                                      {

  TH1* histo = me->getTH1();
  if (!histo) return;
  
  TAxis* axis=0;
  if (iaxis==1) {
    axis=histo->GetXaxis();
  }
  else if(iaxis==2) {
    axis=histo->GetYaxis();
  }
  if (!axis) return;

  string labels[7] = {"LI","LO","HI","HO","LL","HL","HH"};
  int istart = axis->GetXmin()<-1 ? 2 : 1;
  for (int i=0;i<7;i++) {
    axis->SetBinLabel(i+istart,labels[i].c_str());
  }

}
std::string& DTLocalTriggerTask::topFolder ( bool  isDCC) [inline, protected]

Get the Top folder (different between Physics and TP and DCC/DDU)

Definition at line 101 of file DTLocalTriggerTask.h.

References baseFolderDCC, and baseFolderDDU.

Referenced by bookBarrelHistos(), and endJob().

{ return isDCC ? baseFolderDCC : baseFolderDDU; }
void DTLocalTriggerTask::triggerSource ( const edm::Event e) [protected]

Get the L1A source.

Definition at line 1016 of file DTLocalTriggerTask.cc.

References edm::Event::getByType(), edm::ParameterSet::getUntrackedParameter(), i, parameters, and trigsrc.

Referenced by analyze().

                                                        {
  
  
  if ( !parameters.getUntrackedParameter<bool>("localrun", true) ){
    
    Handle<LTCDigiCollection> ltcdigis;
    e.getByType(ltcdigis);
    
    for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++){
      
      int otherTriggerSum=0;
      for (int i = 1; i < 6; i++) {
        otherTriggerSum += int((*ltc_it).HasTriggered(i));
      }
      if ((*ltc_it).HasTriggered(0) && otherTriggerSum == 0) 
        trigsrc = "_DTonly";
      else if (!(*ltc_it).HasTriggered(0))
        trigsrc = "_NoDT";
      else if ((*ltc_it).HasTriggered(0) && otherTriggerSum > 0)
        trigsrc = "_DTalso";
      
    }
    return;
  }

  trigsrc = "";
  return;

}

Friends And Related Function Documentation

friend class DTMonitorModule [friend]

Definition at line 46 of file DTLocalTriggerTask.h.


Member Data Documentation

std::string DTLocalTriggerTask::baseFolderDCC [private]

Definition at line 109 of file DTLocalTriggerTask.h.

Referenced by DTLocalTriggerTask(), and topFolder().

std::string DTLocalTriggerTask::baseFolderDDU [private]

Definition at line 110 of file DTLocalTriggerTask.h.

Referenced by DTLocalTriggerTask(), and topFolder().

Definition at line 125 of file DTLocalTriggerTask.h.

Referenced by bookBarrelHistos(), DTLocalTriggerTask(), and endJob().

Definition at line 132 of file DTLocalTriggerTask.h.

Referenced by bookBarrelHistos(), and runDCCAnalysis().

int DTLocalTriggerTask::dduphcode_best[6][5][13] [private]

Definition at line 116 of file DTLocalTriggerTask.h.

Referenced by runDDUAnalysis(), runDDUvsDCCAnalysis(), and runSegmentAnalysis().

int DTLocalTriggerTask::dduthcode_best[6][5][13] [private]

Definition at line 118 of file DTLocalTriggerTask.h.

Referenced by runDDUAnalysis(), and runSegmentAnalysis().

Definition at line 112 of file DTLocalTriggerTask.h.

Referenced by beginRun(), DTLocalTriggerTask(), and runDCCAnalysis().

std::map<uint32_t, std::map<std::string, MonitorElement*> > DTLocalTriggerTask::digiHistos [private]

Definition at line 111 of file DTLocalTriggerTask.h.

Referenced by beginRun(), DTLocalTriggerTask(), and runDCCAnalysis().

const L1MuDTChambPhDigi* DTLocalTriggerTask::iphbest[6][5][13] [private]

Definition at line 120 of file DTLocalTriggerTask.h.

Referenced by runDCCAnalysis(), runDDUvsDCCAnalysis(), and runSegmentAnalysis().

const DTLocalTrigger* DTLocalTriggerTask::iphbestddu[6][5][13] [private]

Definition at line 121 of file DTLocalTriggerTask.h.

Referenced by runDDUAnalysis(), and runDDUvsDCCAnalysis().

const L1MuDTChambThDigi* DTLocalTriggerTask::ithbest[6][5][13] [private]

Definition at line 122 of file DTLocalTriggerTask.h.

Referenced by runDCCAnalysis().

int DTLocalTriggerTask::mapDTTF[6][13][2] [private]

Definition at line 119 of file DTLocalTriggerTask.h.

Definition at line 127 of file DTLocalTriggerTask.h.

Referenced by beginRun().

Definition at line 107 of file DTLocalTriggerTask.h.

Referenced by analyze(), beginJob(), endJob(), and ~DTLocalTriggerTask().

int DTLocalTriggerTask::phcode_best[6][5][13] [private]

Definition at line 115 of file DTLocalTriggerTask.h.

Referenced by runDCCAnalysis(), runDDUvsDCCAnalysis(), and runSegmentAnalysis().

int DTLocalTriggerTask::thcode_best[6][5][13] [private]

Definition at line 117 of file DTLocalTriggerTask.h.

Referenced by runDCCAnalysis(), and runSegmentAnalysis().

bool DTLocalTriggerTask::track_ok[6][5][15] [private]

Definition at line 123 of file DTLocalTriggerTask.h.

Referenced by runSegmentAnalysis().

std::string DTLocalTriggerTask::trigsrc [private]

Definition at line 105 of file DTLocalTriggerTask.h.

Referenced by analyze(), and runSegmentAnalysis().

Definition at line 105 of file DTLocalTriggerTask.h.

Referenced by analyze(), and runSegmentAnalysis().

Definition at line 105 of file DTLocalTriggerTask.h.

Referenced by analyze().

std::map<int, std::map<std::string, MonitorElement*> > DTLocalTriggerTask::wheelHistos [private]

Definition at line 130 of file DTLocalTriggerTask.h.

Referenced by runDDUvsDCCAnalysis().