CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
Pi0FixedMassWindowCalibration Class Reference

#include <Pi0FixedMassWindowCalibration.h>

Inheritance diagram for Pi0FixedMassWindowCalibration:
edm::ESProducerLooper edm::ESProducer edm::EventSetupRecordIntervalFinder edm::EDLooper edm::ESProxyFactoryProducer edm::EDLooperBase edm::eventsetup::DataProxyProvider

Public Member Functions

void beginOfJob () override
 Called at beginning of job. More...
 
Status duringLoop (const edm::Event &, const edm::EventSetup &) override
 Called at each event. More...
 
void endOfJob () override
 Called at end of job. More...
 
Status endOfLoop (const edm::EventSetup &, unsigned int iLoop) override
 Called at end of loop. More...
 
 Pi0FixedMassWindowCalibration (const edm::ParameterSet &iConfig)
 Constructor. More...
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 Dummy implementation (job done in duringLoop) More...
 
void startingNewLoop (unsigned int iLoop) override
 Called at beginning of loop. More...
 
 ~Pi0FixedMassWindowCalibration () override
 Destructor. More...
 
- Public Member Functions inherited from edm::ESProducerLooper
 ESProducerLooper ()
 
std::set< eventsetup::EventSetupRecordKeymodifyingRecords () const override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ESProducer (const ESProducer &)=delete
 
ESProxyIndex const * getTokenIndices (unsigned int iIndex) const
 
ESProducer const & operator= (const ESProducer &)=delete
 
template<typename Record >
void updateFromMayConsumes (unsigned int iIndex, const Record &iRecord)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &) final
 
 ~ESProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
 ESProxyFactoryProducer (const ESProxyFactoryProducer &)=delete
 
const ESProxyFactoryProduceroperator= (const ESProxyFactoryProducer &)=delete
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
void createKeyedProxies (EventSetupRecordKey const &key, unsigned int nConcurrentIOVs)
 
 DataProxyProvider ()
 
 DataProxyProvider (const DataProxyProvider &)=delete
 
const ComponentDescriptiondescription () const
 
void fillRecordsNotAllowingConcurrentIOVs (std::set< EventSetupRecordKey > &recordsNotAllowingConcurrentIOVs) const
 
virtual void initConcurrentIOVs (EventSetupRecordKey const &key, unsigned int nConcurrentIOVs)
 
bool isUsingRecord (const EventSetupRecordKey &key) const
 
KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey, unsigned int iovIndex=0)
 
const DataProxyProvideroperator= (const DataProxyProvider &)=delete
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 
- Public Member Functions inherited from edm::EventSetupRecordIntervalFinder
bool concurrentFinder () const
 
const eventsetup::ComponentDescriptiondescriptionForFinder () const
 
 EventSetupRecordIntervalFinder ()
 
 EventSetupRecordIntervalFinder (const EventSetupRecordIntervalFinder &)=delete
 
std::set< eventsetup::EventSetupRecordKeyfindingForRecords () const
 
const ValidityIntervalfindIntervalFor (const eventsetup::EventSetupRecordKey &, const IOVSyncValue &)
 
bool nonconcurrentAndIOVNeedsUpdate (const eventsetup::EventSetupRecordKey &key, const IOVSyncValue &syncValue) const
 
const EventSetupRecordIntervalFinderoperator= (const EventSetupRecordIntervalFinder &)=delete
 
void resetInterval (const eventsetup::EventSetupRecordKey &)
 
void setDescriptionForFinder (const eventsetup::ComponentDescription &iDescription)
 
virtual ~EventSetupRecordIntervalFinder () noexcept(false)
 
- Public Member Functions inherited from edm::EDLooper
 EDLooper ()
 
 EDLooper (EDLooper const &)=delete
 
EDLooperoperator= (EDLooper const &)=delete
 
 ~EDLooper () override
 
- Public Member Functions inherited from edm::EDLooperBase
virtual void attachTo (ActivityRegistry &)
 Override this method if you need to monitor the state of the processing. More...
 
virtual void beginOfJob (EventSetup const &)
 
void beginOfJob (EventSetupImpl const &)
 
void copyInfo (ScheduleInfo const &)
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal &, EventSetupImpl const &, ProcessContext *)
 
void doBeginRun (RunPrincipal &, EventSetupImpl const &, ProcessContext *)
 
Status doDuringLoop (EventPrincipal &eventPrincipal, EventSetupImpl const &es, ProcessingController &, StreamContext *)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal &, EventSetupImpl const &, ProcessContext *)
 
Status doEndOfLoop (EventSetupImpl const &es)
 
void doEndRun (RunPrincipal &, EventSetupImpl const &, ProcessContext *)
 
void doStartingNewLoop ()
 
 EDLooperBase ()
 
 EDLooperBase (EDLooperBase const &)=delete
 
EDLooperBaseoperator= (EDLooperBase const &)=delete
 
void prepareForNextLoop (eventsetup::EventSetupProvider *esp)
 
void setActionTable (ExceptionToActionTable const *actionTable)
 
void setModuleChanger (ModuleChanger *)
 
virtual ~EDLooperBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 

Private Attributes

std::vector< DetIdbarrelCells
 
std::string barrelClusterCollection_
 
std::string barrelClusterShapeAssociation_
 
std::string barrelHitCollection_
 
std::string barrelHitProducer_
 
std::string barrelHits_
 
std::string clustershapecollectionEB_
 
std::string ecalHitsProducer_
 
const EcalRecHitCollectionecalRecHitBarrelCollection
 
bool isfirstcall_
 
IslandClusterAlgoisland_p
 
double mwxtals [85][360][2]
 
int nevent
 
double newCalibs_barl [85][360][2]
 
double oldCalibs_barl [85][360][2]
 
PositionCalc posCalculator_
 
const EcalRecHitCollectionrecalibEcalRecHitCollection
 
std::map< DetId, EcalRecHit > * recHitsEB_map
 
double selePi0DetaBelt_
 
double selePi0DRBelt_
 
double selePi0EtBeltIsoRatioMax_
 
double selePi0MinvMeanFixed_
 
double selePi0MinvSigmaFixed_
 
double selePi0PtGammaOneMin_
 
double selePi0PtGammaTwoMin_
 
double selePi0PtPi0Min_
 
double selePi0S4S9GammaOneMin_
 
double selePi0S4S9GammaTwoMin_
 
double selePi0S9S25GammaOneMin_
 
double selePi0S9S25GammaTwoMin_
 
ClusterShapeAlgo shapeAlgo_
 
TFile * theFile
 
unsigned int theMaxLoops
 
edm::ParameterSet theParameterSet
 
IslandClusterAlgo::VerbosityLevel verbosity
 
double wxtals [85][360][2]
 

Additional Inherited Members

- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 
- Protected Types inherited from edm::ESProxyFactoryProducer
using EventSetupRecordKey = eventsetup::EventSetupRecordKey
 
- Protected Types inherited from edm::eventsetup::DataProxyProvider
using KeyedProxiesVector = std::vector< std::pair< DataKey, std::shared_ptr< DataProxy > >>
 
- Protected Member Functions inherited from edm::ESProducerLooper
void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string()) override
 
void setIntervalFor (const eventsetup::EventSetupRecordKey &iKey, const IOVSyncValue &iTime, ValidityInterval &oInterval) override
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
auto setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
auto setWhatProduced (T *iThis, const es::Label &iLabel={})
 
template<typename T >
auto setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
auto setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord >
auto setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
ESConsumesCollectorT< TRecord > setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={})
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
KeyedProxiesVector registerProxies (const EventSetupRecordKey &, unsigned int iovIndex) override
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &key)
 
- Protected Member Functions inherited from edm::EventSetupRecordIntervalFinder
template<class T >
void findingRecord ()
 
void findingRecordWithKey (const eventsetup::EventSetupRecordKey &)
 
- Protected Member Functions inherited from edm::EDLooperBase
ModuleChangermoduleChanger ()
 This only returns a non-zero value during the call to endOfLoop. More...
 
ScheduleInfo const * scheduleInfo () const
 This returns a non-zero value after the constructor has been called. More...
 

Detailed Description

Definition at line 57 of file Pi0FixedMassWindowCalibration.h.

Constructor & Destructor Documentation

◆ Pi0FixedMassWindowCalibration()

Pi0FixedMassWindowCalibration::Pi0FixedMassWindowCalibration ( const edm::ParameterSet iConfig)

Constructor.

Definition at line 35 of file Pi0FixedMassWindowCalibration.cc.

36  : theMaxLoops(iConfig.getUntrackedParameter<unsigned int>("maxLoops", 0)),
37  ecalHitsProducer_(iConfig.getParameter<std::string>("ecalRecHitsProducer")),
38  barrelHits_(iConfig.getParameter<std::string>("barrelHitCollection")) {
39  std::cout << "[Pi0FixedMassWindowCalibration] Constructor " << std::endl;
40  // The verbosity level
41  std::string verbosityString = iConfig.getParameter<std::string>("VerbosityLevel");
42  if (verbosityString == "DEBUG")
44  else if (verbosityString == "WARNING")
46  else if (verbosityString == "INFO")
48  else
50 
51  // The names of the produced cluster collections
52  barrelClusterCollection_ = iConfig.getParameter<std::string>("barrelClusterCollection");
53 
54  // Island algorithm parameters
55  double barrelSeedThreshold = iConfig.getParameter<double>("IslandBarrelSeedThr");
56  double endcapSeedThreshold = iConfig.getParameter<double>("IslandEndcapSeedThr");
57 
58  // Selection algorithm parameters
59  selePi0PtGammaOneMin_ = iConfig.getParameter<double>("selePi0PtGammaOneMin");
60  selePi0PtGammaTwoMin_ = iConfig.getParameter<double>("selePi0PtGammaTwoMin");
61 
62  selePi0DRBelt_ = iConfig.getParameter<double>("selePi0DRBelt");
63  selePi0DetaBelt_ = iConfig.getParameter<double>("selePi0DetaBelt");
64 
65  selePi0PtPi0Min_ = iConfig.getParameter<double>("selePi0PtPi0Min");
66 
67  selePi0S4S9GammaOneMin_ = iConfig.getParameter<double>("selePi0S4S9GammaOneMin");
68  selePi0S4S9GammaTwoMin_ = iConfig.getParameter<double>("selePi0S4S9GammaTwoMin");
69  selePi0S9S25GammaOneMin_ = iConfig.getParameter<double>("selePi0S9S25GammaOneMin");
70  selePi0S9S25GammaTwoMin_ = iConfig.getParameter<double>("selePi0S9S25GammaTwoMin");
71 
72  selePi0EtBeltIsoRatioMax_ = iConfig.getParameter<double>("selePi0EtBeltIsoRatioMax");
73 
74  selePi0MinvMeanFixed_ = iConfig.getParameter<double>("selePi0MinvMeanFixed");
75  selePi0MinvSigmaFixed_ = iConfig.getParameter<double>("selePi0MinvSigmaFixed");
76 
77  // Parameters for the position calculation:
78  edm::ParameterSet posCalcParameters = iConfig.getParameter<edm::ParameterSet>("posCalcParameters");
81  clustershapecollectionEB_ = iConfig.getParameter<std::string>("clustershapecollectionEB");
82 
83  //AssociationMap
84  barrelClusterShapeAssociation_ = iConfig.getParameter<std::string>("barrelShapeAssociation");
85 
86  const std::vector<std::string> seedflagnamesEB =
87  iConfig.getParameter<std::vector<std::string>>("SeedRecHitFlagToBeExcludedEB");
88  const std::vector<int> seedflagsexclEB = StringToEnumValue<EcalRecHit::Flags>(seedflagnamesEB);
89 
90  const std::vector<std::string> seedflagnamesEE =
91  iConfig.getParameter<std::vector<std::string>>("SeedRecHitFlagToBeExcludedEE");
92  const std::vector<int> seedflagsexclEE = StringToEnumValue<EcalRecHit::Flags>(seedflagnamesEE);
93 
94  const std::vector<std::string> flagnamesEB =
95  iConfig.getParameter<std::vector<std::string>>("RecHitFlagToBeExcludedEB");
96  const std::vector<int> flagsexclEB = StringToEnumValue<EcalRecHit::Flags>(flagnamesEB);
97 
98  const std::vector<std::string> flagnamesEE =
99  iConfig.getParameter<std::vector<std::string>>("RecHitFlagToBeExcludedEE");
100  const std::vector<int> flagsexclEE = StringToEnumValue<EcalRecHit::Flags>(flagnamesEE);
101 
102  island_p = new IslandClusterAlgo(barrelSeedThreshold,
103  endcapSeedThreshold,
105  seedflagsexclEB,
106  seedflagsexclEE,
107  flagsexclEB,
108  flagsexclEE,
109  verbosity);
110 
111  theParameterSet = iConfig;
112 }

References barrelClusterCollection_, barrelClusterShapeAssociation_, clustershapecollectionEB_, gather_cfg::cout, edm::ParameterSet::getParameter(), island_p, IslandClusterAlgo::pDEBUG, IslandClusterAlgo::pERROR, IslandClusterAlgo::pINFO, MonitorAlCaEcalPi0_cfi::posCalcParameters, posCalculator_, IslandClusterAlgo::pWARNING, selePi0DetaBelt_, selePi0DRBelt_, selePi0EtBeltIsoRatioMax_, selePi0MinvMeanFixed_, selePi0MinvSigmaFixed_, selePi0PtGammaOneMin_, selePi0PtGammaTwoMin_, selePi0PtPi0Min_, selePi0S4S9GammaOneMin_, selePi0S4S9GammaTwoMin_, selePi0S9S25GammaOneMin_, selePi0S9S25GammaTwoMin_, shapeAlgo_, AlCaHLTBitMon_QueryRunRegistry::string, theParameterSet, and verbosity.

◆ ~Pi0FixedMassWindowCalibration()

Pi0FixedMassWindowCalibration::~Pi0FixedMassWindowCalibration ( )
override

Destructor.

Definition at line 117 of file Pi0FixedMassWindowCalibration.cc.

117 { delete island_p; }

References island_p.

Member Function Documentation

◆ beginOfJob()

void Pi0FixedMassWindowCalibration::beginOfJob ( )
overridevirtual

Called at beginning of job.

Reimplemented from edm::EDLooperBase.

Definition at line 173 of file Pi0FixedMassWindowCalibration.cc.

173  {
174  //std::cout << "[Pi0FixedMassWindowCalibration] beginOfJob "<<std::endl;
175 
176  isfirstcall_ = true;
177 }

References isfirstcall_.

◆ duringLoop()

edm::EDLooper::Status Pi0FixedMassWindowCalibration::duringLoop ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

Called at each event.

Implements edm::EDLooper.

Definition at line 268 of file Pi0FixedMassWindowCalibration.cc.

268  {
269  using namespace edm;
270  using namespace std;
271 
272  // this chunk used to belong to beginJob(isetup). Moved here
273  // with the beginJob without arguments migration
274 
275  if (isfirstcall_) {
276  // initialize arrays
277 
278  for (int sign = 0; sign < 2; sign++) {
279  for (int ieta = 0; ieta < 85; ieta++) {
280  for (int iphi = 0; iphi < 360; iphi++) {
281  oldCalibs_barl[ieta][iphi][sign] = 0.;
282  newCalibs_barl[ieta][iphi][sign] = 0.;
283  wxtals[ieta][iphi][sign] = 0.;
284  mwxtals[ieta][iphi][sign] = 0.;
285  }
286  }
287  }
288 
289  // get initial constants out of DB
290 
293 
294  try {
295  setup.get<EcalIntercalibConstantsRcd>().get(pIcal);
296  std::cout << "Taken EcalIntercalibConstants" << std::endl;
297  imap = pIcal.product()->getMap();
298  std::cout << "imap.size() = " << imap.size() << std::endl;
299  } catch (std::exception& ex) {
300  std::cerr << "Error! can't get EcalIntercalibConstants " << std::endl;
301  }
302 
303  // get the ecal geometry:
304  edm::ESHandle<CaloGeometry> geoHandle;
305  setup.get<CaloGeometryRecord>().get(geoHandle);
306  const CaloGeometry& geometry = *geoHandle;
307  //const CaloSubdetectorGeometry *barrelGeometry = geometry.getSubdetectorGeometry(DetId::Ecal, EcalBarrel);
308 
309  // loop over all barrel crystals
310  barrelCells = geometry.getValidDetIds(DetId::Ecal, EcalBarrel);
311  std::vector<DetId>::const_iterator barrelIt;
312  for (barrelIt = barrelCells.begin(); barrelIt != barrelCells.end(); barrelIt++) {
313  EBDetId eb(*barrelIt);
314 
315  // get the initial calibration constants
316  EcalIntercalibConstantMap::const_iterator itcalib = imap.find(eb.rawId());
317  if (itcalib == imap.end()) {
318  // FIXME -- throw error
319  }
320  EcalIntercalibConstant calib = (*itcalib);
321  int sign = eb.zside() > 0 ? 1 : 0;
322  oldCalibs_barl[abs(eb.ieta()) - 1][eb.iphi() - 1][sign] = calib;
323  if (eb.iphi() == 1)
324  std::cout << "Read old constant for crystal "
325  << " (" << eb.ieta() << "," << eb.iphi() << ") : " << calib << std::endl;
326  }
327  isfirstcall_ = false;
328  }
329 
330  nevent++;
331 
332  if ((nevent < 100 && nevent % 10 == 0) || (nevent < 1000 && nevent % 100 == 0) ||
333  (nevent < 10000 && nevent % 100 == 0) || (nevent < 100000 && nevent % 1000 == 0) ||
334  (nevent < 10000000 && nevent % 1000 == 0))
335  std::cout << "[Pi0FixedMassWindowCalibration] Events processed: " << nevent << std::endl;
336 
337  recHitsEB_map = new std::map<DetId, EcalRecHit>();
338 
340 
341  int nRecHitsEB = 0;
342  Handle<EcalRecHitCollection> pEcalRecHitBarrelCollection;
343  event.getByLabel(ecalHitsProducer_, barrelHits_, pEcalRecHitBarrelCollection);
344  const EcalRecHitCollection* ecalRecHitBarrelCollection = pEcalRecHitBarrelCollection.product();
345  cout << " ECAL Barrel RecHits # " << ecalRecHitBarrelCollection->size() << endl;
347  aRecHitEB != ecalRecHitBarrelCollection->end();
348  aRecHitEB++) {
349  //cout << " ECAL Barrel RecHit #,E,time,det,subdetid: "<<nRecHitsEB<<" "<<aRecHitEB->energy()<<" "<<aRecHitEB->time()<<" "<<aRecHitEB->detid().det()<<" "<<aRecHitEB->detid().subdetId()<<endl;
350 
351  EBDetId ebrhdetid = aRecHitEB->detid();
352  //cout << " EBDETID: z,ieta,iphi "<<ebrhdetid.zside()<<" "<<ebrhdetid.ieta()<<" "<<ebrhdetid.iphi()<<endl;
353  //cout << " EBDETID: tower_ieta,tower_iphi "<<ebrhdetid.tower_ieta()<<" "<<ebrhdetid.tower_iphi()<<endl;
354  //cout << " EBDETID: iSM, ic "<<ebrhdetid.ism()<<" "<<ebrhdetid.ic()<<endl;
355 
356  int sign = ebrhdetid.zside() > 0 ? 1 : 0;
357  EcalRecHit aHit(aRecHitEB->id(),
358  aRecHitEB->energy() * oldCalibs_barl[abs(ebrhdetid.ieta()) - 1][ebrhdetid.iphi() - 1][sign],
359  aRecHitEB->time());
361 
362  nRecHitsEB++;
363  }
364 
365  // cout<<" Recalib size: "<<recalibEcalRecHitCollection->size()<<endl;
366  int irecalib = 0;
368  aRecHitEB != recalibEcalRecHitCollection->end();
369  aRecHitEB++) {
370  //cout << " [recalibrated] ECAL Barrel RecHit #,E,time,det,subdetid: "<<irecalib<<" "<<aRecHitEB->energy()<<" "<<aRecHitEB->time()<<" "<<aRecHitEB->detid().det()<<" "<<aRecHitEB->detid().subdetId()<<endl;
371 
372  // EBDetId ebrhdetid = aRecHitEB->detid();
373  //cout << " [recalibrated] EBDETID: z,ieta,iphi "<<ebrhdetid.zside()<<" "<<ebrhdetid.ieta()<<" "<<ebrhdetid.iphi()<<endl;
374  //cout << " [recalibrated] EBDETID: tower_ieta,tower_iphi "<<ebrhdetid.tower_ieta()<<" "<<ebrhdetid.tower_iphi()<<endl;
375  //cout << " [recalibrated] EBDETID: iSM, ic "<<ebrhdetid.ism()<<" "<<ebrhdetid.ic()<<endl;
376 
377  std::pair<DetId, EcalRecHit> map_entry(aRecHitEB->id(), *aRecHitEB);
378  recHitsEB_map->insert(map_entry);
379 
380  irecalib++;
381  }
382 
383  // get the geometry and topology from the event setup:
384  edm::ESHandle<CaloGeometry> geoHandle;
385  setup.get<CaloGeometryRecord>().get(geoHandle);
386 
387  const CaloSubdetectorGeometry* geometry_p;
388 
389  std::string clustershapetag;
390  geometry_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalBarrel);
391  EcalBarrelTopology topology{*geoHandle};
392 
393  const CaloSubdetectorGeometry* geometryES_p;
394  geometryES_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower);
395 
396  /*
397  reco::BasicClusterCollection clusters;
398  clusters = island_p->makeClusters(ecalRecHitBarrelCollection,geometry_p,&topology,geometryES_p,IslandClusterAlgo::barrel);
399 
400  //Create associated ClusterShape objects.
401  std::vector <reco::ClusterShape> ClusVec;
402  for (int erg=0;erg<int(clusters.size());++erg){
403  reco::ClusterShape TestShape = shapeAlgo_.Calculate(clusters[erg],ecalRecHitBarrelCollection,geometry_p,&topology);
404  ClusVec.push_back(TestShape);
405  }
406 
407  //Put clustershapes in event, but retain a Handle on them.
408  std::unique_ptr<reco::ClusterShapeCollection> clustersshapes_p(new reco::ClusterShapeCollection);
409  clustersshapes_p->assign(ClusVec.begin(), ClusVec.end());
410 
411  cout<<"[Pi0Calibration] Basic Cluster collection size: "<<clusters.size()<<endl;
412  cout<<"[Pi0Calibration] Basic Cluster Shape Collection size: "<<clustersshapes_p->size()<<endl;
413 
414  int iClus=0;
415  for(reco::BasicClusterCollection::const_iterator aClus = clusters.begin(); aClus != clusters.end(); aClus++) {
416  cout<<" CLUSTER : #,NHits,e,et,eta,phi,e2x2,e3x3,e5x5: "<<iClus<<" "<<aClus->getHitsByDetId().size()<<" "<<aClus->energy()<<" "<<aClus->energy()*sin(aClus->position().theta())<<" "<<aClus->position().eta()<<" "<<aClus->position().phi()<<" "<<(*clustersshapes_p)[iClus].e2x2()<<" "<<(*clustersshapes_p)[iClus].e3x3()<<" "<<(*clustersshapes_p)[iClus].e5x5()<<endl;
417  iClus++;
418  }
419  */
420 
421  // recalibrated clusters
422  reco::BasicClusterCollection clusters_recalib;
423  clusters_recalib = island_p->makeClusters(
424  recalibEcalRecHitCollection, geometry_p, &topology, geometryES_p, IslandClusterAlgo::barrel);
425 
426  //Create associated ClusterShape objects.
427  std::vector<reco::ClusterShape> ClusVec_recalib;
428  for (int erg = 0; erg < int(clusters_recalib.size()); ++erg) {
429  reco::ClusterShape TestShape_recalib =
430  shapeAlgo_.Calculate(clusters_recalib[erg], recalibEcalRecHitCollection, geometry_p, &topology);
431  ClusVec_recalib.push_back(TestShape_recalib);
432  }
433 
434  //Put clustershapes in event, but retain a Handle on them.
435  std::unique_ptr<reco::ClusterShapeCollection> clustersshapes_p_recalib(new reco::ClusterShapeCollection);
436  clustersshapes_p_recalib->assign(ClusVec_recalib.begin(), ClusVec_recalib.end());
437 
438  cout << "[Pi0FixedMassWindowCalibration][recalibration] Basic Cluster collection size: " << clusters_recalib.size()
439  << endl;
440  cout << "[Pi0FixedMassWindowCalibration][recalibration] Basic Cluster Shape Collection size: "
441  << clustersshapes_p_recalib->size() << endl;
442 
443  // pizero selection
444 
445  // Get ECAL Barrel Island Basic Clusters collection
446  // ECAL Barrel Island Basic Clusters
447  static const int MAXBCEB = 200;
448  static const int MAXBCEBRH = 200;
449  int nIslandBCEB;
450  float eIslandBCEB[MAXBCEB];
451  float etIslandBCEB[MAXBCEB];
452  float etaIslandBCEB[MAXBCEB];
453  float phiIslandBCEB[MAXBCEB];
454  float e2x2IslandBCEB[MAXBCEB];
455  float e3x3IslandBCEB[MAXBCEB];
456  float e5x5IslandBCEB[MAXBCEB];
457  // indexes to the RecHits assiciated with
458  // ECAL Barrel Island Basic Clusters
459  int nIslandBCEBRecHits[MAXBCEB];
460  // int indexIslandBCEBRecHits[MAXBCEB][MAXBCEBRH];
461  int ietaIslandBCEBRecHits[MAXBCEB][MAXBCEBRH];
462  int iphiIslandBCEBRecHits[MAXBCEB][MAXBCEBRH];
463  int zsideIslandBCEBRecHits[MAXBCEB][MAXBCEBRH];
464  float eIslandBCEBRecHits[MAXBCEB][MAXBCEBRH];
465 
466  nIslandBCEB = 0;
467  for (int i = 0; i < MAXBCEB; i++) {
468  eIslandBCEB[i] = 0;
469  etIslandBCEB[i] = 0;
470  etaIslandBCEB[i] = 0;
471  phiIslandBCEB[i] = 0;
472  e2x2IslandBCEB[i] = 0;
473  e3x3IslandBCEB[i] = 0;
474  e5x5IslandBCEB[i] = 0;
475  nIslandBCEBRecHits[i] = 0;
476  for (int j = 0; j < MAXBCEBRH; j++) {
477  // indexIslandBCEBRecHits[i][j] = 0;
478  ietaIslandBCEBRecHits[i][j] = 0;
479  iphiIslandBCEBRecHits[i][j] = 0;
480  zsideIslandBCEBRecHits[i][j] = 0;
481  eIslandBCEBRecHits[i][j] = 0;
482  }
483  }
484 
485  int iClus_recalib = 0;
486  for (reco::BasicClusterCollection::const_iterator aClus = clusters_recalib.begin(); aClus != clusters_recalib.end();
487  aClus++) {
488  cout << " CLUSTER [recalibration] : #,NHits,e,et,eta,phi,e2x2,e3x3,e5x5: " << iClus_recalib << " " << aClus->size()
489  << " " << aClus->energy() << " " << aClus->energy() * sin(aClus->position().theta()) << " "
490  << aClus->position().eta() << " " << aClus->position().phi() << " "
491  << (*clustersshapes_p_recalib)[iClus_recalib].e2x2() << " "
492  << (*clustersshapes_p_recalib)[iClus_recalib].e3x3() << " "
493  << (*clustersshapes_p_recalib)[iClus_recalib].e5x5() << endl;
494 
495  eIslandBCEB[nIslandBCEB] = aClus->energy();
496  etIslandBCEB[nIslandBCEB] = aClus->energy() * sin(aClus->position().theta());
497  etaIslandBCEB[nIslandBCEB] = aClus->position().eta();
498  phiIslandBCEB[nIslandBCEB] = aClus->position().phi();
499 
500  e2x2IslandBCEB[nIslandBCEB] = (*clustersshapes_p_recalib)[nIslandBCEB].e2x2();
501  e3x3IslandBCEB[nIslandBCEB] = (*clustersshapes_p_recalib)[nIslandBCEB].e3x3();
502  e5x5IslandBCEB[nIslandBCEB] = (*clustersshapes_p_recalib)[nIslandBCEB].e5x5();
503 
504  nIslandBCEBRecHits[nIslandBCEB] = aClus->size();
505 
506  std::vector<std::pair<DetId, float>> hits = aClus->hitsAndFractions();
507  std::vector<std::pair<DetId, float>>::iterator hit;
508  std::map<DetId, EcalRecHit>::iterator aHit;
509 
510  int irhcount = 0;
511  for (hit = hits.begin(); hit != hits.end(); hit++) {
512  // need to get hit by DetID in order to get energy
513  aHit = recHitsEB_map->find((*hit).first);
514  //cout << " RecHit #: "<<irhcount<<" from Basic Cluster with Energy: "<<aHit->second.energy()<<endl;
515 
516  EBDetId sel_rh = aHit->second.detid();
517  //cout << " RecHit: z,ieta,iphi "<<sel_rh.zside()<<" "<<sel_rh.ieta()<<" "<<sel_rh.iphi()<<endl;
518  //cout << " RecHit: tower_ieta,tower_iphi "<<sel_rh.tower_ieta()<<" "<<sel_rh.tower_iphi()<<endl;
519  //cout << " RecHit: iSM, ic "<<sel_rh.ism()<<" "<<sel_rh.ic()<<endl;
520 
521  ietaIslandBCEBRecHits[nIslandBCEB][irhcount] = sel_rh.ieta();
522  iphiIslandBCEBRecHits[nIslandBCEB][irhcount] = sel_rh.iphi();
523  zsideIslandBCEBRecHits[nIslandBCEB][irhcount] = sel_rh.zside();
524  eIslandBCEBRecHits[nIslandBCEB][irhcount] = aHit->second.energy();
525 
526  irhcount++;
527  }
528  nIslandBCEB++;
529  iClus_recalib++;
530  }
531 
532  // Selection, based on ECAL Barrel Basic Clusters
533 
534  if (nIslandBCEB > 1) {
535  for (int i = 0; i < nIslandBCEB; i++) {
536  for (int j = i + 1; j < nIslandBCEB; j++) {
537  if (etIslandBCEB[i] > selePi0PtGammaOneMin_ && etIslandBCEB[j] > selePi0PtGammaOneMin_) {
538  float theta_0 = 2. * atan(exp(-etaIslandBCEB[i]));
539  float theta_1 = 2. * atan(exp(-etaIslandBCEB[j]));
540 
541  float p0x = eIslandBCEB[i] * sin(theta_0) * cos(phiIslandBCEB[i]);
542  float p1x = eIslandBCEB[j] * sin(theta_1) * cos(phiIslandBCEB[j]);
543 
544  float p0y = eIslandBCEB[i] * sin(theta_0) * sin(phiIslandBCEB[i]);
545  float p1y = eIslandBCEB[j] * sin(theta_1) * sin(phiIslandBCEB[j]);
546 
547  float p0z = eIslandBCEB[i] * cos(theta_0);
548  float p1z = eIslandBCEB[j] * cos(theta_1);
549 
550  float pi0_px = p0x + p1x;
551  float pi0_py = p0y + p1y;
552  float pi0_pz = p0z + p1z;
553 
554  float pi0_ptot = sqrt(pi0_px * pi0_px + pi0_py * pi0_py + pi0_pz * pi0_pz);
555 
556  float pi0_theta = acos(pi0_pz / pi0_ptot);
557  float pi0_eta = -log(tan(pi0_theta / 2));
558  float pi0_phi = atan(pi0_py / pi0_px);
559  //cout << " pi0_theta, pi0_eta, pi0_phi "<<pi0_theta<<" "<<pi0_eta<<" "<<pi0_phi<<endl;
560 
561  // belt isolation
562 
563  float et_belt = 0;
564  for (Int_t k = 0; k < nIslandBCEB; k++) {
565  if ((k != i) && (k != j)) {
566  float dr_pi0_k = sqrt((etaIslandBCEB[k] - pi0_eta) * (etaIslandBCEB[k] - pi0_eta) +
567  (phiIslandBCEB[k] - pi0_phi) * (phiIslandBCEB[k] - pi0_phi));
568  float deta_pi0_k = fabs(etaIslandBCEB[k] - pi0_eta);
569  if ((dr_pi0_k < selePi0DRBelt_) && (deta_pi0_k < selePi0DetaBelt_))
570  et_belt = et_belt + etIslandBCEB[k];
571  }
572  }
573 
574  float pt_pi0 = sqrt((p0x + p1x) * (p0x + p1x) + (p0y + p1y) * (p0y + p1y));
575  //float dr_pi0 = sqrt ( (etaIslandBCEB[i]-etaIslandBCEB[j])*(etaIslandBCEB[i]-etaIslandBCEB[j]) + (phiIslandBCEB[i]-phiIslandBCEB[j])*(phiIslandBCEB[i]-phiIslandBCEB[j]) );
576 
577  //cout <<" pi0 pt,dr: "<<pt_pi0<<" "<<dr_pi0<<endl;
578  if (pt_pi0 > selePi0PtPi0Min_) {
579  float m_inv = sqrt((eIslandBCEB[i] + eIslandBCEB[j]) * (eIslandBCEB[i] + eIslandBCEB[j]) -
580  (p0x + p1x) * (p0x + p1x) - (p0y + p1y) * (p0y + p1y) - (p0z + p1z) * (p0z + p1z));
581  cout << " pi0 (pt>2.5 GeV) m_inv = " << m_inv << endl;
582 
583  float s4s9_1 = e2x2IslandBCEB[i] / e3x3IslandBCEB[i];
584  float s4s9_2 = e2x2IslandBCEB[j] / e3x3IslandBCEB[j];
585 
586  float s9s25_1 = e3x3IslandBCEB[i] / e5x5IslandBCEB[i];
587  float s9s25_2 = e3x3IslandBCEB[j] / e5x5IslandBCEB[j];
588 
589  //float s9Esc_1 = e3x3IslandBCEB[i]/eIslandBCEB[i];
590  //float s9Esc_2 = e3x3IslandBCEB[j]/eIslandBCEB[j];
591 
592  if (s4s9_1 > selePi0S4S9GammaOneMin_ && s4s9_2 > selePi0S4S9GammaTwoMin_ &&
593  s9s25_1 > selePi0S9S25GammaOneMin_ && s9s25_2 > selePi0S9S25GammaTwoMin_ &&
594  (et_belt / pt_pi0 < selePi0EtBeltIsoRatioMax_)) {
595  //good pizero candidate
596  if (m_inv > (selePi0MinvMeanFixed_ - 2 * selePi0MinvSigmaFixed_) &&
598  //fill wxtals and mwxtals weights
599  cout << " Pi0 Good candidate : minv = " << m_inv << endl;
600  for (int kk = 0; kk < nIslandBCEBRecHits[i]; kk++) {
601  int ieta_xtal = ietaIslandBCEBRecHits[i][kk];
602  int iphi_xtal = iphiIslandBCEBRecHits[i][kk];
603  int sign = zsideIslandBCEBRecHits[i][kk] > 0 ? 1 : 0;
604  wxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] =
605  wxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] + eIslandBCEBRecHits[i][kk] / e3x3IslandBCEB[i];
606  mwxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] =
607  mwxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] +
608  (selePi0MinvMeanFixed_ / m_inv) * (selePi0MinvMeanFixed_ / m_inv) *
609  (eIslandBCEBRecHits[i][kk] / e3x3IslandBCEB[i]);
610  cout << "[Pi0FixedMassWindowCalibration] eta, phi, sign, e, e3x3, wxtals and mwxtals: " << ieta_xtal
611  << " " << iphi_xtal << " " << sign << " " << eIslandBCEBRecHits[i][kk] << " "
612  << e3x3IslandBCEB[i] << " " << wxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] << " "
613  << mwxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] << endl;
614  }
615 
616  for (int kk = 0; kk < nIslandBCEBRecHits[j]; kk++) {
617  int ieta_xtal = ietaIslandBCEBRecHits[j][kk];
618  int iphi_xtal = iphiIslandBCEBRecHits[j][kk];
619  int sign = zsideIslandBCEBRecHits[j][kk] > 0 ? 1 : 0;
620  wxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] =
621  wxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] + eIslandBCEBRecHits[j][kk] / e3x3IslandBCEB[j];
622  mwxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] =
623  mwxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] +
624  (selePi0MinvMeanFixed_ / m_inv) * (selePi0MinvMeanFixed_ / m_inv) *
625  (eIslandBCEBRecHits[j][kk] / e3x3IslandBCEB[j]);
626  cout << "[Pi0FixedMassWindowCalibration] eta, phi, sign, e, e3x3, wxtals and mwxtals: " << ieta_xtal
627  << " " << iphi_xtal << " " << sign << " " << eIslandBCEBRecHits[j][kk] << " "
628  << e3x3IslandBCEB[j] << " " << wxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] << " "
629  << mwxtals[abs(ieta_xtal) - 1][iphi_xtal - 1][sign] << endl;
630  }
631  }
632  }
633  }
634  }
635 
636  } // End of the "j" loop over BCEB
637  } // End of the "i" loop over BCEB
638 
639  } else {
640  cout << " Not enough ECAL Barrel Basic Clusters: " << nIslandBCEB << endl;
641  }
642 
643  return kContinue;
644 }

References funct::abs(), IslandClusterAlgo::barrel, barrelCells, barrelHits_, edm::SortedCollection< T, SORT >::begin(), ClusterShapeAlgo::Calculate(), L1EGammaClusterEmuProducer_cfi::calib, beam_dqm_sourceclient-live_cfg::cerr, funct::cos(), gather_cfg::cout, DetId::Ecal, EcalBarrel, ecalHitsProducer_, EcalPreshower, ecalRecHitBarrelCollection, EcalCondObjectContainer< T >::end(), edm::SortedCollection< T, SORT >::end(), cppFunctionSkipper::exception, JetChargeProducer_cfi::exp, EcalCondObjectContainer< T >::find(), get, EcalCondObjectContainer< T >::getMap(), CaloGeometry::getSubdetectorGeometry(), hfClusterShapes_cfi::hits, mps_fire::i, EBDetId::ieta(), LEDCalibrationChannels::ieta, createfilelist::int, EBDetId::iphi(), LEDCalibrationChannels::iphi, isfirstcall_, island_p, dqmiolumiharvest::j, dqmdumpme::k, edm::EDLooperBase::kContinue, GetRecoTauVFromDQM_MC_cff::kk, dqm-mbProfile::log, IslandClusterAlgo::makeClusters(), mwxtals, nevent, newCalibs_barl, oldCalibs_barl, edm::Handle< T >::product(), edm::ESHandle< T >::product(), edm::SortedCollection< T, SORT >::push_back(), DetId::rawId(), recalibEcalRecHitCollection, recHitsEB_map, selePi0DetaBelt_, selePi0DRBelt_, selePi0EtBeltIsoRatioMax_, selePi0MinvMeanFixed_, selePi0MinvSigmaFixed_, selePi0PtGammaOneMin_, selePi0PtPi0Min_, selePi0S4S9GammaOneMin_, selePi0S4S9GammaTwoMin_, selePi0S9S25GammaOneMin_, selePi0S9S25GammaTwoMin_, singleTopDQM_cfi::setup, shapeAlgo_, Validation_hcalonly_cfi::sign, funct::sin(), EcalCondObjectContainer< T >::size(), edm::SortedCollection< T, SORT >::size(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, funct::tan(), ecaldqm::topology(), wxtals, and EBDetId::zside().

◆ endOfJob()

void Pi0FixedMassWindowCalibration::endOfJob ( )
overridevirtual

Called at end of job.

Reimplemented from edm::EDLooperBase.

Definition at line 179 of file Pi0FixedMassWindowCalibration.cc.

179  {
180  std::cout << "[Pi0FixedMassWindowCalibration] endOfJob" << endl;
181 
182  // Write new calibration constants
183 
184  Pi0CalibXMLwriter barrelWriter(EcalBarrel, 99);
185 
186  std::vector<DetId>::const_iterator barrelIt = barrelCells.begin();
187  for (; barrelIt != barrelCells.end(); barrelIt++) {
188  EBDetId eb(*barrelIt);
189  int ieta = eb.ieta();
190  int iphi = eb.iphi();
191  int sign = eb.zside() > 0 ? 1 : 0;
192  barrelWriter.writeLine(eb, newCalibs_barl[abs(ieta) - 1][iphi - 1][sign]);
193  }
194 }

References funct::abs(), barrelCells, gather_cfg::cout, EcalBarrel, EBDetId::ieta(), LEDCalibrationChannels::ieta, EBDetId::iphi(), LEDCalibrationChannels::iphi, newCalibs_barl, Validation_hcalonly_cfi::sign, Pi0CalibXMLwriter::writeLine(), and EBDetId::zside().

◆ endOfLoop()

edm::EDLooper::Status Pi0FixedMassWindowCalibration::endOfLoop ( const edm::EventSetup iSetup,
unsigned int  iLoop 
)
overridevirtual

Called at end of loop.

Implements edm::EDLooperBase.

Definition at line 213 of file Pi0FixedMassWindowCalibration.cc.

213  {
214  std::cout << "[Pi0FixedMassWindowCalibration] Ending loop " << iLoop << std::endl;
215 
216  for (int sign = 0; sign < 2; sign++) {
217  for (int ieta = 0; ieta < 85; ieta++) {
218  for (int iphi = 0; iphi < 360; iphi++) {
219  if (wxtals[ieta][iphi][sign] == 0) {
221  } else {
224  }
225  cout << " New calibration constant: ieta iphi sign - old,mwxtals,wxtals,new: " << ieta << " " << iphi << " "
226  << sign << " - " << oldCalibs_barl[ieta][iphi][sign] << " " << mwxtals[ieta][iphi][sign] << " "
227  << wxtals[ieta][iphi][sign] << " " << newCalibs_barl[ieta][iphi][sign] << endl;
228  }
229  }
230  }
231 
232  Pi0CalibXMLwriter barrelWriter(EcalBarrel, iLoop + 1);
233 
234  std::vector<DetId>::const_iterator barrelIt = barrelCells.begin();
235  for (; barrelIt != barrelCells.end(); barrelIt++) {
236  EBDetId eb(*barrelIt);
237  int ieta = eb.ieta();
238  int iphi = eb.iphi();
239  int sign = eb.zside() > 0 ? 1 : 0;
240  barrelWriter.writeLine(eb, newCalibs_barl[abs(ieta) - 1][iphi - 1][sign]);
241  if (iphi == 1) {
242  std::cout << "Calib constant for barrel crystal "
243  << " (" << ieta << "," << iphi << ") changed from " << oldCalibs_barl[abs(ieta) - 1][iphi - 1][sign]
244  << " to " << newCalibs_barl[abs(ieta) - 1][iphi - 1][sign] << std::endl;
245  }
246  }
247 
248  // replace old calibration constants with new one
249 
250  for (int sign = 0; sign < 2; sign++) {
251  for (int ieta = 0; ieta < 85; ieta++) {
252  for (int iphi = 0; iphi < 360; iphi++) {
254  newCalibs_barl[ieta][iphi][sign] = 0;
255  }
256  }
257  }
258 
259  if (iLoop == theMaxLoops - 1 || iLoop >= theMaxLoops)
260  return kStop;
261  else
262  return kContinue;
263 }

References funct::abs(), barrelCells, gather_cfg::cout, EcalBarrel, EBDetId::ieta(), LEDCalibrationChannels::ieta, EBDetId::iphi(), LEDCalibrationChannels::iphi, edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, mwxtals, newCalibs_barl, oldCalibs_barl, Validation_hcalonly_cfi::sign, theMaxLoops, Pi0CalibXMLwriter::writeLine(), wxtals, and EBDetId::zside().

◆ fillDescriptions()

void Pi0FixedMassWindowCalibration::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 119 of file Pi0FixedMassWindowCalibration.cc.

119  {
121 
122  desc.add<unsigned int>("maxLoops", 0);
123  desc.add<std::string>("ecalRecHitsProducer", "");
124  desc.add<std::string>("barrelHitCollection", "");
125 
126  desc.add<std::string>("VerbosityLevel", "");
127  desc.add<std::string>("barrelClusterCollection", "");
128 
129  desc.add<double>("IslandBarrelSeedThr", 0);
130  desc.add<double>("IslandEndcapSeedThr", 0);
131 
132  desc.add<double>("selePi0PtGammaOneMin", 0);
133  desc.add<double>("selePi0PtGammaTwoMin", 0);
134 
135  desc.add<double>("selePi0DRBelt", 0);
136  desc.add<double>("selePi0DetaBelt", 0);
137 
138  desc.add<double>("selePi0PtPi0Min", 0);
139 
140  desc.add<double>("selePi0S4S9GammaOneMin", 0);
141  desc.add<double>("selePi0S4S9GammaTwoMin", 0);
142  desc.add<double>("selePi0S9S25GammaOneMin", 0);
143  desc.add<double>("selePi0S9S25GammaTwoMin", 0);
144 
145  desc.add<double>("selePi0EtBeltIsoRatioMax", 0);
146 
147  desc.add<double>("selePi0MinvMeanFixed", 0);
148  desc.add<double>("selePi0MinvSigmaFixed", 0);
149 
151  posCalcParameters.add<bool>("LogWeighted", true);
152  posCalcParameters.add<double>("T0_barl", 7.4);
153  posCalcParameters.add<double>("T0_endc", 3.1);
154  posCalcParameters.add<double>("T0_endcPresh", 1.2);
155  posCalcParameters.add<double>("W0", 4.2);
156  posCalcParameters.add<double>("X0", 0.89);
157  desc.add<edm::ParameterSetDescription>("posCalcParameters", posCalcParameters);
158 
159  desc.add<std::string>("clustershapecollectionEB", "islandBarrelShape");
160  desc.add<std::string>("barrelShapeAssociation", "islandBarrelShapeAssoc");
161 
162  desc.add<std::vector<std::string>>("SeedRecHitFlagToBeExcludedEB", {});
163  desc.add<std::vector<std::string>>("SeedRecHitFlagToBeExcludedEE", {});
164  desc.add<std::vector<std::string>>("RecHitFlagToBeExcludedEB", {});
165  desc.add<std::vector<std::string>>("RecHitFlagToBeExcludedEE", {});
166 
167  descriptions.add("Pi0FixedMassWindowCalibration", desc);
168 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), MonitorAlCaEcalPi0_cfi::posCalcParameters, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

virtual void Pi0FixedMassWindowCalibration::produce ( edm::Event ,
const edm::EventSetup  
)
inlinevirtual

Dummy implementation (job done in duringLoop)

Definition at line 68 of file Pi0FixedMassWindowCalibration.h.

68 {};

◆ startingNewLoop()

void Pi0FixedMassWindowCalibration::startingNewLoop ( unsigned int  iLoop)
overridevirtual

Called at beginning of loop.

Implements edm::EDLooperBase.

Definition at line 198 of file Pi0FixedMassWindowCalibration.cc.

198  {
199  for (int sign = 0; sign < 2; sign++) {
200  for (int ieta = 0; ieta < 85; ieta++) {
201  for (int iphi = 0; iphi < 360; iphi++) {
202  wxtals[ieta][iphi][sign] = 0.;
203  mwxtals[ieta][iphi][sign] = 0.;
204  }
205  }
206  }
207  std::cout << "[Pi0FixedMassWindowCalibration] Starting loop number " << iLoop << std::endl;
208 }

References gather_cfg::cout, LEDCalibrationChannels::ieta, LEDCalibrationChannels::iphi, mwxtals, Validation_hcalonly_cfi::sign, and wxtals.

Member Data Documentation

◆ barrelCells

std::vector<DetId> Pi0FixedMassWindowCalibration::barrelCells
private

Definition at line 125 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), endOfJob(), and endOfLoop().

◆ barrelClusterCollection_

std::string Pi0FixedMassWindowCalibration::barrelClusterCollection_
private

Definition at line 98 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ barrelClusterShapeAssociation_

std::string Pi0FixedMassWindowCalibration::barrelClusterShapeAssociation_
private

Definition at line 100 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ barrelHitCollection_

std::string Pi0FixedMassWindowCalibration::barrelHitCollection_
private

Definition at line 97 of file Pi0FixedMassWindowCalibration.h.

◆ barrelHitProducer_

std::string Pi0FixedMassWindowCalibration::barrelHitProducer_
private

Definition at line 96 of file Pi0FixedMassWindowCalibration.h.

◆ barrelHits_

std::string Pi0FixedMassWindowCalibration::barrelHits_
private

Definition at line 92 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop().

◆ clustershapecollectionEB_

std::string Pi0FixedMassWindowCalibration::clustershapecollectionEB_
private

Definition at line 99 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ ecalHitsProducer_

std::string Pi0FixedMassWindowCalibration::ecalHitsProducer_
private

Definition at line 91 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop().

◆ ecalRecHitBarrelCollection

const EcalRecHitCollection* Pi0FixedMassWindowCalibration::ecalRecHitBarrelCollection
private

Definition at line 140 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop().

◆ isfirstcall_

bool Pi0FixedMassWindowCalibration::isfirstcall_
private

Definition at line 146 of file Pi0FixedMassWindowCalibration.h.

Referenced by beginOfJob(), and duringLoop().

◆ island_p

IslandClusterAlgo* Pi0FixedMassWindowCalibration::island_p
private

◆ mwxtals

double Pi0FixedMassWindowCalibration::mwxtals[85][360][2]
private

Definition at line 131 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), endOfLoop(), and startingNewLoop().

◆ nevent

int Pi0FixedMassWindowCalibration::nevent
private

Definition at line 88 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop().

◆ newCalibs_barl

double Pi0FixedMassWindowCalibration::newCalibs_barl[85][360][2]
private

Definition at line 129 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), endOfJob(), and endOfLoop().

◆ oldCalibs_barl

double Pi0FixedMassWindowCalibration::oldCalibs_barl[85][360][2]
private

Definition at line 128 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and endOfLoop().

◆ posCalculator_

PositionCalc Pi0FixedMassWindowCalibration::posCalculator_
private

Definition at line 102 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ recalibEcalRecHitCollection

const EcalRecHitCollection* Pi0FixedMassWindowCalibration::recalibEcalRecHitCollection
private

Definition at line 141 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop().

◆ recHitsEB_map

std::map<DetId, EcalRecHit>* Pi0FixedMassWindowCalibration::recHitsEB_map
private

Definition at line 138 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop().

◆ selePi0DetaBelt_

double Pi0FixedMassWindowCalibration::selePi0DetaBelt_
private

Definition at line 111 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0DRBelt_

double Pi0FixedMassWindowCalibration::selePi0DRBelt_
private

Definition at line 110 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0EtBeltIsoRatioMax_

double Pi0FixedMassWindowCalibration::selePi0EtBeltIsoRatioMax_
private

Definition at line 120 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0MinvMeanFixed_

double Pi0FixedMassWindowCalibration::selePi0MinvMeanFixed_
private

Definition at line 122 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0MinvSigmaFixed_

double Pi0FixedMassWindowCalibration::selePi0MinvSigmaFixed_
private

Definition at line 123 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0PtGammaOneMin_

double Pi0FixedMassWindowCalibration::selePi0PtGammaOneMin_
private

Definition at line 107 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0PtGammaTwoMin_

double Pi0FixedMassWindowCalibration::selePi0PtGammaTwoMin_
private

Definition at line 108 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ selePi0PtPi0Min_

double Pi0FixedMassWindowCalibration::selePi0PtPi0Min_
private

Definition at line 113 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0S4S9GammaOneMin_

double Pi0FixedMassWindowCalibration::selePi0S4S9GammaOneMin_
private

Definition at line 115 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0S4S9GammaTwoMin_

double Pi0FixedMassWindowCalibration::selePi0S4S9GammaTwoMin_
private

Definition at line 116 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0S9S25GammaOneMin_

double Pi0FixedMassWindowCalibration::selePi0S9S25GammaOneMin_
private

Definition at line 117 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ selePi0S9S25GammaTwoMin_

double Pi0FixedMassWindowCalibration::selePi0S9S25GammaTwoMin_
private

Definition at line 118 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ shapeAlgo_

ClusterShapeAlgo Pi0FixedMassWindowCalibration::shapeAlgo_
private

Definition at line 103 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), and Pi0FixedMassWindowCalibration().

◆ theFile

TFile* Pi0FixedMassWindowCalibration::theFile
private

Definition at line 144 of file Pi0FixedMassWindowCalibration.h.

◆ theMaxLoops

unsigned int Pi0FixedMassWindowCalibration::theMaxLoops
private

Definition at line 90 of file Pi0FixedMassWindowCalibration.h.

Referenced by endOfLoop().

◆ theParameterSet

edm::ParameterSet Pi0FixedMassWindowCalibration::theParameterSet
private

Definition at line 135 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ verbosity

IslandClusterAlgo::VerbosityLevel Pi0FixedMassWindowCalibration::verbosity
private

Definition at line 94 of file Pi0FixedMassWindowCalibration.h.

Referenced by Pi0FixedMassWindowCalibration().

◆ wxtals

double Pi0FixedMassWindowCalibration::wxtals[85][360][2]
private

Definition at line 130 of file Pi0FixedMassWindowCalibration.h.

Referenced by duringLoop(), endOfLoop(), and startingNewLoop().

EcalCondObjectContainer::getMap
const self & getMap() const
Definition: EcalCondObjectContainer.h:80
IslandClusterAlgo::pDEBUG
Definition: IslandClusterAlgo.h:29
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
EcalCondObjectContainer::end
const_iterator end() const
Definition: EcalCondObjectContainer.h:76
EcalRecHit
Definition: EcalRecHit.h:15
Pi0FixedMassWindowCalibration::barrelCells
std::vector< DetId > barrelCells
Definition: Pi0FixedMassWindowCalibration.h:125
Pi0FixedMassWindowCalibration::wxtals
double wxtals[85][360][2]
Definition: Pi0FixedMassWindowCalibration.h:130
EBDetId::ieta
int ieta() const
get the crystal ieta
Definition: EBDetId.h:49
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
edm::SortedCollection< EcalRecHit >::const_iterator
std::vector< EcalRecHit >::const_iterator const_iterator
Definition: SortedCollection.h:80
edm::Handle::product
T const * product() const
Definition: Handle.h:70
Pi0FixedMassWindowCalibration::recalibEcalRecHitCollection
const EcalRecHitCollection * recalibEcalRecHitCollection
Definition: Pi0FixedMassWindowCalibration.h:141
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
Pi0FixedMassWindowCalibration::theParameterSet
edm::ParameterSet theParameterSet
Definition: Pi0FixedMassWindowCalibration.h:135
Pi0FixedMassWindowCalibration::selePi0DRBelt_
double selePi0DRBelt_
Definition: Pi0FixedMassWindowCalibration.h:110
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
Pi0FixedMassWindowCalibration::clustershapecollectionEB_
std::string clustershapecollectionEB_
Definition: Pi0FixedMassWindowCalibration.h:99
EBDetId
Definition: EBDetId.h:17
edm
HLT enums.
Definition: AlignableModifier.h:19
geometry
Definition: geometry.py:1
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
Pi0CalibXMLwriter
Definition: Pi0CalibXMLwriter.h:10
EcalBarrelTopology
Definition: EcalBarrelTopology.h:12
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
edm::SortedCollection< EcalRecHit >
Validation_hcalonly_cfi.sign
sign
Definition: Validation_hcalonly_cfi.py:32
edm::SortedCollection::size
size_type size() const
Definition: SortedCollection.h:215
Pi0FixedMassWindowCalibration::theMaxLoops
unsigned int theMaxLoops
Definition: Pi0FixedMassWindowCalibration.h:90
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
EcalCondObjectContainer::size
size_t size() const
Definition: EcalCondObjectContainer.h:82
Pi0FixedMassWindowCalibration::nevent
int nevent
Definition: Pi0FixedMassWindowCalibration.h:88
reco::ClusterShapeCollection
std::vector< ClusterShape > ClusterShapeCollection
collection of ClusterShape objects
Definition: ClusterShapeFwd.h:8
MonitorAlCaEcalPi0_cfi.posCalcParameters
posCalcParameters
Definition: MonitorAlCaEcalPi0_cfi.py:72
EcalCondObjectContainer< float >
edm::Handle
Definition: AssociativeIterator.h:50
edm::SortedCollection::push_back
void push_back(T const &t)
Definition: SortedCollection.h:188
EcalBarrel
Definition: EcalSubdetector.h:10
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
EcalIntercalibConstant
float EcalIntercalibConstant
Definition: EcalIntercalibConstants.h:10
Pi0FixedMassWindowCalibration::selePi0PtPi0Min_
double selePi0PtPi0Min_
Definition: Pi0FixedMassWindowCalibration.h:113
Pi0FixedMassWindowCalibration::verbosity
IslandClusterAlgo::VerbosityLevel verbosity
Definition: Pi0FixedMassWindowCalibration.h:94
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Pi0FixedMassWindowCalibration::selePi0PtGammaOneMin_
double selePi0PtGammaOneMin_
Definition: Pi0FixedMassWindowCalibration.h:107
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
EBDetId::zside
int zside() const
get the z-side of the crystal (1/-1)
Definition: EBDetId.h:45
Pi0FixedMassWindowCalibration::selePi0S4S9GammaOneMin_
double selePi0S4S9GammaOneMin_
Definition: Pi0FixedMassWindowCalibration.h:115
CaloGeometry
Definition: CaloGeometry.h:21
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
Pi0FixedMassWindowCalibration::selePi0S9S25GammaTwoMin_
double selePi0S9S25GammaTwoMin_
Definition: Pi0FixedMassWindowCalibration.h:118
edm::EDLooperBase::kStop
Definition: EDLooperBase.h:79
Pi0FixedMassWindowCalibration::posCalculator_
PositionCalc posCalculator_
Definition: Pi0FixedMassWindowCalibration.h:102
ecaldqm::topology
const CaloTopology * topology(nullptr)
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
reco::ClusterShape
Definition: ClusterShape.h:21
edm::ESHandle
Definition: DTSurvey.h:22
EcalCondObjectContainer::find
const_iterator find(uint32_t rawId) const
Definition: EcalCondObjectContainer.h:53
Pi0FixedMassWindowCalibration::ecalRecHitBarrelCollection
const EcalRecHitCollection * ecalRecHitBarrelCollection
Definition: Pi0FixedMassWindowCalibration.h:140
GetRecoTauVFromDQM_MC_cff.kk
kk
Definition: GetRecoTauVFromDQM_MC_cff.py:84
ClusterShapeAlgo
Definition: ClusterShapeAlgo.h:35
dqmdumpme.k
k
Definition: dqmdumpme.py:60
reco::BasicClusterCollection
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
Definition: BasicClusterFwd.h:16
IslandClusterAlgo::barrel
Definition: IslandClusterAlgo.h:28
L1EGammaClusterEmuProducer_cfi.calib
calib
Definition: L1EGammaClusterEmuProducer_cfi.py:4
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
calib
Definition: CalibElectron.h:12
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
Pi0FixedMassWindowCalibration::barrelHits_
std::string barrelHits_
Definition: Pi0FixedMassWindowCalibration.h:92
edm::ParameterSet
Definition: ParameterSet.h:36
Pi0FixedMassWindowCalibration::selePi0MinvSigmaFixed_
double selePi0MinvSigmaFixed_
Definition: Pi0FixedMassWindowCalibration.h:123
Pi0FixedMassWindowCalibration::selePi0MinvMeanFixed_
double selePi0MinvMeanFixed_
Definition: Pi0FixedMassWindowCalibration.h:122
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
beam_dqm_sourceclient-live_cfg.cerr
cerr
Definition: beam_dqm_sourceclient-live_cfg.py:17
Pi0FixedMassWindowCalibration::barrelClusterShapeAssociation_
std::string barrelClusterShapeAssociation_
Definition: Pi0FixedMassWindowCalibration.h:100
IslandClusterAlgo
Definition: IslandClusterAlgo.h:26
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Pi0FixedMassWindowCalibration::newCalibs_barl
double newCalibs_barl[85][360][2]
Definition: Pi0FixedMassWindowCalibration.h:129
PositionCalc
Definition: PositionCalc.h:29
createfilelist.int
int
Definition: createfilelist.py:10
Pi0FixedMassWindowCalibration::barrelClusterCollection_
std::string barrelClusterCollection_
Definition: Pi0FixedMassWindowCalibration.h:98
IslandClusterAlgo::pERROR
Definition: IslandClusterAlgo.h:29
Pi0FixedMassWindowCalibration::mwxtals
double mwxtals[85][360][2]
Definition: Pi0FixedMassWindowCalibration.h:131
Pi0FixedMassWindowCalibration::ecalHitsProducer_
std::string ecalHitsProducer_
Definition: Pi0FixedMassWindowCalibration.h:91
edm::EDLooperBase::kContinue
Definition: EDLooperBase.h:79
DetId::Ecal
Definition: DetId.h:27
get
#define get
Pi0FixedMassWindowCalibration::selePi0S4S9GammaTwoMin_
double selePi0S4S9GammaTwoMin_
Definition: Pi0FixedMassWindowCalibration.h:116
Pi0FixedMassWindowCalibration::selePi0EtBeltIsoRatioMax_
double selePi0EtBeltIsoRatioMax_
Definition: Pi0FixedMassWindowCalibration.h:120
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
EcalPreshower
Definition: EcalSubdetector.h:10
ClusterShapeAlgo::Calculate
reco::ClusterShape Calculate(const reco::BasicCluster &passedCluster, const EcalRecHitCollection *hits, const CaloSubdetectorGeometry *geometry, const CaloSubdetectorTopology *topology)
Definition: ClusterShapeAlgo.cc:21
std
Definition: JetResolutionObject.h:76
IslandClusterAlgo::makeClusters
std::vector< reco::BasicCluster > makeClusters(const EcalRecHitCollection *hits, const CaloSubdetectorGeometry *geometry, const CaloSubdetectorTopology *topology_p, const CaloSubdetectorGeometry *geometryES_p, EcalPart ecalPart, bool regional=false, const std::vector< RectangularEtaPhiRegion > &regions=std::vector< RectangularEtaPhiRegion >())
Definition: IslandClusterAlgo.cc:17
IslandClusterAlgo::pINFO
Definition: IslandClusterAlgo.h:29
Pi0FixedMassWindowCalibration::selePi0DetaBelt_
double selePi0DetaBelt_
Definition: Pi0FixedMassWindowCalibration.h:111
Pi0FixedMassWindowCalibration::oldCalibs_barl
double oldCalibs_barl[85][360][2]
Definition: Pi0FixedMassWindowCalibration.h:128
Pi0FixedMassWindowCalibration::island_p
IslandClusterAlgo * island_p
Definition: Pi0FixedMassWindowCalibration.h:104
Pi0FixedMassWindowCalibration::isfirstcall_
bool isfirstcall_
Definition: Pi0FixedMassWindowCalibration.h:146
Pi0FixedMassWindowCalibration::shapeAlgo_
ClusterShapeAlgo shapeAlgo_
Definition: Pi0FixedMassWindowCalibration.h:103
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
IslandClusterAlgo::pWARNING
Definition: IslandClusterAlgo.h:29
EcalCondObjectContainer< float >::const_iterator
std::vector< Item >::const_iterator const_iterator
Definition: EcalCondObjectContainer.h:19
EBDetId::iphi
int iphi() const
get the crystal iphi
Definition: EBDetId.h:51
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
Pi0FixedMassWindowCalibration::recHitsEB_map
std::map< DetId, EcalRecHit > * recHitsEB_map
Definition: Pi0FixedMassWindowCalibration.h:138
EcalIntercalibConstantsRcd
Definition: EcalIntercalibConstantsRcd.h:5
Pi0FixedMassWindowCalibration::selePi0S9S25GammaOneMin_
double selePi0S9S25GammaOneMin_
Definition: Pi0FixedMassWindowCalibration.h:117
Pi0FixedMassWindowCalibration::selePi0PtGammaTwoMin_
double selePi0PtGammaTwoMin_
Definition: Pi0FixedMassWindowCalibration.h:108
hit
Definition: SiStripHitEffFromCalibTree.cc:88