CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
L1TCSCTF Class Reference

#include <L1TCSCTF.h>

Inheritance diagram for L1TCSCTF:
thread_unsafe::DQMEDAnalyzer edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 L1TCSCTF (const edm::ParameterSet &ps)
 
virtual ~L1TCSCTF ()
 
- Public Member Functions inherited from thread_unsafe::DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
 DQMEDAnalyzer (void)
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 
virtual void bookHistograms (DQMStore::IBooker &ibooker, edm::Run const &, edm::EventSetup const &) override
 
virtual void dqmBeginRun (const edm::Run &, const edm::EventSetup &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Attributes

int BxInEvent_
 
edm::EDGetTokenT
< CSCCorrelatedLCTDigiCollection
corrlctsToken_
 
MonitorElementcsc_strip_MEminus11
 
MonitorElementcsc_strip_MEminus12
 
MonitorElementcsc_strip_MEminus13
 
MonitorElementcsc_strip_MEminus21
 
MonitorElementcsc_strip_MEminus22
 
MonitorElementcsc_strip_MEminus31
 
MonitorElementcsc_strip_MEminus32
 
MonitorElementcsc_strip_MEminus41
 
MonitorElementcsc_strip_MEminus42
 
MonitorElementcsc_strip_MEplus11
 
MonitorElementcsc_strip_MEplus12
 
MonitorElementcsc_strip_MEplus13
 
MonitorElementcsc_strip_MEplus21
 
MonitorElementcsc_strip_MEplus22
 
MonitorElementcsc_strip_MEplus31
 
MonitorElementcsc_strip_MEplus32
 
MonitorElementcsc_strip_MEplus41
 
MonitorElementcsc_strip_MEplus42
 
MonitorElementcsc_wire_MEminus11
 
MonitorElementcsc_wire_MEminus12
 
MonitorElementcsc_wire_MEminus13
 
MonitorElementcsc_wire_MEminus21
 
MonitorElementcsc_wire_MEminus22
 
MonitorElementcsc_wire_MEminus31
 
MonitorElementcsc_wire_MEminus32
 
MonitorElementcsc_wire_MEminus41
 
MonitorElementcsc_wire_MEminus42
 
MonitorElementcsc_wire_MEplus11
 
MonitorElementcsc_wire_MEplus12
 
MonitorElementcsc_wire_MEplus13
 
MonitorElementcsc_wire_MEplus21
 
MonitorElementcsc_wire_MEplus22
 
MonitorElementcsc_wire_MEplus31
 
MonitorElementcsc_wire_MEplus32
 
MonitorElementcsc_wire_MEplus41
 
MonitorElementcsc_wire_MEplus42
 
MonitorElementcsctfAFerror
 
MonitorElementcsctfbx
 
MonitorElementcsctfbx_H
 
MonitorElementcsctfChamberOccupancies
 
MonitorElementcsctferrors
 
MonitorElementcsctflcts
 
MonitorElementcsctfntrack
 
MonitorElementcsctfoccupancies
 
MonitorElementcsctfoccupancies_H
 
MonitorElementcsctfTrackEta
 
MonitorElementcsctfTrackEta_H
 
MonitorElementcsctfTrackEtaHighQ
 
MonitorElementcsctfTrackEtaLowQ
 
MonitorElementcsctfTrackM
 
MonitorElementcsctfTrackPhi
 
MonitorElementcsctfTrackPhi_H
 
MonitorElementcscTrackStubNumbers
 
MonitorElementDTstubsTimeTrackMenTimeArrival [12]
 
edm::EDGetTokenT
< CSCTriggerContainer
< csctf::TrackStub > > 
dtStubsToken_
 
bool gangedME11a_
 
edm::InputTag gmtProducer
 
edm::EDGetTokenT
< L1MuGMTReadoutCollection
gmtProducerToken_
 
bool isCSCcand_
 
int L1ABXN
 
edm::InputTag lctProducer
 
std::ofstream logFile_
 
unsigned long long m_ptScaleCacheID
 
unsigned long long m_scalesCacheID
 
edm::InputTag mbProducer
 
edm::EDGetTokenT
< L1CSCTrackCollection
mbtracksToken_
 
MonitorElementme11_lctGblEta
 
MonitorElementme11_lctGblPhi
 
MonitorElementme11_lctLocalPhi
 
MonitorElementme11_lctPackedPhi
 
MonitorElementme11_lctStrip
 
MonitorElementme11_lctWire
 
MonitorElementme42_lctGblEta
 
MonitorElementme42_lctGblPhi
 
bool monitorDaemon_
 
int nev_
 
std::string outputFile_
 
CSCSectorReceiverLUTsrLUTs_ [5]
 
edm::InputTag statusProducer
 
edm::EDGetTokenT
< L1CSCStatusDigiCollection
statusToken_
 
const L1MuTriggerPtScaletpts
 
MonitorElementtrackModeVsQ
 
edm::InputTag trackProducer
 
edm::EDGetTokenT
< L1CSCTrackCollection
tracksToken_
 
const L1MuTriggerScalests
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Detailed Description

Definition at line 58 of file L1TCSCTF.h.

Constructor & Destructor Documentation

L1TCSCTF::L1TCSCTF ( const edm::ParameterSet ps)

Definition at line 25 of file L1TCSCTF.cc.

References edm::ParameterSet::addUntrackedParameter(), corrlctsToken_, dtStubsToken_, Reference_intrackfit_cff::endcap, gangedME11a_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), gmtProducerToken_, edm::InputTag::instance(), edm::InputTag::label(), lctProducer, mbProducer, mbtracksToken_, outputFile_, srLUTs_, relativeConstraints::station, statusProducer, statusToken_, AlCaHLTBitMon_QueryRunRegistry::string, trackProducer, tracksToken_, and verbose_.

28  : gmtProducer( ps.getParameter< InputTag >("gmtProducer") ),
29  lctProducer( ps.getParameter< InputTag >("lctProducer") ),
30  trackProducer( ps.getParameter< InputTag >("trackProducer") ),
31  statusProducer( ps.getParameter< InputTag >("statusProducer") ),
32  mbProducer( ps.getParameter< InputTag >("mbProducer") )
33 {
34 
35  // verbosity switch
36  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
37 
38  if(verbose_) edm::LogInfo("DataNotFound") << "L1TCSCTF: constructor...." << endl;
39 
40  outputFile_ = ps.getUntrackedParameter<string>("outputFile", "");
41  if ( outputFile_.size() != 0 )
42  {
43  edm::LogInfo("DataNotFound") << "L1T Monitoring histograms will be saved to " << outputFile_.c_str() << endl;
44  }
45 
46  bool disable = ps.getUntrackedParameter<bool>("disableROOToutput", false);
47  if(disable){
48  outputFile_="";
49  }
50 
51  gangedME11a_ = ps.getUntrackedParameter<bool>("gangedME11a", false);
52 
53  // instantiate standard on-fly SR LUTs from CSC TF emulator package
54  bzero(srLUTs_,sizeof(srLUTs_));
55  int endcap=1, sector=1; // assume SR LUTs are all same for every sector in either of endcaps
56  bool TMB07=true; // specific TMB firmware
57  // Create a dummy pset for SR LUTs
58  edm::ParameterSet srLUTset;
59  srLUTset.addUntrackedParameter<bool>("ReadLUTs", false);
60  srLUTset.addUntrackedParameter<bool>("Binary", false);
61  srLUTset.addUntrackedParameter<std::string>("LUTPath", "./");
62  for(int station=1,fpga=0; station<=4 && fpga<5; station++)
63  {
64  if(station==1)
65  for(int subSector=0; subSector<2 && fpga<5; subSector++)
66  srLUTs_[fpga++] = new CSCSectorReceiverLUT(endcap, sector, subSector+1, station, srLUTset, TMB07);
67  else
68  srLUTs_[fpga++] = new CSCSectorReceiverLUT(endcap, sector, 0, station, srLUTset, TMB07);
69  }
70 
71  //set Token(-s)
77 
78  gmtProducerToken_ = consumes<L1MuGMTReadoutCollection>(ps.getParameter< InputTag >("gmtProducer"));
79  statusToken_ = consumes<L1CSCStatusDigiCollection>(statusTag_);
80  corrlctsToken_ = consumes<CSCCorrelatedLCTDigiCollection>(corrlctsTag_);
81  tracksToken_ = consumes<L1CSCTrackCollection>(tracksTag_);
82  dtStubsToken_ = consumes<CSCTriggerContainer<csctf::TrackStub> >(dtStubsTag_);
83  mbtracksToken_ = consumes<L1CSCTrackCollection>(mbtracksTag_);
84 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool verbose_
Definition: L1TCSCTF.h:174
edm::InputTag mbProducer
Definition: L1TCSCTF.h:177
std::string outputFile_
Definition: L1TCSCTF.h:173
edm::InputTag statusProducer
Definition: L1TCSCTF.h:177
edm::EDGetTokenT< L1CSCStatusDigiCollection > statusToken_
Definition: L1TCSCTF.h:189
bool gangedME11a_
Definition: L1TCSCTF.h:178
edm::InputTag lctProducer
Definition: L1TCSCTF.h:177
edm::EDGetTokenT< L1CSCTrackCollection > tracksToken_
Definition: L1TCSCTF.h:191
CSCSectorReceiverLUT * srLUTs_[5]
Definition: L1TCSCTF.h:180
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > corrlctsToken_
Definition: L1TCSCTF.h:190
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:207
edm::EDGetTokenT< L1CSCTrackCollection > mbtracksToken_
Definition: L1TCSCTF.h:193
edm::InputTag trackProducer
Definition: L1TCSCTF.h:177
edm::EDGetTokenT< L1MuGMTReadoutCollection > gmtProducerToken_
Definition: L1TCSCTF.h:188
std::string const & label() const
Definition: InputTag.h:42
std::string const & instance() const
Definition: InputTag.h:43
edm::EDGetTokenT< CSCTriggerContainer< csctf::TrackStub > > dtStubsToken_
Definition: L1TCSCTF.h:192
edm::InputTag gmtProducer
Definition: L1TCSCTF.h:177
L1TCSCTF::~L1TCSCTF ( )
virtual

Definition at line 86 of file L1TCSCTF.cc.

References i, and srLUTs_.

87 {
88 
89  for(int i=0; i<5; i++)
90  delete srLUTs_[i]; //free the array of pointers
91 }
int i
Definition: DBlmapReader.cc:9
CSCSectorReceiverLUT * srLUTs_[5]
Definition: L1TCSCTF.h:180

Member Function Documentation

void L1TCSCTF::analyze ( const edm::Event e,
const edm::EventSetup c 
)
protectedvirtual

CAL as Janos adviced

Implements edm::EDAnalyzer.

Definition at line 627 of file L1TCSCTF.cc.

References funct::abs(), BxInEvent_, edm::eventsetup::EventSetupRecord::cacheIdentifier(), corrlctsToken_, csc_strip_MEminus11, csc_strip_MEminus12, csc_strip_MEminus13, csc_strip_MEminus21, csc_strip_MEminus22, csc_strip_MEminus32, csc_strip_MEminus41, csc_strip_MEminus42, csc_strip_MEplus11, csc_strip_MEplus12, csc_strip_MEplus13, csc_strip_MEplus21, csc_strip_MEplus22, csc_strip_MEplus32, csc_strip_MEplus41, csc_strip_MEplus42, csc_wire_MEminus11, csc_wire_MEminus12, csc_wire_MEminus13, csc_wire_MEminus21, csc_wire_MEminus22, csc_wire_MEminus32, csc_wire_MEminus41, csc_wire_MEminus42, csc_wire_MEplus11, csc_wire_MEplus12, csc_wire_MEplus13, csc_wire_MEplus21, csc_wire_MEplus22, csc_wire_MEplus32, csc_wire_MEplus41, csc_wire_MEplus42, csctfbx, csctfbx_H, csctfChamberOccupancies, csctferrors, csctflcts, csctfntrack, csctfoccupancies, csctfoccupancies_H, csctfTrackEta, csctfTrackEta_H, csctfTrackEtaHighQ, csctfTrackEtaLowQ, csctfTrackM, csctfTrackPhi, csctfTrackPhi_H, cscTrackStubNumbers, DTstubsTimeTrackMenTimeArrival, dtStubsToken_, Reference_intrackfit_cff::endcap, csctf::TrackStub::etaValue(), MonitorElement::Fill(), HcalObjRepresent::Fill(), gangedME11a_, edm::EventSetup::get(), edm::Event::getByToken(), L1MuScale::getLowEdge(), L1MuTriggerScales::getPhiScale(), L1MuGMTReadoutCollection::getRecords(), CSCSectorReceiverLUT::globalEtaME(), CSCSectorReceiverLUT::globalPhiME(), gmtProducer, gmtProducerToken_, isCSCcand_, edm::HandleBase::isValid(), L1ABXN, edm::InputTag::label(), lctProducer, CSCSectorReceiverLUT::localPhi(), M_PI, m_ptScaleCacheID, m_scalesCacheID, mbProducer, mbtracksToken_, me11_lctGblEta, me11_lctGblPhi, me11_lctLocalPhi, me11_lctPackedPhi, me11_lctStrip, me11_lctWire, me42_lctGblEta, me42_lctGblPhi, nev_, csctf::TrackStub::phiPacked(), csctf::TrackStub::phiValue(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), relativeConstraints::ring, csctf::TrackStub::setEtaPacked(), CSCTriggerGeometry::setGeometry(), csctf::TrackStub::setPhiPacked(), edm::shift, srLUTs_, relativeConstraints::station, ntuplemaker::status, statusProducer, statusToken_, tpts, trackModeVsQ, trackProducer, testEve_cfg::tracks, tracksToken_, CSCTriggerNumbering::triggerSubSectorFromLabels(), ts, and verbose_.

628 {
629 
631  c.get< L1MuTriggerPtScaleRcd >().cacheIdentifier() != m_ptScaleCacheID ){
632 
634  c.get< L1MuTriggerScalesRcd >().get(scales);
635  ts = scales.product();
637  c.get< L1MuTriggerPtScaleRcd >().get(ptscales);
638  tpts = ptscales.product();
639  m_scalesCacheID = c.get< L1MuTriggerScalesRcd >().cacheIdentifier();
640  m_ptScaleCacheID = c.get< L1MuTriggerPtScaleRcd >().cacheIdentifier();
641 
642  edm::LogInfo("L1TCSCTF") << "Changing triggerscales and triggerptscales...";
643  }
644 
645  int NumCSCTfTracksRep = 0;
646  nev_++;
647  if(verbose_) edm::LogInfo("DataNotFound") << "L1TCSCTF: analyze...." << endl;
648 
650  if( gmtProducer.label() != "null" )
651  { // GMT block
652  e.getByToken(gmtProducerToken_, pCollection);
653  if (!pCollection.isValid())
654  {
655  edm::LogInfo("DataNotFound") << "can't find L1MuGMTReadoutCollection with label "; // << csctfSource_.label() ;
656  return;
657  }
658 
659  L1MuGMTReadoutCollection const* gmtrc = pCollection.product();
660  vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
661  vector<L1MuGMTReadoutRecord>::const_iterator RRItr;
662 
663  // Look if the readout window contains one (and only one CSC cands)
664  // to make it simpler I reject events with more than a CSC cand in the
665  // same readout window
666 
667  // count non-empty candidates in this bx
668  int bxWindow = 0;
669  int nCands = 0;
670 
671  for( RRItr = gmt_records.begin(); RRItr != gmt_records.end(); RRItr++ ) {
672  bxWindow++;
673 
674  // get the csc candidates
675  vector<L1MuRegionalCand> INPCands = RRItr->getCSCCands();
676  vector<L1MuRegionalCand>::const_iterator INPItr;
677 
678  BxInEvent_ = 0;
679  isCSCcand_ = false;
680  int nCandsBx = 0;
681 
682  for( INPItr = INPCands.begin(); INPItr != INPCands.end(); ++INPItr ) {
683  if(!INPItr->empty())
684  {
685  nCandsBx++;
686  nCands++;
687  BxInEvent_ = RRItr->getBxInEvent();
688  if (verbose_) edm::LogInfo("DataNotFound") << "cand " << nCandsBx << " -> assigned CSCTF bx: " << INPItr->bx() << endl;
689  }
690  }
691  if (verbose_)
692  if(nCandsBx) edm::LogInfo("DataNotFound") << nCandsBx << " cands in bx: " << BxInEvent_ << endl;
693  }
694 
695  if (nCands != 1) return;
696  else isCSCcand_ = true;
697  if (verbose_) edm::LogInfo("DataNotFound") << "bxWindow: " << bxWindow << endl;
698 
699  int ncsctftrack = 0;
700  if (verbose_)
701  {
702  edm::LogInfo("DataNotFound") << "\tCSCTFCand ntrack " << ncsctftrack << endl;
703  }
704  } // end of GMT block
705 
706  L1ABXN = -999;
707  if( statusProducer.label() != "null" )
708  {
710  e.getByToken(statusToken_, status);
711  bool integrity=status->first, se=false, sm=false, bx=false, af=false, fmm=false;
712  int nStat = 0;
713 
714  for(std::vector<L1CSCSPStatusDigi>::const_iterator stat=status->second.begin(); stat!=status->second.end(); stat++)
715  {
716  se |= stat->SEs()&0xFFF;
717  sm |= stat->SMs()&0xFFF;
718  bx |= stat->BXs()&0xFFF;
719  af |= stat->AFs()&0xFFF;
720  fmm|= stat->FMM()!=8;
721 
722  if(stat->VPs() != 0)
723  {
724  L1ABXN += stat->BXN();
725  nStat++;
726  }
727  }
728  // compute the average
729  if(nStat!=0) L1ABXN /= nStat;
730  if(integrity) csctferrors->Fill(0.5);
731  if(se) csctferrors->Fill(1.5);
732  if(sm) csctferrors->Fill(2.5);
733  if(bx) csctferrors->Fill(3.5);
734  if(af) csctferrors->Fill(4.5);
735  if(fmm) csctferrors->Fill(5.5);
736  }
737 
738  if( lctProducer.label() != "null" )
739  {
741  c.get<MuonGeometryRecord>().get( pDD );
743 
745  e.getByToken(corrlctsToken_, corrlcts);
746 
747  for(CSCCorrelatedLCTDigiCollection::DigiRangeIterator csc=corrlcts.product()->begin(); csc!=corrlcts.product()->end(); csc++)
748  {
749  CSCCorrelatedLCTDigiCollection::Range range1 = corrlcts.product()->get((*csc).first);
750  for(CSCCorrelatedLCTDigiCollection::const_iterator lct=range1.first; lct!=range1.second; lct++)
751  {
752  int endcap = (*csc).first.endcap()-1;
753  int station = (*csc).first.station()-1;
754  int sector = (*csc).first.triggerSector()-1;
755  int subSector = CSCTriggerNumbering::triggerSubSectorFromLabels((*csc).first);
756  int ring = (*csc).first.ring();
757  int cscId = (*csc).first.triggerCscId()-1;
758  int fpga = ( subSector ? subSector-1 : station+1 );
759  int strip = lct -> getStrip();
760  int keyWire = lct -> getKeyWG();
761  int bx = lct -> getBX();
762 
763 
764  int endcapAssignment = 1;
765  int shift = 1;
766  float sectorArg = sector;
767  //float sectorArg = j;
768 
769  if( endcap == 1 ){
770  endcapAssignment = -1;
771  shift = 2;
772  //sectorArg = sector - 6;
773  }
774 
775  int signedStation = (station + shift)* endcapAssignment;
776  if( (station == 0) && (endcap == 0)) signedStation = subSector - 1;
777  if( (station == 0) && (endcap == 1)) signedStation = (-1)*subSector;
778 
779  float chamberArg1 = cscId * 0.1 + sectorArg;
780  //float chamberArg1 = i*0.1 + sectorArg;
781  //std::cout << "First" << i << " " << sectorArg << " " << chamberArg1 << std::endl;
782 
783  float chamberArg11 = chamberArg1;
784  if(sectorArg == 1) chamberArg1 = chamberArg11 - 0.1;
785  if(sectorArg == 2) chamberArg1 = chamberArg11 - 0.2;
786  if(sectorArg == 3) chamberArg1 = chamberArg11 - 0.3;
787  if(sectorArg == 4) chamberArg1 = chamberArg11 - 0.4;
788  if(sectorArg == 5) chamberArg1 = chamberArg11 - 0.5;
789 
790  //std::cout << "cscId, station, sector, endcap, sectorArg, chamber Arg: " << cscId << ", " << station << ", " <<sector << ", " << endcap << ", " << chamberArg1 << ", " << signedStation << std::endl;
791 
792  csctfChamberOccupancies->Fill(chamberArg1, signedStation);
793  //int bunchX = ( (lct->getBX()) - 6 );
794 
795  //int timingSectorArg = 3*(sector) + (lct->getMPCLink());
796  //if( endcap == 1) timingSectorArg = 3*(sector + 6) + (lct->getMPCLink());
797  //std::cout << "Sector, MPCLink, TSA, endcap: " << sector << ", " << lct->getMPCLink() << ", " << timingSectorArg << ", " << endcap << std::endl;
798 
799  //csctfbx->Fill(timingSectorArg, bunchX );
800  //std::cout << "LCT'S, encap: " << endcap << ", station: " << station << ", sector: " << sector << ", subSector: " << subSector << ", cscId: " << cscId << std:: endl;
801  //End JAG
802 
803  // Check if Det Id is within pysical range:
804  if( endcap<0||endcap>1 || sector<0||sector>6 || station<0||station>3 || cscId<0||cscId>8 || fpga<0||fpga>4)
805  {
806  edm::LogError("L1CSCTF: CSC TP are out of range: ")<<" endcap: "<<(endcap+1)<<" station: "<<(station+1) <<" sector: "<<(sector+1)<<" subSector: "<<subSector<<" fpga: "<<fpga<<" cscId: "<<(cscId+1);
807  continue;
808  }
809  lclphidat lclPhi;
810  try {
811  lclPhi = srLUTs_[fpga]->localPhi(lct->getStrip(), lct->getPattern(), lct->getQuality(), lct->getBend(), gangedME11a_);
812  } catch(cms::Exception &) {
813  bzero(&lclPhi,sizeof(lclPhi));
814  }
815 
816  gblphidat gblPhi;
817  try {
818  gblPhi = srLUTs_[fpga]->globalPhiME(lclPhi.phi_local, lct->getKeyWG(), cscId+1, gangedME11a_);
819  } catch(cms::Exception &) {
820  bzero(&gblPhi,sizeof(gblPhi));
821  }
822 
823  gbletadat gblEta;
824  try {
825  gblEta = srLUTs_[fpga]->globalEtaME(lclPhi.phi_bend_local, lclPhi.phi_local, lct->getKeyWG(), cscId+1, gangedME11a_);
826  } catch(cms::Exception &) {
827  bzero(&gblEta,sizeof(gblEta));
828  }
829 
830 
831  //TrackStub
832  csctf::TrackStub theStub((*lct), (*csc).first);
833  theStub.setPhiPacked(gblPhi.global_phi);
834  theStub.setEtaPacked(gblEta.global_eta);
835 
836  float etaG = theStub.etaValue();
837  float phiG = fmod( theStub.phiValue()+15.0*M_PI/180+(sector)*60.0*M_PI/180, 2.*M_PI );
838 
839 
840  //BX plots
841  // endcap==1: minus side; endcap==0: plus side
842  // station=0,1,2,3; ring=1,2,3;
843  if(endcap==1) {
844  if(station==0) {
845  if(ring==1) csctflcts -> Fill(bx, 8.5);
846  else if(ring==2) csctflcts -> Fill(bx, 7.5);
847  else csctflcts -> Fill(bx, 6.5);
848  } else if(station==1) {
849  if(ring==1) csctflcts -> Fill(bx, 5.5);
850  else csctflcts -> Fill(bx, 4.5);
851  } else if(station==2) {
852  if(ring==1) csctflcts -> Fill(bx, 3.5);
853  else csctflcts -> Fill(bx, 2.5);
854  } else if(station==3) {
855  if(ring==1) csctflcts -> Fill(bx, 1.5);
856  else csctflcts -> Fill(bx, 0.5);
857  }
858 
859  } else {
860  if(station==0) {
861  if(ring==1) csctflcts -> Fill(bx, 9.5);
862  else if(ring==2) csctflcts -> Fill(bx, 10.5);
863  else csctflcts -> Fill(bx, 11.5);
864  } else if(station==1) {
865  if(ring==1) csctflcts -> Fill(bx, 12.5);
866  else csctflcts -> Fill(bx, 13.5);
867  } else if(station==2) {
868  if(ring==1) csctflcts -> Fill(bx, 14.5);
869  else csctflcts -> Fill(bx, 15.5);
870  } else if(station==3) {
871  if(ring==1) csctflcts -> Fill(bx, 16.5);
872  else csctflcts -> Fill(bx, 17.5);
873  }
874  }
875 
876 
877 
878 
879 
880  // only for ME1/1
881  if(station == 0 && ring == 1){
882  me11_lctStrip -> Fill(strip);
883  me11_lctWire -> Fill(keyWire);
884  me11_lctLocalPhi -> Fill(lclPhi.phi_local);
885  me11_lctPackedPhi-> Fill(theStub.phiPacked());
886  me11_lctGblPhi -> Fill(phiG);
887  me11_lctGblEta -> Fill(etaG);
888  }
889 
890  // only for ME4/2
891  if(station == 3 && ring == 2){
892  me42_lctGblPhi -> Fill(phiG);
893  me42_lctGblEta -> Fill(etaG);
894  }
895 
896 
897  //ME1/1
898  if (station == 0 && ring == 1){
899  int realID = cscId+6*sector+3*subSector;
900  if(realID>36) realID -= 36;
901  if(endcap == 0) { csc_strip_MEplus11 -> Fill(realID,strip); csc_wire_MEplus11 -> Fill(realID,keyWire); }
902  if(endcap == 1) { csc_strip_MEminus11 -> Fill(realID,strip); csc_wire_MEminus11 -> Fill(realID,keyWire); }
903  }
904  //ME1/2
905  if (station == 0 && ring == 2){
906  int realID = (cscId-3)+6*sector+3*subSector;
907  if(realID>36) realID -= 36;
908  if(endcap == 0) { csc_strip_MEplus12 -> Fill(realID,strip); csc_wire_MEplus12 -> Fill(realID,keyWire); }
909  if(endcap == 1) { csc_strip_MEminus12 -> Fill(realID,strip); csc_wire_MEminus12 -> Fill(realID,keyWire); }
910  }
911  //ME1/3
912  if (station == 0 && ring == 3){
913  int realID = (cscId-6)+6*sector+3*subSector;
914  if(realID>36) realID -= 36;
915  if(endcap == 0) { csc_strip_MEplus13 -> Fill(realID,strip); csc_wire_MEplus13 -> Fill(realID,keyWire); }
916  if(endcap == 1) { csc_strip_MEminus13 -> Fill(realID,strip); csc_wire_MEminus13 -> Fill(realID,keyWire); }
917  }
918  //ME2/1
919  if (station == 1 && ring == 1){
920  int realID = cscId+3*sector+2;
921  if(realID>18) realID -= 18;
922  if(endcap == 0) { csc_strip_MEplus21 -> Fill(realID,strip); csc_wire_MEplus21 -> Fill(realID,keyWire); }
923  if(endcap == 1) { csc_strip_MEminus21 -> Fill(realID,strip); csc_wire_MEminus21 -> Fill(realID,keyWire); }
924  }
925  //ME2/2
926  if (station == 1 && ring == 2){
927  int realID = (cscId-3)+6*sector+3;
928  if(realID>36) realID -= 36;
929  if(endcap == 0) { csc_strip_MEplus22 -> Fill(realID,strip); csc_wire_MEplus22 -> Fill(realID,keyWire); }
930  if(endcap == 1) { csc_strip_MEminus22 -> Fill(realID,strip); csc_wire_MEminus22 -> Fill(realID,keyWire); }
931  }
932  //ME3/2
933  if (station == 2 && ring == 2){
934  int realID = (cscId-3)+6*sector+3;
935  if(realID>36) realID -= 36;
936  if(endcap == 0) { csc_strip_MEplus32 -> Fill(realID,strip); csc_wire_MEplus32 -> Fill(realID,keyWire); }
937  if(endcap == 1) { csc_strip_MEminus32 -> Fill(realID,strip); csc_wire_MEminus32 -> Fill(realID,keyWire); }
938  }
939  //ME4/1
940  if (station == 3 && ring == 1){
941  int realID = cscId+3*sector+2;
942  if(realID>18) realID -= 18;
943  if(endcap == 0) { csc_strip_MEplus41 -> Fill(realID,strip); csc_wire_MEplus41 -> Fill(realID,keyWire);}
944  if(endcap == 1) { csc_strip_MEminus41 -> Fill(realID,strip); csc_wire_MEminus41 -> Fill(realID,keyWire);}
945  }
946  //ME4/2
947  if (station == 3 && ring == 2){
948  int realID = (cscId-3)+6*sector+3;
949  if(realID>36) realID -= 36;
950  if(endcap == 0) { csc_strip_MEplus42 -> Fill(realID,strip); csc_wire_MEplus42 -> Fill(realID,keyWire); }
951  if(endcap == 1) { csc_strip_MEminus42 -> Fill(realID,strip); csc_wire_MEminus42 -> Fill(realID,keyWire); }
952  }
953 
954 
955 
956 
957 
958 
959  // SR LUT gives packed eta and phi values -> normilize them to 1 by scale them to 'max' and shift by 'min'
960  //float etaP = gblEta.global_eta/127*1.5 + 0.9;
961  //float phiP = (gblPhi.global_phi);// + ( sector )*4096 + station*4096*12) * 1./(4*4096*12);
962  //std::cout << "LCT Eta & Phi Coordinates: " << etaP << ", " << phiP << "." << std::endl;
963  //csctfoccupancies->Fill( gblEta.global_eta/127. * 1.5 + 0.9, (gblPhi.global_phi + ( sector + (endcap?0:6) )*4096 + station*4096*12) * 1./(4*4096*12) );
964  }//lct != range1.scond
965  }//csc!=corrlcts.product()->end()
966  }// lctProducer.label() != "null"
967 
968 
969 
970  if( trackProducer.label() != "null" )
971  {
973  e.getByToken(tracksToken_, tracks);
974  for(L1CSCTrackCollection::const_iterator trk=tracks->begin(); trk<tracks->end(); trk++)
975  {
976 
977  NumCSCTfTracksRep++;
978  long LUTAdd = trk->first.ptLUTAddress();
979  int trigMode = ( (LUTAdd)&0xf0000 ) >> 16;
980  int trEta = (trk->first.eta_packed() );
981 
982 
983  // trk->first.endcap() = 2 for - endcap
984  // = 1 for + endcap
985  //int trEndcap = (trk->first.endcap()==2 ? trk->first.endcap()-3 : trk->first.endcap());
986  if( trk->first.endcap() != 1)
987  {
988  int holder = trEta;
989  trEta = -1*holder;
990  trEta -= 1;
991  }
992 
993  int trSector = 6*(trk->first.endcap()-1)+trk->first.sector();
994  int trBX = trk->first.BX();
995 
996  //Here is what is done with output phi value:
997  //output_phi = (phi / 32) * 3 /16
998  //where:
999  //phi is 12-bit phi, 4096 bins covering 62 degrees
1000  //output_phi is 5-bit value
1001 
1002  //Easy to see that output_phi can have values from 0 to 23, or 24 total combinations.
1003  //This gives per-bin phi value of 62/24 = 2.583333 degrees.
1004 
1005  // Sector 1 nominally starts at 15 degrees but there 1 degree overlap between sectors so 14 degrees effectively
1006  //double trPhi = trk->first.localPhi() * 62. / 24.;
1007  double trPhi = ts->getPhiScale()->getLowEdge(trk->first.localPhi());
1008  double trPhi02PI = fmod(trPhi +
1009  ((trSector-1)*M_PI/3) +
1010  (M_PI*14/180.), 2*M_PI);
1011 
1012  if (trigMode == 15) {
1013  csctfTrackPhi_H -> Fill( trPhi02PI );
1014  csctfTrackEta_H -> Fill( trEta );
1015  csctfoccupancies_H -> Fill( trEta, trPhi02PI );
1016  csctfbx_H -> Fill( trSector, trBX );
1017  }
1018  else{
1019  csctfTrackPhi -> Fill( trPhi02PI );
1020  csctfTrackEta -> Fill( trEta );
1021  csctfoccupancies -> Fill( trEta, trPhi02PI );
1022  csctfbx -> Fill( trSector, trBX );
1023 
1024  // Low Quality / High Quality Eta Distributions
1025  //|eta| < 2.1
1026  if (abs(trEta) < 24) {
1027  if (trigMode == 2 ||
1028  trigMode == 3 ||
1029  trigMode == 4 ||
1030  trigMode == 5 ||
1031  trigMode == 6 ||
1032  trigMode == 7 ||
1033  trigMode == 11 ||
1034  trigMode == 12 ||
1035  trigMode == 13 ||
1036  trigMode == 14 ) csctfTrackEtaHighQ -> Fill (trEta);
1037 
1038  if (trigMode == 8 ||
1039  trigMode == 9 ||
1040  trigMode == 10 ) csctfTrackEtaLowQ -> Fill (trEta);
1041  }
1042  else {//|eta| > 2.1
1043  if (trigMode == 2 ||
1044  trigMode == 3 ||
1045  trigMode == 4 ||
1046  trigMode == 5 ) csctfTrackEtaHighQ -> Fill (trEta);
1047  else
1048  csctfTrackEtaLowQ -> Fill (trEta);
1049  }
1050  }
1051 
1052  csctfTrackM->Fill( trk->first.modeExtended() );
1053 
1054  // we monitor the track quality only on the first link
1055  // so let's make sure to fill the plot if there is something that
1056  // is read from the hardware
1057  int trRank = trk->first.rank();
1058  if (trRank) {
1059  int trQuality = ((trRank>>5)&0x3);
1060  trackModeVsQ->Fill( trk->first.modeExtended(), trQuality );
1061  }
1062 
1063  /*
1064  OLD METHOD FOR FILLING HALO PLOTS, IMPROVED METHOD USING ASSOCIATED TRACK STUBS
1065  BELOW ~LINE 605
1066  if( trigMode == 15 )
1067  {
1068 
1069  double haloVals[4][4];
1070  for( int i = 0; i < 4; i++)
1071  {
1072  haloVals[i][0] = 0;
1073  }
1074 
1075  edm::Handle<CSCCorrelatedLCTDigiCollection> corrlcts;
1076  for(CSCCorrelatedLCTDigiCollection::DigiRangeIterator csc=corrlcts.product()->begin(); csc!=corrlcts.product()->end(); csc++)
1077  {
1078  CSCCorrelatedLCTDigiCollection::Range range1 = corrlcts.product()->get((*csc).first);
1079  for(CSCCorrelatedLCTDigiCollection::const_iterator lct=range1.first; lct!=range1.second; lct++)
1080  {
1081  int endcap = (*csc).first.endcap()-1;
1082  int station = (*csc).first.station()-1;
1083  int sector = (*csc).first.triggerSector()-1;
1084  int cscId = (*csc).first.triggerCscId()-1;
1085  int subSector = CSCTriggerNumbering::triggerSubSectorFromLabels((*csc).first);
1086  int fpga = ( subSector ? subSector-1 : station+1 );
1087 
1088  if(station != 4)
1089  {
1090  int modEnd = 1;
1091  if( endcap == 0 ) modEnd = -1;
1092  int indexHalo = modEnd + station;
1093  if(haloVals[indexHalo][0] == 1.0) haloVals[indexHalo][3] = 1.0;
1094  if(haloVals[indexHalo][0] == 0) haloVals[indexHalo][0] = 1.0;
1095  haloVals[indexHalo][1] = sector*1.0;
1096 
1097  lclphidat lclPhi;
1098  lclPhi = srLUTs_[fpga]->localPhi(lct->getStrip(), lct->getPattern(), lct->getQuality(), lct->getBend());
1099  gblphidat gblPhi;
1100  gblPhi = srLUTs_[fpga]->globalPhiME(lclPhi.phi_local, lct->getKeyWG(), cscId+1);
1101  gbletadat gblEta;
1102  gblEta = srLUTs_[fpga]->globalEtaME(lclPhi.phi_bend_local, lclPhi.phi_local, lct->getKeyWG(), cscId+1);
1103 
1104  haloVals[indexHalo][2] = gblEta.global_eta/127. * 1.5 + 0.9;
1105  } //station1 or 2
1106  } //lct first to second
1107  } //corrlcts
1108 
1109  if( (haloVals[0][0] == 1.) && (haloVals[1][0] == 1.) && (haloVals[0][3] != 1.) && (haloVals[1][3] != 1.) )
1110  {
1111  if( haloVals[0][1] == haloVals[1][1] ){
1112  double delEta23 = haloVals[1][2] - haloVals[0][2];
1113  haloDelEta23->Fill( delEta23 );
1114  }
1115  }
1116 
1117  if( (haloVals[2][0] == 1.) && (haloVals[3][0] == 1.) && (haloVals[2][3] != 1.) && (haloVals[3][3] != 1.) )
1118  {
1119  if( haloVals[2][1] == haloVals[3][1] ){
1120  double delEta23 = haloVals[3][2] - haloVals[2][2];
1121  haloDelEta23->Fill( delEta23 );
1122  }
1123  }
1124  } //halo trigger
1125  */
1126 
1127  int cscTrackStub = 0;
1128  //float haloEta[3];
1129  //for(int i=0; i<3; i++) haloEta[i]=-1.0;
1130  //bool haloME11 = false;
1131  CSCCorrelatedLCTDigiCollection lctsOfTracks=trk->second;
1132  for(CSCCorrelatedLCTDigiCollection::DigiRangeIterator trackStub=lctsOfTracks.begin(); trackStub!=lctsOfTracks.end(); trackStub++)
1133  {
1134  CSCCorrelatedLCTDigiCollection::Range range2 = lctsOfTracks.get((*trackStub).first);
1135  for(CSCCorrelatedLCTDigiCollection::const_iterator lct=range2.first; lct!=range2.second; lct++)
1136  {
1137 // int station = (*trackStub).first.station()-1;
1138 // if(station != 4)
1139 // {
1140 // // int endcap = (*trackStub).first.endcap()-1;
1141 // // int sector = (*trackStub).first.triggerSector()-1;
1142 // int cscId = (*trackStub).first.triggerCscId()-1;
1143 // int subSector = CSCTriggerNumbering::triggerSubSectorFromLabels((*trackStub).first);
1144 // int fpga = ( subSector ? subSector-1 : station+1 );
1145 
1146 // lclphidat lclPhi;
1147 // lclPhi = srLUTs_[fpga]->localPhi(lct->getStrip(), lct->getPattern(), lct->getQuality(), lct->getBend());
1148 // gblphidat gblPhi;
1149 // gblPhi = srLUTs_[fpga]->globalPhiME(lclPhi.phi_local, lct->getKeyWG(), cscId+1);
1150 // gbletadat gblEta;
1151 // gblEta = srLUTs_[fpga]->globalEtaME(lclPhi.phi_bend_local, lclPhi.phi_local, lct->getKeyWG(), cscId+1);
1152 // haloEta[station-1] = gblEta.global_eta/127. * 1.5 + 0.9;
1153 // if(station==1 && cscId<2) haloME11 = true;
1154 // }
1155  cscTrackStub++;
1156  }
1157  }
1158  cscTrackStubNumbers->Fill(cscTrackStub);
1159 
1160 // if(trigMode == 15)
1161 // {
1162 // float dEta13 = haloEta[2]-haloEta[0];
1163 // float dEta12 = haloEta[1]-haloEta[0];
1164 // if(haloME11)
1165 // {
1166 // if(haloEta[1]!=-1.0) haloDelEta112->Fill(dEta12);
1167 // if(haloEta[2]!=-1.0) haloDelEta113->Fill(dEta13);
1168 // } else {
1169 // if(haloEta[1]!=-1.0) haloDelEta12->Fill(dEta12);
1170 // if(haloEta[2]!=-1.0) haloDelEta13->Fill(dEta13);
1171 // }
1172 // }
1173  //
1174 
1175 
1176 
1177  }
1178  }
1179  csctfntrack->Fill(NumCSCTfTracksRep);
1180 
1181 
1182  if( mbProducer.label() != "null" )
1183  {
1184  // handle to needed collections
1186  e.getByToken(dtStubsToken_, dtStubs);
1188  e.getByToken(mbtracksToken_, tracks);
1189 
1190  // loop on the DT stubs
1191  std::vector<csctf::TrackStub> vstubs = dtStubs->get();
1192  for(std::vector<csctf::TrackStub>::const_iterator stub=vstubs.begin();
1193  stub!=vstubs.end(); stub++)
1194  {
1195  if (verbose_)
1196  {
1197  edm::LogInfo("DataNotFound") << "\n mbEndcap: " << stub->endcap();
1198  edm::LogInfo("DataNotFound") << "\n stub->getStrip()[FLAG]: " << stub->getStrip();
1199  edm::LogInfo("DataNotFound") << "\n stub->getKeyWG()[CAL]: " << stub->getKeyWG();
1200  edm::LogInfo("DataNotFound") << "\n stub->BX(): " << stub->BX();
1201  edm::LogInfo("DataNotFound") << "\n stub->sector(): " << stub->sector();
1202  edm::LogInfo("DataNotFound") << "\n stub->subsector(): " << stub->subsector();
1203  edm::LogInfo("DataNotFound") << "\n stub->station(): " << stub->station();
1204  edm::LogInfo("DataNotFound") << "\n stub->phiPacked(): " << stub->phiPacked();
1205  edm::LogInfo("DataNotFound") << "\n stub->getBend(): " << stub->getBend();
1206  edm::LogInfo("DataNotFound") << "\n stub->getQuality(): " << stub->getQuality();
1207  edm::LogInfo("DataNotFound") << "\n stub->cscid(): " << stub->cscid() << endl;
1208  }
1209  // define the sector ID
1210  int mbId = (stub->endcap()==2) ? 6 : 0;
1211  mbId += stub->sector();
1212  // *** do not fill if CalMB variable is set ***
1213  // horrible! They used the same class to write up the LCT and MB info,
1214  // but given the MB does not have strip and WG they replaced this two
1215  // with the flag and cal bits... :S
1216  if (stub->getKeyWG() == 0)
1217  {
1218  // if FLAG =1, muon belong to previous BX
1219  int bxDT = stub->BX()-stub->getStrip(); // correct by the FLAG
1220  int subDT = stub->subsector();
1221 
1222  // Fill the event only if CSC had or would have triggered
1223  if (isCSCcand_)
1224  {
1225  //look for tracks in the event and compare the matching DT stubs
1226  int trkBX = 0;
1227  for(L1CSCTrackCollection::const_iterator trk=tracks->begin(); trk<tracks->end(); trk++)
1228  {
1229  trkBX = trk->first.BX();
1230  int trkId = (trk->first.endcap()==2) ? 6 : 0;
1231  trkId += trk->first.sector();
1232  if (verbose_){
1233  edm::LogInfo("DataNotFound") << "\n trk BX: " << trkBX
1234  << " Sector: " << trkId
1235  << " SubSector: " << trk->first.subsector()
1236  << " Endcap: " << trk->first.endcap();
1237 
1238  edm::LogInfo("DataNotFound") << "\n DT BX: " << stub->BX()
1239  << " Sector: " << mbId
1240  << " SubSector: " << stub->subsector()
1241  << " Endcap: " << stub->endcap() << endl;
1242  }
1243 
1244  if (mbId == trkId)
1245  {
1246  if (verbose_) {
1247  edm::LogInfo("DataNotFound") << " --> MATCH" << endl;
1248  edm::LogInfo("DataNotFound") << "Fill :" << trkBX+6-bxDT << " -- " << subDT << " -- cands" << endl;
1249  }
1250  // DT bx ranges from 3 to 9
1251  // trk bx ranges from -3 to 3
1252  DTstubsTimeTrackMenTimeArrival[mbId-1]->Fill(bxDT-trkBX-6,subDT);//subsec
1253  }
1254  }// loop on the tracks
1255  }//if (isCSCcand_){
1256  }//if (stub->getKeyWG() == 0) {
1257  }
1258  }
1259 }
MonitorElement * DTstubsTimeTrackMenTimeArrival[12]
Definition: L1TCSCTF.h:166
MonitorElement * csctfoccupancies
Definition: L1TCSCTF.h:83
unsigned long long cacheIdentifier() const
MonitorElement * csctfTrackEtaHighQ
Definition: L1TCSCTF.h:99
MonitorElement * csctflcts
Definition: L1TCSCTF.h:108
lclphidat localPhi(int strip, int pattern, int quality, int lr, const bool gangedME1a=false) const
Geometry Lookup Tables.
MonitorElement * csctfTrackPhi
Definition: L1TCSCTF.h:96
MonitorElement * csc_strip_MEminus22
Definition: L1TCSCTF.h:137
bool verbose_
Definition: L1TCSCTF.h:174
unsigned long long m_scalesCacheID
Definition: L1TCSCTF.h:184
MonitorElement * csctfTrackPhi_H
Definition: L1TCSCTF.h:100
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:449
MonitorElement * csc_strip_MEplus21
Definition: L1TCSCTF.h:126
MonitorElement * csc_strip_MEplus11
Definition: L1TCSCTF.h:123
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
MonitorElement * csc_wire_MEminus13
Definition: L1TCSCTF.h:155
MonitorElement * csc_wire_MEminus22
Definition: L1TCSCTF.h:157
MonitorElement * me11_lctGblPhi
Definition: L1TCSCTF.h:115
MonitorElement * csc_wire_MEplus12
Definition: L1TCSCTF.h:144
MonitorElement * csctfbx
Definition: L1TCSCTF.h:79
MonitorElement * csc_wire_MEminus32
Definition: L1TCSCTF.h:159
MonitorElement * csctfTrackEtaLowQ
Definition: L1TCSCTF.h:98
edm::InputTag mbProducer
Definition: L1TCSCTF.h:177
MonitorElement * csc_strip_MEminus12
Definition: L1TCSCTF.h:134
static void setGeometry(const edm::ESHandle< CSCGeometry > &thegeom)
MonitorElement * csctfTrackEta
Definition: L1TCSCTF.h:97
MonitorElement * me11_lctWire
Definition: L1TCSCTF.h:112
MonitorElement * csc_wire_MEminus21
Definition: L1TCSCTF.h:156
void Fill(long long x)
edm::InputTag statusProducer
Definition: L1TCSCTF.h:177
edm::EDGetTokenT< L1CSCStatusDigiCollection > statusToken_
Definition: L1TCSCTF.h:189
MonitorElement * csctfTrackEta_H
Definition: L1TCSCTF.h:101
MonitorElement * me42_lctGblPhi
Definition: L1TCSCTF.h:119
const L1MuTriggerScales * ts
Definition: L1TCSCTF.h:182
bool gangedME11a_
Definition: L1TCSCTF.h:178
gblphidat globalPhiME(int phi_local, int wire_group, int cscid, const bool gangedME1a=false) const
MonitorElement * cscTrackStubNumbers
Definition: L1TCSCTF.h:102
MonitorElement * csc_strip_MEminus32
Definition: L1TCSCTF.h:139
int L1ABXN
Definition: L1TCSCTF.h:170
MonitorElement * me11_lctStrip
Definition: L1TCSCTF.h:111
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
int BxInEvent_
Definition: L1TCSCTF.h:167
MonitorElement * csc_strip_MEminus42
Definition: L1TCSCTF.h:141
MonitorElement * csc_wire_MEplus41
Definition: L1TCSCTF.h:150
const L1MuScale * getPhiScale() const
get the phi scale
MonitorElement * csc_strip_MEplus13
Definition: L1TCSCTF.h:125
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * csc_strip_MEplus22
Definition: L1TCSCTF.h:127
int nev_
Definition: L1TCSCTF.h:172
MonitorElement * csc_wire_MEminus41
Definition: L1TCSCTF.h:160
MonitorElement * csctfChamberOccupancies
Definition: L1TCSCTF.h:95
bool isValid() const
Definition: HandleBase.h:75
MonitorElement * csc_wire_MEplus13
Definition: L1TCSCTF.h:145
edm::InputTag lctProducer
Definition: L1TCSCTF.h:177
#define M_PI
MonitorElement * csc_wire_MEplus21
Definition: L1TCSCTF.h:146
edm::EDGetTokenT< L1CSCTrackCollection > tracksToken_
Definition: L1TCSCTF.h:191
MonitorElement * csc_strip_MEminus41
Definition: L1TCSCTF.h:140
MonitorElement * me42_lctGblEta
Definition: L1TCSCTF.h:120
CSCSectorReceiverLUT * srLUTs_[5]
Definition: L1TCSCTF.h:180
MonitorElement * csc_wire_MEplus32
Definition: L1TCSCTF.h:149
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > corrlctsToken_
Definition: L1TCSCTF.h:190
MonitorElement * csctferrors
Definition: L1TCSCTF.h:82
T const * product() const
Definition: Handle.h:81
tuple tracks
Definition: testEve_cfg.py:39
MonitorElement * csc_wire_MEminus42
Definition: L1TCSCTF.h:161
bool isCSCcand_
Definition: L1TCSCTF.h:168
class global_phi_data gblphidat
MonitorElement * csc_strip_MEplus41
Definition: L1TCSCTF.h:130
const T & get() const
Definition: EventSetup.h:55
MonitorElement * csctfTrackM
Definition: L1TCSCTF.h:103
edm::EDGetTokenT< L1CSCTrackCollection > mbtracksToken_
Definition: L1TCSCTF.h:193
T const * product() const
Definition: ESHandle.h:86
MonitorElement * csctfbx_H
Definition: L1TCSCTF.h:80
std::vector< CSCCorrelatedLCTDigi >::const_iterator const_iterator
class local_phi_data lclphidat
Data Types.
static int triggerSubSectorFromLabels(int station, int chamber)
MonitorElement * csctfntrack
Definition: L1TCSCTF.h:78
edm::InputTag trackProducer
Definition: L1TCSCTF.h:177
edm::EDGetTokenT< L1MuGMTReadoutCollection > gmtProducerToken_
Definition: L1TCSCTF.h:188
std::string const & label() const
Definition: InputTag.h:42
MonitorElement * csc_wire_MEplus42
Definition: L1TCSCTF.h:151
MonitorElement * trackModeVsQ
Definition: L1TCSCTF.h:104
MonitorElement * me11_lctGblEta
Definition: L1TCSCTF.h:116
gbletadat globalEtaME(int phi_bend, int phi_local, int wire_group, int cscid, const bool gangedME1a=false) const
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
MonitorElement * csc_strip_MEminus21
Definition: L1TCSCTF.h:136
MonitorElement * csctfoccupancies_H
Definition: L1TCSCTF.h:84
MonitorElement * csc_strip_MEplus32
Definition: L1TCSCTF.h:129
MonitorElement * csc_strip_MEplus12
Definition: L1TCSCTF.h:124
static unsigned int const shift
std::pair< const_iterator, const_iterator > Range
const L1MuTriggerPtScale * tpts
Definition: L1TCSCTF.h:183
MonitorElement * me11_lctLocalPhi
Definition: L1TCSCTF.h:113
MonitorElement * csc_strip_MEminus11
Definition: L1TCSCTF.h:133
MonitorElement * csc_strip_MEminus13
Definition: L1TCSCTF.h:135
unsigned long long m_ptScaleCacheID
Definition: L1TCSCTF.h:185
MonitorElement * csc_wire_MEplus11
Definition: L1TCSCTF.h:143
tuple status
Definition: ntuplemaker.py:245
MonitorElement * csc_wire_MEminus12
Definition: L1TCSCTF.h:154
class global_eta_data gbletadat
MonitorElement * csc_strip_MEplus42
Definition: L1TCSCTF.h:131
edm::EDGetTokenT< CSCTriggerContainer< csctf::TrackStub > > dtStubsToken_
Definition: L1TCSCTF.h:192
edm::InputTag gmtProducer
Definition: L1TCSCTF.h:177
MonitorElement * me11_lctPackedPhi
Definition: L1TCSCTF.h:114
MonitorElement * csc_wire_MEplus22
Definition: L1TCSCTF.h:147
MonitorElement * csc_wire_MEminus11
Definition: L1TCSCTF.h:153
void L1TCSCTF::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements thread_unsafe::DQMEDAnalyzer.

Definition at line 96 of file L1TCSCTF.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), csc_strip_MEminus11, csc_strip_MEminus12, csc_strip_MEminus13, csc_strip_MEminus21, csc_strip_MEminus22, csc_strip_MEminus31, csc_strip_MEminus32, csc_strip_MEminus41, csc_strip_MEminus42, csc_strip_MEplus11, csc_strip_MEplus12, csc_strip_MEplus13, csc_strip_MEplus21, csc_strip_MEplus22, csc_strip_MEplus31, csc_strip_MEplus32, csc_strip_MEplus41, csc_strip_MEplus42, csc_wire_MEminus11, csc_wire_MEminus12, csc_wire_MEminus13, csc_wire_MEminus21, csc_wire_MEminus22, csc_wire_MEminus31, csc_wire_MEminus32, csc_wire_MEminus41, csc_wire_MEminus42, csc_wire_MEplus11, csc_wire_MEplus12, csc_wire_MEplus13, csc_wire_MEplus21, csc_wire_MEplus22, csc_wire_MEplus31, csc_wire_MEplus32, csc_wire_MEplus41, csc_wire_MEplus42, csctfbx, csctfbx_H, csctfChamberOccupancies, csctferrors, csctflcts, csctfntrack, csctfoccupancies, csctfoccupancies_H, csctfTrackEta, csctfTrackEta_H, csctfTrackEtaHighQ, csctfTrackEtaLowQ, csctfTrackM, csctfTrackPhi, csctfTrackPhi_H, cscTrackStubNumbers, DTstubsTimeTrackMenTimeArrival, MonitorElement::getTH2F(), i, M_PI, m_ptScaleCacheID, m_scalesCacheID, me11_lctGblEta, me11_lctGblPhi, me11_lctLocalPhi, me11_lctPackedPhi, me11_lctStrip, me11_lctWire, me42_lctGblEta, me42_lctGblPhi, nev_, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), and trackModeVsQ.

97 {
98  m_scalesCacheID = -999;
99  m_ptScaleCacheID = -999;
100 
101  nev_ = 0;
102  ibooker.setCurrentFolder("L1T/L1TCSCTF");
103 
104  // Error counting histogram:
105  // 1) checks TF data integrity (error rate - first bin),
106  // 2) monitors sychronization on input links (4 errors types: SE/SM/BX/AF; ORed for all time bins, links, and SPs),
107  // 3) reports FMM status (if in any SP FMM status != "Ready" - fill the last bin)
108  csctferrors = ibooker.book1D("CSCTF_errors","CSCTF Errors",6,0,6);
109  csctferrors->setAxisTitle("Error type",1);
110  csctferrors->setAxisTitle("Number of Errors",2);
111  csctferrors->setBinLabel(1,"Corruptions",1);
112  csctferrors->setBinLabel(2,"Synch. Err.",1);
113  csctferrors->setBinLabel(3,"Synch. Mod.",1);
114  csctferrors->setBinLabel(4,"BX mismatch",1);
115  csctferrors->setBinLabel(5,"Time misalign.",1);
116  csctferrors->setBinLabel(6,"FMM != Ready",1);
117 
118  // Occupancy histogram Eta x Y, where Y:
119  // 1) Phi_packed of input LCTs from 1st, 2nd, 3rd, and 4th stations
120  // 2) Phi_packed of output tracks
121  // (all 12 SPs - 360 degree coveradge)
122  csctfoccupancies = ibooker.book2D("CSCTF_occupancies", "CSCTF Occupancies", 64,-32,31,32,0,6.2);
123  csctfoccupancies->setAxisTitle("#eta",1);
124  csctfoccupancies->setAxisTitle("#phi",2);
125  csctfoccupancies->setBinLabel( 1,"-2.5", 1);
126  csctfoccupancies->setBinLabel( 8,"-2.1", 1);
127  csctfoccupancies->setBinLabel(18,"-1.6", 1);
128  csctfoccupancies->setBinLabel(26,"-1.2", 1);
129  csctfoccupancies->setBinLabel(32,"-0.9", 1);
130  csctfoccupancies->setBinLabel(33, "0.9", 1);
131  csctfoccupancies->setBinLabel(39, "1.2", 1);
132  csctfoccupancies->setBinLabel(47, "1.6", 1);
133  csctfoccupancies->setBinLabel(57, "2.1", 1);
134  csctfoccupancies->setBinLabel(64, "2.5", 1);
135 
136  // ... and for halo muons only
137  csctfoccupancies_H = ibooker.book2D("CSCTF_occupancies_H", "CSCTF Halo Occupancies", 64,-32,31,32,0,6.2);
138  csctfoccupancies_H->setAxisTitle("#eta",1);
139  csctfoccupancies_H->setAxisTitle("#phi",2);
140  csctfoccupancies_H->setBinLabel( 1,"-2.5", 1);
141  csctfoccupancies_H->setBinLabel( 8,"-2.1", 1);
142  csctfoccupancies_H->setBinLabel(18,"-1.6", 1);
143  csctfoccupancies_H->setBinLabel(26,"-1.2", 1);
144  csctfoccupancies_H->setBinLabel(32,"-0.9", 1);
145  csctfoccupancies_H->setBinLabel(33, "0.9", 1);
146  csctfoccupancies_H->setBinLabel(39, "1.2", 1);
147  csctfoccupancies_H->setBinLabel(47, "1.6", 1);
148  csctfoccupancies_H->setBinLabel(57, "2.1", 1);
149  csctfoccupancies_H->setBinLabel(64, "2.5", 1);
150 
151  //haloDelEta12 = ibooker.book1D("CSCTF_Halo_Eta12", "#Delta #eta_{12} for Halo Muons", 40, -0.20,0.30);
152  //haloDelEta112 = ibooker.book1D("CSCTF_Halo_Eta112","#Delta #eta_{112} for Halo Muons", 40, -0.20,0.30);
153  //haloDelEta13 = ibooker.book1D("CSCTF_Halo_Eta13", "#Delta #eta_{13} for Halo Muons", 40, -0.20,0.30);
154  //haloDelEta113 = ibooker.book1D("CSCTF_Halo_Eta113","#Delta #eta_{113} for Halo Muons", 40, -0.20,0.30);
155 
156  // Quality VS Mode
157  trackModeVsQ = ibooker.book2D("CSCTF_Track_ModeVsQual","CSC Track Mode Vs Quality", 19, -0.5, 18.5, 4, 0, 4);
158  trackModeVsQ->setAxisTitle("Track Type", 1);
159  trackModeVsQ->setBinLabel(1,"No Track",1);
160  trackModeVsQ->setBinLabel(2,"Bad Phi/Single",1);
161  trackModeVsQ->setBinLabel(3,"ME1-2-3",1);
162  trackModeVsQ->setBinLabel(4,"ME1-2-4",1);
163  trackModeVsQ->setBinLabel(5,"ME1-3-4",1);
164  trackModeVsQ->setBinLabel(6,"ME2-3-4",1);
165  trackModeVsQ->setBinLabel(7,"ME1-2",1);
166  trackModeVsQ->setBinLabel(8,"ME1-3",1);
167  trackModeVsQ->setBinLabel(9,"ME2-3",1);
168  trackModeVsQ->setBinLabel(10,"ME2-4",1);
169  trackModeVsQ->setBinLabel(11,"ME3-4",1);
170  trackModeVsQ->setBinLabel(12,"MB1-ME3",1);
171  trackModeVsQ->setBinLabel(13,"MB1-ME2",1);
172  trackModeVsQ->setBinLabel(14,"ME1-4",1);
173  trackModeVsQ->setBinLabel(15,"MB1-ME1",1);
174  trackModeVsQ->setBinLabel(16,"Halo Trigger",1);
175  trackModeVsQ->setBinLabel(17,"MB1-ME1-2",1);
176  trackModeVsQ->setBinLabel(18,"MB1-ME1-3",1);
177  trackModeVsQ->setBinLabel(19,"MB1-ME2-3",1);
178 
179  trackModeVsQ->setAxisTitle("Quality",2);
180  trackModeVsQ->setBinLabel(1,"0",2);
181  trackModeVsQ->setBinLabel(2,"1",2);
182  trackModeVsQ->setBinLabel(3,"2",2);
183  trackModeVsQ->setBinLabel(4,"3",2);
184 
185  // Mode
186  csctfTrackM = ibooker.book1D("CSCTF_Track_Mode","CSC Track Mode", 19, -0.5, 18.5);
187  csctfTrackM->setAxisTitle("Track Type", 1);
188  csctfTrackM->setBinLabel(1,"No Track",1);
189  csctfTrackM->setBinLabel(2,"Bad Phi/Single",1);
190  csctfTrackM->setBinLabel(3,"ME1-2-3",1);
191  csctfTrackM->setBinLabel(4,"ME1-2-4",1);
192  csctfTrackM->setBinLabel(5,"ME1-3-4",1);
193  csctfTrackM->setBinLabel(6,"ME2-3-4",1);
194  csctfTrackM->setBinLabel(7,"ME1-2",1);
195  csctfTrackM->setBinLabel(8,"ME1-3",1);
196  csctfTrackM->setBinLabel(9,"ME2-3",1);
197  csctfTrackM->setBinLabel(10,"ME2-4",1);
198  csctfTrackM->setBinLabel(11,"ME3-4",1);
199  csctfTrackM->setBinLabel(12,"MB1-ME3",1);
200  csctfTrackM->setBinLabel(13,"MB1-ME2",1);
201  csctfTrackM->setBinLabel(14,"ME1-4",1);
202  csctfTrackM->setBinLabel(15,"MB1-ME1",1);
203  csctfTrackM->setBinLabel(16,"Halo Trigger",1);
204  csctfTrackM->setBinLabel(17,"MB1-ME1-2",1);
205  csctfTrackM->setBinLabel(18,"MB1-ME1-3",1);
206  csctfTrackM->setBinLabel(19,"MB1-ME2-3",1);
207 
208  // Chamber Occupancy
209  csctfChamberOccupancies = ibooker.book2D("CSCTF_Chamber_Occupancies","CSCTF Chamber Occupancies", 54, -0.05, 5.35, 10, -5.5, 4.5);
210  csctfChamberOccupancies->setAxisTitle("Sector, (chambers 1-9 not labeled)",1);
214  csctfChamberOccupancies->setBinLabel(4,"ME-1b",2);
215  csctfChamberOccupancies->setBinLabel(5,"ME-1a",2);
216  csctfChamberOccupancies->setBinLabel(6,"ME+1a",2);
217  csctfChamberOccupancies->setBinLabel(7,"ME+1b",2);
220  csctfChamberOccupancies->setBinLabel(10,"ME+4",2);
227 
228  // Track Phi
229  csctfTrackPhi = ibooker.book1D("CSCTF_Track_Phi", "CSCTF Track #phi",144,0,2*M_PI);
230  csctfTrackPhi->setAxisTitle("Track #phi", 1);
231 
232  // Track Eta
233  csctfTrackEta = ibooker.book1D("CSCTF_Track_Eta", "CSCTF Track #eta",64,-32,32);
234  csctfTrackEta->setAxisTitle("Track #eta", 1);
235  csctfTrackEta->setBinLabel( 1,"-2.5", 1);
236  csctfTrackEta->setBinLabel( 8,"-2.1", 1);
237  csctfTrackEta->setBinLabel(18,"-1.6", 1);
238  csctfTrackEta->setBinLabel(26,"-1.2", 1);
239  csctfTrackEta->setBinLabel(32,"-0.9", 1);
240  csctfTrackEta->setBinLabel(33, "0.9", 1);
241  csctfTrackEta->setBinLabel(39, "1.2", 1);
242  csctfTrackEta->setBinLabel(47, "1.6", 1);
243  csctfTrackEta->setBinLabel(57, "2.1", 1);
244  csctfTrackEta->setBinLabel(64, "2.5", 1);
245 
246  // Track Eta Low Quality
247  csctfTrackEtaLowQ = ibooker.book1D("CSCTF_Track_Eta_LowQ", "CSCTF Track #eta LQ",64,-32,32);
248  csctfTrackEtaLowQ->setAxisTitle("Track #eta", 1);
249  csctfTrackEtaLowQ->setBinLabel( 1,"-2.5", 1);
250  csctfTrackEtaLowQ->setBinLabel( 8,"-2.1", 1);
251  csctfTrackEtaLowQ->setBinLabel(18,"-1.6", 1);
252  csctfTrackEtaLowQ->setBinLabel(26,"-1.2", 1);
253  csctfTrackEtaLowQ->setBinLabel(32,"-0.9", 1);
254  csctfTrackEtaLowQ->setBinLabel(33, "0.9", 1);
255  csctfTrackEtaLowQ->setBinLabel(39, "1.2", 1);
256  csctfTrackEtaLowQ->setBinLabel(47, "1.6", 1);
257  csctfTrackEtaLowQ->setBinLabel(57, "2.1", 1);
258  csctfTrackEtaLowQ->setBinLabel(64, "2.5", 1);
259 
260 
261  // Track Eta High Quality
262  csctfTrackEtaHighQ = ibooker.book1D("CSCTF_Track_Eta_HighQ", "CSCTF Track #eta HQ",64,-32,32);
263  csctfTrackEtaHighQ->setAxisTitle("Track #eta", 1);
264  csctfTrackEtaHighQ->setBinLabel( 1,"-2.5", 1);
265  csctfTrackEtaHighQ->setBinLabel( 8,"-2.1", 1);
266  csctfTrackEtaHighQ->setBinLabel(18,"-1.6", 1);
267  csctfTrackEtaHighQ->setBinLabel(26,"-1.2", 1);
268  csctfTrackEtaHighQ->setBinLabel(32,"-0.9", 1);
269  csctfTrackEtaHighQ->setBinLabel(33, "0.9", 1);
270  csctfTrackEtaHighQ->setBinLabel(39, "1.2", 1);
271  csctfTrackEtaHighQ->setBinLabel(47, "1.6", 1);
272  csctfTrackEtaHighQ->setBinLabel(57, "2.1", 1);
273  csctfTrackEtaHighQ->setBinLabel(64, "2.5", 1);
274 
275 
276  // Halo Phi
277  csctfTrackPhi_H = ibooker.book1D("CSCTF_Track_Phi_H", "CSCTF Halo #phi",144,0,2*M_PI);
278  csctfTrackPhi_H->setAxisTitle("Track #phi", 1);
279 
280  // Halo Eta
281  csctfTrackEta_H = ibooker.book1D("CSCTF_Track_Eta_H", "CSCTF Halo #eta",64,-32,32);
282  csctfTrackEta_H->setAxisTitle("Track #eta", 1);
283  csctfTrackEta_H->setBinLabel( 1,"-2.5", 1);
284  csctfTrackEta_H->setBinLabel( 8,"-2.1", 1);
285  csctfTrackEta_H->setBinLabel(18,"-1.6", 1);
286  csctfTrackEta_H->setBinLabel(26,"-1.2", 1);
287  csctfTrackEta_H->setBinLabel(32,"-0.9", 1);
288  csctfTrackEta_H->setBinLabel(33, "0.9", 1);
289  csctfTrackEta_H->setBinLabel(39, "1.2", 1);
290  csctfTrackEta_H->setBinLabel(47, "1.6", 1);
291  csctfTrackEta_H->setBinLabel(57, "2.1", 1);
292  csctfTrackEta_H->setBinLabel(64, "2.5", 1);
293 
294  // Track Timing
295  csctfbx = ibooker.book2D("CSCTF_bx","CSCTF BX", 12,1,13, 7,-3,3) ;
296  csctfbx->setAxisTitle("Sector (Endcap)", 1);
297  csctfbx->setBinLabel( 1," 1 (+)",1);
298  csctfbx->setBinLabel( 2," 2 (+)",1);
299  csctfbx->setBinLabel( 3," 3 (+)",1);
300  csctfbx->setBinLabel( 4," 4 (+)",1);
301  csctfbx->setBinLabel( 5," 5 (+)",1);
302  csctfbx->setBinLabel( 6," 6 (+)",1);
303  csctfbx->setBinLabel( 7," 7 (-)",1);
304  csctfbx->setBinLabel( 8," 8 (-)",1);
305  csctfbx->setBinLabel( 9," 9 (-)",1);
306  csctfbx->setBinLabel(10,"10 (-)",1);
307  csctfbx->setBinLabel(11,"11 (-)",1);
308  csctfbx->setBinLabel(12,"12 (-)",1);
309 
310  csctfbx->setAxisTitle("CSCTF BX", 2);
311  csctfbx->setBinLabel( 1, "-3", 2);
312  csctfbx->setBinLabel( 2, "-2", 2);
313  csctfbx->setBinLabel( 3, "-1", 2);
314  csctfbx->setBinLabel( 4, "-0", 2);
315  csctfbx->setBinLabel( 5, " 1", 2);
316  csctfbx->setBinLabel( 6, " 2", 2);
317  csctfbx->setBinLabel( 7, " 3", 2);
318 
319  // Halo Timing
320  csctfbx_H = ibooker.book2D("CSCTF_bx_H","CSCTF HALO BX", 12,1,13, 7,-3,3) ;
321  csctfbx_H->setAxisTitle("Sector (Endcap)", 1);
322  csctfbx_H->setBinLabel( 1," 1 (+)",1);
323  csctfbx_H->setBinLabel( 2," 2 (+)",1);
324  csctfbx_H->setBinLabel( 3," 3 (+)",1);
325  csctfbx_H->setBinLabel( 4," 4 (+)",1);
326  csctfbx_H->setBinLabel( 5," 5 (+)",1);
327  csctfbx_H->setBinLabel( 6," 6 (+)",1);
328  csctfbx_H->setBinLabel( 7," 7 (-)",1);
329  csctfbx_H->setBinLabel( 8," 8 (-)",1);
330  csctfbx_H->setBinLabel( 9," 9 (-)",1);
331  csctfbx_H->setBinLabel(10,"10 (-)",1);
332  csctfbx_H->setBinLabel(11,"11 (-)",1);
333  csctfbx_H->setBinLabel(12,"12 (-)",1);
334 
335  csctfbx_H->setAxisTitle("CSCTF BX", 2);
336  csctfbx_H->setBinLabel( 1, "-3", 2);
337  csctfbx_H->setBinLabel( 2, "-2", 2);
338  csctfbx_H->setBinLabel( 3, "-1", 2);
339  csctfbx_H->setBinLabel( 4, "-0", 2);
340  csctfbx_H->setBinLabel( 5, " 1", 2);
341  csctfbx_H->setBinLabel( 6, " 2", 2);
342  csctfbx_H->setBinLabel( 7, " 3", 2);
343 
344  // Number of Tracks Stubs
345  cscTrackStubNumbers = ibooker.book1D("CSCTF_TrackStubs", "Number of Stubs in CSCTF Tracks", 5, 0, 5);
346  cscTrackStubNumbers->setBinLabel( 1, "0", 1);
347  cscTrackStubNumbers->setBinLabel( 2, "1", 1);
348  cscTrackStubNumbers->setBinLabel( 3, "2", 1);
349  cscTrackStubNumbers->setBinLabel( 4, "3", 1);
350  cscTrackStubNumbers->setBinLabel( 5, "4", 1);
351 
352  // Number of Tracks
353  csctfntrack = ibooker.book1D("CSCTF_ntrack","Number of CSCTracks found per event", 5, 0, 5 ) ;
354  csctfntrack->setBinLabel( 1, "0", 1);
355  csctfntrack->setBinLabel( 2, "1", 1);
356  csctfntrack->setBinLabel( 3, "2", 1);
357  csctfntrack->setBinLabel( 4, "3", 1);
358  csctfntrack->setBinLabel( 5, "4", 1);
359  //}
360 
361  char hname [200];
362  char htitle[200];
363 
364  for(int i=0; i<12; i++) {
365 
366  sprintf(hname ,"DTstubsTimeTrackMenTimeArrival_%d",i+1);
367  sprintf(htitle,"T_{track} - T_{DT stub} sector %d",i+1);
368 
369  DTstubsTimeTrackMenTimeArrival[i] = ibooker.book2D(hname,htitle, 7,-3,3, 2,1,3);
370  DTstubsTimeTrackMenTimeArrival[i]->getTH2F()->SetMinimum(0);
371 
372  // axis makeup
373  DTstubsTimeTrackMenTimeArrival[i]->setAxisTitle("bx_{CSC track} - bx_{DT stub}",1);
375 
383 
386 
387  }
388 
389 
390  // NEW: CSC EVENT LCT PLOTS
391  csctflcts = ibooker.book2D("CSCTF_LCT", "CSCTF LCTs", 12,1,13, 18,0,18);
392  csctflcts->setAxisTitle("CSCTF LCT BX",1);
393  csctflcts->setBinLabel(1,"1",1);
394  csctflcts->setBinLabel(2,"2",1);
395  csctflcts->setBinLabel(3,"3",1);
396  csctflcts->setBinLabel(4,"4",1);
397  csctflcts->setBinLabel(5,"5",1);
398  csctflcts->setBinLabel(6,"6",1);
399  csctflcts->setBinLabel(7,"7",1);
400  csctflcts->setBinLabel(8,"8",1);
401  csctflcts->setBinLabel(9,"9",1);
402  csctflcts->setBinLabel(10,"10",1);
403  csctflcts->setBinLabel(11,"11",1);
404  csctflcts->setBinLabel(12,"12",1);
405 
406  int ihist = 0;
407  for (int iEndcap = 0; iEndcap < 2; iEndcap++) {
408  for (int iStation = 1; iStation < 5; iStation++) {
409  for (int iRing = 1; iRing < 4; iRing++) {
410  if (iStation != 1 && iRing > 2) continue;
411  TString signEndcap="+";
412  if(iEndcap==0) signEndcap="-";
413 
414  char lcttitle[200];
415  snprintf(lcttitle,200,"ME%s%d/%d", signEndcap.Data(), iStation, iRing);
416  if(ihist<=8){
417  csctflcts -> setBinLabel(9-ihist,lcttitle,2);
418  }
419  else csctflcts -> setBinLabel(ihist+1,lcttitle,2);
420 
421  ihist++;
422  }
423  }
424  }
425 
426 
427  // plots for ME1/1 chambers
428  me11_lctStrip = ibooker.book1D("CSC_ME11_LCT_Strip", "CSC_ME11_LCT_Strip", 223, 0, 223);
429  me11_lctStrip->setAxisTitle("Cathode HalfStrip, ME1/1", 1);
430 
431  me11_lctWire = ibooker.book1D("CSC_ME11_LCT_Wire", "CSC_ME11_LCT_Wire", 112, 0, 112);
432  me11_lctWire->setAxisTitle("Anode Wiregroup, ME1/1", 1);
433 
434  me11_lctLocalPhi = ibooker.book1D("CSC_ME11_LCT_LocalPhi", "CSC_ME11_LCT_LocalPhi", 200,0,1024);
435  me11_lctLocalPhi ->setAxisTitle("LCT Local #it{#phi}, ME1/1", 1);
436 
437  me11_lctPackedPhi = ibooker.book1D("CSC_ME11_LCT_PackedPhi", "CSC_ME11_LCT_PackedPhi", 200,0,4096);
438  me11_lctPackedPhi ->setAxisTitle("LCT Packed #it{#phi}, ME1/1",1);
439 
440  me11_lctGblPhi = ibooker.book1D("CSC_ME11_LCT_GblPhi", "CSC_ME11_LCT_GblPhi", 200, 0, 2*M_PI);
441  me11_lctGblPhi ->setAxisTitle("LCT Global #it{#phi}, ME1/1", 1);
442 
443  me11_lctGblEta = ibooker.book1D("CSC_ME11_LCT_GblEta", "CSC_ME11_LCT_GblEta", 50, 0.9, 2.5);
444  me11_lctGblEta ->setAxisTitle("LCT Global #eta, ME1/1", 1);
445 
446 
447  // plots for ME4/2 chambers
448  me42_lctGblPhi = ibooker.book1D("CSC_ME42_LCT_GblPhi", "CSC_ME42_LCT_GblPhi", 200, 0, 2*M_PI);
449  me42_lctGblPhi ->setAxisTitle("LCT Global #it{#phi}, ME4/2", 1);
450 
451  me42_lctGblEta = ibooker.book1D("CSC_ME42_LCT_GblEta", "CSC_ME42_LCT_GblEta", 50, 0.9, 2.5);
452  me42_lctGblEta ->setAxisTitle("LCT Global #eta, ME4/2", 1);
453 
454  //
455  csc_strip_MEplus11= ibooker.book2D("csc_strip_MEplus11", "csc_strip_MEplus11", 36,1,37, 240,0,240);
456  csc_strip_MEplus11->setAxisTitle("Cathode HalfStrip", 2);
457  csc_strip_MEplus11->setAxisTitle("ME+1/1", 1);
458  csc_strip_MEplus12= ibooker.book2D("csc_strip_MEplus12", "csc_strip_MEplus12", 36,1,37, 240,0,240);
459  csc_strip_MEplus12->setAxisTitle("Cathode HalfStrip", 2);
460  csc_strip_MEplus12->setAxisTitle("ME+1/2", 1);
461  csc_strip_MEplus13= ibooker.book2D("csc_strip_MEplus13", "csc_strip_MEplus13", 36,1,37, 240,0,240);
462  csc_strip_MEplus13->setAxisTitle("Cathode HalfStrip", 2);
463  csc_strip_MEplus13->setAxisTitle("ME+1/3", 1);
464  csc_strip_MEplus21= ibooker.book2D("csc_strip_MEplus21", "csc_strip_MEplus21", 18,1,19, 240,0,240);
465  csc_strip_MEplus21->setAxisTitle("Cathode HalfStrip", 2);
466  csc_strip_MEplus21->setAxisTitle("ME+2/1", 1);
467  csc_strip_MEplus22= ibooker.book2D("csc_strip_MEplus22", "csc_strip_MEplus22", 36,1,37, 240,0,240);
468  csc_strip_MEplus22->setAxisTitle("Cathode HalfStrip", 2);
469  csc_strip_MEplus22->setAxisTitle("ME+2/2", 1);
470  csc_strip_MEplus31= ibooker.book2D("csc_strip_MEplus31", "csc_strip_MEplus31", 18,1,19, 240,0,240);
471  csc_strip_MEplus31->setAxisTitle("Cathode HalfStrip", 2);
472  csc_strip_MEplus31->setAxisTitle("ME+3/1", 1);
473  csc_strip_MEplus32= ibooker.book2D("csc_strip_MEplus32", "csc_strip_MEplus32", 36,1,37, 240,0,240);
474  csc_strip_MEplus32->setAxisTitle("Cathode HalfStrip", 2);
475  csc_strip_MEplus32->setAxisTitle("ME+3/2", 1);
476  csc_strip_MEplus41= ibooker.book2D("csc_strip_MEplus41", "csc_strip_MEplus41", 18,1,19, 240,0,240);
477  csc_strip_MEplus41->setAxisTitle("Cathode HalfStrip", 2);
478  csc_strip_MEplus41->setAxisTitle("ME+4/1", 1);
479  csc_strip_MEplus42= ibooker.book2D("csc_strip_MEplus42", "csc_strip_MEplus42", 36,1,37, 240,0,240);
480  csc_strip_MEplus42->setAxisTitle("Cathode HalfStrip", 2);
481  csc_strip_MEplus42->setAxisTitle("ME+4/2", 1);
482 
483  csc_strip_MEminus11= ibooker.book2D("csc_strip_MEminus11", "csc_strip_MEminus11", 36,1,37, 240,0,240);
484  csc_strip_MEminus11->setAxisTitle("Cathode HalfStrip", 2);
485  csc_strip_MEminus11->setAxisTitle("ME-1/1", 1);
486  csc_strip_MEminus12= ibooker.book2D("csc_strip_MEminus12", "csc_strip_MEminus12", 36,1,37, 240,0,240);
487  csc_strip_MEminus12->setAxisTitle("Cathode HalfStrip", 2);
488  csc_strip_MEminus12->setAxisTitle("ME-1/2", 1);
489  csc_strip_MEminus13= ibooker.book2D("csc_strip_MEminus13", "csc_strip_MEminus13", 36,1,37, 240,0,240);
490  csc_strip_MEminus13->setAxisTitle("Cathode HalfStrip", 2);
491  csc_strip_MEminus13->setAxisTitle("ME-1/3", 1);
492  csc_strip_MEminus21= ibooker.book2D("csc_strip_MEminus21", "csc_strip_MEminus21", 18,1,19, 240,0,240);
493  csc_strip_MEminus21->setAxisTitle("Cathode HalfStrip", 2);
494  csc_strip_MEminus21->setAxisTitle("ME-2/1", 1);
495  csc_strip_MEminus22= ibooker.book2D("csc_strip_MEminus22", "csc_strip_MEminus22", 36,1,37, 240,0,240);
496  csc_strip_MEminus22->setAxisTitle("Cathode HalfStrip", 2);
497  csc_strip_MEminus22->setAxisTitle("ME-2/2", 1);
498  csc_strip_MEminus31= ibooker.book2D("csc_strip_MEminus31", "csc_strip_MEminus31", 18,1,19, 240,0,240);
499  csc_strip_MEminus31->setAxisTitle("Cathode HalfStrip", 2);
500  csc_strip_MEminus31->setAxisTitle("ME-3/1", 1);
501  csc_strip_MEminus32= ibooker.book2D("csc_strip_MEminus32", "csc_strip_MEminus32", 36,1,37, 240,0,240);
502  csc_strip_MEminus32->setAxisTitle("Cathode HalfStrip", 2);
503  csc_strip_MEminus32->setAxisTitle("ME-3/2", 1);
504  csc_strip_MEminus41= ibooker.book2D("csc_strip_MEminus41", "csc_strip_MEminus41", 18,1,19, 240,0,240);
505  csc_strip_MEminus41->setAxisTitle("Cathode HalfStrip", 2);
506  csc_strip_MEminus41->setAxisTitle("ME-4/1", 1);
507  csc_strip_MEminus42= ibooker.book2D("csc_strip_MEminus42", "csc_strip_MEminus42", 36,1,37, 240,0,240);
508  csc_strip_MEminus42->setAxisTitle("Cathode HalfStrip", 2);
509  csc_strip_MEminus42->setAxisTitle("ME-4/2", 1);
510 
511  csc_wire_MEplus11= ibooker.book2D("csc_wire_MEplus11", "csc_wire_MEplus11", 36,1,37, 120,0,120);
512  csc_wire_MEplus11->setAxisTitle("Anode Wiregroup", 2);
513  csc_wire_MEplus11->setAxisTitle("ME+1/1", 1);
514  csc_wire_MEplus12= ibooker.book2D("csc_wire_MEplus12", "csc_wire_MEplus12", 36,1,37, 120,0,120);
515  csc_wire_MEplus12->setAxisTitle("Anode Wiregroup", 2);
516  csc_wire_MEplus12->setAxisTitle("ME+1/2", 1);
517  csc_wire_MEplus13= ibooker.book2D("csc_wire_MEplus13", "csc_wire_MEplus13", 36,1,37, 120,0,120);
518  csc_wire_MEplus13->setAxisTitle("Anode Wiregroup", 2);
519  csc_wire_MEplus13->setAxisTitle("ME+1/3", 1);
520  csc_wire_MEplus21= ibooker.book2D("csc_wire_MEplus21", "csc_wire_MEplus21", 18,1,19, 120,0,120);
521  csc_wire_MEplus21->setAxisTitle("Anode Wiregroup", 2);
522  csc_wire_MEplus21->setAxisTitle("ME+2/1", 1);
523  csc_wire_MEplus22= ibooker.book2D("csc_wire_MEplus22", "csc_wire_MEplus22", 36,1,37, 120,0,120);
524  csc_wire_MEplus22->setAxisTitle("Anode Wiregroup", 2);
525  csc_wire_MEplus22->setAxisTitle("ME+2/2", 1);
526  csc_wire_MEplus31= ibooker.book2D("csc_wire_MEplus31", "csc_wire_MEplus31", 18,1,19, 120,0,120);
527  csc_wire_MEplus31->setAxisTitle("Anode Wiregroup", 2);
528  csc_wire_MEplus31->setAxisTitle("ME+3/1", 1);
529  csc_wire_MEplus32= ibooker.book2D("csc_wire_MEplus32", "csc_wire_MEplus32", 36,1,37, 120,0,120);
530  csc_wire_MEplus32->setAxisTitle("Anode Wiregroup", 2);
531  csc_wire_MEplus32->setAxisTitle("ME+3/2", 1);
532  csc_wire_MEplus41= ibooker.book2D("csc_wire_MEplus41", "csc_wire_MEplus41", 18,1,19, 120,0,120);
533  csc_wire_MEplus41->setAxisTitle("Anode Wiregroup", 2);
534  csc_wire_MEplus41->setAxisTitle("ME+4/1", 1);
535  csc_wire_MEplus42= ibooker.book2D("csc_wire_MEplus42", "csc_wire_MEplus42", 36,1,37, 120,0,120);
536  csc_wire_MEplus42->setAxisTitle("Anode Wiregroup", 2);
537  csc_wire_MEplus42->setAxisTitle("ME+4/2", 1);
538 
539  csc_wire_MEminus11= ibooker.book2D("csc_wire_MEminus11", "csc_wire_MEminus11", 36,1,37, 120,0,120);
540  csc_wire_MEminus11->setAxisTitle("Anode Wiregroup", 2);
541  csc_wire_MEminus11->setAxisTitle("ME-1/1", 1);
542  csc_wire_MEminus12= ibooker.book2D("csc_wire_MEminus12", "csc_wire_MEminus12", 36,1,37, 120,0,120);
543  csc_wire_MEminus12->setAxisTitle("Anode Wiregroup", 2);
544  csc_wire_MEminus12->setAxisTitle("ME-1/2", 1);
545  csc_wire_MEminus13= ibooker.book2D("csc_wire_MEminus13", "csc_wire_MEminus13", 36,1,37, 120,0,120);
546  csc_wire_MEminus13->setAxisTitle("Anode Wiregroup", 2);
547  csc_wire_MEminus13->setAxisTitle("ME-1/3", 1);
548  csc_wire_MEminus21= ibooker.book2D("csc_wire_MEminus21", "csc_wire_MEminus21", 18,1,19, 120,0,120);
549  csc_wire_MEminus21->setAxisTitle("Anode Wiregroup", 2);
550  csc_wire_MEminus21->setAxisTitle("ME-2/1", 1);
551  csc_wire_MEminus22= ibooker.book2D("csc_wire_MEminus22", "csc_wire_MEminus22", 36,1,37, 120,0,120);
552  csc_wire_MEminus22->setAxisTitle("Anode Wiregroup", 2);
553  csc_wire_MEminus22->setAxisTitle("ME-2/2", 1);
554  csc_wire_MEminus31= ibooker.book2D("csc_wire_MEminus31", "csc_wire_MEminus31", 18,1,19, 120,0,120);
555  csc_wire_MEminus31->setAxisTitle("Anode Wiregroup", 2);
556  csc_wire_MEminus31->setAxisTitle("ME-3/1", 1);
557  csc_wire_MEminus32= ibooker.book2D("csc_wire_MEminus32", "csc_wire_MEminus32", 36,1,37, 120,0,120);
558  csc_wire_MEminus32->setAxisTitle("Anode Wiregroup", 2);
559  csc_wire_MEminus32->setAxisTitle("ME-3/2", 1);
560  csc_wire_MEminus41= ibooker.book2D("csc_wire_MEminus41", "csc_wire_MEminus41", 18,1,19, 120,0,120);
561  csc_wire_MEminus41->setAxisTitle("Anode Wiregroup", 2);
562  csc_wire_MEminus41->setAxisTitle("ME-4/1", 1);
563  csc_wire_MEminus42= ibooker.book2D("csc_wire_MEminus42", "csc_wire_MEminus42", 36,1,37, 120,0,120);
564  csc_wire_MEminus42->setAxisTitle("Anode Wiregroup", 2);
565  csc_wire_MEminus42->setAxisTitle("ME-4/2", 1);
566 
567 
568 
569  for(int cscid = 1; cscid < 37; cscid++){
570  char bxtitle[100];
571  sprintf(bxtitle,"%d", cscid);
572 
573  csc_strip_MEplus11 ->setBinLabel(cscid,bxtitle,1);
574  csc_strip_MEplus12 ->setBinLabel(cscid,bxtitle,1);
575  csc_strip_MEplus13 ->setBinLabel(cscid,bxtitle,1);
576  csc_strip_MEplus22 ->setBinLabel(cscid,bxtitle,1);
577  csc_strip_MEplus32 ->setBinLabel(cscid,bxtitle,1);
578  csc_strip_MEplus42 ->setBinLabel(cscid,bxtitle,1);
579 
580  csc_strip_MEminus11 ->setBinLabel(cscid,bxtitle,1);
581  csc_strip_MEminus12 ->setBinLabel(cscid,bxtitle,1);
582  csc_strip_MEminus13 ->setBinLabel(cscid,bxtitle,1);
583  csc_strip_MEminus22 ->setBinLabel(cscid,bxtitle,1);
584  csc_strip_MEminus32 ->setBinLabel(cscid,bxtitle,1);
585  csc_strip_MEminus42 ->setBinLabel(cscid,bxtitle,1);
586 
587  csc_wire_MEplus11 ->setBinLabel(cscid,bxtitle,1);
588  csc_wire_MEplus12 ->setBinLabel(cscid,bxtitle,1);
589  csc_wire_MEplus13 ->setBinLabel(cscid,bxtitle,1);
590  csc_wire_MEplus22 ->setBinLabel(cscid,bxtitle,1);
591  csc_wire_MEplus32 ->setBinLabel(cscid,bxtitle,1);
592  csc_wire_MEplus42 ->setBinLabel(cscid,bxtitle,1);
593 
594  csc_wire_MEminus11 ->setBinLabel(cscid,bxtitle,1);
595  csc_wire_MEminus12 ->setBinLabel(cscid,bxtitle,1);
596  csc_wire_MEminus13 ->setBinLabel(cscid,bxtitle,1);
597  csc_wire_MEminus22 ->setBinLabel(cscid,bxtitle,1);
598  csc_wire_MEminus32 ->setBinLabel(cscid,bxtitle,1);
599  csc_wire_MEminus42 ->setBinLabel(cscid,bxtitle,1);
600  }
601 
602 
603  for(int cscid = 1; cscid < 19; cscid++){
604  char bxtitle[100];
605  sprintf(bxtitle,"%d", cscid);
606 
607  csc_strip_MEplus21 ->setBinLabel(cscid,bxtitle,1);
608  csc_strip_MEplus31 ->setBinLabel(cscid,bxtitle,1);
609  csc_strip_MEplus41 ->setBinLabel(cscid,bxtitle,1);
610 
611  csc_strip_MEminus21 ->setBinLabel(cscid,bxtitle,1);
612  csc_strip_MEminus31 ->setBinLabel(cscid,bxtitle,1);
613  csc_strip_MEminus41 ->setBinLabel(cscid,bxtitle,1);
614 
615  csc_wire_MEplus21 ->setBinLabel(cscid,bxtitle,1);
616  csc_wire_MEplus31 ->setBinLabel(cscid,bxtitle,1);
617  csc_wire_MEplus41 ->setBinLabel(cscid,bxtitle,1);
618 
619  csc_wire_MEminus21 ->setBinLabel(cscid,bxtitle,1);
620  csc_wire_MEminus31 ->setBinLabel(cscid,bxtitle,1);
621  csc_wire_MEminus41 ->setBinLabel(cscid,bxtitle,1);
622 
623  }
624 
625 }
MonitorElement * DTstubsTimeTrackMenTimeArrival[12]
Definition: L1TCSCTF.h:166
MonitorElement * csctfoccupancies
Definition: L1TCSCTF.h:83
MonitorElement * csctfTrackEtaHighQ
Definition: L1TCSCTF.h:99
int i
Definition: DBlmapReader.cc:9
MonitorElement * csctflcts
Definition: L1TCSCTF.h:108
MonitorElement * csctfTrackPhi
Definition: L1TCSCTF.h:96
MonitorElement * csc_strip_MEminus22
Definition: L1TCSCTF.h:137
unsigned long long m_scalesCacheID
Definition: L1TCSCTF.h:184
MonitorElement * csctfTrackPhi_H
Definition: L1TCSCTF.h:100
MonitorElement * csc_wire_MEplus31
Definition: L1TCSCTF.h:148
MonitorElement * csc_strip_MEplus21
Definition: L1TCSCTF.h:126
MonitorElement * csc_strip_MEplus11
Definition: L1TCSCTF.h:123
MonitorElement * csc_wire_MEminus13
Definition: L1TCSCTF.h:155
MonitorElement * csc_wire_MEminus22
Definition: L1TCSCTF.h:157
MonitorElement * me11_lctGblPhi
Definition: L1TCSCTF.h:115
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * csc_wire_MEplus12
Definition: L1TCSCTF.h:144
MonitorElement * csc_wire_MEminus31
Definition: L1TCSCTF.h:158
MonitorElement * csctfbx
Definition: L1TCSCTF.h:79
MonitorElement * csc_wire_MEminus32
Definition: L1TCSCTF.h:159
MonitorElement * csctfTrackEtaLowQ
Definition: L1TCSCTF.h:98
MonitorElement * csc_strip_MEminus12
Definition: L1TCSCTF.h:134
MonitorElement * csctfTrackEta
Definition: L1TCSCTF.h:97
MonitorElement * me11_lctWire
Definition: L1TCSCTF.h:112
MonitorElement * csc_strip_MEminus31
Definition: L1TCSCTF.h:138
MonitorElement * csc_wire_MEminus21
Definition: L1TCSCTF.h:156
MonitorElement * csctfTrackEta_H
Definition: L1TCSCTF.h:101
MonitorElement * me42_lctGblPhi
Definition: L1TCSCTF.h:119
MonitorElement * cscTrackStubNumbers
Definition: L1TCSCTF.h:102
MonitorElement * csc_strip_MEminus32
Definition: L1TCSCTF.h:139
MonitorElement * me11_lctStrip
Definition: L1TCSCTF.h:111
MonitorElement * csc_strip_MEminus42
Definition: L1TCSCTF.h:141
MonitorElement * csc_wire_MEplus41
Definition: L1TCSCTF.h:150
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * csc_strip_MEplus13
Definition: L1TCSCTF.h:125
MonitorElement * csc_strip_MEplus22
Definition: L1TCSCTF.h:127
int nev_
Definition: L1TCSCTF.h:172
MonitorElement * csc_wire_MEminus41
Definition: L1TCSCTF.h:160
MonitorElement * csctfChamberOccupancies
Definition: L1TCSCTF.h:95
MonitorElement * csc_wire_MEplus13
Definition: L1TCSCTF.h:145
#define M_PI
MonitorElement * csc_wire_MEplus21
Definition: L1TCSCTF.h:146
MonitorElement * csc_strip_MEminus41
Definition: L1TCSCTF.h:140
MonitorElement * me42_lctGblEta
Definition: L1TCSCTF.h:120
MonitorElement * csc_strip_MEplus31
Definition: L1TCSCTF.h:128
MonitorElement * csc_wire_MEplus32
Definition: L1TCSCTF.h:149
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * csctferrors
Definition: L1TCSCTF.h:82
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * csc_wire_MEminus42
Definition: L1TCSCTF.h:161
MonitorElement * csc_strip_MEplus41
Definition: L1TCSCTF.h:130
MonitorElement * csctfTrackM
Definition: L1TCSCTF.h:103
MonitorElement * csctfbx_H
Definition: L1TCSCTF.h:80
MonitorElement * csctfntrack
Definition: L1TCSCTF.h:78
MonitorElement * csc_wire_MEplus42
Definition: L1TCSCTF.h:151
MonitorElement * trackModeVsQ
Definition: L1TCSCTF.h:104
MonitorElement * me11_lctGblEta
Definition: L1TCSCTF.h:116
MonitorElement * csc_strip_MEminus21
Definition: L1TCSCTF.h:136
MonitorElement * csctfoccupancies_H
Definition: L1TCSCTF.h:84
MonitorElement * csc_strip_MEplus32
Definition: L1TCSCTF.h:129
MonitorElement * csc_strip_MEplus12
Definition: L1TCSCTF.h:124
MonitorElement * me11_lctLocalPhi
Definition: L1TCSCTF.h:113
MonitorElement * csc_strip_MEminus11
Definition: L1TCSCTF.h:133
MonitorElement * csc_strip_MEminus13
Definition: L1TCSCTF.h:135
unsigned long long m_ptScaleCacheID
Definition: L1TCSCTF.h:185
MonitorElement * csc_wire_MEplus11
Definition: L1TCSCTF.h:143
TH2F * getTH2F(void) const
MonitorElement * csc_wire_MEminus12
Definition: L1TCSCTF.h:154
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * csc_strip_MEplus42
Definition: L1TCSCTF.h:131
MonitorElement * me11_lctPackedPhi
Definition: L1TCSCTF.h:114
MonitorElement * csc_wire_MEplus22
Definition: L1TCSCTF.h:147
MonitorElement * csc_wire_MEminus11
Definition: L1TCSCTF.h:153
void L1TCSCTF::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from thread_unsafe::DQMEDAnalyzer.

Definition at line 93 of file L1TCSCTF.cc.

93  {
94 }

Member Data Documentation

int L1TCSCTF::BxInEvent_
private

Definition at line 167 of file L1TCSCTF.h.

Referenced by analyze().

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> L1TCSCTF::corrlctsToken_
private

Definition at line 190 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

MonitorElement* L1TCSCTF::csc_strip_MEminus11
private

Definition at line 133 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus12
private

Definition at line 134 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus13
private

Definition at line 135 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus21
private

Definition at line 136 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus22
private

Definition at line 137 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus31
private

Definition at line 138 of file L1TCSCTF.h.

Referenced by bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus32
private

Definition at line 139 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus41
private

Definition at line 140 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEminus42
private

Definition at line 141 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus11
private

Definition at line 123 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus12
private

Definition at line 124 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus13
private

Definition at line 125 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus21
private

Definition at line 126 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus22
private

Definition at line 127 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus31
private

Definition at line 128 of file L1TCSCTF.h.

Referenced by bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus32
private

Definition at line 129 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus41
private

Definition at line 130 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_strip_MEplus42
private

Definition at line 131 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus11
private

Definition at line 153 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus12
private

Definition at line 154 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus13
private

Definition at line 155 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus21
private

Definition at line 156 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus22
private

Definition at line 157 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus31
private

Definition at line 158 of file L1TCSCTF.h.

Referenced by bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus32
private

Definition at line 159 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus41
private

Definition at line 160 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEminus42
private

Definition at line 161 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus11
private

Definition at line 143 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus12
private

Definition at line 144 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus13
private

Definition at line 145 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus21
private

Definition at line 146 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus22
private

Definition at line 147 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus31
private

Definition at line 148 of file L1TCSCTF.h.

Referenced by bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus32
private

Definition at line 149 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus41
private

Definition at line 150 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csc_wire_MEplus42
private

Definition at line 151 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfAFerror
private

Definition at line 105 of file L1TCSCTF.h.

MonitorElement* L1TCSCTF::csctfbx
private

Definition at line 79 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfbx_H
private

Definition at line 80 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfChamberOccupancies
private

Definition at line 95 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctferrors
private

Definition at line 82 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctflcts
private

Definition at line 108 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfntrack
private

Definition at line 78 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfoccupancies
private

Definition at line 83 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfoccupancies_H
private

Definition at line 84 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackEta
private

Definition at line 97 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackEta_H
private

Definition at line 101 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackEtaHighQ
private

Definition at line 99 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackEtaLowQ
private

Definition at line 98 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackM
private

Definition at line 103 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackPhi
private

Definition at line 96 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::csctfTrackPhi_H
private

Definition at line 100 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::cscTrackStubNumbers
private

Definition at line 102 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::DTstubsTimeTrackMenTimeArrival[12]
private

Definition at line 166 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<CSCTriggerContainer<csctf::TrackStub> > L1TCSCTF::dtStubsToken_
private

Definition at line 192 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

bool L1TCSCTF::gangedME11a_
private

Definition at line 178 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

edm::InputTag L1TCSCTF::gmtProducer
private

Definition at line 177 of file L1TCSCTF.h.

Referenced by analyze().

edm::EDGetTokenT<L1MuGMTReadoutCollection> L1TCSCTF::gmtProducerToken_
private

Definition at line 188 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

bool L1TCSCTF::isCSCcand_
private

Definition at line 168 of file L1TCSCTF.h.

Referenced by analyze().

int L1TCSCTF::L1ABXN
private

Definition at line 170 of file L1TCSCTF.h.

Referenced by analyze().

edm::InputTag L1TCSCTF::lctProducer
private

Definition at line 177 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

std::ofstream L1TCSCTF::logFile_
private

Definition at line 176 of file L1TCSCTF.h.

unsigned long long L1TCSCTF::m_ptScaleCacheID
private

Definition at line 185 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

unsigned long long L1TCSCTF::m_scalesCacheID
private

Definition at line 184 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag L1TCSCTF::mbProducer
private

Definition at line 177 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

edm::EDGetTokenT<L1CSCTrackCollection> L1TCSCTF::mbtracksToken_
private

Definition at line 193 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

MonitorElement* L1TCSCTF::me11_lctGblEta
private

Definition at line 116 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me11_lctGblPhi
private

Definition at line 115 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me11_lctLocalPhi
private

Definition at line 113 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me11_lctPackedPhi
private

Definition at line 114 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me11_lctStrip
private

Definition at line 111 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me11_lctWire
private

Definition at line 112 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me42_lctGblEta
private

Definition at line 120 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* L1TCSCTF::me42_lctGblPhi
private

Definition at line 119 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

bool L1TCSCTF::monitorDaemon_
private

Definition at line 175 of file L1TCSCTF.h.

int L1TCSCTF::nev_
private

Definition at line 172 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

std::string L1TCSCTF::outputFile_
private

Definition at line 173 of file L1TCSCTF.h.

Referenced by L1TCSCTF().

CSCSectorReceiverLUT* L1TCSCTF::srLUTs_[5]
private

Definition at line 180 of file L1TCSCTF.h.

Referenced by analyze(), L1TCSCTF(), and ~L1TCSCTF().

edm::InputTag L1TCSCTF::statusProducer
private

Definition at line 177 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

edm::EDGetTokenT<L1CSCStatusDigiCollection> L1TCSCTF::statusToken_
private

Definition at line 189 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

const L1MuTriggerPtScale* L1TCSCTF::tpts
private

Definition at line 183 of file L1TCSCTF.h.

Referenced by analyze().

MonitorElement* L1TCSCTF::trackModeVsQ
private

Definition at line 104 of file L1TCSCTF.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag L1TCSCTF::trackProducer
private

Definition at line 177 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

edm::EDGetTokenT<L1CSCTrackCollection> L1TCSCTF::tracksToken_
private

Definition at line 191 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().

const L1MuTriggerScales* L1TCSCTF::ts
private

Definition at line 182 of file L1TCSCTF.h.

Referenced by analyze().

bool L1TCSCTF::verbose_
private

Definition at line 174 of file L1TCSCTF.h.

Referenced by analyze(), and L1TCSCTF().