CMS 3D CMS Logo

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

#include <RecoEgamma/Examples/interface/SiStripElectronAnalyzer.h>

Inheritance diagram for SiStripElectronAnalyzer:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob (void) override
 
virtual void initNtuple (void)
 
 SiStripElectronAnalyzer (const edm::ParameterSet &)
 
 ~SiStripElectronAnalyzer () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

double unwrapPhi (double phi) const
 

Private Attributes

std::string basicClusterCollection_
 
std::string basicClusterProducer_
 
std::string eBRecHitCollection_
 
std::string eBRecHitProducer_
 
std::string electronCollection_
 
std::string electronProducer_
 
TH1F * emaxSuperClusters_
 
TH1F * emaxSuperClustersEl_
 
TH1F * energySuperClusters_
 
TH1F * energySuperClustersEl_
 
TH1F * energySuperClustersFailed
 
TH1F * energySuperClustersPassed
 
TH1F * eOverPFailed
 
TH1F * eOverPPassed
 
float EShower_ [1000]
 
TFile * file_
 
std::string fileName_
 
int MatchedDetector_ [1000]
 
float MatchedHitCorr_ [1000]
 
float MatchedHitNoise_ [1000]
 
float MatchedHitPhi_ [1000]
 
float MatchedHitR_ [1000]
 
float MatchedHitSignal_ [1000]
 
float MatchedHitSigX_ [1000]
 
float MatchedHitSigY_ [1000]
 
float MatchedHitTheta_ [1000]
 
int MatchedHitWidth_ [1000]
 
float MatchedHitX_ [1000]
 
float MatchedHitY_ [1000]
 
float MatchedHitZ_ [1000]
 
int MatchedLayer_ [1000]
 
std::string mctruthCollection_
 
std::string mctruthProducer_
 
int MonoDetector_ [1000]
 
float MonoHitCorr_ [1000]
 
float MonoHitNoise_ [1000]
 
float MonoHitPhi_ [1000]
 
float MonoHitR_ [1000]
 
float MonoHitSignal_ [1000]
 
float MonoHitSigX_ [1000]
 
float MonoHitSigY_ [1000]
 
float MonoHitTheta_ [1000]
 
int MonoHitWidth_ [1000]
 
float MonoHitX_ [1000]
 
float MonoHitY_ [1000]
 
float MonoHitZ_ [1000]
 
int MonoLayer_ [1000]
 
TTree * myTree_
 
int NMatchedHits_
 
int NMonoHits_
 
int NShowers_
 
int NStereoHits_
 
TH1F * numCand_
 
TH1F * numElectrons_
 
TH1F * numSiMatchedHits_
 
TH1F * numSiMonoHits_
 
TH1F * numSiStereoHits_
 
TH1F * numSuperClusters_
 
TH1F * pDiff
 
TH1F * pElectronFailed
 
TH1F * pElectronPassed
 
TH1F * phiWidthSuperClusters_
 
TH1F * phiWidthSuperClustersEl_
 
TH1F * ptDiff
 
TH1F * ptElectronFailed
 
TH1F * ptElectronPassed
 
std::string siElectronCollection_
 
std::string siElectronProducer_
 
std::string siHitProducer_
 
std::string siMatchedHitCollection_
 
std::string siRphiHitCollection_
 
std::string siStereoHitCollection_
 
TH1F * sizeSuperClusters_
 
TH1F * sizeSuperClustersEl_
 
TH1F * sizeSuperClustersFailed
 
TH1F * sizeSuperClustersPassed
 
int StereoDetector_ [1000]
 
float StereoHitCorr_ [1000]
 
float StereoHitNoise_ [1000]
 
float StereoHitPhi_ [1000]
 
float StereoHitR_ [1000]
 
float StereoHitSignal_ [1000]
 
float StereoHitSigX_ [1000]
 
float StereoHitSigY_ [1000]
 
float StereoHitTheta_ [1000]
 
int StereoHitWidth_ [1000]
 
float StereoHitX_ [1000]
 
float StereoHitY_ [1000]
 
float StereoHitZ_ [1000]
 
int StereoLayer_ [1000]
 
std::string superClusterCollection_
 
std::string superClusterProducer_
 
float XShower_ [1000]
 
float YShower_ [1000]
 
float ZShower_ [1000]
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

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

Usage: <usage>

Definition at line 46 of file SiStripElectronAnalyzer.h.

Constructor & Destructor Documentation

◆ SiStripElectronAnalyzer()

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

Definition at line 66 of file SiStripElectronAnalyzer.cc.

66  {
67  //now do what ever initialization is needed
68  fileName_ = iConfig.getParameter<std::string>("fileName");
69 
70  file_ = new TFile(fileName_.c_str(), "RECREATE");
71  numCand_ = new TH1F("numCandidates", "Number of candidates found", 10, -0.5, 9.5);
72  numElectrons_ = new TH1F("numElectrons", "Number of Electrons found", 10, -0.5, 9.5);
73  numSuperClusters_ = new TH1F("numSuperClusters", "Number of Ecal SuperClusters", 50, 0, 50);
74 
75  energySuperClusters_ = new TH1F("energySuperClusters", "Super Cluster Energy - all ", 200, 0, 2000.);
76  energySuperClustersEl_ = new TH1F("energySuperClustersEl", "Super Cluster Energy - Electron Cands ", 200, 0., 2000.);
77 
78  sizeSuperClusters_ = new TH1F("sizeSuperClusters", "Super Cluster Size - all ", 20, 0, 19);
79  sizeSuperClustersEl_ = new TH1F("sizeSuperClustersEl", "Super Cluster Size - Electron Cands ", 20, 0, 19);
80 
81  emaxSuperClusters_ = new TH1F("emaxSuperClusters", "Super Cluster Emax - all ", 200, 0, 2000.);
82  emaxSuperClustersEl_ = new TH1F("emaxSuperClustersEl", "Super Cluster Emax - Electron Cands ", 200, 0, 2000.);
83 
84  phiWidthSuperClusters_ = new TH1F("phiWidthSuperClusters", "Super Cluster Width - all ", 20, 0., 0.05);
85  phiWidthSuperClustersEl_ = new TH1F("phiWidthSuperClustersEl", "Super Cluster Width - Electron Cands ", 20, 0., 0.05);
86 
87  ptDiff = new TH1F("ptDiff", " ptDiff ", 20, -10., 10.);
88  pDiff = new TH1F("pDiff", " pDiff ", 100, -50., 50.);
89 
90  pElectronFailed = new TH1F("pElectronFailed", " pElectronFailed ", 55, 0., 110.);
91  ptElectronFailed = new TH1F("ptElectronFailed", " ptElectronFailed ", 55, 0., 110.);
92 
93  pElectronPassed = new TH1F("pElectronPassed", " pElectronPassed ", 55, 0., 110.);
94  ptElectronPassed = new TH1F("ptElectronPassed", " ptElectronPassed ", 55, 0., 110.);
95 
96  sizeSuperClustersFailed = new TH1F("sizeSuperClustersFailed", "Super Cluster Size - Failed ", 20, 0, 19);
97  sizeSuperClustersPassed = new TH1F("sizeSuperClustersPassed", "Super Cluster Size - Passed ", 20, 0, 19);
98 
99  energySuperClustersPassed = new TH1F("energySuperClustersPassed", "Super Cluster Energy - Passed ", 125, 0, 250.);
100  energySuperClustersFailed = new TH1F("energySuperClustersFailed", "Super Cluster Energy - Failed ", 125, 0, 250.);
101 
102  eOverPFailed = new TH1F("eOverPFailed", " E over P - Failed ", 50, 0, 10.);
103  eOverPPassed = new TH1F("eOverPPassed", " E over P - Passed ", 50, 0, 10.);
104 
105  numSiStereoHits_ = new TH1F("numSiStereoHits", "Number of Si StereoHits", 100, 0, 1000);
106  numSiMonoHits_ = new TH1F("numSiMonoHits", "Number of Si MonoHits", 100, 0, 1000);
107  numSiMatchedHits_ = new TH1F("numSiMatchedHits", "Number of Si MatchedHits", 100, 0, 1000);
108 
110 
111  mctruthProducer_ = iConfig.getParameter<std::string>("mctruthProducer");
112  mctruthCollection_ = iConfig.getParameter<std::string>("mctruthCollection");
113 
114  superClusterProducer_ = iConfig.getParameter<std::string>("superClusterProducer");
115  superClusterCollection_ = iConfig.getParameter<std::string>("superClusterCollection");
116 
117  eBRecHitProducer_ = iConfig.getParameter<std::string>("recHitProducer");
118  eBRecHitCollection_ = iConfig.getParameter<std::string>("recHitCollection");
119 
120  siElectronProducer_ = iConfig.getParameter<std::string>("siElectronProducer");
121  siElectronCollection_ = iConfig.getParameter<std::string>("siElectronCollection");
122 
123  electronProducer_ = iConfig.getParameter<std::string>("electronProducer");
124  electronCollection_ = iConfig.getParameter<std::string>("electronCollection");
125 
126  siHitProducer_ = iConfig.getParameter<std::string>("siHitProducer");
127  siRphiHitCollection_ = iConfig.getParameter<std::string>("siRphiHitCollection");
128  siStereoHitCollection_ = iConfig.getParameter<std::string>("siStereoHitCollection");
129  siMatchedHitCollection_ = iConfig.getParameter<std::string>("siMatchedHitCollection");
130 }

References eBRecHitCollection_, eBRecHitProducer_, electronCollection_, electronProducer_, emaxSuperClusters_, emaxSuperClustersEl_, energySuperClusters_, energySuperClustersEl_, energySuperClustersFailed, energySuperClustersPassed, eOverPFailed, eOverPPassed, file_, fileName_, edm::ParameterSet::getParameter(), mctruthCollection_, mctruthProducer_, numCand_, numElectrons_, numSiMatchedHits_, numSiMonoHits_, numSiStereoHits_, numSuperClusters_, pDiff, pElectronFailed, pElectronPassed, phiWidthSuperClusters_, phiWidthSuperClustersEl_, ptDiff, ptElectronFailed, ptElectronPassed, siElectronCollection_, siElectronProducer_, siHitProducer_, siMatchedHitCollection_, siRphiHitCollection_, siStereoHitCollection_, sizeSuperClusters_, sizeSuperClustersEl_, sizeSuperClustersFailed, sizeSuperClustersPassed, AlCaHLTBitMon_QueryRunRegistry::string, superClusterCollection_, and superClusterProducer_.

◆ ~SiStripElectronAnalyzer()

SiStripElectronAnalyzer::~SiStripElectronAnalyzer ( )
override

Definition at line 137 of file SiStripElectronAnalyzer.cc.

137  {
138  // do anything here that needs to be done at desctruction time
139  // (e.g. close files, deallocate resources etc.)
140 
141  file_->Write();
142  file_->Close();
143 }

References file_.

Member Function Documentation

◆ analyze()

void SiStripElectronAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

For events w/ more than 1 electron candidate, try to plot m(e,e)

//////////////////////////////////////////////////////////////////////////////// ////////////////// Now for tracker hits: ///////////////////////////////////////

loop again to get all info into myTree

Implements edm::one::EDAnalyzerBase.

Definition at line 295 of file SiStripElectronAnalyzer.cc.

295  {
296  //Retrieve tracker topology from geometry
298  iSetup.get<TrackerTopologyRcd>().get(tTopo);
299 
300  using namespace std; // so you can say "cout" and "endl"
301 
302  initNtuple();
303 
304  // http://cmsdoc.cern.ch/swdev/lxr/CMSSW/source/clhep/CLHEP/HepMC/GenParticle.h
305  // http://cmsdoc.cern.ch/swdev/lxr/CMSSW/source/clhep/CLHEP/HepMC/GenVertex.h
306  // removed by JED - causes trouble in release post 0_9_0
307  // edm::Handle<edm::HepMCProduct> mctruthHandle;
308  // iEvent.getByLabel(mctruthProducer_, mctruthCollection_, mctruthHandle);
309  // HepMC::GenEvent mctruth = mctruthHandle->getHepMCData();
310 
311  // for (HepMC::GenEvent::particle_const_iterator partIter = mctruth.particles_begin();
312  // partIter != mctruth.particles_end();
313  // ++partIter) {
314  // // for (HepMC::GenEvent::vertex_const_iterator vertIter = mctruth.vertices_begin();
315  // // vertIter != mctruth.vertices_end();
316  // // ++vertIter) {
317  // CLHEP::HepLorentzVector creation = (*partIter)->CreationVertex();
318  // CLHEP::HepLorentzVector momentum = (*partIter)->Momentum();
319  // HepPDT::ParticleID id = (*partIter)->particleID(); // electrons and positrons are 11 and -11
320  // edm::LogInfo("") << "MC particle id " << id.pid() << ", creationVertex " << creation << " cm, initialMomentum " << momentum << " GeV/c" << endl;
321  // }
322 
323  // load the rechits for the Ecal
325  iEvent.getByLabel(eBRecHitProducer_, eBRecHitCollection_, pRecHits);
326  // Create a pointer to the RecHits - unused for now
327  // const EcalRecHitCollection *hitCollection = pRecHits.product();
328 
329  // http://cmsdoc.cern.ch/swdev/lxr/CMSSW/source/self/DataFormats/EgammaReco/interface/SuperCluster.h
331  iEvent.getByLabel(superClusterProducer_, superClusterCollection_, clusterHandle);
332 
335 
336  LogDebug("") << " Start loop over " << clusterHandle->end() - clusterHandle->begin() << " superClusters ";
337 
338  for (reco::SuperClusterCollection::const_iterator clusterIter = clusterHandle->begin();
339  clusterIter != clusterHandle->end();
340  ++clusterIter) {
341  double energy = clusterIter->energy();
342  math::XYZPoint position = clusterIter->position();
343  std::ostringstream str;
344 
345  str << " SuperCluster " << energy << " GeV, position " << position << " cm"
346  << "\n";
347 
349  sizeSuperClusters_->Fill(clusterIter->clustersSize());
350  // this only makes sense for hybrid superclusters
351 
352  // try to point to the constituent clusters for this SuperCluster
353 
354  str << "About to loop over basicClusters"
355  << "\n";
356 
357  double emaxSuperCluster = 0.;
358  double phibar = 0.;
359  double phi2bar = 0.;
360  double eTotSuperCluster = 0.;
361 
362  for (reco::CaloCluster_iterator basicClusterIter = clusterIter->clustersBegin();
363  basicClusterIter != clusterIter->clustersEnd();
364  ++basicClusterIter) {
365  //std::vector<DetId> theIds= (*basicClusterIter)->getHitsByDetId();
366 
367  str << " basicCluster Energy " << (*basicClusterIter)->energy() << " Position " << (*basicClusterIter)->position()
368  << " \n"
369  << " Position phi " << (*basicClusterIter)->position().phi() << " recHits "
370  << (*basicClusterIter)->size() << " \n";
371 
372  double eCluster = (*basicClusterIter)->energy();
373  if (eCluster > emaxSuperCluster) {
374  emaxSuperCluster = eCluster;
375  }
376  eTotSuperCluster += eCluster;
377  double phiCluster = (*basicClusterIter)->position().phi();
378  phibar += eCluster * phiCluster;
379  phi2bar += eCluster * phiCluster * phiCluster;
380 
381  } // end of basicClusterIter loop
382 
383  phibar = phibar / eTotSuperCluster;
384  phi2bar = phi2bar / eTotSuperCluster;
385  double phiWidth = phi2bar - phibar * phibar;
386  if (phiWidth > 0.) {
387  phiWidth = std::pow(phiWidth, 0.5);
388  } else {
389  phiWidth = 0.;
390  }
391  str << " SuperCluster stats "
392  << "\n";
393  str << "phibar " << phibar << " phi2bar " << phi2bar << " eTotSuperCluster " << eTotSuperCluster << " phiWidth "
394  << phiWidth << std::endl;
395 
396  phiWidthSuperClusters_->Fill(phiWidth);
397 
398  emaxSuperClusters_->Fill(emaxSuperCluster);
399 
400  str << " Done with this SuperCluster " << std::endl;
401 
402  LogDebug("") << str.str();
403 
404  } // end of loop over superClusters
405 
406  LogDebug("") << " End loop over superClusters ";
407 
410 
412  //
413  // loop over all EcalRecHits and print out their x,y,z,E
414  // edm::LogInfo("") << " Dumping all recHits in this event " << endl ;
415  // for(EcalRecHitCollection::const_iterator _blah = hitCollection->begin();
416  // _blah != hitCollection->end() ; ++_blah ) {
417  // edm::LogInfo("") << "Ecal RecHit Energy: " << _blah->energy() << endl ;
418  // // " Position " << _blah.position() << endl ;
419  // }
420  //
421  // edm::LogInfo("") << "Dump finished " << endl ;
422  //
424 
425  // DataFormats/EgammaCandidates/src/SiStripElectron.cc
426  edm::Handle<reco::SiStripElectronCollection> siStripElectronHandle;
427  iEvent.getByLabel(siElectronProducer_, siElectronCollection_, siStripElectronHandle);
428 
430 
431  LogDebug("") << " Dumping Algo's guess of SiStripElectron Candidate Info ";
432  int numberOfElectrons = 0;
433  // need to check if fit succeeded
434  LogDebug("") << " Number of SiStripElectrons " << siStripElectronHandle->size();
435 
436  for (reco::SiStripElectronCollection::const_iterator electronIter = siStripElectronHandle->begin();
437  electronIter != siStripElectronHandle->end();
438  ++electronIter) {
439  LogDebug("") << "about to get stuff from electroncandidate " << numberOfElectrons << "\n"
440  << "supercluster energy = " << electronIter->superCluster()->energy() << "\n"
441  << "fit results are phi(r) = " << electronIter->phiAtOrigin() << " + " << electronIter->phiVsRSlope()
442  << "*r"
443  << "\n"
444  << " chi2 " << electronIter->chi2() << " ndof " << electronIter->ndof() << "\n"
445  << " Pt " << electronIter->pt() << "\n"
446  << "P, Px, Py, Pz " << electronIter->p() << " " << electronIter->px() << " " << electronIter->py()
447  << " " << electronIter->pz() << "\n"
448  << "you get the idea...";
449 
450  // make plots for supercluster that an electron has been associ w/. here
451  energySuperClustersEl_->Fill(electronIter->superCluster()->energy());
452  sizeSuperClustersEl_->Fill(electronIter->superCluster()->clustersSize());
453 
454  // loop over basicClusters to get energy
455  double emaxSuperCluster = 0.;
456  double phibar = 0.;
457  double phi2bar = 0.;
458  double eTotSuperCluster = 0.;
459 
460  for (reco::CaloCluster_iterator basicClusterIter = electronIter->superCluster()->clustersBegin();
461  basicClusterIter != electronIter->superCluster()->clustersEnd();
462  ++basicClusterIter) {
463  //std::vector<DetId> theIds= (*basicClusterIter)->getHitsByDetId();
464 
465  double eCluster = (*basicClusterIter)->energy();
466  if (eCluster > emaxSuperCluster) {
467  emaxSuperCluster = eCluster;
468  }
469  eTotSuperCluster += eCluster;
470  double phiCluster = (*basicClusterIter)->position().phi();
471  phibar += eCluster * phiCluster;
472  phi2bar += eCluster * phiCluster * phiCluster;
473  }
474 
475  phibar = phibar / eTotSuperCluster;
476  phi2bar = phi2bar / eTotSuperCluster;
477  double phiWidth = phi2bar - phibar * phibar;
478  if (phiWidth > 0.) {
479  phiWidth = std::pow(phiWidth, 0.5);
480  } else {
481  phiWidth = 0.;
482  }
483 
484  phiWidthSuperClustersEl_->Fill(phiWidth);
485 
486  emaxSuperClustersEl_->Fill(emaxSuperCluster);
487 
488  numberOfElectrons++;
489  }
490 
491  numCand_->Fill(siStripElectronHandle->size());
492 
494 
495  // Now loop over the electrons (ie the fitted things.)
496 
497  LogDebug("") << " About to check Electrons";
498 
501 
502  numElectrons_->Fill(electrons->end() - electrons->begin());
503 
504  // set up vector of bool for SiStrips having or not having Electrons
505  // this causes a warning because of variable array size at compilation time ;
506  // BAD bool hasElectron_[siStripElectronHandle->end()- siStripElectronHandle->begin()] ;
507  bool* hasElectron_ = new bool[siStripElectronHandle->end() - siStripElectronHandle->begin()];
508  for (int icount = 0; icount < siStripElectronHandle->end() - siStripElectronHandle->begin(); ++icount) {
509  hasElectron_[icount] = false;
510  }
511 
512  // also set up a counter to associate the ith electron to the jth strippy
513  // Electron_to_strippy[i] = j: i-th Electron is j-th strippy
514  // BAD unsigned int Electron_to_strippy[electrons->end()- electrons->begin()];
515  unsigned int* Electron_to_strippy = new unsigned int[electrons->end() - electrons->begin()];
516  for (int icount = 0; icount < electrons->end() - electrons->begin(); ++icount) {
517  Electron_to_strippy[icount] = 0;
518  }
519 
520  unsigned int ecount = 0;
521  for (reco::ElectronCollection::const_iterator electronIter = electrons->begin(); electronIter != electrons->end();
522  ++electronIter) {
523  LogDebug("") << " Associating Electrons to Strippies ";
524  LogDebug("") << " PT is " << electronIter->track()->pt();
525 
526  reco::TrackRef tr = (*electronIter).track();
527  uint32_t id = (*electronIter->track()->recHitsBegin())->geographicalId().rawId();
528  LocalPoint pos = (*electronIter->track()->recHitsBegin())->localPosition();
529 
530  unsigned int icount = 0;
531  LogDebug("") << " About to loop over Strippies "
532  << " \n "
533  << " icount " << icount << " max " << siStripElectronHandle->end() - siStripElectronHandle->begin();
534 
535  for (reco::SiStripElectronCollection::const_iterator strippyiter = siStripElectronHandle->begin();
536  strippyiter != siStripElectronHandle->end();
537  ++strippyiter) {
538  bool hitInCommon = false;
539  // loop over rphi hits
540  for (std::vector<SiStripRecHit2D>::const_iterator hiter = strippyiter->rphiRecHits().begin();
541  hiter != strippyiter->rphiRecHits().end();
542  ++hiter) {
543  if (hiter->geographicalId().rawId() == id && (hiter->localPosition() - pos).mag() < 1e-10) {
544  hitInCommon = true;
545  break;
546  }
547  }
548 
549  for (std::vector<SiStripRecHit2D>::const_iterator hiter = strippyiter->stereoRecHits().begin();
550  hiter != strippyiter->stereoRecHits().end();
551  ++hiter) {
552  if (hiter->geographicalId().rawId() == id && (hiter->localPosition() - pos).mag() < 1e-10) {
553  hitInCommon = true;
554  break;
555  }
556  }
557  if (hitInCommon) { //this Electron belongs to this SiStripElectron.
558  hasElectron_[icount] = true;
559  Electron_to_strippy[ecount] = icount;
560  ptDiff->Fill(std::abs(electronIter->track()->pt()) - std::abs(strippyiter->pt()));
561  pDiff->Fill(std::abs(electronIter->track()->p()) - std::abs(strippyiter->p()));
562  }
563  icount++;
564  } // Sistrip loop
565  ecount++;
566  } // Electrons
567 
568  LogDebug("") << " Done looping over Electrons ";
569 
570  unsigned int counter = 0;
571  for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin();
572  strippyIter != siStripElectronHandle->end();
573  ++strippyIter) {
574  bool skipThis = !hasElectron_[counter];
575  if (skipThis) {
576  // plot stuff for SIStripElectrons that don't have fits associated
577 
578  LogDebug("") << " SiStrip Failed Electron "
579  << " \n "
580  << " p " << strippyIter->p() << " \n "
581  << " pt " << strippyIter->pt() << " \n "
582  << " SuperClust size " << strippyIter->superCluster()->clustersSize();
583 
584  pElectronFailed->Fill(std::abs(strippyIter->p()));
585  ptElectronFailed->Fill(std::abs(strippyIter->pt()));
586  sizeSuperClustersFailed->Fill(strippyIter->superCluster()->clustersSize());
587  LogDebug("") << " done filling Failed histos ";
588  // energySuperClustersFailed->Fill(strippyIter->superCluster()->energy());
589  // if(strippyIter->p()>0.) {
590  // eOverPFailed->Fill(strippyIter->superCluster()->energy()/strippyIter->p());
591  // }else {
592  // eOverPFailed->Fill(-1.0);
593  // }
594 
595  } else {
596  LogDebug("") << " SiStrip Passed Electron "
597  << " \n "
598  << " p " << strippyIter->p() << " \n "
599  << " pt " << strippyIter->pt() << " \n "
600  << " SuperClust size " << strippyIter->superCluster()->clustersSize();
601  pElectronPassed->Fill(std::abs(strippyIter->p()));
602  ptElectronPassed->Fill(std::abs(strippyIter->pt()));
603  sizeSuperClustersPassed->Fill(strippyIter->superCluster()->clustersSize());
604  LogDebug("") << " done filling passed histos ";
605  // energySuperClustersPassed->Fill(strippyIter->superCluster()->energy());
606  // if(strippyIter->p()>0.) {
607  // eOverPPassed->Fill(strippyIter->superCluster()->energy()/strippyIter->p());
608  // }else {
609  // eOverPPassed->Fill(-1.0);
610  // }
611 
612  } // skipThis
613  counter++;
614  }
615 
616  LogDebug("") << "Dump info for all electrons ";
617 
618  for (reco::ElectronCollection::const_iterator electronIter1 = electrons->begin(); electronIter1 != electrons->end();
619  ++electronIter1) {
620  reco::TrackRef tr1 = (*electronIter1).track();
621  // let's find its associated SiStripElectron and SuperCluster
622  unsigned int ecount1 = electronIter1 - electrons->begin();
623  unsigned int stripCount1 = 0;
624  reco::SiStripElectronCollection::const_iterator strippyIter1;
625  for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin();
626  strippyIter != siStripElectronHandle->end();
627  ++strippyIter) {
628  if (Electron_to_strippy[ecount1] == stripCount1) {
629  strippyIter1 = strippyIter;
630  break;
631  }
632  stripCount1++;
633  } // strippy loop
634  ecount1++;
635 
636  std::ostringstream str;
637 
638  str << " SiStripElect p , px, py, pz " << strippyIter1->p() << " " << strippyIter1->px() << " "
639  << strippyIter1->py() << " " << strippyIter1->pz() << "\n " << std::endl;
640 
641  str << " Electron p px, py, pz, = " << tr1->p() << " " << tr1->px() << " " << tr1->py() << " " << tr1->pz()
642  << "\n"
643  << std::endl;
644 
645  double EClust1 = strippyIter1->superCluster()->energy();
646  double XClust1 = strippyIter1->superCluster()->x();
647  double YClust1 = strippyIter1->superCluster()->y();
648  double ZClust1 = strippyIter1->superCluster()->z();
649 
650  double rho1 = sqrt(XClust1 * XClust1 + YClust1 * YClust1 + ZClust1 * ZClust1);
651  double costheta1 = ZClust1 / rho1;
652  double sintheta1 = sqrt(1 - costheta1 * costheta1);
653  if (ZClust1 < 0) {
654  sintheta1 = -sintheta1;
655  }
656  double cosphi1 = XClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1);
657  double sinphi1 = YClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1);
658 
659  str << " Ecal for electron E, px, py, pz " << EClust1 << " " << EClust1 * sintheta1 * cosphi1 << " "
660  << EClust1 * sintheta1 * sinphi1 << " " << EClust1 * costheta1 << "\n"
661  << std::endl;
662 
663  LogDebug("") << str.str();
664 
665  } // loop over electrons
666  LogDebug("") << "Done Dumping info for all electrons ";
667 
669  // LogDebug("")<< " Checking Electrons" ;
670  // LogDebug("")<< " PT is " << electronIter->track()->pt() ;
671  // reco::TrackRef tr =(*electronIter).track();
673  if (electrons->end() - electrons->begin() > 1) {
674  edm::LogInfo("") << " Two electrons in this event " << std::endl;
675  for (reco::ElectronCollection::const_iterator electronIter1 = electrons->begin();
676  electronIter1 != electrons->end() - 1;
677  ++electronIter1) {
678  reco::TrackRef tr1 = (*electronIter1).track();
679 
680  // let's find its associated SiStripElectron and SuperCluster
681  // use the Electron_to_strippy[] array
682  unsigned int ecount1 = electronIter1 - electrons->begin();
683  // loop over strippies to find the corresponding one
684  unsigned int stripCount1 = 0;
685  reco::SiStripElectronCollection::const_iterator strippyIter1;
686  for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin();
687  strippyIter != siStripElectronHandle->end();
688  ++strippyIter) {
689  if (Electron_to_strippy[ecount1] == stripCount1) {
690  strippyIter1 = strippyIter;
691  break;
692  }
693  stripCount1++;
694  } // strippy loop
695 
696  double EClust1 = strippyIter1->superCluster()->energy();
697  double XClust1 = strippyIter1->superCluster()->x();
698  double YClust1 = strippyIter1->superCluster()->y();
699  double ZClust1 = strippyIter1->superCluster()->z();
700 
701  for (reco::ElectronCollection::const_iterator electronIter2 = electronIter1 + 1;
702  electronIter2 != electrons->end();
703  ++electronIter2) {
704  reco::TrackRef tr2 = (*electronIter2).track();
705 
706  unsigned int ecount2 = electronIter2 - electrons->begin();
707  unsigned int stripCount2 = 0;
708  reco::SiStripElectronCollection::const_iterator strippyIter2;
709  for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin();
710  strippyIter != siStripElectronHandle->end();
711  ++strippyIter) {
712  if (Electron_to_strippy[ecount2] == stripCount2) {
713  strippyIter2 = strippyIter;
714  break;
715  }
716  stripCount2++;
717  } // strippy loop
718 
719  double EClust2 = strippyIter2->superCluster()->energy();
720  double XClust2 = strippyIter2->superCluster()->x();
721  double YClust2 = strippyIter2->superCluster()->y();
722  double ZClust2 = strippyIter2->superCluster()->z();
723 
724  // now get supercluster from this:
725 
726  edm::LogInfo("") << " Electron p1 = " << tr1->p() << " p1x " << tr1->px() << " p1y " << tr1->py() << " p1z "
727  << tr1->pz() << std::endl;
728 
729  edm::LogInfo("") << " Electron p2 = " << tr2->p() << " p2x " << tr2->px() << " p2y " << tr2->py() << " p2z "
730  << tr2->pz() << std::endl;
731 
732  // combine the two in an (e,e) pair
733  double Zpx = tr1->px() + tr2->px();
734  double Zpy = tr1->py() + tr2->py();
735  double Zpz = tr1->pz() + tr2->pz();
736  double Ze = std::abs(tr1->p()) + std::abs(tr2->p());
737  edm::LogInfo("") << " Z mass " << sqrt(Ze * Ze - Zpx * Zpx - Zpy * Zpy - Zpz * Zpz) << std::endl;
738 
739  // combine the SuperClusts into a Z
740  double rho1 = sqrt(XClust1 * XClust1 + YClust1 * YClust1 + ZClust1 * ZClust1);
741  double costheta1 = ZClust1 / rho1;
742  double sintheta1 = sqrt(1 - costheta1 * costheta1);
743  if (ZClust1 < 0) {
744  sintheta1 = -sintheta1;
745  }
746  double cosphi1 = XClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1);
747  double sinphi1 = YClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1);
748 
749  double rho2 = sqrt(XClust2 * XClust2 + YClust2 * YClust2 + ZClust2 * ZClust2);
750  double costheta2 = ZClust2 / rho2;
751  double sintheta2 = sqrt(1 - costheta2 * costheta2);
752  if (ZClust2 < 0) {
753  sintheta2 = -sintheta2;
754  }
755  double cosphi2 = XClust2 / sqrt(XClust2 * XClust2 + YClust2 * YClust2);
756  double sinphi2 = YClust2 / sqrt(XClust2 * XClust2 + YClust2 * YClust2);
757 
758  edm::LogInfo("") << "Energy of supercluster for 1st electron " << EClust1 << " "
759  << EClust1 * sintheta1 * cosphi1 << " " << EClust1 * sintheta1 * sinphi1 << " "
760  << EClust1 * costheta1 << " " << std::endl;
761 
762  edm::LogInfo("") << "Energy of supercluster for 2nd electron " << EClust2 << " "
763  << EClust2 * sintheta2 * cosphi2 << " " << EClust2 * sintheta2 * sinphi2 << " "
764  << EClust2 * costheta2 << " " << std::endl;
765 
766  // get the supercluster pair
767  double Zgpx = EClust1 * sintheta1 * cosphi1 + EClust2 * sintheta2 * cosphi2;
768  double Zgpy = EClust1 * sintheta1 * sinphi1 + EClust2 * sintheta2 * sinphi2;
769  double Zgpz = EClust1 * costheta1 + EClust2 * costheta2;
770  double ZgE = EClust1 + EClust2;
771 
772  edm::LogInfo("") << " Z mass from ECAL " << sqrt(ZgE * ZgE - Zgpx * Zgpx - Zgpy * Zgpy - Zgpz * Zgpz)
773  << std::endl;
774 
775  } //inner loop
776  } // outer loop
777  } // m(ee) loop
778 
779  delete[] hasElectron_;
780  delete[] Electron_to_strippy;
781 
785  LogDebug("") << " About to dump tracker info ";
786 
787  edm::ESHandle<TrackerGeometry> trackerHandle;
788  iSetup.get<TrackerDigiGeometryRecord>().get(trackerHandle);
789 
791  iEvent.getByLabel(siHitProducer_, siRphiHitCollection_, rphiHitsHandle);
792 
794  iEvent.getByLabel(siHitProducer_, siStereoHitCollection_, stereoHitsHandle);
795 
797  iEvent.getByLabel(siHitProducer_, siMatchedHitCollection_, matchedHitsHandle);
798 
800 
802  NShowers_ = 0;
803  for (reco::SuperClusterCollection::const_iterator clusterIter = clusterHandle->begin();
804  clusterIter != clusterHandle->end();
805  ++clusterIter) {
806  double energy = clusterIter->energy();
807  math::XYZPoint position = clusterIter->position();
808  if (NShowers_ < myMaxHits) {
810  XShower_[NShowers_] = position.x();
811  YShower_[NShowers_] = position.y();
812  ZShower_[NShowers_] = position.z();
813  ++NShowers_;
814  }
815  // Loop over all crystals in this supercluster - see
816  // RecoEcal/EgamaClusterProducers/src/EgammaSimpleAnalyzer.cc
817  // Look also at DataFormats/EgammaReco/interface/SuperCluster.h
818  }
821 
822  LogDebug("") << " Looping over stereo hits ";
823 
825  int myHits = 0;
826  for (SiStripRecHit2DCollection::DataContainer::const_iterator hit = stereoHitsHandle->data().begin(),
827  hitend = stereoHitsHandle->data().end();
828  hit != hitend;
829  ++hit) {
830  DetId id(hit->geographicalId());
831  if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB ||
832  (hit->geographicalId()).subdetId() == StripSubdetector::TOB) {
833  GlobalPoint position = trackerHandle->idToDet(hit->geographicalId())->surface().toGlobal(hit->localPosition());
834  //from RecoLocalTracker/SiStripClusterizer/test/TestCluster.cc
835  // cf also TrackHitAssociator.cc SiStripRecHitMatcher.cc SiStrip1DMeasurementTransformator.cc (KalmanUpdators)
836  SiStripRecHit2D const rechit = *hit;
837  // LocalPoint myposition = rechit.localPosition() ;
838  LocalError myerror = rechit.localPositionError();
839 
840  // Get layer and subdetector ID here for this hit
841  // see SiStripRecHitConverter/test/ValHit.cc
842  Int_t siLayerNum = 0;
843  Int_t siDetNum = 0;
844  string siDetName = "";
845  if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB) {
846  // siLayerNum = tTopo->tibLayer(rechit->geographicalID());
847  siLayerNum = tTopo->tibLayer(id);
848  siDetNum = 1;
849  siDetName = "TIB";
850  } else if ((hit->geographicalId()).subdetId() == StripSubdetector::TOB) {
851  siLayerNum = tTopo->tobLayer(id);
852  siDetNum = 2;
853  siDetName = "TOB";
854  // } else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TID ){
855  // // should we use side/wheel/ring/module/stereo() ?
856  // siLayerNum = tTopo->tidWheel(id);
857  // siDetNum = 3 ;
858  // siDetName = "TID" ;
859  // }else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TEC ){
860  // //choices are side/petal/wheel/ring/module/glued/stereo
861  // siLayerNum = tTopo->tecWheel(id);
862  // siDetNum = 4 ;
863  // siDetName = "TEC" ;
864  } else {
865  siLayerNum = -999;
866  siDetNum = -999;
867  siDetName = "NULL";
868  }
869  // LogDebug("") << siDetName << " " << siLayerNum ;
870 
871  const SiStripRecHit2D::ClusterRef& clust = rechit.cluster();
872  double Signal = 0;
873  double Noise2 = 0;
874  int StripCount = 0;
875  if (clust.isNonnull()) {
876  // LogDebug("") << " barycenter " << clust->barycenter() ;
877  // const std::vector<uint16_t> amplitudes=clust->amplitudes();
878  const auto& amplitudes = clust->amplitudes();
879  for (size_t i = 0; i < amplitudes.size(); i++) {
880  Signal += amplitudes[i];
881  //ignore for now Noise2 +=SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i)*SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i);
882  StripCount++;
883  }
884  } else {
885  LogDebug("") << " null cluster ";
886  }
887  // LogDebug("") << "Signal " << Signal << " Noise2 " << Noise2 << " StripCount " << StripCount ;
888  // Dump position
889  // LogDebug("") << " Stereo "
890  // << "local position: "<<myposition.x()<<" "
891  // << myposition.y()<<" "<<myposition.z()<<"\n"
892  // << "local error: "<<myerror.xx()<<" "
893  // << myerror.xy()<<" "<<myerror.yy() << "\n"
894  // << "global position: " << position.x() << " "
895  // << position.y()<<" "<< position.z()<<"\n"
896  // << " siDetNum " << siDetNum
897  // << " siLayerNum " << siLayerNum ;
898 
899  if (myHits < myMaxHits) {
900  StereoHitX_[myHits] = position.x();
901  StereoHitY_[myHits] = position.y();
902  StereoHitZ_[myHits] = position.z();
903 
904  StereoHitR_[myHits] = position.perp();
905  StereoHitPhi_[myHits] = position.phi();
906  StereoHitTheta_[myHits] = position.theta();
907 
908  StereoHitSigX_[myHits] = sqrt(myerror.xx());
909  StereoHitSigY_[myHits] = sqrt(myerror.yy());
910  StereoHitCorr_[myHits] = myerror.xy() / sqrt(myerror.xx() * myerror.yy());
911 
912  StereoHitSignal_[myHits] = Signal;
913  StereoHitNoise_[myHits] = Noise2;
914  StereoHitWidth_[myHits] = StripCount;
915 
916  StereoDetector_[myHits] = siDetNum;
917  StereoLayer_[myHits] = siLayerNum;
918 
919  ++myHits;
920  }
921  } // end if this is the right subdetector
922  } // end loop over hits
923  NStereoHits_ = myHits;
924 
926 
929 
930  LogDebug("") << " Looping over Mono Hits ";
932  myHits = 0;
933  for (SiStripRecHit2DCollection::DataContainer::const_iterator hit = rphiHitsHandle->data().begin(),
934  hitend = rphiHitsHandle->data().end();
935  hit != hitend;
936  ++hit) {
937  DetId id(hit->geographicalId());
938 
939  if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB ||
940  (hit->geographicalId()).subdetId() == StripSubdetector::TOB) {
941  GlobalPoint position = trackerHandle->idToDet(hit->geographicalId())->surface().toGlobal(hit->localPosition());
942  //from RecoLocalTracker/SiStripClusterizer/test/TestCluster.cc
943  // cf also TrackHitAssociator.cc SiStripRecHitMatcher.cc SiStrip1DMeasurementTransformator.cc (KalmanUpdators)
944  SiStripRecHit2D const rechit = *hit;
945  // LocalPoint myposition = rechit.localPosition() ;
946  LocalError myerror = rechit.localPositionError();
947 
948  // Get layer and subdetector ID here for this hit
949  // see SiStripRecHitConverter/test/ValHit.cc
950  Int_t siLayerNum = 0;
951  Int_t siDetNum = 0;
952  string siDetName = "";
953  if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB) {
954  // siLayerNum = tTopo->tibLayer(rechit->geographicalID());
955  siLayerNum = tTopo->tibLayer(id);
956  siDetNum = 1;
957  siDetName = "TIB";
958  } else if ((hit->geographicalId()).subdetId() == StripSubdetector::TOB) {
959  siLayerNum = tTopo->tobLayer(id);
960  siDetNum = 2;
961  siDetName = "TOB";
962  // } else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TID ){
963  // // should we use side/wheel/ring/module/stereo() ?
964  // siLayerNum = tTopo->tidWheel(id);
965  // siDetNum = 3 ;
966  // siDetName = "TID" ;
967  // }else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TEC ){
968  // //choices are side/petal/wheel/ring/module/glued/stereo
969  // siLayerNum = tTopo->tecWheel(id);
970  // siDetNum = 4 ;
971  // siDetName = "TEC"
972  ;
973  } else {
974  siLayerNum = -999;
975  siDetNum = -999;
976  siDetName = "NULL";
977  }
978  // LogDebug("") << siDetName << " " << siLayerNum ;
979  const SiStripRecHit2D::ClusterRef& clust = rechit.cluster();
980  double Signal = 0;
981  double Noise2 = 0;
982  int StripCount = 0;
983  if (clust.isNonnull()) {
984  // LogDebug("") << " barycenter " << clust->barycenter() ;
985  // const std::vector<uint16_t> amplitudes=clust->amplitudes();
986  const auto& amplitudes = clust->amplitudes();
987  for (size_t i = 0; i < amplitudes.size(); i++) {
988  Signal += amplitudes[i];
989  //ignore for now Noise2 +=SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i)*SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i);
990  StripCount++;
991  }
992  } else {
993  LogDebug("") << " null cluster ";
994  }
995  // LogDebug("") << "Signal " << Signal << " Noise2 " << Noise2 << " StripCount " << StripCount ;
996 
997  // Dump position info
998  // LogDebug("") << " Mono "
999  // << "local position: "<<myposition.x()<<" "
1000  // << myposition.y()<<" "<<myposition.z()<<"\n"
1001  // <<"local error: "<<myerror.xx()<<" "
1002  // << myerror.xy()<<" "<<myerror.yy() << "\n"
1003  // << "global position: " << position.x() << " "
1004  // << position.y()<<" "<< position.z()<<"\n"
1005  // << " siDetNum " << siDetNum
1006  // << " siLayerNum " << siLayerNum ;
1007 
1008  if (myHits < myMaxHits) {
1009  MonoHitX_[myHits] = position.x();
1010  MonoHitY_[myHits] = position.y();
1011  MonoHitZ_[myHits] = position.z();
1012 
1013  MonoHitR_[myHits] = position.perp();
1014  MonoHitPhi_[myHits] = position.phi();
1015  MonoHitTheta_[myHits] = position.theta();
1016 
1017  MonoHitSigX_[myHits] = sqrt(myerror.xx());
1018  MonoHitSigY_[myHits] = sqrt(myerror.yy());
1019  MonoHitCorr_[myHits] = myerror.xy() / sqrt(myerror.xx() * myerror.yy());
1020 
1021  MonoHitSignal_[myHits] = Signal;
1022  MonoHitNoise_[myHits] = Noise2;
1023  MonoHitWidth_[myHits] = StripCount;
1024 
1025  MonoDetector_[myHits] = siDetNum;
1026  MonoLayer_[myHits] = siLayerNum;
1027 
1028  ++myHits;
1029  } // of if(myHits < myMaxHits)
1030  // LogDebug("")<< "end of myHits < myMaxHits " ;
1031  } // end if this is the right subdetector
1032  // LogDebug("")<< "end of TIB/TOB check " ;
1033  } // end loop over hits
1034  // LogDebug("")<< " end of loop over hits " ;
1035  NMonoHits_ = myHits;
1036 
1037  numSiMonoHits_->Fill(NMonoHits_);
1038 
1041 
1042  LogDebug("") << " Loop over Matched Hits ";
1043 
1045  myHits = 0;
1046  for (SiStripMatchedRecHit2DCollection::DataContainer::const_iterator hit = matchedHitsHandle->data().begin(),
1047  hitend = matchedHitsHandle->data().end();
1048  hit != hitend;
1049  ++hit) {
1050  DetId id(hit->geographicalId());
1051  if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB ||
1052  (hit->geographicalId()).subdetId() == StripSubdetector::TOB) {
1053  GlobalPoint position = trackerHandle->idToDet(hit->geographicalId())->surface().toGlobal(hit->localPosition());
1054  SiStripMatchedRecHit2D const rechit = *hit;
1055  // LocalPoint myposition = rechit.localPosition() ;
1056  LocalError myerror = rechit.localPositionError();
1057 
1058  // Get layer and subdetector ID here for this hit
1059  // see SiStripRecHitConverter/test/ValHit.cc
1060  Int_t siLayerNum = 0;
1061  Int_t siDetNum = 0;
1062  string siDetName = "";
1063  if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB) {
1064  siLayerNum = tTopo->tibLayer(id);
1065  siDetNum = 1;
1066  siDetName = "TIB";
1067  } else if ((hit->geographicalId()).subdetId() == StripSubdetector::TOB) {
1068  siLayerNum = tTopo->tobLayer(id);
1069  siDetNum = 2;
1070  siDetName = "TOB";
1071  // } else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TID ){
1072  // // should we use side/wheel/ring/module/stereo() ?
1073  // siLayerNum = tTopo->tidWheel(id);
1074  // siDetNum = 3 ;
1075  // siDetName = "TID" ;
1076  // }else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TEC ){
1077  // //choices are side/petal/wheel/ring/module/glued/stereo
1078  // siLayerNum = tTopo->tecWheel(id);
1079  // siDetNum = 4 ;
1080  // siDetName = "TEC" ;
1081  } else {
1082  siLayerNum = -999;
1083  siDetNum = -999;
1084  siDetName = "NULL";
1085  }
1086  // const edm::Ref<edm::DetSetVector<SiStripCluster>, SiStripCluster, edm::refhelper::FindForDetSetVector<SiStripCluster> > clust=rechit.cluster();
1087  double Signal = 0;
1088  double Noise2 = 0;
1089  int StripCount = 0;
1090  // if(clust.isNonnull()) {
1091  // LogDebug("") << " barycenter " << clust->barycenter() ;
1092  // const std::vector<uint16_t> amplitudes=clust->amplitudes();
1093  // for(size_t i = 0 ; i<amplitudes.size(); i++ ){
1094  // Signal +=amplitudes[i] ;
1095  // //ignore for now Noise2 +=SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i)*SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i);
1096  // StripCount++;
1097  // }
1098  // } else {
1099  // LogDebug("") << " null cluster " ;
1100  // }
1101  // LogDebug("") << "Signal " << Signal << " Noise2 " << Noise2 << " StripCount " << StripCount ;
1102 
1103  // Dump position info
1104  // LogDebug("") << " Matched "
1105  // << "local position: "<<myposition.x()<<" "
1106  // << myposition.y()<<" "<<myposition.z()<<"\n"
1107  // << "local error: "<<myerror.xx()<<" "
1108  // << myerror.xy()<<" "<<myerror.yy() << "\n"
1109  // << "global position: " << position.x() << " "
1110  // << position.y()<<" "<< position.z()<<"\n"
1111  // << " siDetNum " << siDetNum
1112  // << " siLayerNum " << siLayerNum ;
1113 
1114  if (myHits < myMaxHits) {
1115  MatchedHitX_[myHits] = position.x();
1116  MatchedHitY_[myHits] = position.y();
1117  MatchedHitZ_[myHits] = position.z();
1118 
1119  MatchedHitR_[myHits] = position.perp();
1120  MatchedHitPhi_[myHits] = position.phi();
1121  MatchedHitTheta_[myHits] = position.theta();
1122 
1123  MatchedHitSigX_[myHits] = sqrt(myerror.xx());
1124  MatchedHitSigY_[myHits] = sqrt(myerror.yy());
1125  MatchedHitCorr_[myHits] = myerror.xy() / sqrt(myerror.xx() * myerror.yy());
1126 
1127  MatchedHitSignal_[myHits] = Signal;
1128  MatchedHitNoise_[myHits] = Noise2;
1129  MatchedHitWidth_[myHits] = StripCount;
1130 
1131  MatchedDetector_[myHits] = siDetNum;
1132  MatchedLayer_[myHits] = siLayerNum;
1133 
1134  ++myHits;
1135  }
1136  } // end if this is the right subdetector (TIB/TOB)
1137  } // end loop over hits
1138  NMatchedHits_ = myHits;
1139 
1141 
1143 
1146  LogDebug("") << "Writing to myTree with " << NShowers_ << " Showers " << NStereoHits_ << " Si StereoHits "
1147  << NMonoHits_ << " Si MonoHits " << NMatchedHits_ << " Si MatchedHits ";
1148 
1149  myTree_->Fill();
1150 
1151 } // end of Analyzer

References funct::abs(), SiStripRecHit2D::cluster(), counter, edmNew::DetSetVector< T >::data(), MillePedeFileConverter_cfg::e, eBRecHitCollection_, eBRecHitProducer_, electronCollection_, electronProducer_, pwdgSkimBPark_cfi::electrons, emaxSuperClusters_, emaxSuperClustersEl_, HCALHighEnergyHPDFilter_cfi::energy, energySuperClusters_, energySuperClustersEl_, EShower_, edm::EventSetup::get(), get, mps_fire::i, triggerObjects_cff::id, TrackerGeometry::idToDet(), iEvent, initNtuple(), edm::Ref< C, T, F >::isNonnull(), BaseTrackerRecHit::localPositionError(), LogDebug, mag(), MatchedDetector_, MatchedHitCorr_, MatchedHitNoise_, MatchedHitPhi_, MatchedHitR_, MatchedHitSignal_, MatchedHitSigX_, MatchedHitSigY_, MatchedHitTheta_, MatchedHitWidth_, MatchedHitX_, MatchedHitY_, MatchedHitZ_, MatchedLayer_, MonoDetector_, MonoHitCorr_, MonoHitNoise_, MonoHitPhi_, MonoHitR_, MonoHitSignal_, MonoHitSigX_, MonoHitSigY_, MonoHitTheta_, MonoHitWidth_, MonoHitX_, MonoHitY_, MonoHitZ_, MonoLayer_, myMaxHits, myTree_, NMatchedHits_, NMonoHits_, NShowers_, NStereoHits_, numCand_, numElectrons_, numSiMatchedHits_, numSiMonoHits_, numSiStereoHits_, numSuperClusters_, pDiff, pElectronFailed, pElectronPassed, phiWidthSuperClusters_, phiWidthSuperClustersEl_, position, funct::pow(), ptDiff, ptElectronFailed, ptElectronPassed, siElectronCollection_, siElectronProducer_, muonRPCDigis_cfi::Signal, siHitProducer_, siMatchedHitCollection_, siRphiHitCollection_, siStereoHitCollection_, sizeSuperClusters_, sizeSuperClustersEl_, sizeSuperClustersFailed, sizeSuperClustersPassed, edmScanValgrind::skipThis, mathSSE::sqrt(), StereoDetector_, StereoHitCorr_, StereoHitNoise_, StereoHitPhi_, StereoHitR_, StereoHitSignal_, StereoHitSigX_, StereoHitSigY_, StereoHitTheta_, StereoHitWidth_, StereoHitX_, StereoHitY_, StereoHitZ_, StereoLayer_, str, superClusterCollection_, superClusterProducer_, StripSubdetector::TIB, TrackerTopology::tibLayer(), StripSubdetector::TOB, TrackerTopology::tobLayer(), GeomDet::toGlobal(), XShower_, LocalError::xx(), LocalError::xy(), YShower_, LocalError::yy(), and ZShower_.

◆ beginJob()

void SiStripElectronAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 161 of file SiStripElectronAnalyzer.cc.

161  {
162  myTree_ = new TTree("myTree", "my first Tree example");
163 
164  myTree_->Branch("NShowers", &NShowers_, "NShowers/I");
165 
166  // first specify the ECAL clusters
167  // need to explicitly include array length.
168  myTree_->Branch("EShower", &EShower_, "EShower[1000]/F");
169  myTree_->Branch("XShower", &XShower_, "XShower[1000]/F");
170  myTree_->Branch("YShower", &YShower_, "YShower[1000]/F");
171  myTree_->Branch("ZShower", &ZShower_, "ZShower[1000]/F");
172 
173  // second specify the Si Stereo Hits
174  myTree_->Branch("NStereoHits", &NStereoHits_, "NStereoHits/I");
175  myTree_->Branch("StereoHitX", &StereoHitX_, "StereoHitX[1000]/F");
176  myTree_->Branch("StereoHitY", &StereoHitY_, "StereoHitY[1000]/F");
177  myTree_->Branch("StereoHitZ", &StereoHitZ_, "StereoHitZ[1000]/F");
178 
179  myTree_->Branch("StereoHitR", &StereoHitR_, "StereoHitR[1000]/F");
180  myTree_->Branch("StereoHitPhi", &StereoHitPhi_, "StereoHitPhi[1000]/F");
181  myTree_->Branch("StereoHitTheta", &StereoHitTheta_, "StereoHitTheta[1000]/F");
182 
183  myTree_->Branch("StereoHitSigX", &StereoHitSigX_, "StereoHitSigX[1000]/F");
184  myTree_->Branch("StereoHitSigY", &StereoHitSigY_, "StereoHitSigY[1000]/F");
185  myTree_->Branch("StereoHitCorr", &StereoHitCorr_, "StereoHitCorr[1000]/F");
186 
187  myTree_->Branch("StereoHitSignal", &StereoHitSignal_, "StereoHitSignal[1000]/F");
188  myTree_->Branch("StereoHitNoise", &StereoHitNoise_, "StereoHitNoise[1000]/F");
189  myTree_->Branch("StereoHitWidth", &StereoHitWidth_, "StereoHitWidth[1000]/I");
190 
191  myTree_->Branch("StereoDetector", &StereoDetector_, "StereoDetector[1000]/I");
192  myTree_->Branch("StereoLayer", &StereoLayer_, "StereoLayer[1000]/I");
193 
194  // specify the Si mono (rphi) hits
195  myTree_->Branch("NMonoHits", &NMonoHits_, "NMonoHits/I");
196  myTree_->Branch("MonoHitX", &MonoHitX_, "MonoHitX[1000]/F");
197  myTree_->Branch("MonoHitY", &MonoHitY_, "MonoHitY[1000]/F");
198  myTree_->Branch("MonoHitZ", &MonoHitZ_, "MonoHitZ[1000]/F");
199 
200  myTree_->Branch("MonoHitR", &MonoHitR_, "MonoHitR[1000]/F");
201  myTree_->Branch("MonoHitPhi", &MonoHitPhi_, "MonoHitPhi[1000]/F");
202  myTree_->Branch("MonoHitTheta", &MonoHitTheta_, "MonoHitTheta[1000]/F");
203 
204  myTree_->Branch("MonoHitSigX", &MonoHitSigX_, "MonoHitSigX[1000]/F");
205  myTree_->Branch("MonoHitSigY", &MonoHitSigY_, "MonoHitSigY[1000]/F");
206  myTree_->Branch("MonoHitCorr", &MonoHitCorr_, "MonoHitCorr[1000]/F");
207 
208  myTree_->Branch("MonoHitSignal", &MonoHitSignal_, "MonoHitSignal[1000]/F");
209  myTree_->Branch("MonoHitNoise", &MonoHitNoise_, "MonoHitNoise[1000]/F");
210  myTree_->Branch("MonoHitWidth", &MonoHitWidth_, "MonoHitWidth[1000]/I");
211 
212  myTree_->Branch("MonoDetector", &MonoDetector_, "MonoDetector[1000]/I");
213  myTree_->Branch("MonoLayer", &MonoLayer_, "MonoLayer[1000]/I");
214 
215  // specify the Si matched (rphi) hits
216  myTree_->Branch("NMatchedHits", &NMatchedHits_, "NMatchedHits/I");
217  myTree_->Branch("MatchedHitX", &MatchedHitX_, "MatchedHitX[1000]/F");
218  myTree_->Branch("MatchedHitY", &MatchedHitY_, "MatchedHitY[1000]/F");
219  myTree_->Branch("MatchedHitZ", &MatchedHitZ_, "MatchedHitZ[1000]/F");
220 
221  myTree_->Branch("MatchedHitR", &MatchedHitR_, "MatchedHitR[1000]/F");
222  myTree_->Branch("MatchedHitPhi", &MatchedHitPhi_, "MatchedHitPhi[1000]/F");
223  myTree_->Branch("MatchedHitTheta", &MatchedHitTheta_, "MatchedHitTheta[1000]/F");
224 
225  myTree_->Branch("MatchedHitSigX", &MatchedHitSigX_, "MatchedHitSigX[1000]/F");
226  myTree_->Branch("MatchedHitSigY", &MatchedHitSigY_, "MatchedHitSigY[1000]/F");
227  myTree_->Branch("MatchedHitCorr", &MatchedHitCorr_, "MatchedHitCorr[1000]/F");
228 
229  myTree_->Branch("MatchedHitSignal", &MatchedHitSignal_, "MatchedHitSignal[1000]/F");
230  myTree_->Branch("MatchedHitNoise", &MatchedHitNoise_, "MatchedHitNoise[1000]/F");
231  myTree_->Branch("MatchedHitWidth", &MatchedHitWidth_, "MatchedHitWidth[1000]/I");
232 
233  myTree_->Branch("MatchedDetector", &MatchedDetector_, "MatchedDetector[1000]/I");
234  myTree_->Branch("MatchedLayer", &MatchedLayer_, "MatchedLayer[1000]/I");
235 }

References EShower_, MatchedDetector_, MatchedHitCorr_, MatchedHitNoise_, MatchedHitPhi_, MatchedHitR_, MatchedHitSignal_, MatchedHitSigX_, MatchedHitSigY_, MatchedHitTheta_, MatchedHitWidth_, MatchedHitX_, MatchedHitY_, MatchedHitZ_, MatchedLayer_, MonoDetector_, MonoHitCorr_, MonoHitNoise_, MonoHitPhi_, MonoHitR_, MonoHitSignal_, MonoHitSigX_, MonoHitSigY_, MonoHitTheta_, MonoHitWidth_, MonoHitX_, MonoHitY_, MonoHitZ_, MonoLayer_, myTree_, NMatchedHits_, NMonoHits_, NShowers_, NStereoHits_, StereoDetector_, StereoHitCorr_, StereoHitNoise_, StereoHitPhi_, StereoHitR_, StereoHitSignal_, StereoHitSigX_, StereoHitSigY_, StereoHitTheta_, StereoHitWidth_, StereoHitX_, StereoHitY_, StereoHitZ_, StereoLayer_, XShower_, YShower_, and ZShower_.

◆ endJob()

void SiStripElectronAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1153 of file SiStripElectronAnalyzer.cc.

1153  {
1154  LogDebug("") << "Entering endJob ";
1155  file_->cd();
1156  numCand_->Write();
1157  numElectrons_->Write();
1158  numSuperClusters_->Write();
1159 
1160  energySuperClusters_->Write();
1161  sizeSuperClusters_->Write();
1162  emaxSuperClusters_->Write();
1163  phiWidthSuperClusters_->Write();
1164 
1165  energySuperClustersEl_->Write();
1166  sizeSuperClustersEl_->Write();
1167  emaxSuperClustersEl_->Write();
1168  phiWidthSuperClustersEl_->Write();
1169 
1170  ptDiff->Write();
1171  pDiff->Write();
1172  pElectronFailed->Write();
1173  ptElectronFailed->Write();
1174  pElectronPassed->Write();
1175  ptElectronPassed->Write();
1176  sizeSuperClustersPassed->Write();
1177  sizeSuperClustersFailed->Write();
1178  // energySuperClustersPassed->Write();
1179  // energySuperClustersFailed->Write();
1180  // eOverPPassed->Write();
1181  // eOverPFailed->Write();
1182 
1183  numSiStereoHits_->Write();
1184  numSiMonoHits_->Write();
1185  numSiMatchedHits_->Write();
1186 
1187  // disable for large dataset
1188  LogDebug("") << " Writing out ntuple is disabled for now ";
1189  myTree_->Write();
1190 
1191  file_->Close();
1192 }

References emaxSuperClusters_, emaxSuperClustersEl_, energySuperClusters_, energySuperClustersEl_, file_, LogDebug, myTree_, numCand_, numElectrons_, numSiMatchedHits_, numSiMonoHits_, numSiStereoHits_, numSuperClusters_, pDiff, pElectronFailed, pElectronPassed, phiWidthSuperClusters_, phiWidthSuperClustersEl_, ptDiff, ptElectronFailed, ptElectronPassed, sizeSuperClusters_, sizeSuperClustersEl_, sizeSuperClustersFailed, and sizeSuperClustersPassed.

◆ initNtuple()

void SiStripElectronAnalyzer::initNtuple ( void  )
virtual

Definition at line 237 of file SiStripElectronAnalyzer.cc.

237  {
238  LogDebug("") << " In initNtuple ";
239 
240  NShowers_ = -999;
241  for (int init = 0; init < myMaxHits; ++init) {
242  EShower_[init] = -999.;
243  XShower_[init] = -999.;
244  YShower_[init] = -999.;
245  ZShower_[init] = -999.;
246  }
247  NStereoHits_ = -999;
248 
249  for (int init = 0; init < myMaxHits; ++init) {
250  StereoHitX_[init] = -999.;
251  StereoHitY_[init] = -999.;
252  StereoHitZ_[init] = -999.;
253  StereoHitR_[init] = -999.;
254  StereoHitPhi_[init] = -999.;
255  StereoHitTheta_[init] = -999.;
256 
257  StereoHitSignal_[init] = -999.;
258  StereoHitNoise_[init] = -999.;
259  StereoHitWidth_[init] = -999;
260  ;
261  }
262 
263  NMonoHits_ = -999;
264  for (int init = 0; init < myMaxHits; ++init) {
265  MonoHitX_[init] = -999.;
266  MonoHitY_[init] = -999.;
267  MonoHitZ_[init] = -999.;
268  MonoHitR_[init] = -999.;
269  MonoHitPhi_[init] = -999.;
270  MonoHitTheta_[init] = -999.;
271 
272  MonoHitSignal_[init] = -999.;
273  MonoHitNoise_[init] = -999.;
274  MonoHitWidth_[init] = -999;
275  ;
276  }
277 
278  NMatchedHits_ = -999;
279  for (int init = 0; init < myMaxHits; ++init) {
280  MatchedHitX_[init] = -999.;
281  MatchedHitY_[init] = -999.;
282  MatchedHitZ_[init] = -999.;
283  MatchedHitR_[init] = -999.;
284  MatchedHitPhi_[init] = -999.;
285  MatchedHitTheta_[init] = -999.;
286 
287  MatchedHitSignal_[init] = -999.;
288  MatchedHitNoise_[init] = -999.;
289  MatchedHitWidth_[init] = -999;
290  ;
291  }
292 }

References EShower_, init, LogDebug, MatchedHitNoise_, MatchedHitPhi_, MatchedHitR_, MatchedHitSignal_, MatchedHitTheta_, MatchedHitWidth_, MatchedHitX_, MatchedHitY_, MatchedHitZ_, MonoHitNoise_, MonoHitPhi_, MonoHitR_, MonoHitSignal_, MonoHitTheta_, MonoHitWidth_, MonoHitX_, MonoHitY_, MonoHitZ_, myMaxHits, NMatchedHits_, NMonoHits_, NShowers_, NStereoHits_, StereoHitNoise_, StereoHitPhi_, StereoHitR_, StereoHitSignal_, StereoHitTheta_, StereoHitWidth_, StereoHitX_, StereoHitY_, StereoHitZ_, XShower_, YShower_, and ZShower_.

Referenced by analyze().

◆ unwrapPhi()

double SiStripElectronAnalyzer::unwrapPhi ( double  phi) const
inlineprivate

Definition at line 57 of file SiStripElectronAnalyzer.h.

57  {
58  while (phi > M_PI) {
59  phi -= 2. * M_PI;
60  }
61  while (phi < -M_PI) {
62  phi += 2. * M_PI;
63  }
64  return phi;
65  }

References M_PI, and phi.

Member Data Documentation

◆ basicClusterCollection_

std::string SiStripElectronAnalyzer::basicClusterCollection_
private

Definition at line 179 of file SiStripElectronAnalyzer.h.

◆ basicClusterProducer_

std::string SiStripElectronAnalyzer::basicClusterProducer_
private

Definition at line 178 of file SiStripElectronAnalyzer.h.

◆ eBRecHitCollection_

std::string SiStripElectronAnalyzer::eBRecHitCollection_
private

Definition at line 181 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ eBRecHitProducer_

std::string SiStripElectronAnalyzer::eBRecHitProducer_
private

Definition at line 180 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ electronCollection_

std::string SiStripElectronAnalyzer::electronCollection_
private

Definition at line 185 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ electronProducer_

std::string SiStripElectronAnalyzer::electronProducer_
private

Definition at line 184 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ emaxSuperClusters_

TH1F* SiStripElectronAnalyzer::emaxSuperClusters_
private

Definition at line 76 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ emaxSuperClustersEl_

TH1F* SiStripElectronAnalyzer::emaxSuperClustersEl_
private

Definition at line 81 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ energySuperClusters_

TH1F* SiStripElectronAnalyzer::energySuperClusters_
private

Definition at line 74 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ energySuperClustersEl_

TH1F* SiStripElectronAnalyzer::energySuperClustersEl_
private

Definition at line 79 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ energySuperClustersFailed

TH1F* SiStripElectronAnalyzer::energySuperClustersFailed
private

Definition at line 93 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ energySuperClustersPassed

TH1F* SiStripElectronAnalyzer::energySuperClustersPassed
private

Definition at line 92 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ eOverPFailed

TH1F* SiStripElectronAnalyzer::eOverPFailed
private

Definition at line 94 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ eOverPPassed

TH1F* SiStripElectronAnalyzer::eOverPPassed
private

Definition at line 95 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ EShower_

float SiStripElectronAnalyzer::EShower_[1000]
private

Definition at line 104 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ file_

TFile* SiStripElectronAnalyzer::file_
private

◆ fileName_

std::string SiStripElectronAnalyzer::fileName_
private

Definition at line 68 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ MatchedDetector_

int SiStripElectronAnalyzer::MatchedDetector_[1000]
private

Definition at line 171 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MatchedHitCorr_

float SiStripElectronAnalyzer::MatchedHitCorr_[1000]
private

Definition at line 165 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MatchedHitNoise_

float SiStripElectronAnalyzer::MatchedHitNoise_[1000]
private

Definition at line 168 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitPhi_

float SiStripElectronAnalyzer::MatchedHitPhi_[1000]
private

Definition at line 159 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitR_

float SiStripElectronAnalyzer::MatchedHitR_[1000]
private

Definition at line 158 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitSignal_

float SiStripElectronAnalyzer::MatchedHitSignal_[1000]
private

Definition at line 167 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitSigX_

float SiStripElectronAnalyzer::MatchedHitSigX_[1000]
private

Definition at line 163 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MatchedHitSigY_

float SiStripElectronAnalyzer::MatchedHitSigY_[1000]
private

Definition at line 164 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MatchedHitTheta_

float SiStripElectronAnalyzer::MatchedHitTheta_[1000]
private

Definition at line 160 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitWidth_

int SiStripElectronAnalyzer::MatchedHitWidth_[1000]
private

Definition at line 169 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitX_

float SiStripElectronAnalyzer::MatchedHitX_[1000]
private

Definition at line 154 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitY_

float SiStripElectronAnalyzer::MatchedHitY_[1000]
private

Definition at line 155 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedHitZ_

float SiStripElectronAnalyzer::MatchedHitZ_[1000]
private

Definition at line 156 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MatchedLayer_

int SiStripElectronAnalyzer::MatchedLayer_[1000]
private

Definition at line 172 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ mctruthCollection_

std::string SiStripElectronAnalyzer::mctruthCollection_
private

Definition at line 175 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ mctruthProducer_

std::string SiStripElectronAnalyzer::mctruthProducer_
private

Definition at line 174 of file SiStripElectronAnalyzer.h.

Referenced by SiStripElectronAnalyzer().

◆ MonoDetector_

int SiStripElectronAnalyzer::MonoDetector_[1000]
private

Definition at line 149 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MonoHitCorr_

float SiStripElectronAnalyzer::MonoHitCorr_[1000]
private

Definition at line 143 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MonoHitNoise_

float SiStripElectronAnalyzer::MonoHitNoise_[1000]
private

Definition at line 146 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitPhi_

float SiStripElectronAnalyzer::MonoHitPhi_[1000]
private

Definition at line 137 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitR_

float SiStripElectronAnalyzer::MonoHitR_[1000]
private

Definition at line 136 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitSignal_

float SiStripElectronAnalyzer::MonoHitSignal_[1000]
private

Definition at line 145 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitSigX_

float SiStripElectronAnalyzer::MonoHitSigX_[1000]
private

Definition at line 141 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MonoHitSigY_

float SiStripElectronAnalyzer::MonoHitSigY_[1000]
private

Definition at line 142 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ MonoHitTheta_

float SiStripElectronAnalyzer::MonoHitTheta_[1000]
private

Definition at line 138 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitWidth_

int SiStripElectronAnalyzer::MonoHitWidth_[1000]
private

Definition at line 147 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitX_

float SiStripElectronAnalyzer::MonoHitX_[1000]
private

Definition at line 132 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitY_

float SiStripElectronAnalyzer::MonoHitY_[1000]
private

Definition at line 133 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoHitZ_

float SiStripElectronAnalyzer::MonoHitZ_[1000]
private

Definition at line 134 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ MonoLayer_

int SiStripElectronAnalyzer::MonoLayer_[1000]
private

Definition at line 150 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ myTree_

TTree* SiStripElectronAnalyzer::myTree_
private

Definition at line 101 of file SiStripElectronAnalyzer.h.

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

◆ NMatchedHits_

int SiStripElectronAnalyzer::NMatchedHits_
private

Definition at line 153 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ NMonoHits_

int SiStripElectronAnalyzer::NMonoHits_
private

Definition at line 131 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ NShowers_

int SiStripElectronAnalyzer::NShowers_
private

Definition at line 103 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ NStereoHits_

int SiStripElectronAnalyzer::NStereoHits_
private

Definition at line 109 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ numCand_

TH1F* SiStripElectronAnalyzer::numCand_
private

Definition at line 71 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ numElectrons_

TH1F* SiStripElectronAnalyzer::numElectrons_
private

Definition at line 72 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ numSiMatchedHits_

TH1F* SiStripElectronAnalyzer::numSiMatchedHits_
private

Definition at line 99 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ numSiMonoHits_

TH1F* SiStripElectronAnalyzer::numSiMonoHits_
private

Definition at line 98 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ numSiStereoHits_

TH1F* SiStripElectronAnalyzer::numSiStereoHits_
private

Definition at line 97 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ numSuperClusters_

TH1F* SiStripElectronAnalyzer::numSuperClusters_
private

Definition at line 73 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ pDiff

TH1F* SiStripElectronAnalyzer::pDiff
private

Definition at line 85 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ pElectronFailed

TH1F* SiStripElectronAnalyzer::pElectronFailed
private

Definition at line 86 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ pElectronPassed

TH1F* SiStripElectronAnalyzer::pElectronPassed
private

Definition at line 88 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ phiWidthSuperClusters_

TH1F* SiStripElectronAnalyzer::phiWidthSuperClusters_
private

Definition at line 77 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ phiWidthSuperClustersEl_

TH1F* SiStripElectronAnalyzer::phiWidthSuperClustersEl_
private

Definition at line 82 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ ptDiff

TH1F* SiStripElectronAnalyzer::ptDiff
private

Definition at line 84 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ ptElectronFailed

TH1F* SiStripElectronAnalyzer::ptElectronFailed
private

Definition at line 87 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ ptElectronPassed

TH1F* SiStripElectronAnalyzer::ptElectronPassed
private

Definition at line 89 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ siElectronCollection_

std::string SiStripElectronAnalyzer::siElectronCollection_
private

Definition at line 183 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ siElectronProducer_

std::string SiStripElectronAnalyzer::siElectronProducer_
private

Definition at line 182 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ siHitProducer_

std::string SiStripElectronAnalyzer::siHitProducer_
private

Definition at line 186 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ siMatchedHitCollection_

std::string SiStripElectronAnalyzer::siMatchedHitCollection_
private

Definition at line 189 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ siRphiHitCollection_

std::string SiStripElectronAnalyzer::siRphiHitCollection_
private

Definition at line 187 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ siStereoHitCollection_

std::string SiStripElectronAnalyzer::siStereoHitCollection_
private

Definition at line 188 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ sizeSuperClusters_

TH1F* SiStripElectronAnalyzer::sizeSuperClusters_
private

Definition at line 75 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ sizeSuperClustersEl_

TH1F* SiStripElectronAnalyzer::sizeSuperClustersEl_
private

Definition at line 80 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ sizeSuperClustersFailed

TH1F* SiStripElectronAnalyzer::sizeSuperClustersFailed
private

Definition at line 91 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ sizeSuperClustersPassed

TH1F* SiStripElectronAnalyzer::sizeSuperClustersPassed
private

Definition at line 90 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), endJob(), and SiStripElectronAnalyzer().

◆ StereoDetector_

int SiStripElectronAnalyzer::StereoDetector_[1000]
private

Definition at line 127 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ StereoHitCorr_

float SiStripElectronAnalyzer::StereoHitCorr_[1000]
private

Definition at line 121 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ StereoHitNoise_

float SiStripElectronAnalyzer::StereoHitNoise_[1000]
private

Definition at line 124 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitPhi_

float SiStripElectronAnalyzer::StereoHitPhi_[1000]
private

Definition at line 115 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitR_

float SiStripElectronAnalyzer::StereoHitR_[1000]
private

Definition at line 114 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitSignal_

float SiStripElectronAnalyzer::StereoHitSignal_[1000]
private

Definition at line 123 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitSigX_

float SiStripElectronAnalyzer::StereoHitSigX_[1000]
private

Definition at line 119 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ StereoHitSigY_

float SiStripElectronAnalyzer::StereoHitSigY_[1000]
private

Definition at line 120 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ StereoHitTheta_

float SiStripElectronAnalyzer::StereoHitTheta_[1000]
private

Definition at line 116 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitWidth_

int SiStripElectronAnalyzer::StereoHitWidth_[1000]
private

Definition at line 125 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitX_

float SiStripElectronAnalyzer::StereoHitX_[1000]
private

Definition at line 110 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitY_

float SiStripElectronAnalyzer::StereoHitY_[1000]
private

Definition at line 111 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoHitZ_

float SiStripElectronAnalyzer::StereoHitZ_[1000]
private

Definition at line 112 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ StereoLayer_

int SiStripElectronAnalyzer::StereoLayer_[1000]
private

Definition at line 128 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ superClusterCollection_

std::string SiStripElectronAnalyzer::superClusterCollection_
private

Definition at line 177 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ superClusterProducer_

std::string SiStripElectronAnalyzer::superClusterProducer_
private

Definition at line 176 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), and SiStripElectronAnalyzer().

◆ XShower_

float SiStripElectronAnalyzer::XShower_[1000]
private

Definition at line 105 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ YShower_

float SiStripElectronAnalyzer::YShower_[1000]
private

Definition at line 106 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

◆ ZShower_

float SiStripElectronAnalyzer::ZShower_[1000]
private

Definition at line 107 of file SiStripElectronAnalyzer.h.

Referenced by analyze(), beginJob(), and initNtuple().

TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
SiStripElectronAnalyzer::NShowers_
int NShowers_
Definition: SiStripElectronAnalyzer.h:103
SiStripElectronAnalyzer::MonoHitR_
float MonoHitR_[1000]
Definition: SiStripElectronAnalyzer.h:136
SiStripElectronAnalyzer::MonoHitTheta_
float MonoHitTheta_[1000]
Definition: SiStripElectronAnalyzer.h:138
counter
Definition: counter.py:1
SiStripRecHit2D::cluster
ClusterRef cluster() const
Definition: SiStripRecHit2D.h:22
init
int init
Definition: HydjetWrapper.h:64
mps_fire.i
i
Definition: mps_fire.py:428
SiStripElectronAnalyzer::MonoLayer_
int MonoLayer_[1000]
Definition: SiStripElectronAnalyzer.h:150
SiStripElectronAnalyzer::sizeSuperClustersEl_
TH1F * sizeSuperClustersEl_
Definition: SiStripElectronAnalyzer.h:80
muonRPCDigis_cfi.Signal
Signal
Definition: muonRPCDigis_cfi.py:29
LocalError::xy
float xy() const
Definition: LocalError.h:23
SiStripElectronAnalyzer::NMonoHits_
int NMonoHits_
Definition: SiStripElectronAnalyzer.h:131
SiStripElectronAnalyzer::numSuperClusters_
TH1F * numSuperClusters_
Definition: SiStripElectronAnalyzer.h:73
SiStripElectronAnalyzer::MatchedHitSigY_
float MatchedHitSigY_[1000]
Definition: SiStripElectronAnalyzer.h:164
myMaxHits
#define myMaxHits
Definition: SiStripElectronAnalyzer.h:40
SiStripElectronAnalyzer::MatchedHitTheta_
float MatchedHitTheta_[1000]
Definition: SiStripElectronAnalyzer.h:160
SiStripElectronAnalyzer::MatchedHitPhi_
float MatchedHitPhi_[1000]
Definition: SiStripElectronAnalyzer.h:159
pos
Definition: PixelAliasList.h:18
SiStripElectronAnalyzer::numCand_
TH1F * numCand_
Definition: SiStripElectronAnalyzer.h:71
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
SiStripElectronAnalyzer::StereoHitZ_
float StereoHitZ_[1000]
Definition: SiStripElectronAnalyzer.h:112
SiStripElectronAnalyzer::MonoHitY_
float MonoHitY_[1000]
Definition: SiStripElectronAnalyzer.h:133
edm::PtrVectorItr
Definition: PtrVector.h:51
SiStripElectronAnalyzer::superClusterCollection_
std::string superClusterCollection_
Definition: SiStripElectronAnalyzer.h:177
SiStripElectronAnalyzer::eOverPFailed
TH1F * eOverPFailed
Definition: SiStripElectronAnalyzer.h:94
SiStripElectronAnalyzer::siElectronCollection_
std::string siElectronCollection_
Definition: SiStripElectronAnalyzer.h:183
SiStripRecHit2D
Definition: SiStripRecHit2D.h:7
SiStripElectronAnalyzer::MatchedDetector_
int MatchedDetector_[1000]
Definition: SiStripElectronAnalyzer.h:171
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
Signal
SiStripElectronAnalyzer::StereoHitSignal_
float StereoHitSignal_[1000]
Definition: SiStripElectronAnalyzer.h:123
SiStripElectronAnalyzer::myTree_
TTree * myTree_
Definition: SiStripElectronAnalyzer.h:101
SiStripElectronAnalyzer::MonoHitSigX_
float MonoHitSigX_[1000]
Definition: SiStripElectronAnalyzer.h:141
edm::Handle
Definition: AssociativeIterator.h:50
SiStripElectronAnalyzer::sizeSuperClustersPassed
TH1F * sizeSuperClustersPassed
Definition: SiStripElectronAnalyzer.h:90
SiStripElectronAnalyzer::initNtuple
virtual void initNtuple(void)
Definition: SiStripElectronAnalyzer.cc:237
edm::Ref< TrackCollection >
SiStripElectronAnalyzer::NStereoHits_
int NStereoHits_
Definition: SiStripElectronAnalyzer.h:109
SiStripElectronAnalyzer::ptDiff
TH1F * ptDiff
Definition: SiStripElectronAnalyzer.h:84
SiStripElectronAnalyzer::ptElectronFailed
TH1F * ptElectronFailed
Definition: SiStripElectronAnalyzer.h:87
DetId
Definition: DetId.h:17
SiStripElectronAnalyzer::energySuperClusters_
TH1F * energySuperClusters_
Definition: SiStripElectronAnalyzer.h:74
SiStripElectronAnalyzer::numSiMonoHits_
TH1F * numSiMonoHits_
Definition: SiStripElectronAnalyzer.h:98
SiStripElectronAnalyzer::StereoDetector_
int StereoDetector_[1000]
Definition: SiStripElectronAnalyzer.h:127
SiStripElectronAnalyzer::MonoHitSignal_
float MonoHitSignal_[1000]
Definition: SiStripElectronAnalyzer.h:145
SiStripElectronAnalyzer::MonoHitPhi_
float MonoHitPhi_[1000]
Definition: SiStripElectronAnalyzer.h:137
SiStripElectronAnalyzer::ptElectronPassed
TH1F * ptElectronPassed
Definition: SiStripElectronAnalyzer.h:89
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
LocalError::xx
float xx() const
Definition: LocalError.h:22
SiStripElectronAnalyzer::numElectrons_
TH1F * numElectrons_
Definition: SiStripElectronAnalyzer.h:72
edmScanValgrind.skipThis
skipThis
Definition: edmScanValgrind.py:203
SiStripElectronAnalyzer::mctruthCollection_
std::string mctruthCollection_
Definition: SiStripElectronAnalyzer.h:175
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
SiStripElectronAnalyzer::eBRecHitProducer_
std::string eBRecHitProducer_
Definition: SiStripElectronAnalyzer.h:180
str
#define str(s)
Definition: TestProcessor.cc:51
edm::ESHandle< TrackerTopology >
SiStripElectronAnalyzer::MonoHitWidth_
int MonoHitWidth_[1000]
Definition: SiStripElectronAnalyzer.h:147
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
SiStripElectronAnalyzer::YShower_
float YShower_[1000]
Definition: SiStripElectronAnalyzer.h:106
SiStripElectronAnalyzer::energySuperClustersEl_
TH1F * energySuperClustersEl_
Definition: SiStripElectronAnalyzer.h:79
Point3DBase< float, LocalTag >
SiStripElectronAnalyzer::StereoHitR_
float StereoHitR_[1000]
Definition: SiStripElectronAnalyzer.h:114
SiStripElectronAnalyzer::pElectronPassed
TH1F * pElectronPassed
Definition: SiStripElectronAnalyzer.h:88
SiStripElectronAnalyzer::StereoLayer_
int StereoLayer_[1000]
Definition: SiStripElectronAnalyzer.h:128
BaseTrackerRecHit::localPositionError
LocalError localPositionError() const override
Definition: BaseTrackerRecHit.h:61
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripElectronAnalyzer::StereoHitX_
float StereoHitX_[1000]
Definition: SiStripElectronAnalyzer.h:110
SiStripElectronAnalyzer::MatchedHitZ_
float MatchedHitZ_[1000]
Definition: SiStripElectronAnalyzer.h:156
SiStripElectronAnalyzer::StereoHitSigY_
float StereoHitSigY_[1000]
Definition: SiStripElectronAnalyzer.h:120
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
SiStripElectronAnalyzer::superClusterProducer_
std::string superClusterProducer_
Definition: SiStripElectronAnalyzer.h:176
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
SiStripElectronAnalyzer::StereoHitY_
float StereoHitY_[1000]
Definition: SiStripElectronAnalyzer.h:111
SiStripElectronAnalyzer::pDiff
TH1F * pDiff
Definition: SiStripElectronAnalyzer.h:85
LocalError
Definition: LocalError.h:12
SiStripElectronAnalyzer::StereoHitTheta_
float StereoHitTheta_[1000]
Definition: SiStripElectronAnalyzer.h:116
SiStripElectronAnalyzer::siStereoHitCollection_
std::string siStereoHitCollection_
Definition: SiStripElectronAnalyzer.h:188
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
SiStripElectronAnalyzer::MonoHitZ_
float MonoHitZ_[1000]
Definition: SiStripElectronAnalyzer.h:134
SiStripElectronAnalyzer::siRphiHitCollection_
std::string siRphiHitCollection_
Definition: SiStripElectronAnalyzer.h:187
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
SiStripElectronAnalyzer::eBRecHitCollection_
std::string eBRecHitCollection_
Definition: SiStripElectronAnalyzer.h:181
SiStripElectronAnalyzer::sizeSuperClustersFailed
TH1F * sizeSuperClustersFailed
Definition: SiStripElectronAnalyzer.h:91
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripElectronAnalyzer::phiWidthSuperClusters_
TH1F * phiWidthSuperClusters_
Definition: SiStripElectronAnalyzer.h:77
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
SiStripElectronAnalyzer::StereoHitWidth_
int StereoHitWidth_[1000]
Definition: SiStripElectronAnalyzer.h:125
SiStripElectronAnalyzer::MatchedHitWidth_
int MatchedHitWidth_[1000]
Definition: SiStripElectronAnalyzer.h:169
SiStripElectronAnalyzer::ZShower_
float ZShower_[1000]
Definition: SiStripElectronAnalyzer.h:107
counter
static std::atomic< unsigned int > counter
Definition: SharedResourceNames.cc:17
SiStripElectronAnalyzer::energySuperClustersFailed
TH1F * energySuperClustersFailed
Definition: SiStripElectronAnalyzer.h:93
SiStripElectronAnalyzer::emaxSuperClustersEl_
TH1F * emaxSuperClustersEl_
Definition: SiStripElectronAnalyzer.h:81
SiStripElectronAnalyzer::numSiMatchedHits_
TH1F * numSiMatchedHits_
Definition: SiStripElectronAnalyzer.h:99
get
#define get
SiStripElectronAnalyzer::MonoHitNoise_
float MonoHitNoise_[1000]
Definition: SiStripElectronAnalyzer.h:146
SiStripElectronAnalyzer::MatchedHitCorr_
float MatchedHitCorr_[1000]
Definition: SiStripElectronAnalyzer.h:165
SiStripElectronAnalyzer::XShower_
float XShower_[1000]
Definition: SiStripElectronAnalyzer.h:105
SiStripElectronAnalyzer::MonoHitSigY_
float MonoHitSigY_[1000]
Definition: SiStripElectronAnalyzer.h:142
SiStripElectronAnalyzer::MonoHitX_
float MonoHitX_[1000]
Definition: SiStripElectronAnalyzer.h:132
SiStripElectronAnalyzer::StereoHitNoise_
float StereoHitNoise_[1000]
Definition: SiStripElectronAnalyzer.h:124
DDAxes::phi
SiStripElectronAnalyzer::mctruthProducer_
std::string mctruthProducer_
Definition: SiStripElectronAnalyzer.h:174
SiStripElectronAnalyzer::siMatchedHitCollection_
std::string siMatchedHitCollection_
Definition: SiStripElectronAnalyzer.h:189
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
std
Definition: JetResolutionObject.h:76
SiStripElectronAnalyzer::siHitProducer_
std::string siHitProducer_
Definition: SiStripElectronAnalyzer.h:186
init
Definition: init.py:1
edmNew::DetSetVector::data
data_type const * data(size_t cell) const
Definition: DetSetVectorNew.h:560
SiStripElectronAnalyzer::StereoHitCorr_
float StereoHitCorr_[1000]
Definition: SiStripElectronAnalyzer.h:121
pwdgSkimBPark_cfi.electrons
electrons
Definition: pwdgSkimBPark_cfi.py:6
SiStripElectronAnalyzer::MatchedHitNoise_
float MatchedHitNoise_[1000]
Definition: SiStripElectronAnalyzer.h:168
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
SiStripElectronAnalyzer::MatchedHitX_
float MatchedHitX_[1000]
Definition: SiStripElectronAnalyzer.h:154
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
SiStripElectronAnalyzer::numSiStereoHits_
TH1F * numSiStereoHits_
Definition: SiStripElectronAnalyzer.h:97
SiStripElectronAnalyzer::MatchedHitSigX_
float MatchedHitSigX_[1000]
Definition: SiStripElectronAnalyzer.h:163
SiStripElectronAnalyzer::MatchedHitSignal_
float MatchedHitSignal_[1000]
Definition: SiStripElectronAnalyzer.h:167
SiStripElectronAnalyzer::sizeSuperClusters_
TH1F * sizeSuperClusters_
Definition: SiStripElectronAnalyzer.h:75
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
SiStripElectronAnalyzer::electronCollection_
std::string electronCollection_
Definition: SiStripElectronAnalyzer.h:185
SiStripElectronAnalyzer::electronProducer_
std::string electronProducer_
Definition: SiStripElectronAnalyzer.h:184
SiStripElectronAnalyzer::phiWidthSuperClustersEl_
TH1F * phiWidthSuperClustersEl_
Definition: SiStripElectronAnalyzer.h:82
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
SiStripElectronAnalyzer::NMatchedHits_
int NMatchedHits_
Definition: SiStripElectronAnalyzer.h:153
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SiStripElectronAnalyzer::StereoHitPhi_
float StereoHitPhi_[1000]
Definition: SiStripElectronAnalyzer.h:115
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
SiStripElectronAnalyzer::file_
TFile * file_
Definition: SiStripElectronAnalyzer.h:70
SiStripElectronAnalyzer::eOverPPassed
TH1F * eOverPPassed
Definition: SiStripElectronAnalyzer.h:95
SiStripElectronAnalyzer::siElectronProducer_
std::string siElectronProducer_
Definition: SiStripElectronAnalyzer.h:182
SiStripElectronAnalyzer::EShower_
float EShower_[1000]
Definition: SiStripElectronAnalyzer.h:104
SiStripElectronAnalyzer::MatchedHitR_
float MatchedHitR_[1000]
Definition: SiStripElectronAnalyzer.h:158
SiStripElectronAnalyzer::MonoHitCorr_
float MonoHitCorr_[1000]
Definition: SiStripElectronAnalyzer.h:143
SiStripElectronAnalyzer::MatchedHitY_
float MatchedHitY_[1000]
Definition: SiStripElectronAnalyzer.h:155
SiStripElectronAnalyzer::energySuperClustersPassed
TH1F * energySuperClustersPassed
Definition: SiStripElectronAnalyzer.h:92
LocalError::yy
float yy() const
Definition: LocalError.h:24
SiStripElectronAnalyzer::MonoDetector_
int MonoDetector_[1000]
Definition: SiStripElectronAnalyzer.h:149
SiStripElectronAnalyzer::StereoHitSigX_
float StereoHitSigX_[1000]
Definition: SiStripElectronAnalyzer.h:119
SiStripElectronAnalyzer::fileName_
std::string fileName_
Definition: SiStripElectronAnalyzer.h:68
SiStripElectronAnalyzer::MatchedLayer_
int MatchedLayer_[1000]
Definition: SiStripElectronAnalyzer.h:172
SiStripElectronAnalyzer::pElectronFailed
TH1F * pElectronFailed
Definition: SiStripElectronAnalyzer.h:86
hit
Definition: SiStripHitEffFromCalibTree.cc:88
SiStripElectronAnalyzer::emaxSuperClusters_
TH1F * emaxSuperClusters_
Definition: SiStripElectronAnalyzer.h:76
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150