CMS 3D CMS Logo

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

#include <EcalPulseShapeGrapher.h>

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

Public Member Functions

 EcalPulseShapeGrapher (const edm::ParameterSet &)
 
 ~EcalPulseShapeGrapher () override=default
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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 selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void endJob () override
 
std::string intToString (int)
 

Private Attributes

int abscissa [10]
 
int ampCut_
 
std::map< int, TH1F * > ampHistMap_
 
std::map< int, TH1F * > cutAmpHistMap_
 
const edm::EDGetTokenT< EBDigiCollectionEBDigis_
 
const edm::EDGetTokenT< EcalUncalibratedRecHitCollectionEBUncalibratedRecHitCollection_
 
const edm::EDGetTokenT< EEDigiCollectionEEDigis_
 
const edm::EDGetTokenT< EcalUncalibratedRecHitCollectionEEUncalibratedRecHitCollection_
 
EcalFedMapfedMap_
 
TFile * file_
 
std::map< int, TH1F * > firstSampleHistMap_
 
std::vector< int > listChannels_
 
int ordinate [10]
 
std::map< int, TH2F * > pulseShapeHistMap_
 
std::map< int, TH2F * > rawPulseShapeHistMap_
 
std::string rootFilename_
 

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
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

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

Implementation: <Notes on="" implementation>="">

Definition at line 46 of file EcalPulseShapeGrapher.h.

Constructor & Destructor Documentation

◆ EcalPulseShapeGrapher()

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

Definition at line 32 of file EcalPulseShapeGrapher.cc.

References abscissa, ampHistMap_, cutAmpHistMap_, fedMap_, firstSampleHistMap_, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, intToString(), listChannels_, Skims_PA_cff::name, pulseShapeHistMap_, rawPulseShapeHistMap_, AlCaHLTBitMon_QueryRunRegistry::string, and runGCPTkAlMap::title.

33  : EBUncalibratedRecHitCollection_(consumes<EcalUncalibratedRecHitCollection>(
34  iConfig.getParameter<edm::InputTag>("EBUncalibratedRecHitCollection"))),
35  EBDigis_(consumes<EBDigiCollection>(iConfig.getParameter<edm::InputTag>("EBDigiCollection"))),
36  EEUncalibratedRecHitCollection_(consumes<EcalUncalibratedRecHitCollection>(
37  iConfig.getParameter<edm::InputTag>("EEUncalibratedRecHitCollection"))),
38  EEDigis_(consumes<EEDigiCollection>(iConfig.getParameter<edm::InputTag>("EEDigiCollection"))),
39  ampCut_(iConfig.getUntrackedParameter<int>("AmplitudeCutADC", 13)),
40  rootFilename_(iConfig.getUntrackedParameter<std::string>("rootFilename", "pulseShapeGrapher")) {
41  //now do what ever initialization is needed
42 
43  std::vector<int> listDefaults;
44  listDefaults.push_back(-1);
45  listChannels_ = iConfig.getUntrackedParameter<std::vector<int> >("listChannels", listDefaults);
46 
47  for (std::vector<int>::const_iterator itr = listChannels_.begin(); itr != listChannels_.end(); ++itr) {
48  std::string title = "Amplitude of cry " + intToString(*itr);
49  std::string name = "ampOfCry" + intToString(*itr);
50  ampHistMap_[*itr] = new TH1F(name.c_str(), title.c_str(), 100, 0, 100);
51  ampHistMap_[*itr]->GetXaxis()->SetTitle("ADC");
52 
53  title = "Amplitude (over 13 ADC) of cry " + intToString(*itr);
54  name = "cutAmpOfCry" + intToString(*itr);
55  cutAmpHistMap_[*itr] = new TH1F(name.c_str(), title.c_str(), 100, 0, 100);
56  cutAmpHistMap_[*itr]->GetXaxis()->SetTitle("ADC");
57 
58  title = "Pulse shape of cry " + intToString(*itr);
59  name = "PulseShapeCry" + intToString(*itr);
60  pulseShapeHistMap_[*itr] = new TH2F(name.c_str(), title.c_str(), 10, 0, 10, 220, -20, 2);
61  pulseShapeHistMap_[*itr]->GetXaxis()->SetTitle("sample");
62 
63  title = "Raw Pulse shape of cry " + intToString(*itr);
64  name = "RawPulseShapeCry" + intToString(*itr);
65  rawPulseShapeHistMap_[*itr] = new TH2F(name.c_str(), title.c_str(), 10, 0, 10, 500, 0, 500);
66  rawPulseShapeHistMap_[*itr]->GetXaxis()->SetTitle("sample");
67 
68  title = "Amplitude of first sample, cry " + intToString(*itr);
69  name = "AmpOfFirstSampleCry" + intToString(*itr);
70  firstSampleHistMap_[*itr] = new TH1F(name.c_str(), title.c_str(), 300, 100, 400);
71  firstSampleHistMap_[*itr]->GetXaxis()->SetTitle("ADC");
72  }
73 
74  fedMap_ = new EcalFedMap();
75 
76  for (int i = 0; i < 10; i++)
77  abscissa[i] = i;
78 }
std::map< int, TH1F * > ampHistMap_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::map< int, TH1F * > cutAmpHistMap_
T getUntrackedParameter(std::string const &, T const &) const
std::vector< int > listChannels_
const edm::EDGetTokenT< EcalUncalibratedRecHitCollection > EEUncalibratedRecHitCollection_
const edm::EDGetTokenT< EEDigiCollection > EEDigis_
std::map< int, TH1F * > firstSampleHistMap_
std::map< int, TH2F * > pulseShapeHistMap_
std::map< int, TH2F * > rawPulseShapeHistMap_
const edm::EDGetTokenT< EcalUncalibratedRecHitCollection > EBUncalibratedRecHitCollection_
const edm::EDGetTokenT< EBDigiCollection > EBDigis_

◆ ~EcalPulseShapeGrapher()

EcalPulseShapeGrapher::~EcalPulseShapeGrapher ( )
overridedefault

Member Function Documentation

◆ analyze()

void EcalPulseShapeGrapher::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 85 of file EcalPulseShapeGrapher.cc.

References ampCut_, ampHistMap_, CustomPhysics_cfi::amplitude, edm::SortedCollection< T, SORT >::begin(), edm::DataFrameContainer::begin(), cutAmpHistMap_, EcalElectronicsId::dccId(), hgcalPerformanceValidation::df, EBDigis_, EBUncalibratedRecHitCollection_, EEDigis_, EEUncalibratedRecHitCollection_, edm::SortedCollection< T, SORT >::end(), edm::DataFrameContainer::end(), fedMap_, firstSampleHistMap_, PedestalClient_cfi::gain, EcalFedMap::getSliceFromFed(), EBDetId::hashedIndex(), EEDetId::hashedIndex(), mps_fire::i, hit::id, iEvent, createfilelist::int, listChannels_, EcalCondDBWriter_cfi::pedestal, pulseShapeHistMap_, rawPulseShapeHistMap_, and findQualityFiles::size.

85  {
86  using namespace edm;
87  using namespace std;
88 
89  int numHitsWithActivity = 0;
90 
93  const Handle<EBDigiCollection>& EBdigis = iEvent.getHandle(EBDigis_);
94  const Handle<EEDigiCollection>& EEdigis = iEvent.getHandle(EEDigis_);
95 
96  unique_ptr<EcalElectronicsMapping> ecalElectronicsMap(new EcalElectronicsMapping);
97 
98  // Loop over the hits
99  for (EcalUncalibratedRecHitCollection::const_iterator hitItr = EBHits->begin(); hitItr != EBHits->end(); ++hitItr) {
100  EcalUncalibratedRecHit hit = (*hitItr);
101  float amplitude = hit.amplitude();
102  EBDetId hitDetId = hit.id();
103 
104  // Get the Fedid
105  EcalElectronicsId elecId = ecalElectronicsMap->getElectronicsId(hitDetId);
106  int FEDid = 600 + elecId.dccId();
107  string SMname = fedMap_->getSliceFromFed(FEDid);
108 
109  vector<int>::const_iterator itr = listChannels_.begin();
110  while (itr != listChannels_.end() && (*itr) != hitDetId.hashedIndex()) {
111  itr++;
112  }
113  if (itr == listChannels_.end())
114  continue;
115 
116  ampHistMap_[hitDetId.hashedIndex()]->Fill(amplitude);
117  if (amplitude < ampCut_)
118  continue;
119 
120  cutAmpHistMap_[hitDetId.hashedIndex()]->Fill(amplitude);
121  numHitsWithActivity++;
122  EBDigiCollection::const_iterator digiItr = EBdigis->begin();
123  while (digiItr != EBdigis->end() && digiItr->id() != hitItr->id()) {
124  digiItr++;
125  }
126  if (digiItr == EBdigis->end())
127  continue;
128 
129  double sampleADC[10];
130  EBDataFrame df(*digiItr);
131  double pedestal = 200;
132 
133  if (df.sample(0).gainId() != 1 || df.sample(1).gainId() != 1)
134  continue; //goes to the next digi
135  else {
136  sampleADC[0] = df.sample(0).adc();
137  sampleADC[1] = df.sample(1).adc();
138  pedestal = (double)(sampleADC[0] + sampleADC[1]) / (double)2;
139  }
140 
141  for (int i = 0; (unsigned int)i < digiItr->size(); ++i) {
142  EBDataFrame df(*digiItr);
143  double gain = 12.;
144  if (df.sample(i).gainId() == 1)
145  gain = 1.;
146  else if (df.sample(i).gainId() == 2)
147  gain = 2.;
148  sampleADC[i] = pedestal + (df.sample(i).adc() - pedestal) * gain;
149  }
150 
151  for (int i = 0; i < 10; ++i) {
152  pulseShapeHistMap_[hitDetId.hashedIndex()]->Fill(i, (float)(sampleADC[i] - pedestal) / amplitude);
153  rawPulseShapeHistMap_[hitDetId.hashedIndex()]->Fill(i, (float)(sampleADC[i]));
154  }
155  firstSampleHistMap_[hitDetId.hashedIndex()]->Fill(sampleADC[0]);
156  }
157 
158  // Now do the same for the EE hits
159  for (EcalUncalibratedRecHitCollection::const_iterator hitItr = EEHits->begin(); hitItr != EEHits->end(); ++hitItr) {
160  EcalUncalibratedRecHit hit = (*hitItr);
161  float amplitude = hit.amplitude();
162  EEDetId hitDetId = hit.id();
163 
164  // Get the Fedid
165  EcalElectronicsId elecId = ecalElectronicsMap->getElectronicsId(hitDetId);
166  int FEDid = 600 + elecId.dccId();
167  string SMname = fedMap_->getSliceFromFed(FEDid);
168 
169  vector<int>::const_iterator itr = listChannels_.begin();
170  while (itr != listChannels_.end() && (*itr) != hitDetId.hashedIndex()) {
171  itr++;
172  }
173  if (itr == listChannels_.end())
174  continue;
175 
176  ampHistMap_[hitDetId.hashedIndex()]->Fill(amplitude);
177  if (amplitude < ampCut_)
178  continue;
179 
180  cutAmpHistMap_[hitDetId.hashedIndex()]->Fill(amplitude);
181  numHitsWithActivity++;
182  EEDigiCollection::const_iterator digiItr = EEdigis->begin();
183  while (digiItr != EEdigis->end() && digiItr->id() != hitItr->id()) {
184  digiItr++;
185  }
186  if (digiItr == EEdigis->end())
187  continue;
188 
189  double sampleADC[10];
190  EEDataFrame df(*digiItr);
191  double pedestal = 200;
192 
193  if (df.sample(0).gainId() != 1 || df.sample(1).gainId() != 1)
194  continue; //goes to the next digi
195  else {
196  sampleADC[0] = df.sample(0).adc();
197  sampleADC[1] = df.sample(1).adc();
198  pedestal = (double)(sampleADC[0] + sampleADC[1]) / (double)2;
199  }
200 
201  for (int i = 0; (unsigned int)i < digiItr->size(); ++i) {
202  EEDataFrame df(*digiItr);
203  double gain = 12.;
204  if (df.sample(i).gainId() == 1)
205  gain = 1.;
206  else if (df.sample(i).gainId() == 2)
207  gain = 2.;
208  sampleADC[i] = pedestal + (df.sample(i).adc() - pedestal) * gain;
209  }
210 
211  for (int i = 0; i < 10; ++i) {
212  pulseShapeHistMap_[hitDetId.hashedIndex()]->Fill(i, (float)(sampleADC[i] - pedestal) / amplitude);
213  rawPulseShapeHistMap_[hitDetId.hashedIndex()]->Fill(i, (float)(sampleADC[i]));
214  }
215  firstSampleHistMap_[hitDetId.hashedIndex()]->Fill(sampleADC[0]);
216  }
217 }
size
Write out results.
std::map< int, TH1F * > ampHistMap_
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
int dccId() const
get the DCC (Ecal Local DCC value not global one) id
std::vector< T >::const_iterator const_iterator
std::map< int, TH1F * > cutAmpHistMap_
std::string getSliceFromFed(int)
Definition: EcalFedMap.cc:86
std::vector< int > listChannels_
int iEvent
Definition: GenABIO.cc:224
const_iterator begin() const
const edm::EDGetTokenT< EcalUncalibratedRecHitCollection > EEUncalibratedRecHitCollection_
const edm::EDGetTokenT< EEDigiCollection > EEDigis_
std::map< int, TH1F * > firstSampleHistMap_
const_iterator end() const
unsigned int id
const_iterator end() const
std::map< int, TH2F * > pulseShapeHistMap_
const_iterator begin() const
The iterator returned can not safely be used across threads.
std::map< int, TH2F * > rawPulseShapeHistMap_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
HLT enums.
const edm::EDGetTokenT< EcalUncalibratedRecHitCollection > EBUncalibratedRecHitCollection_
int hashedIndex() const
get a compact index for arrays
Definition: EBDetId.h:82
int hashedIndex() const
Definition: EEDetId.h:183
const edm::EDGetTokenT< EBDigiCollection > EBDigis_

◆ endJob()

void EcalPulseShapeGrapher::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 220 of file EcalPulseShapeGrapher.cc.

References ampHistMap_, cutAmpHistMap_, file_, firstSampleHistMap_, listChannels_, rawPulseShapeHistMap_, rootFilename_, and RandomServiceHelper::t2.

Referenced by o2olib.O2ORunMgr::executeJob().

220  {
221  rootFilename_ += ".root";
222  file_ = new TFile(rootFilename_.c_str(), "RECREATE");
223  TH1::AddDirectory(false);
224 
225  for (std::vector<int>::const_iterator itr = listChannels_.begin(); itr != listChannels_.end(); ++itr) {
226  ampHistMap_[*itr]->Write();
227  cutAmpHistMap_[*itr]->Write();
228  firstSampleHistMap_[*itr]->Write();
229 
230  rawPulseShapeHistMap_[*itr]->Write();
231  TProfile* t2 = (TProfile*)(rawPulseShapeHistMap_[*itr]->ProfileX());
232  t2->Write();
233  //TODO: fix the normalization so these are correct
234  }
235 
236  file_->Write();
237  file_->Close();
238 }
std::map< int, TH1F * > ampHistMap_
std::map< int, TH1F * > cutAmpHistMap_
std::vector< int > listChannels_
std::map< int, TH1F * > firstSampleHistMap_
std::map< int, TH2F * > rawPulseShapeHistMap_

◆ intToString()

std::string EcalPulseShapeGrapher::intToString ( int  num)
private

Definition at line 240 of file EcalPulseShapeGrapher.cc.

References EgammaValidation_cff::num.

Referenced by EcalPulseShapeGrapher().

240  {
241  using namespace std;
242  ostringstream myStream;
243  myStream << num << flush;
244  return (myStream.str()); //returns the string form of the stringstream object
245 }

Member Data Documentation

◆ abscissa

int EcalPulseShapeGrapher::abscissa[10]
private

Definition at line 62 of file EcalPulseShapeGrapher.h.

Referenced by EcalPulseShapeGrapher().

◆ ampCut_

int EcalPulseShapeGrapher::ampCut_
private

Definition at line 71 of file EcalPulseShapeGrapher.h.

Referenced by analyze().

◆ ampHistMap_

std::map<int, TH1F*> EcalPulseShapeGrapher::ampHistMap_
private

Definition at line 65 of file EcalPulseShapeGrapher.h.

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

◆ cutAmpHistMap_

std::map<int, TH1F*> EcalPulseShapeGrapher::cutAmpHistMap_
private

Definition at line 69 of file EcalPulseShapeGrapher.h.

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

◆ EBDigis_

const edm::EDGetTokenT<EBDigiCollection> EcalPulseShapeGrapher::EBDigis_
private

Definition at line 58 of file EcalPulseShapeGrapher.h.

Referenced by analyze().

◆ EBUncalibratedRecHitCollection_

const edm::EDGetTokenT<EcalUncalibratedRecHitCollection> EcalPulseShapeGrapher::EBUncalibratedRecHitCollection_
private

Definition at line 57 of file EcalPulseShapeGrapher.h.

Referenced by analyze().

◆ EEDigis_

const edm::EDGetTokenT<EEDigiCollection> EcalPulseShapeGrapher::EEDigis_
private

Definition at line 60 of file EcalPulseShapeGrapher.h.

Referenced by analyze().

◆ EEUncalibratedRecHitCollection_

const edm::EDGetTokenT<EcalUncalibratedRecHitCollection> EcalPulseShapeGrapher::EEUncalibratedRecHitCollection_
private

Definition at line 59 of file EcalPulseShapeGrapher.h.

Referenced by analyze().

◆ fedMap_

EcalFedMap* EcalPulseShapeGrapher::fedMap_
private

Definition at line 76 of file EcalPulseShapeGrapher.h.

Referenced by analyze(), and EcalPulseShapeGrapher().

◆ file_

TFile* EcalPulseShapeGrapher::file_
private

Definition at line 74 of file EcalPulseShapeGrapher.h.

Referenced by endJob().

◆ firstSampleHistMap_

std::map<int, TH1F*> EcalPulseShapeGrapher::firstSampleHistMap_
private

Definition at line 67 of file EcalPulseShapeGrapher.h.

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

◆ listChannels_

std::vector<int> EcalPulseShapeGrapher::listChannels_
private

Definition at line 64 of file EcalPulseShapeGrapher.h.

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

◆ ordinate

int EcalPulseShapeGrapher::ordinate[10]
private

Definition at line 63 of file EcalPulseShapeGrapher.h.

◆ pulseShapeHistMap_

std::map<int, TH2F*> EcalPulseShapeGrapher::pulseShapeHistMap_
private

Definition at line 66 of file EcalPulseShapeGrapher.h.

Referenced by analyze(), and EcalPulseShapeGrapher().

◆ rawPulseShapeHistMap_

std::map<int, TH2F*> EcalPulseShapeGrapher::rawPulseShapeHistMap_
private

Definition at line 68 of file EcalPulseShapeGrapher.h.

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

◆ rootFilename_

std::string EcalPulseShapeGrapher::rootFilename_
private

Definition at line 72 of file EcalPulseShapeGrapher.h.

Referenced by endJob().