CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
EcalLaserCorrFilter Class Reference
Inheritance diagram for EcalLaserCorrFilter:
edm::EDFilter edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 EcalLaserCorrFilter (const edm::ParameterSet &iConfig)
 
 ~EcalLaserCorrFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- 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 ()
 

Private Member Functions

virtual bool filter (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 

Private Attributes

const bool debug_
 
const double EBEnegyMIN_
 
const double EBLaserMAX_
 
const double EBLaserMIN_
 
edm::EDGetTokenT
< EcalRecHitCollection
ebRHSrcToken_
 
const double EEEnegyMIN_
 
const double EELaserMAX_
 
const double EELaserMIN_
 
edm::EDGetTokenT
< EcalRecHitCollection
eeRHSrcToken_
 
const bool taggingMode_
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- 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)
 

Detailed Description

Definition at line 30 of file EcalLaserCorrFilter.cc.

Constructor & Destructor Documentation

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

Definition at line 50 of file EcalLaserCorrFilter.cc.

51  : ebRHSrcToken_ (consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("EBRecHitSource")))
52  , eeRHSrcToken_ (consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("EERecHitSource")))
53  , EBLaserMIN_ (iConfig.getParameter<double>("EBLaserMIN"))
54  , EELaserMIN_ (iConfig.getParameter<double>("EELaserMIN"))
55  , EBLaserMAX_ (iConfig.getParameter<double>("EBLaserMAX"))
56  , EELaserMAX_ (iConfig.getParameter<double>("EELaserMAX"))
57  , EBEnegyMIN_ (iConfig.getParameter<double>("EBEnegyMIN"))
58  , EEEnegyMIN_ (iConfig.getParameter<double>("EEEnegyMIN"))
59  , taggingMode_ (iConfig.getParameter<bool>("taggingMode"))
60  , debug_ (iConfig.getParameter<bool>("Debug"))
61 {
62  produces<bool>();
63 }
T getParameter(std::string const &) const
edm::EDGetTokenT< EcalRecHitCollection > ebRHSrcToken_
edm::EDGetTokenT< EcalRecHitCollection > eeRHSrcToken_
EcalLaserCorrFilter::~EcalLaserCorrFilter ( )
inline

Definition at line 35 of file EcalLaserCorrFilter.cc.

35 {}

Member Function Documentation

bool EcalLaserCorrFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::EDFilter.

Definition at line 66 of file EcalLaserCorrFilter.cc.

References gather_cfg::cout, debug_, EBEnegyMIN_, EBLaserMAX_, ebRHSrcToken_, EEEnegyMIN_, EELaserMAX_, eeRHSrcToken_, relval_parameters_module::energy, edm::EventID::event(), edm::EventSetup::get(), edm::Event::getByToken(), edm::EventBase::id(), EcalRecHit::id(), EcalCondDBWriter_cfi::laser, edm::EventBase::luminosityBlock(), edm::Event::put(), dt_dqm_sourceclient_common_cff::reco, query::result, edm::EventID::run(), taggingMode_, edm::EventBase::time(), cond::rpcobgas::time, and ecaldqm::zside().

66  {
67 
68  using namespace edm;
69  using namespace reco;
70  using namespace std;
71 
73  iEvent.getByToken(ebRHSrcToken_, ebRHs);
74 
76  iEvent.getByToken(eeRHSrcToken_, eeRHs);
77 
78  // Laser corrections
80  iSetup.get<EcalLaserDbRecord>().get(laser);
81 
82 
83  bool goodCalib = true;
84 
85  // check EE RecHits
86  for (EcalRecHitCollection::const_iterator eerh = eeRHs->begin(); eerh != eeRHs->end(); ++eerh) {
87 
88  EcalRecHit hit = (*eerh);
89  EEDetId eeDet = hit.id();
90  double energy = eerh->energy();
91  double time = eerh->time();
92  int jx = EEDetId((*eerh).id()).ix();
93  int jy = EEDetId((*eerh).id()).iy();
94  int jz = EEDetId((*eerh).id()).zside();
95 
96  // get laser coefficient
97  float lasercalib = laser->getLaserCorrection( EEDetId(eeDet), iEvent.time());
98 
99  if( energy>EEEnegyMIN_ && (lasercalib < EELaserMIN_ || lasercalib > EELaserMAX_) ) {
100  goodCalib = false;
101  if(debug_) {
102  std::cout << "RecHit EE "
103  << iEvent.id().run()<< ":" << iEvent.luminosityBlock() <<":"<<iEvent.id().event()
104  << " lasercalib " << lasercalib << " rechit ene " << energy << " time " << time
105  << " ix, iy, z = " << jx << " " << jy << " " << jz
106  << std::endl;
107  }
108  }
109 
110  //if (!goodCalib) break;
111  }
112 
113  // check EB RecHits
114  for (EcalRecHitCollection::const_iterator ebrh = ebRHs->begin(); ebrh != ebRHs->end(); ++ebrh) {
115 
116  EcalRecHit hit = (*ebrh);
117  EBDetId ebDet = hit.id();
118  double energy = ebrh->energy();
119  double time = ebrh->time();
120  int etarec = EBDetId((*ebrh).id()).ieta();
121  int phirec = EBDetId((*ebrh).id()).iphi();
122  int zrec = EBDetId((*ebrh).id()).zside();
123 
124 
125  // get laser coefficient
126  float lasercalib = laser->getLaserCorrection( EBDetId(ebDet), iEvent.time());
127 
128  if (energy>EBEnegyMIN_ && (lasercalib < EBLaserMIN_ || lasercalib > EBLaserMAX_) ) {
129  goodCalib = false;
130  if(debug_) {
131  std::cout << "RecHit EB "
132  << iEvent.id().run()<< ":" << iEvent.luminosityBlock() <<":"<<iEvent.id().event()
133  << " lasercalib " << lasercalib << " rechit ene " << energy << " time " << time
134  << " eta, phi, z = " << etarec << " " << phirec << " " << zrec
135  << std::endl;
136  }
137  }
138  //if (!goodCalib) break;
139  }
140 
141 
142  bool result = goodCalib;
143  //std::cout << " *********** Result ******** " << result << std::endl;
144 
145  iEvent.put( std::auto_ptr<bool>(new bool(result)) );
146 
147  return taggingMode_ || result;
148 
149 }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
std::vector< EcalRecHit >::const_iterator const_iterator
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:63
int zside(DetId const &)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:120
tuple result
Definition: query.py:137
edm::EDGetTokenT< EcalRecHitCollection > ebRHSrcToken_
DetId id() const
get the id
Definition: EcalRecHit.h:76
const T & get() const
Definition: EventSetup.h:56
edm::EDGetTokenT< EcalRecHitCollection > eeRHSrcToken_
edm::EventID id() const
Definition: EventBase.h:60
tuple cout
Definition: gather_cfg.py:121
edm::Timestamp time() const
Definition: EventBase.h:61

Member Data Documentation

const bool EcalLaserCorrFilter::debug_
private

Definition at line 46 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const double EcalLaserCorrFilter::EBEnegyMIN_
private

Definition at line 45 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const double EcalLaserCorrFilter::EBLaserMAX_
private

Definition at line 45 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const double EcalLaserCorrFilter::EBLaserMIN_
private

Definition at line 45 of file EcalLaserCorrFilter.cc.

edm::EDGetTokenT<EcalRecHitCollection> EcalLaserCorrFilter::ebRHSrcToken_
private

Definition at line 41 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const double EcalLaserCorrFilter::EEEnegyMIN_
private

Definition at line 45 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const double EcalLaserCorrFilter::EELaserMAX_
private

Definition at line 45 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const double EcalLaserCorrFilter::EELaserMIN_
private

Definition at line 45 of file EcalLaserCorrFilter.cc.

edm::EDGetTokenT<EcalRecHitCollection> EcalLaserCorrFilter::eeRHSrcToken_
private

Definition at line 42 of file EcalLaserCorrFilter.cc.

Referenced by filter().

const bool EcalLaserCorrFilter::taggingMode_
private

Definition at line 46 of file EcalLaserCorrFilter.cc.

Referenced by filter().