CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
AlCaHOCalibProducer Class Reference

#include <Calibration/AlCaHOCalibProducer/src/AlCaHOCalibProducer.cc>

Inheritance diagram for AlCaHOCalibProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef Basic3DVector< float > DirectionType
 
typedef Basic3DVector< float > PositionType
 
typedef Basic3DVector< float > RotationType
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 AlCaHOCalibProducer (const edm::ParameterSet &)
 
 ~AlCaHOCalibProducer () override
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

typedef math::Error< 5 >::type CovarianceMatrix
 

Private Member Functions

void beginJob () override
 
void beginLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &) override
 
void endJob () override
 
void fillHOStore (const reco::TrackRef &ncosm, HOCalibVariables &tmpHOCalib, std::unique_ptr< HOCalibVariableCollection > &hostore, int Noccu_old, int indx, edm::Handle< reco::TrackCollection > cosmicmuon, edm::View< reco::Muon >::const_iterator muon1, const edm::Event &iEvent, const edm::EventSetup &iSetup)
 
void findHOEtaPhi (int iphsect, int &ietaho, int &iphiho)
 
FreeTrajectoryState getFreeTrajectoryState (const reco::Track &tk, const MagneticField *field, int itag, bool dir)
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

std::map< std::string, bool > fired
 
edm::ESHandle< HcalSeverityLevelComputerhcalSevLvlComputerHndl
 
TH2F * ho_occupency [5]
 
int iring
 
float localxhor0
 
float localxhor1
 
float localyhor0
 
float localyhor1
 
bool m_cosmic
 
int m_endTS
 
bool m_hbinfo
 
bool m_occupancy
 
double m_sigma
 
int m_startTS
 
edm::InputTag muonTags_
 
const int ncidmx = 5
 
const int netabin = 16
 
const int netamx = 32
 
int Nevents
 
int Noccu
 
const int nphimx = 72
 
int nRuns
 
unsigned int Ntp
 
const double rHOL0 = 382.0
 
const double rHOL1 = 407.0
 
const HcalChannelQualitytheHcalChStatus
 
edm::EDGetTokenT< HBHERecHitCollectiontok_hbhe_
 
edm::EDGetTokenT< HORecHitCollectiontok_ho_
 
edm::EDGetTokenT< LumiScalersCollectiontok_lumi_
 
edm::EDGetTokenT< edm::View< reco::Muon > > tok_muons_
 
edm::EDGetTokenT< reco::TrackCollectiontok_muonsCosmic_
 
edm::EDGetTokenT< CaloTowerCollectiontok_tower_
 
edm::EDGetTokenT< reco::VertexCollectiontok_vertex_
 
float xhor0
 
float xhor1
 
float yhor0
 
float yhor1
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

change magnetic field inside ../data/HOCosmicCalib_RecoLocalMuon.cff ../data/HOCosmicCalib_RecoLocalTracker.cff

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>=""> Missing towers : eta=5, phi=18-19 : eta = -5, phi =11-14

HO tile sizes Ring +-2 : width Tray 6:404.6, 5&4:347.6, 3:352.6, 2:364.6, 1:315.6 (phi ordering is opposite) lenght Tile 1:420.1, 2:545.1, 3:583.3, 4:626.0, 5:335.5

    (five tiles, 1 is close to Ring 1 and 5 is towardslc endcap)

Ring +-1 : width Tray 6:404.6, 5&4:347.6, 3:352.6, 2:364.6, 1:315.6 (same as Ring+-2) lenght Tile 1:391.5, 2:394.2, 3:411.0, 4:430.9, 5:454.0, 6:426.0 (1: near R0 and 6 near R2)

Ring 0 L1 : Width Tray (6:290.6, 5&4:345.6, 3:350.6, 2:362.6, 1:298.6
lenght 1:351.2, 2:353.8, 3:359.2, 4:189.1 (4 is towards Ring1)

Ring 0 L0 : Width Tray 6:266.6, 5&4:325.6, 3:330.6, 2:341.6, 1:272.6 length 1:331.5, 2:334.0, 3:339.0, 4:248.8 (4 is towards Ring1)

Definition at line 152 of file AlCaHOCalibProducer.cc.

Member Typedef Documentation

◆ CovarianceMatrix

Definition at line 220 of file AlCaHOCalibProducer.cc.

◆ DirectionType

Definition at line 158 of file AlCaHOCalibProducer.cc.

◆ PositionType

Definition at line 157 of file AlCaHOCalibProducer.cc.

◆ RotationType

Definition at line 159 of file AlCaHOCalibProducer.cc.

Constructor & Destructor Documentation

◆ AlCaHOCalibProducer()

AlCaHOCalibProducer::AlCaHOCalibProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 248 of file AlCaHOCalibProducer.cc.

248  {
249  //register your products
250 
251  m_hbinfo = iConfig.getUntrackedParameter<bool>("hbinfo", false);
252  m_sigma = iConfig.getUntrackedParameter<double>("sigma", 0.05);
253  m_occupancy = iConfig.getUntrackedParameter<bool>("plotOccupancy", false);
254  m_cosmic = iConfig.getUntrackedParameter<bool>("CosmicData", false);
255 
256  // keep InputTag muonTags_ since it is used below. - cowden
257  muonTags_ = iConfig.getUntrackedParameter<edm::InputTag>("muons");
258  tok_muonsCosmic_ = consumes<reco::TrackCollection>(muonTags_);
259  tok_muons_ = consumes<edm::View<reco::Muon> >(muonTags_);
260  tok_vertex_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexTags"));
261  // tok_lumi_ = consumes<LumiDetails ,edm::InLumi>(iConfig.getParameter<edm::InputTag>("lumiTags"));
262  tok_lumi_ = consumes<LumiScalersCollection>(iConfig.getParameter<edm::InputTag>("lumiTags"));
263  tok_ho_ = consumes<HORecHitCollection>(iConfig.getParameter<edm::InputTag>("hoInput"));
264  tok_hbhe_ = consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("hbheInput"));
265  tok_tower_ = consumes<CaloTowerCollection>(iConfig.getParameter<edm::InputTag>("towerInput"));
266 
267  produces<HOCalibVariableCollection>("HOCalibVariableCollection").setBranchAlias("HOCalibVariableCollection");
268 
269  if (m_occupancy) {
271 
272  char title[200];
273 
274  for (int ij = 0; ij < 5; ij++) {
275  sprintf(title, "ho_occupency (>%i #sigma)", ij + 2);
276  ho_occupency[ij] =
277  fs->make<TH2F>(title, title, netamx + 1, -netamx - 0.5, netamx / 2 + 0.5, nphimx, 0.5, nphimx + 0.5);
278  }
279  }
280 }

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), ho_occupency, m_cosmic, m_hbinfo, m_occupancy, m_sigma, TFileService::make(), muonTags_, netamx, nphimx, overlapproblemtsosanalyzer_cfi::title, tok_hbhe_, tok_ho_, tok_lumi_, tok_muons_, tok_muonsCosmic_, tok_tower_, and tok_vertex_.

◆ ~AlCaHOCalibProducer()

AlCaHOCalibProducer::~AlCaHOCalibProducer ( )
override

Definition at line 282 of file AlCaHOCalibProducer.cc.

282  {
283  // do anything here that needs to be done at desctruction time
284  // (e.g. close files, deallocate resources etc.)
285 }

Member Function Documentation

◆ beginJob()

void AlCaHOCalibProducer::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 369 of file AlCaHOCalibProducer.cc.

369  {
370  Nevents = 0;
371  nRuns = 0;
372  Noccu = 0;
373 }

References Nevents, Noccu, and nRuns.

◆ beginLuminosityBlock()

void AlCaHOCalibProducer::beginLuminosityBlock ( const edm::LuminosityBlock lBlock,
const edm::EventSetup es 
)
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 390 of file AlCaHOCalibProducer.cc.

390  {
392  es.get<HcalChannelQualityRcd>().get("withTopo", hcalChStatus);
393  theHcalChStatus = hcalChStatus.product();
394 
395  return;
396 }

References edm::EventSetup::get(), get, edm::ESHandle< T >::product(), and theHcalChStatus.

◆ endJob()

void AlCaHOCalibProducer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 376 of file AlCaHOCalibProducer.cc.

376  {
377  if (m_occupancy) {
378  for (int ij = 0; ij < 5; ij++) {
379  ho_occupency[ij]->Scale(1. / std::max(1, Noccu));
380  }
381  }
382  edm::LogInfo("HOCalib") << " AlCaHOCalibProducer processed event " << Nevents;
383 }

References ho_occupency, m_occupancy, SiStripPI::max, Nevents, and Noccu.

Referenced by o2olib.O2ORunMgr::executeJob().

◆ fillHOStore()

void AlCaHOCalibProducer::fillHOStore ( const reco::TrackRef ncosm,
HOCalibVariables tmpHOCalib,
std::unique_ptr< HOCalibVariableCollection > &  hostore,
int  Noccu_old,
int  indx,
edm::Handle< reco::TrackCollection cosmicmuon,
edm::View< reco::Muon >::const_iterator  muon1,
const edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 398 of file AlCaHOCalibProducer.cc.

406  {
408  iSetup.get<CaloGeometryRecord>().get(pG);
409  const CaloGeometry* geo = pG.product();
411 
412  // Get Hcal Severity Level Computer, so that the severity of each rechit flag/status may be determined
413  // edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl;
415  const HcalSeverityLevelComputer* hcalSevLvlComputer = hcalSevLvlComputerHndl.product();
416 
417  int charge = ncosm->charge();
418 
419  double innerr = (*ncosm).innerPosition().Perp2();
420  double outerr = (*ncosm).outerPosition().Perp2();
421  int iiner = (innerr < outerr) ? 1 : 0;
422 
423  //---------------------------------------------------
424  // in_to_out Dir in_to_out Dir
425  // StandAlone ^ ^ Cosmic ^ |
426  // | | | v
427  //---------------------------------------------------Y=0
428  // StandAlone | | Cosmic ^ |
429  // v v | v
430  //----------------------------------------------------
431 
432  double posx, posy, posz;
433  double momx, momy, momz;
434 
435  if (iiner == 1) {
436  posx = (*ncosm).innerPosition().X();
437  posy = (*ncosm).innerPosition().Y();
438  posz = (*ncosm).innerPosition().Z();
439 
440  momx = (*ncosm).innerMomentum().X();
441  momy = (*ncosm).innerMomentum().Y();
442  momz = (*ncosm).innerMomentum().Z();
443 
444  } else {
445  posx = (*ncosm).outerPosition().X();
446  posy = (*ncosm).outerPosition().Y();
447  posz = (*ncosm).outerPosition().Z();
448 
449  momx = (*ncosm).outerMomentum().X();
450  momy = (*ncosm).outerMomentum().Y();
451  momz = (*ncosm).outerMomentum().Z();
452  }
453 
454  PositionType trkpos(posx, posy, posz);
455 
456  CLHEP::Hep3Vector tmpmuon3v(posx, posy, posz);
457  CLHEP::Hep3Vector tmpmuondir(momx, momy, momz);
458 
459  bool samedir = (tmpmuon3v.dot(tmpmuondir) > 0) ? true : false;
460  for (int ij = 0; ij < 3; ij++) {
461  tmpHOCalib.caloen[ij] = 0.0;
462  }
463  int inearbymuon = 0;
464  localxhor0 = localyhor0 = 20000; //GM for 22OCT07 data
465 
466  if (m_cosmic) {
467  int ind(0);
468  for (reco::TrackCollection::const_iterator ncosmcor = cosmicmuon->begin(); ncosmcor != cosmicmuon->end();
469  ++ncosmcor, ++ind) {
470  if (indx == ind)
471  continue;
472  CLHEP::Hep3Vector tmpmuon3vcor;
473  CLHEP::Hep3Vector tmpmom3v;
474  if (iiner == 1) {
475  tmpmuon3vcor = CLHEP::Hep3Vector(
476  (*ncosmcor).innerPosition().X(), (*ncosmcor).innerPosition().Y(), (*ncosmcor).innerPosition().Z());
477  tmpmom3v = CLHEP::Hep3Vector(
478  (*ncosmcor).innerMomentum().X(), (*ncosmcor).innerMomentum().Y(), (*ncosmcor).innerMomentum().Z());
479  } else {
480  tmpmuon3vcor = CLHEP::Hep3Vector(
481  (*ncosmcor).outerPosition().X(), (*ncosmcor).outerPosition().Y(), (*ncosmcor).outerPosition().Z());
482  tmpmom3v = CLHEP::Hep3Vector(
483  (*ncosmcor).outerMomentum().X(), (*ncosmcor).outerMomentum().Y(), (*ncosmcor).outerMomentum().Z());
484  }
485 
486  if (tmpmom3v.mag() < 0.2 || (*ncosmcor).ndof() < 5)
487  continue;
488 
489  double angle = tmpmuon3v.angle(tmpmuon3vcor);
490  if (angle < 7.5 * CLHEP::deg) {
491  inearbymuon = 1;
492  } // break;}
493 
494  // if (muonTagsi_.label() =="cosmicMuons") {
495  if (angle < 7.5 * CLHEP::deg) {
496  tmpHOCalib.caloen[0] += 1.;
497  }
498  if (angle < 15.0 * CLHEP::deg) {
499  tmpHOCalib.caloen[1] += 1.;
500  }
501  if (angle < 35.0 * CLHEP::deg) {
502  tmpHOCalib.caloen[2] += 1.;
503  }
504  }
505  } else {
506  // if (muonTags_.label() =="muons") {
508  iEvent.getByToken(tok_tower_, calotower);
509 
510  for (CaloTowerCollection::const_iterator calt = calotower->begin(); calt != calotower->end(); calt++) {
511  //CMSSW_2_1_x const math::XYZVector towermom = (*calt).momentum();
512  double ith = (*calt).momentum().theta();
513  double iph = (*calt).momentum().phi();
514 
515  CLHEP::Hep3Vector calo3v(sin(ith) * cos(iph), sin(ith) * sin(iph), cos(ith));
516 
517  double angle = tmpmuon3v.angle(calo3v);
518 
519  if (angle < 7.5 * CLHEP::deg) {
520  tmpHOCalib.caloen[0] += calt->emEnergy() + calt->hadEnergy();
521  }
522  if (angle < 15 * CLHEP::deg) {
523  tmpHOCalib.caloen[1] += calt->emEnergy() + calt->hadEnergy();
524  }
525  if (angle < 35 * CLHEP::deg) {
526  tmpHOCalib.caloen[2] += calt->emEnergy() + calt->hadEnergy();
527  }
528  }
529  }
530  if ((m_cosmic) || (tmpHOCalib.caloen[0] <= 10.0)) {
531  GlobalPoint glbpt(posx, posy, posz);
532 
533  double mom = sqrt(momx * momx + momy * momy + momz * momz);
534 
535  momx /= mom;
536  momy /= mom;
537  momz /= mom;
538 
539  DirectionType trkdir(momx, momy, momz);
540 
541  tmpHOCalib.trkdr = (*ncosm).d0();
542  tmpHOCalib.trkdz = (*ncosm).dz();
543  tmpHOCalib.nmuon = (m_cosmic) ? cosmicmuon->size() : 1;
544  tmpHOCalib.trkvx = glbpt.x();
545  tmpHOCalib.trkvy = glbpt.y();
546  tmpHOCalib.trkvz = glbpt.z();
547  tmpHOCalib.trkmm = mom * charge;
548  tmpHOCalib.trkth = trkdir.theta();
549  tmpHOCalib.trkph = trkdir.phi();
550  tmpHOCalib.isect2 = -2;
551  tmpHOCalib.isect = -2;
552  tmpHOCalib.hodx = -100;
553  tmpHOCalib.hody = -100;
554  tmpHOCalib.hoang = -2.0;
555  tmpHOCalib.momatho = -2;
556  tmpHOCalib.ndof = (inearbymuon == 0) ? (int)(*ncosm).ndof() : -(int)(*ncosm).ndof();
557  tmpHOCalib.chisq = (*ncosm).normalizedChi2(); // max(1.,tmpHOCalib.ndof);
558  if (!m_cosmic) {
559  reco::MuonEnergy muonenr = muon1->calEnergy();
560  reco::MuonIsolation iso03 = muon1->isolationR03();
561  reco::MuonIsolation iso05 = muon1->isolationR05();
562 
563  tmpHOCalib.tkpt03 = iso03.sumPt;
564  tmpHOCalib.ecal03 = iso05.sumPt; // iso03.emEt+muonenr.em;
565  tmpHOCalib.hcal03 = iso03.hadEt + muonenr.had;
566  }
567  tmpHOCalib.therr = 0.;
568  tmpHOCalib.pherr = 0.;
569  if (iiner == 1) {
570  reco::TrackBase::CovarianceMatrix innercov = (*ncosm).innerStateCovariance();
571  tmpHOCalib.therr = innercov(1, 1); //thetaError();
572  tmpHOCalib.pherr = innercov(2, 2); //phi0Error();
573  } else {
574  reco::TrackBase::CovarianceMatrix outercov = (*ncosm).outerStateCovariance();
575  tmpHOCalib.therr = outercov(1, 1); //thetaError();
576  tmpHOCalib.pherr = outercov(2, 2); //phi0Error();
577  }
578  edm::ESHandle<MagneticField> theMagField;
579  iSetup.get<IdealMagneticFieldRecord>().get(theMagField);
580 
581  SteppingHelixPropagator myHelix(&*theMagField, anyDirection);
582  myHelix.setMaterialMode(false);
583  myHelix.applyRadX0Correction(true);
584  double phiho = trkpos.phi();
585  if (phiho < 0)
586  phiho += CLHEP::twopi;
587 
588  int iphisect_dt = int(6 * (phiho + 10.0 * CLHEP::deg) / CLHEP::pi); //for u 18/12/06
589  if (iphisect_dt >= 12)
590  iphisect_dt = 0;
591 
592  int iphisect = -1;
593  bool ipath = false;
594  for (int kl = 0; kl <= 2; kl++) {
595  int iphisecttmp = (kl < 2) ? iphisect_dt + kl : iphisect_dt - 1;
596  if (iphisecttmp < 0)
597  iphisecttmp = 11;
598  if (iphisecttmp >= 12)
599  iphisecttmp = 0;
600 
601  double phipos = iphisecttmp * CLHEP::pi / 6.;
602  double phirot = phipos;
603 
604  GlobalVector xLocal(-sin(phirot), cos(phirot), 0.);
605  GlobalVector yLocal(0., 0., 1.);
606  GlobalVector zLocal = xLocal.cross(yLocal).unit();
607  // GlobalVector zLocal(cos(phirot), sin(phirot), 0.0);
608 
609  FreeTrajectoryState freetrajectorystate_ = getFreeTrajectoryState(*ncosm, &(*theMagField), iiner, samedir);
610 
611  Surface::RotationType rot(xLocal, yLocal, zLocal);
612 
613  for (int ik = 1; ik >= 0; ik--) { //propagate track in two HO layers
614 
615  double radial = rHOL1;
616  if (ik == 0)
617  radial = rHOL0;
618 
619  Surface::PositionType pos(radial * cos(phipos), radial * sin(phipos), 0.);
621 
622  auto aPlane2 = new Plane(pos, rot);
623 
624  SteppingHelixStateInfo steppingHelixstateinfo_;
625  myHelix.propagate(SteppingHelixStateInfo(freetrajectorystate_), (*aPlane2), steppingHelixstateinfo_);
626 
627  if (steppingHelixstateinfo_.isValid()) {
628  GlobalPoint hotrkpos2xx(steppingHelixstateinfo_.position().x(),
629  steppingHelixstateinfo_.position().y(),
630  steppingHelixstateinfo_.position().z());
631 
632  if (ik == 1) {
633  HcalDetId ClosestCell = (HcalDetId)gHO->getClosestCell(hotrkpos2xx);
634  int ixeta = ClosestCell.ieta();
635  int ixphi = ClosestCell.iphi();
636  tmpHOCalib.isect2 = 100 * std::abs(ixeta + 50) + std::abs(ixphi);
637  }
638 
639  GlobalVector hotrkpos2(steppingHelixstateinfo_.position().x(),
640  steppingHelixstateinfo_.position().y(),
641  steppingHelixstateinfo_.position().z());
642  CLHEP::Hep3Vector hotrkdir2(steppingHelixstateinfo_.momentum().x(),
643  steppingHelixstateinfo_.momentum().y(),
644  steppingHelixstateinfo_.momentum().z());
645 
646  LocalVector lclvt0 = (*aPlane).toLocal(hotrkpos2);
647 
648  double xx = lclvt0.x();
649  double yy = lclvt0.y();
650 
651  if (ik == 1) {
652  if ((std::abs(yy) < 130 && xx > -64.7 && xx < 138.2) //Ring-0
653  || (std::abs(yy) > 130 && std::abs(yy) < 700 && xx > -76.3 && xx < 140.5)) { //Ring +-1,2
654  ipath = true; //Only look for tracks which as hits in layer 1
655  iphisect = iphisecttmp;
656  }
657  }
658 
659  if (iphisect != iphisecttmp)
660  continue; //Look for ring-0 only when ring1 is accepted for that sector
661 
662  switch (ik) {
663  case 0:
664  xhor0 = xx; //lclvt0.x();
665  yhor0 = yy; //lclvt0.y();
666  break;
667  case 1:
668  xhor1 = xx; //lclvt0.x();
669  yhor1 = yy; //lclvt0.y();
670  tmpHOCalib.momatho = hotrkdir2.mag();
671  tmpHOCalib.hoang = CLHEP::Hep3Vector(zLocal.x(), zLocal.y(), zLocal.z()).dot(hotrkdir2.unit());
672  break;
673  default:
674  break;
675  }
676  } else {
677  break;
678  }
679  }
680  if (ipath)
681  break;
682  }
683  if (ipath) { //If muon crossed HO laeyrs
684 
685  int ietaho = 50;
686  int iphiho = -1;
687 
688  for (int ij = 0; ij < 9; ij++) {
689  tmpHOCalib.hosig[ij] = -100.0;
690  }
691  for (int ij = 0; ij < 18; ij++) {
692  tmpHOCalib.hocorsig[ij] = -100.0;
693  }
694  for (int ij = 0; ij < 9; ij++) {
695  tmpHOCalib.hbhesig[ij] = -100.0;
696  }
697  tmpHOCalib.hocro = -100;
698  tmpHOCalib.htime = -1000;
699 
700  int isect = 0;
701 
702  findHOEtaPhi(iphisect, ietaho, iphiho);
703 
704  if (ietaho != 0 && iphiho != 0 && std::abs(iring) <= 2) { //Muon passed through a tower
705  isect = 100 * std::abs(ietaho + 50) + std::abs(iphiho);
706  if (std::abs(ietaho) >= netabin || iphiho < 0)
707  isect *= -1; //Not extrapolated to any tower
708  if (std::abs(ietaho) >= netabin)
709  isect -= 1000000; //not matched with eta
710  if (iphiho < 0)
711  isect -= 2000000; //not matched with phi
712  tmpHOCalib.isect = isect;
713 
714  tmpHOCalib.hodx = localxhor1;
715  tmpHOCalib.hody = localyhor1;
716 
717  if (iring == 0) {
718  tmpHOCalib.hocorsig[8] = localxhor0;
719  tmpHOCalib.hocorsig[9] = localyhor0;
720  }
721 
722  int etamn = -4;
723  int etamx = 4;
724  if (iring == 1) {
725  etamn = 5;
726  etamx = 10;
727  }
728  if (iring == 2) {
729  etamn = 11;
730  etamx = 16;
731  }
732  if (iring == -1) {
733  etamn = -10;
734  etamx = -5;
735  }
736  if (iring == -2) {
737  etamn = -16;
738  etamx = -11;
739  }
740 
741  int phimn = 1;
742  int phimx = 2;
743  if (iring == 0) {
744  phimx = 2 * int((iphiho + 1) / 2.);
745  phimn = phimx - 1;
746  } else {
747  phimn = 3 * int((iphiho + 1) / 3.) - 1;
748  phimx = phimn + 2;
749  }
750 
751  if (phimn < 1)
752  phimn += nphimx;
753  if (phimx > 72)
754  phimx -= nphimx;
755 
756  if (m_hbinfo) {
757  for (int ij = 0; ij < 9; ij++) {
758  tmpHOCalib.hbhesig[ij] = -100.0;
759  }
760 
761  edm::Handle<HBHERecHitCollection> hbheht; // iEvent.getByType(hbheht);
762  iEvent.getByToken(tok_hbhe_, hbheht);
763 
764  if (!(*hbheht).empty()) {
765  if ((*hbheht).empty())
766  throw(int)(*hbheht).size();
767 
768  for (HBHERecHitCollection::const_iterator jk = (*hbheht).begin(); jk != (*hbheht).end(); jk++) {
769  HcalDetId id = (*jk).id();
770  int tmpeta = id.ieta();
771  int tmpphi = id.iphi();
772 
773  int deta = tmpeta - ietaho;
774  if (tmpeta < 0 && ietaho > 0)
775  deta += 1;
776  if (tmpeta > 0 && ietaho < 0)
777  deta -= 1;
778 
779  // if (tmpeta==-1 && ietaho== 1) deta = -1;
780  // if (tmpeta== 1 && ietaho==-1) deta = 1;
781 
782  int dphi = tmpphi - iphiho;
783  if (dphi > nphimx / 2) {
784  dphi -= nphimx;
785  }
786  if (dphi < -nphimx / 2) {
787  dphi += nphimx;
788  }
789 
790  // if (phimn >phimx) {
791  // if (dphi==71) dphi=-1;
792  // if (dphi==-71) dphi=1;
793  // }
794 
795  if (m_occupancy) {
796  float signal = (*jk).energy();
797  // int tmpeta1 = (tmpeta>0) ? tmpeta -1 : -tmpeta +14;
798  if (signal > -100 && Noccu == Noccu_old) {
799  for (int ij = 0; ij < 5; ij++) {
800  if (signal > (ij + 2) * m_sigma) {
801  ho_occupency[ij]->Fill(tmpeta, tmpphi);
802  }
803  }
804  }
805  }
806 
807  int ipass2 = (std::abs(deta) <= 1 && std::abs(dphi) <= 1) ? 1 : 0; //NEED correction in full CMS detector
808  if (ipass2 == 0)
809  continue;
810 
811  float signal = (*jk).energy();
812 
813  if (3 * (deta + 1) + dphi + 1 < 9)
814  tmpHOCalib.hbhesig[3 * (deta + 1) + dphi + 1] = signal;
815  }
816  }
817  } //m_hbinfo #endif
818 
820  iEvent.getByToken(tok_ho_, hoht);
821 
822  if (!(*hoht).empty()) {
823  for (HORecHitCollection::const_iterator jk = (*hoht).begin(); jk != (*hoht).end(); jk++) {
824  HcalDetId id = (*jk).id();
825  int tmpeta = id.ieta();
826  int tmpphi = id.iphi();
827 
828  int ipass1 = 0;
829  if (tmpeta >= etamn && tmpeta <= etamx) {
830  if (phimn < phimx) {
831  ipass1 = (tmpphi >= phimn && tmpphi <= phimx) ? 1 : 0;
832  } else {
833  ipass1 = (tmpphi == 71 || tmpphi == 72 || tmpphi == 1) ? 1 : 0;
834  }
835  }
836 
837  int deta = tmpeta - ietaho;
838  int dphi = tmpphi - iphiho;
839 
840  if (tmpeta < 0 && ietaho > 0)
841  deta += 1;
842  if (tmpeta > 0 && ietaho < 0)
843  deta -= 1;
844  // if (tmpeta==-1 && ietaho== 1) deta = -1;
845  // if (tmpeta== 1 && ietaho==-1) deta = 1;
846 
847  if (dphi > nphimx / 2) {
848  dphi -= nphimx;
849  }
850  if (dphi < -nphimx / 2) {
851  dphi += nphimx;
852  }
853  // if (phimn>phimx) {
854  // if (dphi==71) dphi=-1;
855  // if (dphi==-71) dphi=1;
856  // }
857 
858  float signal = (*jk).energy();
859 
860  int ipass2 = (std::abs(deta) <= 1 && std::abs(dphi) <= 1) ? 1 : 0;
861 
862  if (ipass1 == 0 && ipass2 == 0)
863  continue;
864 
865  if (ipass1 == 1) {
866  int tmpdph = tmpphi - phimn;
867  if (tmpdph < 0)
868  tmpdph = 2; //only case of iphi==1, where phimn=71
869 
870  int ilog = 2 * (tmpeta - etamn) + tmpdph;
871  if (iring != 0) {
872  if (iring > 0) {
873  ilog = 3 * (tmpeta - etamn) + tmpdph; //Again CMS correction
874  } else {
875  ilog = 3 * (etamx - tmpeta) + tmpdph; //Again CMS correction
876  }
877  }
878  if (ilog > -1 && ilog < 18) {
879  tmpHOCalib.hocorsig[ilog] = signal;
880  }
881  }
882 
883  if (ipass2 == 1) {
884  if (3 * (deta + 1) + dphi + 1 < 9) {
885  tmpHOCalib.hosig[3 * (deta + 1) + dphi + 1] = signal; //Again CMS azimuthal near phi 1&72
886  }
887  }
888 
889  if (deta == 0 && dphi == 0) {
890  tmpHOCalib.htime = (*jk).time();
891  tmpHOCalib.hoflag = (*jk).flags();
892 
893  // Get Channel Quality information for the given detID
894  unsigned theStatusValue = theHcalChStatus->getValues(id)->getValue();
895  // Now get severity of problems for the given detID, based on the rechit flag word and the channel quality status value
896  int hitSeverity = hcalSevLvlComputer->getSeverityLevel(id, (*jk).flags(), theStatusValue);
897  tmpHOCalib.hoflag = hitSeverity;
898  int crphi = tmpphi + 6;
899  if (crphi > 72)
900  crphi -= 72;
901 
902  for (HORecHitCollection::const_iterator jcr = (*hoht).begin(); jcr != (*hoht).end(); jcr++) {
903  const HORecHit reccr = (const HORecHit)(*jcr);
904  HcalDetId idcr = reccr.id();
905  int etacr = idcr.ieta();
906  int phicr = idcr.iphi();
907  if (tmpeta == etacr && crphi == phicr) {
908  tmpHOCalib.hocro = reccr.energy();
909  }
910  }
911  }
912  }
913  }
914  }
915 
916  //GMA Npass++;
917  if (Noccu == Noccu_old)
918  Noccu++;
919  hostore->push_back(tmpHOCalib);
920  } // if (ipath)
921  } // Cut on calo energy
922 }

References funct::abs(), angle(), anyDirection, SteppingHelixPropagator::applyRadX0Correction(), HOCalibVariables::caloen, ewkMuLumiMonitorDQM_cfi::calotower, ALCARECOTkAlJpsiMuMu_cff::charge, HOCalibVariables::chisq, funct::cos(), Vector3DBase< T, FrameTag >::cross(), dot(), HOCalibVariables::ecal03, CaloRecHit::energy(), findHOEtaPhi(), edm::EventSetup::get(), get, CaloSubdetectorGeometry::getClosestCell(), getFreeTrajectoryState(), HcalSeverityLevelComputer::getSeverityLevel(), CaloGeometry::getSubdetectorGeometry(), HcalChannelStatus::getValue(), HcalCondObjectContainer< Item >::getValues(), reco::MuonEnergy::had, reco::MuonIsolation::hadEt, HOCalibVariables::hbhesig, DetId::Hcal, HOCalibVariables::hcal03, HcalOuter, hcalSevLvlComputerHndl, ho_occupency, HOCalibVariables::hoang, HOCalibVariables::hocorsig, HOCalibVariables::hocro, HOCalibVariables::hodx, HOCalibVariables::hody, HOCalibVariables::hoflag, HOCalibVariables::hosig, HOCalibVariables::htime, HORecHit::id(), HcalDetId::ieta(), iEvent, createfilelist::int, HcalDetId::iphi(), iring, HOCalibVariables::isect, HOCalibVariables::isect2, SteppingHelixStateInfo::isValid(), localxhor0, localxhor1, localyhor0, localyhor1, m_cosmic, m_hbinfo, m_occupancy, m_sigma, HOCalibVariables::momatho, SteppingHelixStateInfo::momentum(), HOCalibVariables::ndof, netabin, HOCalibVariables::nmuon, Noccu, nphimx, HOCalibVariables::pherr, Basic3DVector< T >::phi(), pi, PlaneBuilder::plane(), SteppingHelixStateInfo::position(), edm::ESHandle< T >::product(), SteppingHelixPropagator::propagate(), rHOL0, rHOL1, makeMuonMisalignmentScenario::rot, SteppingHelixPropagator::setMaterialMode(), funct::sin(), mathSSE::sqrt(), reco::MuonIsolation::sumPt, theHcalChStatus, HOCalibVariables::therr, Basic3DVector< T >::theta(), HOCalibVariables::tkpt03, tok_hbhe_, tok_ho_, tok_tower_, HOCalibVariables::trkdr, HOCalibVariables::trkdz, HOCalibVariables::trkmm, HOCalibVariables::trkph, HOCalibVariables::trkth, HOCalibVariables::trkvx, HOCalibVariables::trkvy, HOCalibVariables::trkvz, PV3DBase< T, PVType, FrameType >::x(), xhor0, xhor1, geometryCSVtoXML::xx, PV3DBase< T, PVType, FrameType >::y(), yhor0, yhor1, geometryCSVtoXML::yy, and PV3DBase< T, PVType, FrameType >::z().

Referenced by produce().

◆ findHOEtaPhi()

void AlCaHOCalibProducer::findHOEtaPhi ( int  iphsect,
int &  ietaho,
int &  iphiho 
)
private

Definition at line 924 of file AlCaHOCalibProducer.cc.

924  {
925  //18/12/06 : use only position, not angle phi
926 
927  const double etalow[16] = {0.025,
928  35.195,
929  70.625,
930  106.595,
931  141.565,
932  180.765,
933  220.235,
934  261.385,
935  304.525,
936  349.975,
937  410.025,
938  452.085,
939  506.645,
940  565.025,
941  627.725,
942  660.25};
943  const double etahgh[16] = {35.145,
944  70.575,
945  106.545,
946  125.505,
947  180.715,
948  220.185,
949  261.335,
950  304.475,
951  349.925,
952  392.575,
953  452.035,
954  506.595,
955  564.975,
956  627.675,
957  661.075,
958  700.25};
959 
960  const double philow[6] = {-76.27, -35.11, 0.35, 35.81, 71.77, 108.93}; //Ring+/-1 & 2
961  const double phihgh[6] = {-35.81, -0.35, 35.11, 71.07, 108.23, 140.49};
962 
963  const double philow00[6] = {-60.27, -32.91, 0.35, 33.61, 67.37, 102.23}; //Ring0 L0
964  const double phihgh00[6] = {-33.61, -0.35, 32.91, 66.67, 101.53, 129.49};
965 
966  const double philow01[6] = {-64.67, -34.91, 0.35, 35.61, 71.37, 108.33}; //Ring0 L1
967  const double phihgh01[6] = {-35.61, -0.35, 34.91, 70.67, 107.63, 138.19};
968 
969  iring = -10;
970 
971  double tmpdy = std::abs(yhor1);
972  for (int ij = 0; ij < netabin; ij++) {
973  if (tmpdy > etalow[ij] && tmpdy < etahgh[ij]) {
974  ietaho = ij + 1;
975  float tmp1 = fabs(tmpdy - etalow[ij]);
976  float tmp2 = fabs(tmpdy - etahgh[ij]);
977 
978  localyhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
979  if (yhor1 < 0)
980  localyhor1 *= -1.;
981 
982  if (ij < 4)
983  iring = 0;
984  if (ij >= 4 && ij < 10)
985  iring = 1;
986  if (ij >= 10 && ij < netabin)
987  iring = 2;
988  break;
989  }
990  }
991 
992  int tmpphi = 0;
993  int tmpphi0 = 0;
994 
995  if (ietaho > 4) { //Ring 1 and 2
996  for (int ij = 0; ij < 6; ij++) {
997  if (xhor1 > philow[ij] && xhor1 < phihgh[ij]) {
998  tmpphi = ij + 1;
999  float tmp1 = fabs(xhor1 - philow[ij]);
1000  float tmp2 = fabs(xhor1 - phihgh[ij]);
1001  localxhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1002  break;
1003  }
1004  }
1005  } else { //Ring 0
1006  for (int ij = 0; ij < 6; ij++) {
1007  if (xhor1 > philow01[ij] && xhor1 < phihgh01[ij]) {
1008  tmpphi = ij + 1;
1009  float tmp1 = fabs(xhor1 - philow01[ij]);
1010  float tmp2 = fabs(xhor1 - phihgh01[ij]);
1011  localxhor1 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1012  break;
1013  }
1014  }
1015 
1016  for (int ij = 0; ij < 6; ij++) {
1017  if (xhor0 > philow00[ij] && xhor0 < phihgh00[ij]) {
1018  tmpphi0 = ij + 1;
1019  float tmp1 = fabs(xhor0 - philow00[ij]);
1020  float tmp2 = fabs(xhor0 - phihgh00[ij]);
1021  localxhor0 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1022  if (tmpphi != tmpphi0)
1023  localxhor0 += 10000.;
1024  break;
1025  }
1026  }
1027 
1028  double tmpdy = std::abs(yhor0);
1029  for (int ij = 0; ij < 4; ij++) {
1030  if (tmpdy > etalow[ij] && tmpdy < etahgh[ij]) {
1031  float tmp1 = fabs(tmpdy - etalow[ij]);
1032  float tmp2 = fabs(tmpdy - etahgh[ij]);
1033  localyhor0 = (tmp1 < tmp2) ? -tmp1 : tmp2;
1034  if (yhor0 < 0)
1035  localyhor0 *= -1.;
1036  if (ij + 1 != ietaho)
1037  localyhor0 += 10000.;
1038  break;
1039  }
1040  }
1041  }
1042 
1043  if (tmpphi != 0) {
1044  iphiho = 6 * iphisect - 2 + tmpphi;
1045  if (iphiho <= 0)
1046  iphiho += nphimx;
1047  if (iphiho > nphimx)
1048  iphiho -= nphimx;
1049  }
1050 
1051  // isect2 = 15*iring+iphisect+1;
1052 
1053  if (yhor1 < 0) {
1054  if (std::abs(ietaho) > netabin) { //Initialised with 50
1055  ietaho += 1;
1056  } else {
1057  ietaho *= -1;
1058  }
1059  // isect2 *=-1;
1060  iring *= -1;
1061  }
1062 }

References funct::abs(), iring, localxhor0, localxhor1, localyhor0, localyhor1, netabin, nphimx, xhor0, xhor1, yhor0, and yhor1.

Referenced by fillHOStore().

◆ getFreeTrajectoryState()

FreeTrajectoryState AlCaHOCalibProducer::getFreeTrajectoryState ( const reco::Track tk,
const MagneticField field,
int  itag,
bool  dir 
)
private

Definition at line 1064 of file AlCaHOCalibProducer.cc.

1067  {
1068  if (iiner == 0) {
1069  GlobalPoint gpos(tk.outerX(), tk.outerY(), tk.outerZ());
1070  GlobalVector gmom(tk.outerPx(), tk.outerPy(), tk.outerPz());
1071  if (dir)
1072  gmom *= -1.;
1073  GlobalTrajectoryParameters par(gpos, gmom, tk.charge(), field);
1074  CurvilinearTrajectoryError err(tk.extra()->outerStateCovariance());
1075  return FreeTrajectoryState(par, err);
1076  } else {
1077  GlobalPoint gpos(tk.innerPosition().X(), tk.innerPosition().Y(), tk.innerPosition().Z());
1078  GlobalVector gmom(tk.innerMomentum().X(), tk.innerMomentum().Y(), tk.innerMomentum().Z());
1079  if (dir)
1080  gmom *= -1.;
1081  GlobalTrajectoryParameters par(gpos, -gmom, tk.charge(), field);
1082  CurvilinearTrajectoryError err(tk.extra()->innerStateCovariance());
1083  return FreeTrajectoryState(par, err);
1084  }
1085 }

References reco::TrackBase::charge(), DeadROC_duringRun::dir, runTheMatrix::err, reco::Track::extra(), reco::Track::innerMomentum(), reco::Track::innerPosition(), reco::Track::outerPx(), reco::Track::outerPy(), reco::Track::outerPz(), reco::Track::outerX(), reco::Track::outerY(), and reco::Track::outerZ().

Referenced by fillHOStore().

◆ produce()

void AlCaHOCalibProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::EDProducer.

Definition at line 292 of file AlCaHOCalibProducer.cc.

292  {
293  int irun = iEvent.id().run();
294  // int ilumi = iEvent.luminosityBlock();
295 
296  Nevents++;
297 
298  if (Nevents % 5000 == 1)
299  edm::LogInfo("HOCalib") << "AlCaHOCalibProducer Processing event # " << Nevents << " " << Noccu << " " << irun
300  << " " << iEvent.id().event();
301 
302  auto hostore = std::make_unique<HOCalibVariableCollection>();
303 
305  edm::Handle<edm::View<reco::Muon> > collisionmuon;
306 
307  bool muonOK(true);
308  HOCalibVariables tmpHOCalib;
309  tmpHOCalib.nprim = -1;
310  tmpHOCalib.inslumi = -1.;
311 
312  if (m_cosmic) {
313  iEvent.getByToken(tok_muonsCosmic_, cosmicmuon);
314  muonOK = (cosmicmuon.isValid() && !cosmicmuon->empty());
315  } else {
316  iEvent.getByToken(tok_muons_, collisionmuon);
317  muonOK = (collisionmuon.isValid() && !collisionmuon->empty());
318 
319  if (iEvent.isRealData()) {
321  iEvent.getByToken(tok_vertex_, primaryVertices);
322  if (primaryVertices.isValid()) {
323  tmpHOCalib.nprim = primaryVertices->size();
324  }
325 
326  tmpHOCalib.inslumi = 0.;
327 
329  iEvent.getByToken(tok_lumi_, lumiScale);
330 
331  if (lumiScale.isValid()) {
332  if (lumiScale->empty()) {
333  edm::LogError("HOCalib") << "lumiScale collection is empty";
334  } else {
335  tmpHOCalib.inslumi = lumiScale->begin()->pileup();
336  }
337  }
338  }
339  }
340 
341  if (muonOK) {
342  int Noccu_old = Noccu;
344  if (m_cosmic) {
345  int indx(0);
346  for (reco::TrackCollection::const_iterator ncosm = cosmicmuon->begin(); ncosm != cosmicmuon->end();
347  ++ncosm, ++indx) {
348  if ((*ncosm).ndof() < 15)
349  continue;
350  if ((*ncosm).normalizedChi2() > 30.0)
351  continue;
352  reco::TrackRef tRef = reco::TrackRef(cosmicmuon, indx);
353  fillHOStore(tRef, tmpHOCalib, hostore, Noccu_old, indx, cosmicmuon, muon1, iEvent, iSetup);
354  }
355  } else {
356  for (muon1 = collisionmuon->begin(); muon1 < collisionmuon->end(); muon1++) {
357  if ((!muon1->isGlobalMuon()) || (!muon1->isTrackerMuon()))
358  continue;
359  reco::TrackRef ncosm = muon1->innerTrack();
360  fillHOStore(ncosm, tmpHOCalib, hostore, Noccu_old, 0, cosmicmuon, muon1, iEvent, iSetup);
361  }
362  }
363  }
364 
365  iEvent.put(std::move(hostore), "HOCalibVariableCollection");
366 }

References fillHOStore(), iEvent, HOCalibVariables::inslumi, edm::HandleBase::isValid(), BXlumiParameters_cfi::lumiScale, m_cosmic, eostools::move(), Nevents, Noccu, HOCalibVariables::nprim, zMuMuMuonUserData::primaryVertices, tok_lumi_, tok_muons_, tok_muonsCosmic_, and tok_vertex_.

Member Data Documentation

◆ fired

std::map<std::string, bool> AlCaHOCalibProducer::fired
private

Definition at line 228 of file AlCaHOCalibProducer.cc.

◆ hcalSevLvlComputerHndl

edm::ESHandle<HcalSeverityLevelComputer> AlCaHOCalibProducer::hcalSevLvlComputerHndl
private

Definition at line 233 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore().

◆ ho_occupency

TH2F* AlCaHOCalibProducer::ho_occupency[5]
private

Definition at line 192 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), endJob(), and fillHOStore().

◆ iring

int AlCaHOCalibProducer::iring
private

Definition at line 185 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ localxhor0

float AlCaHOCalibProducer::localxhor0
private

Definition at line 187 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ localxhor1

float AlCaHOCalibProducer::localxhor1
private

Definition at line 189 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ localyhor0

float AlCaHOCalibProducer::localyhor0
private

Definition at line 188 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ localyhor1

float AlCaHOCalibProducer::localyhor1
private

Definition at line 190 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ m_cosmic

bool AlCaHOCalibProducer::m_cosmic
private

Definition at line 194 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), fillHOStore(), and produce().

◆ m_endTS

int AlCaHOCalibProducer::m_endTS
private

Definition at line 217 of file AlCaHOCalibProducer.cc.

◆ m_hbinfo

bool AlCaHOCalibProducer::m_hbinfo
private

Definition at line 215 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and fillHOStore().

◆ m_occupancy

bool AlCaHOCalibProducer::m_occupancy
private

Definition at line 193 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), endJob(), and fillHOStore().

◆ m_sigma

double AlCaHOCalibProducer::m_sigma
private

Definition at line 218 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and fillHOStore().

◆ m_startTS

int AlCaHOCalibProducer::m_startTS
private

Definition at line 216 of file AlCaHOCalibProducer.cc.

◆ muonTags_

edm::InputTag AlCaHOCalibProducer::muonTags_
private

Definition at line 203 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer().

◆ ncidmx

const int AlCaHOCalibProducer::ncidmx = 5
private

Definition at line 199 of file AlCaHOCalibProducer.cc.

◆ netabin

const int AlCaHOCalibProducer::netabin = 16
private

Definition at line 196 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ netamx

const int AlCaHOCalibProducer::netamx = 32
private

Definition at line 198 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer().

◆ Nevents

int AlCaHOCalibProducer::Nevents
private

Definition at line 234 of file AlCaHOCalibProducer.cc.

Referenced by beginJob(), endJob(), and produce().

◆ Noccu

int AlCaHOCalibProducer::Noccu
private

Definition at line 221 of file AlCaHOCalibProducer.cc.

Referenced by beginJob(), endJob(), fillHOStore(), and produce().

◆ nphimx

const int AlCaHOCalibProducer::nphimx = 72
private

Definition at line 197 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), fillHOStore(), and findHOEtaPhi().

◆ nRuns

int AlCaHOCalibProducer::nRuns
private

Definition at line 222 of file AlCaHOCalibProducer.cc.

Referenced by beginJob().

◆ Ntp

unsigned int AlCaHOCalibProducer::Ntp
private

Definition at line 227 of file AlCaHOCalibProducer.cc.

◆ rHOL0

const double AlCaHOCalibProducer::rHOL0 = 382.0
private

Definition at line 200 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore().

◆ rHOL1

const double AlCaHOCalibProducer::rHOL1 = 407.0
private

Definition at line 201 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore().

◆ theHcalChStatus

const HcalChannelQuality* AlCaHOCalibProducer::theHcalChStatus
private

Definition at line 231 of file AlCaHOCalibProducer.cc.

Referenced by beginLuminosityBlock(), and fillHOStore().

◆ tok_hbhe_

edm::EDGetTokenT<HBHERecHitCollection> AlCaHOCalibProducer::tok_hbhe_
private

Definition at line 211 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and fillHOStore().

◆ tok_ho_

edm::EDGetTokenT<HORecHitCollection> AlCaHOCalibProducer::tok_ho_
private

Definition at line 212 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and fillHOStore().

◆ tok_lumi_

edm::EDGetTokenT<LumiScalersCollection> AlCaHOCalibProducer::tok_lumi_
private

Definition at line 209 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

◆ tok_muons_

edm::EDGetTokenT<edm::View<reco::Muon> > AlCaHOCalibProducer::tok_muons_
private

Definition at line 206 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

◆ tok_muonsCosmic_

edm::EDGetTokenT<reco::TrackCollection> AlCaHOCalibProducer::tok_muonsCosmic_
private

Definition at line 205 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

◆ tok_tower_

edm::EDGetTokenT<CaloTowerCollection> AlCaHOCalibProducer::tok_tower_
private

Definition at line 213 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and fillHOStore().

◆ tok_vertex_

edm::EDGetTokenT<reco::VertexCollection> AlCaHOCalibProducer::tok_vertex_
private

Definition at line 207 of file AlCaHOCalibProducer.cc.

Referenced by AlCaHOCalibProducer(), and produce().

◆ xhor0

float AlCaHOCalibProducer::xhor0
private

Definition at line 181 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ xhor1

float AlCaHOCalibProducer::xhor1
private

Definition at line 183 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ yhor0

float AlCaHOCalibProducer::yhor0
private

Definition at line 182 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

◆ yhor1

float AlCaHOCalibProducer::yhor1
private

Definition at line 184 of file AlCaHOCalibProducer.cc.

Referenced by fillHOStore(), and findHOEtaPhi().

dot
T dot(const Basic3DVector &v) const
Scalar product, or "dot" product, with a vector of same type.
Definition: Basic3DVectorLD.h:212
AlCaHOCalibProducer::nRuns
int nRuns
Definition: AlCaHOCalibProducer.cc:222
Vector3DBase
Definition: Vector3DBase.h:8
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
SteppingHelixStateInfo::momentum
GlobalVector momentum() const
Definition: SteppingHelixStateInfo.h:60
HOCalibVariables::nmuon
int nmuon
Definition: HOCalibVariables.h:7
TkRotation< float >
HOCalibVariables::tkpt03
float tkpt03
Definition: HOCalibVariables.h:51
reco::MuonEnergy
Definition: MuonEnergy.h:17
HOCalibVariables::trkph
float trkph
Definition: HOCalibVariables.h:22
AlCaHOCalibProducer::tok_ho_
edm::EDGetTokenT< HORecHitCollection > tok_ho_
Definition: AlCaHOCalibProducer.cc:212
reco::Track::outerPy
double outerPy() const
y coordinate of momentum vector at the outermost hit position
Definition: Track.h:103
anyDirection
Definition: PropagationDirection.h:4
edm::SortedCollection< CaloTower >::const_iterator
std::vector< CaloTower >::const_iterator const_iterator
Definition: SortedCollection.h:80
AlCaHOCalibProducer::PositionType
Basic3DVector< float > PositionType
Definition: AlCaHOCalibProducer.cc:157
SteppingHelixStateInfo::position
GlobalPoint position() const
Definition: SteppingHelixStateInfo.h:59
CaloRecHit::energy
constexpr float energy() const
Definition: CaloRecHit.h:29
HOCalibVariables::therr
float therr
Definition: HOCalibVariables.h:28
HOCalibVariables::hoang
float hoang
Definition: HOCalibVariables.h:36
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
HOCalibVariables
Definition: HOCalibVariables.h:5
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
reco::Track::outerPx
double outerPx() const
x coordinate of momentum vector at the outermost hit position
Definition: Track.h:100
HcalChannelQualityRcd
Definition: HcalChannelQualityRcd.h:8
HOCalibVariables::isect2
int isect2
Definition: HOCalibVariables.h:32
HORecHit
Definition: HORecHit.h:11
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
AlCaHOCalibProducer::m_cosmic
bool m_cosmic
Definition: AlCaHOCalibProducer.cc:194
HOCalibVariables::inslumi
float inslumi
Definition: HOCalibVariables.h:10
pos
Definition: PixelAliasList.h:18
AlCaHOCalibProducer::tok_vertex_
edm::EDGetTokenT< reco::VertexCollection > tok_vertex_
Definition: AlCaHOCalibProducer.cc:207
DetId::Hcal
Definition: DetId.h:28
edm::LogInfo
Definition: MessageLogger.h:254
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
HOCalibVariables::hocro
float hocro
Definition: HOCalibVariables.h:47
reco::MuonEnergy::had
float had
Definition: MuonEnergy.h:36
reco::Track::outerX
double outerX() const
x coordinate of the outermost hit position
Definition: Track.h:109
AlCaHOCalibProducer::tok_muons_
edm::EDGetTokenT< edm::View< reco::Muon > > tok_muons_
Definition: AlCaHOCalibProducer.cc:206
ewkMuLumiMonitorDQM_cfi.calotower
calotower
Definition: ewkMuLumiMonitorDQM_cfi.py:36
HOCalibVariables::trkmm
float trkmm
Definition: HOCalibVariables.h:20
HOCalibVariables::hocorsig
float hocorsig[18]
Definition: HOCalibVariables.h:43
AlCaHOCalibProducer::findHOEtaPhi
void findHOEtaPhi(int iphsect, int &ietaho, int &iphiho)
Definition: AlCaHOCalibProducer.cc:924
AlCaHOCalibProducer::localyhor1
float localyhor1
Definition: AlCaHOCalibProducer.cc:190
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
ReferenceCountingPointer< Plane >
AlCaHOCalibProducer::Noccu
int Noccu
Definition: AlCaHOCalibProducer.cc:221
AlCaHOCalibProducer::tok_hbhe_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: AlCaHOCalibProducer.cc:211
edm::Handle
Definition: AssociativeIterator.h:50
HOCalibVariables::caloen
float caloen[3]
Definition: HOCalibVariables.h:50
reco::MuonIsolation
Definition: MuonIsolation.h:5
HcalCondObjectContainer::getValues
const Item * getValues(DetId fId, bool throwOnFail=true) const
Definition: HcalCondObjectContainer.h:159
reco::Track::extra
const TrackExtraRef & extra() const
reference to "extra" object
Definition: Track.h:139
HOCalibVariables::htime
float htime
Definition: HOCalibVariables.h:37
AlCaHOCalibProducer::localxhor1
float localxhor1
Definition: AlCaHOCalibProducer.cc:189
edm::Ref< TrackCollection >
reco::Track::outerPz
double outerPz() const
z coordinate of momentum vector at the outermost hit position
Definition: Track.h:106
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
HOCalibVariables::pherr
float pherr
Definition: HOCalibVariables.h:29
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
reco::MuonIsolation::sumPt
float sumPt
sum-pt of tracks
Definition: MuonIsolation.h:6
CaloGeometry
Definition: CaloGeometry.h:21
reco::Track::outerZ
double outerZ() const
z coordinate of the outermost hit position
Definition: Track.h:115
reco::Track::innerMomentum
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:59
SteppingHelixPropagator
Definition: SteppingHelixPropagator.h:36
HOCalibVariables::trkth
float trkth
Definition: HOCalibVariables.h:21
HOCalibVariables::hbhesig
float hbhesig[9]
Definition: HOCalibVariables.h:49
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
CurvilinearTrajectoryError
Definition: CurvilinearTrajectoryError.h:27
AlCaHOCalibProducer::m_sigma
double m_sigma
Definition: AlCaHOCalibProducer.cc:218
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
HOCalibVariables::trkvy
float trkvy
Definition: HOCalibVariables.h:16
HcalSeverityLevelComputer
Definition: HcalSeverityLevelComputer.h:24
AlCaHOCalibProducer::muonTags_
edm::InputTag muonTags_
Definition: AlCaHOCalibProducer.cc:203
AlCaHOCalibProducer::ho_occupency
TH2F * ho_occupency[5]
Definition: AlCaHOCalibProducer.cc:192
edm::ESHandle< HcalChannelQuality >
BXlumiParameters_cfi.lumiScale
lumiScale
Definition: BXlumiParameters_cfi.py:11
HOCalibVariables::momatho
float momatho
Definition: HOCalibVariables.h:19
HOCalibVariables::chisq
float chisq
Definition: HOCalibVariables.h:26
HOCalibVariables::hoflag
unsigned int hoflag
Definition: HOCalibVariables.h:38
HcalOuter
Definition: HcalAssistant.h:35
AlCaHOCalibProducer::Nevents
int Nevents
Definition: AlCaHOCalibProducer.cc:234
reco::TrackBase::charge
int charge() const
track electric charge
Definition: TrackBase.h:581
AlCaHOCalibProducer::xhor1
float xhor1
Definition: AlCaHOCalibProducer.cc:183
GlobalTrajectoryParameters
Definition: GlobalTrajectoryParameters.h:15
AlCaHOCalibProducer::m_occupancy
bool m_occupancy
Definition: AlCaHOCalibProducer.cc:193
AlCaHOCalibProducer::netabin
const int netabin
Definition: AlCaHOCalibProducer.cc:196
Point3DBase< float, GlobalTag >
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
AlCaHOCalibProducer::localxhor0
float localxhor0
Definition: AlCaHOCalibProducer.cc:187
SteppingHelixStateInfo
Definition: SteppingHelixStateInfo.h:27
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
HcalSeverityLevelComputer::getSeverityLevel
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
Definition: HcalSeverityLevelComputer.cc:304
HcalChannelStatus::getValue
uint32_t getValue() const
Definition: HcalChannelStatus.h:60
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
edm::LogError
Definition: MessageLogger.h:183
AlCaHOCalibProducer::tok_tower_
edm::EDGetTokenT< CaloTowerCollection > tok_tower_
Definition: AlCaHOCalibProducer.cc:213
AlCaHOCalibProducer::DirectionType
Basic3DVector< float > DirectionType
Definition: AlCaHOCalibProducer.cc:158
zMuMuMuonUserData.primaryVertices
primaryVertices
Definition: zMuMuMuonUserData.py:12
geometryCSVtoXML.yy
yy
Definition: geometryCSVtoXML.py:19
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
runTheMatrix.err
err
Definition: runTheMatrix.py:288
AlCaHOCalibProducer::yhor0
float yhor0
Definition: AlCaHOCalibProducer.cc:182
HOCalibVariables::trkdz
float trkdz
Definition: HOCalibVariables.h:13
AlCaHOCalibProducer::theHcalChStatus
const HcalChannelQuality * theHcalChStatus
Definition: AlCaHOCalibProducer.cc:231
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
HOCalibVariables::trkvz
float trkvz
Definition: HOCalibVariables.h:17
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
HcalDetId
Definition: HcalDetId.h:12
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
HOCalibVariables::hodx
float hodx
Definition: HOCalibVariables.h:33
HOCalibVariables::hosig
float hosig[9]
Definition: HOCalibVariables.h:39
iEvent
int iEvent
Definition: GenABIO.cc:224
Vector3DBase::cross
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:110
CaloSubdetectorGeometry::getClosestCell
virtual DetId getClosestCell(const GlobalPoint &r) const
Definition: CaloSubdetectorGeometry.cc:44
PlaneBuilder::plane
ReturnType plane(const PositionType &pos, const RotationType &rot) const
Definition: PlaneBuilder.h:21
HOCalibVariables::ndof
float ndof
Definition: HOCalibVariables.h:24
get
#define get
SteppingHelixStateInfo::isValid
bool isValid() const
Definition: SteppingHelixStateInfo.h:65
AlCaHOCalibProducer::m_hbinfo
bool m_hbinfo
Definition: AlCaHOCalibProducer.cc:215
HOCalibVariables::isect
int isect
Definition: HOCalibVariables.h:31
overlapproblemtsosanalyzer_cfi.title
title
Definition: overlapproblemtsosanalyzer_cfi.py:7
HOCalibVariables::hcal03
float hcal03
Definition: HOCalibVariables.h:53
AlCaHOCalibProducer::nphimx
const int nphimx
Definition: AlCaHOCalibProducer.cc:197
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
HOCalibVariables::trkvx
float trkvx
Definition: HOCalibVariables.h:15
AlCaHOCalibProducer::yhor1
float yhor1
Definition: AlCaHOCalibProducer.cc:184
eostools.move
def move(src, dest)
Definition: eostools.py:511
AlCaHOCalibProducer::tok_muonsCosmic_
edm::EDGetTokenT< reco::TrackCollection > tok_muonsCosmic_
Definition: AlCaHOCalibProducer.cc:205
AlCaHOCalibProducer::tok_lumi_
edm::EDGetTokenT< LumiScalersCollection > tok_lumi_
Definition: AlCaHOCalibProducer.cc:209
reco::MuonIsolation::hadEt
float hadEt
hcal sum-Et
Definition: MuonIsolation.h:8
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
AlCaHOCalibProducer::rHOL0
const double rHOL0
Definition: AlCaHOCalibProducer.cc:200
HOCalibVariables::nprim
int nprim
Definition: HOCalibVariables.h:8
Plane
Definition: Plane.h:16
AlCaHOCalibProducer::hcalSevLvlComputerHndl
edm::ESHandle< HcalSeverityLevelComputer > hcalSevLvlComputerHndl
Definition: AlCaHOCalibProducer.cc:233
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
AlCaHOCalibProducer::localyhor0
float localyhor0
Definition: AlCaHOCalibProducer.cc:188
angle
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
HORecHit::id
constexpr HcalDetId id() const
get the id
Definition: HORecHit.h:19
PlaneBuilder
Definition: PlaneBuilder.h:13
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
AlCaHOCalibProducer::iring
int iring
Definition: AlCaHOCalibProducer.cc:185
HOCalibVariables::hody
float hody
Definition: HOCalibVariables.h:35
pi
const Double_t pi
Definition: trackSplitPlot.h:36
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
AlCaHOCalibProducer::xhor0
float xhor0
Definition: AlCaHOCalibProducer.cc:181
HOCalibVariables::trkdr
float trkdr
Definition: HOCalibVariables.h:12
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
reco::TrackBase::CovarianceMatrix
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:74
AlCaHOCalibProducer::getFreeTrajectoryState
FreeTrajectoryState getFreeTrajectoryState(const reco::Track &tk, const MagneticField *field, int itag, bool dir)
Definition: AlCaHOCalibProducer.cc:1064
edm::InputTag
Definition: InputTag.h:15
HcalSeverityLevelComputerRcd
Definition: HcalSeverityLevelComputerRcd.h:23
reco::Track::outerY
double outerY() const
y coordinate of the outermost hit position
Definition: Track.h:112
geometryCSVtoXML.xx
xx
Definition: geometryCSVtoXML.py:19
HOCalibVariables::ecal03
float ecal03
Definition: HOCalibVariables.h:52
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
AlCaHOCalibProducer::netamx
const int netamx
Definition: AlCaHOCalibProducer.cc:198
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
AlCaHOCalibProducer::fillHOStore
void fillHOStore(const reco::TrackRef &ncosm, HOCalibVariables &tmpHOCalib, std::unique_ptr< HOCalibVariableCollection > &hostore, int Noccu_old, int indx, edm::Handle< reco::TrackCollection > cosmicmuon, edm::View< reco::Muon >::const_iterator muon1, const edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition: AlCaHOCalibProducer.cc:398
AlCaHOCalibProducer::rHOL1
const double rHOL1
Definition: AlCaHOCalibProducer.cc:201