CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
HGCalShowerSeparation Class Reference
Inheritance diagram for HGCalShowerSeparation:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 HGCalShowerSeparation (const edm::ParameterSet &)
 
 ~HGCalShowerSeparation () override
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void fillWithRecHits (std::map< DetId, const HGCRecHit * > &, DetId, unsigned int, float, int &, float &)
 

Private Attributes

edm::EDGetTokenT< std::vector< CaloParticle > > caloParticles_
 
std::vector< MonitorElement * > centers_
 
int debug_
 
MonitorElementdeltaEtaPhi_
 
std::vector< MonitorElement * > distanceOnLayer_
 
MonitorElementenergy1_
 
MonitorElementenergy2_
 
MonitorElementenergytot_
 
MonitorElementeta1_
 
MonitorElementeta2_
 
MonitorElementetaPhi_
 
bool filterOnEnergyAndCaloP_
 
std::vector< MonitorElement * > globalProfileOnLayer_
 
std::vector< MonitorElement * > idealDeltaXY_
 
std::vector< MonitorElement * > idealDistanceOnLayer_
 
MonitorElementlayerDistance_
 
MonitorElementlayerEnergy_
 
std::vector< MonitorElement * > profileOnLayer_
 
edm::EDGetTokenT< HGCRecHitCollectionrecHitsBH_
 
edm::EDGetTokenT< HGCRecHitCollectionrecHitsEE_
 
edm::EDGetTokenT< HGCRecHitCollectionrecHitsFH_
 
hgcal::RecHitTools recHitTools_
 
MonitorElementscEnergy_
 
MonitorElementshowerProfile_
 

Static Private Attributes

static const int layers_ = 52
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- 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 45 of file HGCalShowerSeparation.cc.

Constructor & Destructor Documentation

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

Definition at line 90 of file HGCalShowerSeparation.cc.

References caloTruthProducer_cfi::caloParticles, caloParticles_, edm::ParameterSet::getParameter(), recHitsBH_, EcalDeadCellBoundaryEnergyFilter_cfi::recHitsEE, recHitsEE_, and recHitsFH_.

91  : debug_(iConfig.getParameter<int>("debug")),
92  filterOnEnergyAndCaloP_(iConfig.getParameter<bool>("filterOnEnergyAndCaloP")){
93  auto recHitsEE = iConfig.getParameter<edm::InputTag>("recHitsEE");
94  auto recHitsFH = iConfig.getParameter<edm::InputTag>("recHitsFH");
95  auto recHitsBH = iConfig.getParameter<edm::InputTag>("recHitsBH");
96  auto caloParticles = iConfig.getParameter<edm::InputTag>("caloParticles");
97  recHitsEE_ = consumes<HGCRecHitCollection>(recHitsEE);
98  recHitsFH_ = consumes<HGCRecHitCollection>(recHitsFH);
99  recHitsBH_ = consumes<HGCRecHitCollection>(recHitsBH);
100  caloParticles_ = consumes<std::vector<CaloParticle> >(caloParticles);
101 }
edm::EDGetTokenT< HGCRecHitCollection > recHitsEE_
T getParameter(std::string const &) const
edm::EDGetTokenT< HGCRecHitCollection > recHitsFH_
edm::EDGetTokenT< HGCRecHitCollection > recHitsBH_
edm::EDGetTokenT< std::vector< CaloParticle > > caloParticles_
HGCalShowerSeparation::~HGCalShowerSeparation ( )
override

Definition at line 103 of file HGCalShowerSeparation.cc.

103  {
104  // do anything here that needs to be done at desctruction time
105  // (e.g. close files, deallocate resources etc.)
106 }

Member Function Documentation

void HGCalShowerSeparation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 166 of file HGCalShowerSeparation.cc.

References funct::abs(), caloTruthProducer_cfi::caloParticles, caloParticles_, centers_, funct::cos(), KineDebug3::count(), debug_, deltaEtaPhi_, SoftLeptonByDistance_cfi::distance, distanceOnLayer_, SimCluster::energy(), energy1_, energy2_, energytot_, eta1_, eta2_, etaPhi_, JetChargeProducer_cfi::exp, MonitorElement::Fill(), filterOnEnergyAndCaloP_, edm::Event::getByToken(), hgcal::RecHitTools::getEventSetup(), hgcal::RecHitTools::getLayerWithOffset(), hgcal::RecHitTools::getPosition(), globalProfileOnLayer_, SimCluster::hits_and_fractions(), mps_fire::i, idealDeltaXY_, idealDistanceOnLayer_, IfLogTrace, layerDistance_, layerEnergy_, or, profileOnLayer_, recHitsBH_, recHitsEE_, recHitsFH_, recHitTools_, scEnergy_, showerProfile_, SimCluster::simEnergy(), funct::sin(), edm::RefVector< C, T, F >::size(), findQualityFiles::size, mathSSE::sqrt(), funct::tan(), and PV3DBase< T, PVType, FrameType >::x().

167  {
168  using namespace edm;
169 
170  recHitTools_.getEventSetup(iSetup);
171 
172  Handle<HGCRecHitCollection> recHitHandleEE;
173  Handle<HGCRecHitCollection> recHitHandleFH;
174  Handle<HGCRecHitCollection> recHitHandleBH;
175 
176  Handle<std::vector<CaloParticle> > caloParticleHandle;
177  iEvent.getByToken(caloParticles_, caloParticleHandle);
178  const std::vector<CaloParticle>& caloParticles = *caloParticleHandle;
179 
180 
181  iEvent.getByToken(recHitsEE_, recHitHandleEE);
182  iEvent.getByToken(recHitsFH_, recHitHandleFH);
183  iEvent.getByToken(recHitsBH_, recHitHandleBH);
184  const auto& rechitsEE = *recHitHandleEE;
185  const auto& rechitsFH = *recHitHandleFH;
186  const auto& rechitsBH = *recHitHandleBH;
187 
188  std::map<DetId, const HGCRecHit*> hitmap;
189  for (unsigned int i = 0; i < rechitsEE.size(); ++i) {
190  hitmap[rechitsEE[i].detid()] = &rechitsEE[i];
191  }
192  for (unsigned int i = 0; i < rechitsFH.size(); ++i) {
193  hitmap[rechitsFH[i].detid()] = &rechitsFH[i];
194  }
195  for (unsigned int i = 0; i < rechitsBH.size(); ++i) {
196  hitmap[rechitsBH[i].detid()] = &rechitsBH[i];
197  }
198 
199  // loop over caloParticles
200  IfLogTrace(debug_ > 0, "HGCalShowerSeparation")
201  << "Number of caloParticles: " << caloParticles.size() << std::endl;
202  if (caloParticles.size() == 2) {
203  auto eta1 = caloParticles[0].eta();
204  auto phi1 = caloParticles[0].phi();
205  auto theta1 = 2.*atan(exp(-eta1));
206  auto eta2 = caloParticles[1].eta();
207  auto phi2 = caloParticles[1].phi();
208  auto theta2 = 2.*atan(exp(-eta2));
209  eta1_->Fill(eta1);
210  eta2_->Fill(eta2);
211 
212 
213  // Select event only if the sum of the energy of its recHits
214  // is close enough to the gen energy
215  int count = 0;
216  int size = 0;
217  float energy = 0.;
218  float energy_tmp = 0.;
219  for (const auto& it_caloPart : caloParticles) {
220  count++;
221  const SimClusterRefVector& simClusterRefVector = it_caloPart.simClusters();
222  size += simClusterRefVector.size();
223  for (const auto& it_sc : simClusterRefVector) {
224  const SimCluster& simCluster = (*(it_sc));
225  const std::vector<std::pair<uint32_t, float> >& hits_and_fractions =
226  simCluster.hits_and_fractions();
227  for (const auto& it_haf : hits_and_fractions) {
228  if (hitmap.count(it_haf.first))
229  energy += hitmap[it_haf.first]->energy()*it_haf.second;
230  } //hits and fractions
231  } // simcluster
232  if (count == 1) {
233  energy1_->Fill(energy);
234  energy_tmp = energy;
235  } else {
236  energy2_->Fill(energy-energy_tmp);
237  }
238  } // caloParticle
239  energytot_->Fill(energy);
240  if (filterOnEnergyAndCaloP_ && (energy < 2.*0.8*80 or size !=2))
241  return;
242 
243  deltaEtaPhi_->Fill(eta1-eta2, phi1-phi2);
244 
245  for (const auto& it_caloPart : caloParticles) {
246  const SimClusterRefVector& simClusterRefVector = it_caloPart.simClusters();
247  IfLogTrace(debug_ > 0, "HGCalShowerSeparation")
248  << ">>> " << simClusterRefVector.size() << std::endl;
249  for (const auto& it_sc : simClusterRefVector) {
250  const SimCluster& simCluster = (*(it_sc));
251  if (simCluster.energy() < 80*0.8)
252  continue;
253  scEnergy_->Fill(simCluster.energy());
254  IfLogTrace(debug_ > 1, "HGCalShowerSeparation")
255  << ">>> SC.energy(): " << simCluster.energy()
256  << " SC.simEnergy(): " << simCluster.simEnergy()
257  << std::endl;
258  const std::vector<std::pair<uint32_t, float> >& hits_and_fractions =
259  simCluster.hits_and_fractions();
260 
261  for (const auto& it_haf : hits_and_fractions) {
262  if (!hitmap.count(it_haf.first))
263  continue;
264  unsigned int hitlayer = recHitTools_.getLayerWithOffset(it_haf.first);
265  auto global = recHitTools_.getPosition(it_haf.first);
266  float globalx = global.x();
267  float globaly = global.y();
268  float globalz = global.z();
269  if (globalz == 0)
270  continue;
271  auto rho1 = globalz*tan(theta1);
272  auto rho2 = globalz*tan(theta2);
273  auto x1 = rho1*cos(phi1);
274  auto y1 = rho1*sin(phi1);
275  auto x2 = rho2*cos(phi2);
276  auto y2 = rho2*sin(phi2);
277  auto half_point_x = (x1+x2)/2.;
278  auto half_point_y = (y1+y2)/2.;
279  auto half_point = sqrt((x1-half_point_x)*(x1-half_point_x)+(y1-half_point_y)*(y1-half_point_y));
280  auto d_len = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
281  auto dn_x = (x2-x1)/d_len;
282  auto dn_y = (y2-y1)/d_len;
283  auto distance = (globalx-x1)*dn_x + (globaly - y1)*dn_y;
284  distance -= half_point;
285  auto idealDistance = sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
286  if (hitmap.count(it_haf.first)) {
287  profileOnLayer_[hitlayer]->Fill(10.*(globalx-half_point_x),
288  10.*(globaly-half_point_y),
289  hitmap[it_haf.first]->energy()*it_haf.second);
290  profileOnLayer_[55]->Fill(10.*(globalx-half_point_x),
291  10.*(globaly-half_point_y),
292  hitmap[it_haf.first]->energy()*it_haf.second);
293  globalProfileOnLayer_[hitlayer]->Fill(globalx,
294  globaly,
295  hitmap[it_haf.first]->energy()*it_haf.second);
296  globalProfileOnLayer_[55]->Fill(globalx,
297  globaly,
298  hitmap[it_haf.first]->energy()*it_haf.second);
299  layerEnergy_->Fill(hitlayer, hitmap[it_haf.first]->energy());
300  layerDistance_->Fill(hitlayer, std::abs(10.*distance), hitmap[it_haf.first]->energy()*it_haf.second);
301  etaPhi_->Fill(global.eta(), global.phi());
302  distanceOnLayer_[hitlayer]->Fill(10.*distance);//,
303  idealDistanceOnLayer_[hitlayer]->Fill(10.*idealDistance);//,
304  idealDeltaXY_[hitlayer]->Fill(10.*(x1-x2), 10.*(y1-y2));//,
305  centers_[hitlayer]->Fill(10.*half_point_x, 10.*half_point_y);//,
306  IfLogTrace(debug_ > 0, "HGCalShowerSeparation")
307  << ">>> " << distance
308  << " " << hitlayer
309  << " " << hitmap[it_haf.first]->energy()*it_haf.second
310  << std::endl;
312  hitlayer,
313  hitmap[it_haf.first]->energy()*it_haf.second);
314  }
315  } // end simHit
316  } // end simCluster
317  } // end caloparticle
318  }
319 }
size
Write out results.
edm::EDGetTokenT< HGCRecHitCollection > recHitsEE_
edm::EDGetTokenT< HGCRecHitCollection > recHitsFH_
std::vector< std::pair< uint32_t, float > > hits_and_fractions() const
Returns list of rechit IDs and fractions for this SimCluster.
Definition: SimCluster.h:210
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::vector< MonitorElement * > globalProfileOnLayer_
#define IfLogTrace(cond, cat)
std::vector< MonitorElement * > idealDeltaXY_
std::vector< MonitorElement * > profileOnLayer_
void getEventSetup(const edm::EventSetup &)
Definition: RecHitTools.cc:61
void Fill(long long x)
edm::EDGetTokenT< HGCRecHitCollection > recHitsBH_
Monte Carlo truth information used for tracking validation.
Definition: SimCluster.h:28
T sqrt(T t)
Definition: SSEVec.h:18
edm::EDGetTokenT< std::vector< CaloParticle > > caloParticles_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::vector< MonitorElement * > distanceOnLayer_
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float energy() const
Energy. Note this is taken from the first SimTrack only.
Definition: SimCluster.h:111
float simEnergy() const
returns the accumulated sim energy in the cluster
Definition: SimCluster.h:225
hgcal::RecHitTools recHitTools_
unsigned int getLayerWithOffset(const DetId &) const
Definition: RecHitTools.cc:176
MonitorElement * layerDistance_
GlobalPoint getPosition(const DetId &id) const
Definition: RecHitTools.cc:77
HLT enums.
std::vector< MonitorElement * > centers_
size_type size() const
Size of the RefVector.
Definition: RefVector.h:107
std::vector< MonitorElement * > idealDistanceOnLayer_
T x() const
Definition: PV3DBase.h:62
MonitorElement * showerProfile_
void HGCalShowerSeparation::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 108 of file HGCalShowerSeparation.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::cd(), centers_, deltaEtaPhi_, distanceOnLayer_, energy1_, energy2_, energytot_, eta1_, eta2_, etaPhi_, globalProfileOnLayer_, mps_fire::i, idealDeltaXY_, idealDistanceOnLayer_, layerDistance_, layerEnergy_, layers_, profileOnLayer_, scEnergy_, DQMStore::IBooker::setCurrentFolder(), showerProfile_, and AlCaHLTBitMon_QueryRunRegistry::string.

110  {
111  ibooker.cd();
112  ibooker.setCurrentFolder("HGCalShowerSeparation");
113  scEnergy_ = ibooker.book1D("SCEnergy", "SCEnergy", 240, 0., 120.);
114  eta1_ = ibooker.book1D("eta1", "eta1", 80, 0., 4.);
115  eta2_ = ibooker.book1D("eta2", "eta2", 80, 0., 4.);
116  energy1_ = ibooker.book1D("energy1", "energy1", 240, 0., 120.);
117  energy2_ = ibooker.book1D("energy2", "energy2", 240, 0., 120.);
118  energytot_ = ibooker.book1D("energytot", "energytot", 200, 100., 200.);
119  showerProfile_ = ibooker.book2D("ShowerProfile", "ShowerProfile",
120  800, -400., 400.,
121  layers_, 0., (float)layers_);
122  layerEnergy_ = ibooker.book2D("LayerEnergy", "LayerEnergy",
123  60, 0., 60.,
124  50, 0., 0.1);
125  layerDistance_ = ibooker.book2D("LayerDistance", "LayerDistance",
126  60, 0., 60.,
127  400, -400., 400.);
128  etaPhi_ = ibooker.book2D("EtaPhi", "EtaPhi",
129  800, -4., 4.,
130  800, -4., 4.);
131  deltaEtaPhi_ = ibooker.book2D("DeltaEtaPhi", "DeltaEtaPhi",
132  100, -0.5, 0.5,
133  100, -0.5, 0.5);
134  for (int i = 0; i < layers_; ++i) {
135  profileOnLayer_.push_back(ibooker.book2D(std::string("ProfileOnLayer_") + std::to_string(i),
136  std::string("ProfileOnLayer_") + std::to_string(i),
137  120, -600., 600.,
138  120, -600., 600.)
139  );
140  globalProfileOnLayer_.push_back(ibooker.book2D(std::string("GlobalProfileOnLayer_") + std::to_string(i),
141  std::string("GlobalProfileOnLayer_") + std::to_string(i),
142  320, -160., 160.,
143  320, -160., 160.)
144  );
145  distanceOnLayer_.push_back(ibooker.book1D(std::string("DistanceOnLayer_") + std::to_string(i),
146  std::string("DistanceOnLayer_") + std::to_string(i),
147  120, -600., 600.)
148  );
149  idealDistanceOnLayer_.push_back(ibooker.book1D(std::string("IdealDistanceOnLayer_") + std::to_string(i),
150  std::string("IdealDistanceOnLayer_") + std::to_string(i),
151  120, -600., 600.)
152  );
153  idealDeltaXY_.push_back(ibooker.book2D(std::string("IdealDeltaXY_") + std::to_string(i),
154  std::string("IdealDeltaXY_") + std::to_string(i),
155  800, -400., 400.,
156  800, -400., 400.)
157  );
158  centers_.push_back(ibooker.book2D(std::string("Centers_") + std::to_string(i),
159  std::string("Centers_") + std::to_string(i),
160  320, -1600., 1600.,
161  320, -1600., 1600.)
162  );
163  }
164 }
void cd(void)
Definition: DQMStore.cc:269
std::vector< MonitorElement * > globalProfileOnLayer_
std::vector< MonitorElement * > idealDeltaXY_
std::vector< MonitorElement * > profileOnLayer_
std::vector< MonitorElement * > distanceOnLayer_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * layerDistance_
std::vector< MonitorElement * > centers_
std::vector< MonitorElement * > idealDistanceOnLayer_
MonitorElement * showerProfile_
void HGCalShowerSeparation::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 323 of file HGCalShowerSeparation.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and DEFINE_FWK_MODULE.

324  {
326  desc.add<int>("debug", 1);
327  desc.add<bool>("filterOnEnergyAndCaloP", false);
328  desc.add<edm::InputTag>("caloParticles", edm::InputTag("mix", "MergedCaloTruth"));
329  desc.add<edm::InputTag>("recHitsEE", edm::InputTag("HGCalRecHit", "HGCEERecHits"));
330  desc.add<edm::InputTag>("recHitsFH", edm::InputTag("HGCalRecHit", "HGCHEFRecHits"));
331  desc.add<edm::InputTag>("recHitsBH", edm::InputTag("HGCalRecHit", "HGCHEBRecHits"));
332  descriptions.add("hgcalShowerSeparation", desc);
333 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void HGCalShowerSeparation::fillWithRecHits ( std::map< DetId, const HGCRecHit * > &  ,
DetId  ,
unsigned  int,
float  ,
int &  ,
float &   
)
private

Member Data Documentation

edm::EDGetTokenT<std::vector<CaloParticle> > HGCalShowerSeparation::caloParticles_
private

Definition at line 63 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and HGCalShowerSeparation().

std::vector<MonitorElement*> HGCalShowerSeparation::centers_
private

Definition at line 85 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

int HGCalShowerSeparation::debug_
private

Definition at line 65 of file HGCalShowerSeparation.cc.

Referenced by analyze().

MonitorElement* HGCalShowerSeparation::deltaEtaPhi_
private

Definition at line 79 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> HGCalShowerSeparation::distanceOnLayer_
private

Definition at line 82 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::energy1_
private

Definition at line 71 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::energy2_
private

Definition at line 72 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::energytot_
private

Definition at line 73 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::eta1_
private

Definition at line 69 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::eta2_
private

Definition at line 70 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::etaPhi_
private

Definition at line 78 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

bool HGCalShowerSeparation::filterOnEnergyAndCaloP_
private

Definition at line 66 of file HGCalShowerSeparation.cc.

Referenced by analyze().

std::vector<MonitorElement*> HGCalShowerSeparation::globalProfileOnLayer_
private

Definition at line 81 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> HGCalShowerSeparation::idealDeltaXY_
private

Definition at line 84 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> HGCalShowerSeparation::idealDistanceOnLayer_
private

Definition at line 83 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::layerDistance_
private

Definition at line 77 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::layerEnergy_
private

Definition at line 76 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

const int HGCalShowerSeparation::layers_ = 52
staticprivate

Definition at line 87 of file HGCalShowerSeparation.cc.

Referenced by bookHistograms().

std::vector<MonitorElement*> HGCalShowerSeparation::profileOnLayer_
private

Definition at line 80 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<HGCRecHitCollection> HGCalShowerSeparation::recHitsBH_
private

Definition at line 62 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and HGCalShowerSeparation().

edm::EDGetTokenT<HGCRecHitCollection> HGCalShowerSeparation::recHitsEE_
private

Definition at line 60 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and HGCalShowerSeparation().

edm::EDGetTokenT<HGCRecHitCollection> HGCalShowerSeparation::recHitsFH_
private

Definition at line 61 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and HGCalShowerSeparation().

hgcal::RecHitTools HGCalShowerSeparation::recHitTools_
private

Definition at line 67 of file HGCalShowerSeparation.cc.

Referenced by analyze().

MonitorElement* HGCalShowerSeparation::scEnergy_
private

Definition at line 74 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().

MonitorElement* HGCalShowerSeparation::showerProfile_
private

Definition at line 75 of file HGCalShowerSeparation.cc.

Referenced by analyze(), and bookHistograms().