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][2][6]
 
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 sector=1; // assume SR LUTs are all same for every sector
56  bool TMB07=true; // specific TMB firmware
57  // Create a pset for SR/PT LUTs: if you do not change the value in the
58  // configuration file, it will load the default minitLUTs
59  edm::ParameterSet srLUTset;
60  srLUTset.addUntrackedParameter<bool>("ReadLUTs", false);
61  srLUTset.addUntrackedParameter<bool>("Binary", false);
62  srLUTset.addUntrackedParameter<std::string>("LUTPath", "./");
63 
64  // positive endcap
65  int endcap = 1;
66  for(int sector=0; sector<6; sector++) {
67  for(int station=1,fpga=0; station<=4 && fpga<5; station++) {
68  if(station==1)
69  for(int subSector=0; subSector<2 && fpga<5; subSector++)
70  srLUTs_[fpga++][1][sector] = new CSCSectorReceiverLUT(endcap,sector+1,subSector+1,
71  station, srLUTset, TMB07);
72  else
73  srLUTs_[fpga++][1][sector] = new CSCSectorReceiverLUT(endcap, sector+1, 0,
74  station, srLUTset, TMB07);
75  }
76  }
77 
78  // negative endcap
79  endcap = 2;
80  for(int sector=0; sector<6; sector++) {
81  for(int station=1,fpga=0; station<=4 && fpga<5; station++) {
82  if(station==1)
83  for(int subSector=0; subSector<2 && fpga<5; subSector++)
84  srLUTs_[fpga++][0][sector] = new CSCSectorReceiverLUT(endcap,sector+1,subSector+1,
85  station, srLUTset, TMB07);
86  else
87  srLUTs_[fpga++][0][sector] = new CSCSectorReceiverLUT(endcap, sector+1, 0,
88  station, srLUTset, TMB07);
89  }
90  }
91 
92 
93  //set Token(-s)
99 
100  gmtProducerToken_ = consumes<L1MuGMTReadoutCollection>(ps.getParameter< InputTag >("gmtProducer"));
101  statusToken_ = consumes<L1CSCStatusDigiCollection>(statusTag_);
102  corrlctsToken_ = consumes<CSCCorrelatedLCTDigiCollection>(corrlctsTag_);
103  tracksToken_ = consumes<L1CSCTrackCollection>(tracksTag_);
104  dtStubsToken_ = consumes<CSCTriggerContainer<csctf::TrackStub> >(dtStubsTag_);
105  mbtracksToken_ = consumes<L1CSCTrackCollection>(mbtracksTag_);
106 }
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
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
CSCSectorReceiverLUT * srLUTs_[5][2][6]
Definition: L1TCSCTF.h:180
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 108 of file L1TCSCTF.cc.

References i, j, alignCSCRings::s, and srLUTs_.

109 {
110 
111  for(unsigned int j=0; j<2; j++)
112  for(unsigned int i=0; i<5; i++)
113  for(unsigned int s=0; s<6; s++)
114  delete srLUTs_[i][j][s]; //free the array of pointers
115 
116 }
int i
Definition: DBlmapReader.cc:9
int j
Definition: DBlmapReader.cc:9
CSCSectorReceiverLUT * srLUTs_[5][2][6]
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 652 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_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, 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_.

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

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

118  {
119 }

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 analyze(), and 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 analyze(), and 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 analyze(), and 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 analyze(), and 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][2][6]
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().