CMS 3D CMS Logo

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

#include <EcalMatacqAnalyzer.h>

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

Public Types

enum  VarCol { iBlue, iRed, nColor }
 
enum  VarSide { iSide0, iSide1, nSide }
 
- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c) override
 
void beginJob () override
 
 EcalMatacqAnalyzer (const edm::ParameterSet &iConfig)
 
void endJob () override
 
 ~EcalMatacqAnalyzer () 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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

const double _cutwindow
 
const int _debug
 
const int _fedid
 
const unsigned int _highlev
 
const unsigned int _lowlev
 
const unsigned int _nevlasers
 
const unsigned int _noiseCut
 
const unsigned int _nsamplesaftmax
 
const unsigned int _nsamplesshape
 
const unsigned int _parabnaftmax
 
const unsigned int _parabnbefmax
 
const double _presample
 
const unsigned int _presampleshape
 
const unsigned int _slide
 
const unsigned int _thres
 
const unsigned int _timeaftmax
 
const unsigned int _timebefmax
 
double ampl
 
int color
 
std::vector< int > colors
 
int dccID
 
const edm::EDGetTokenT< EcalRawDataCollectiondccToken_
 
const std::string digiCollection_
 
const std::string digiProducer_
 
int event
 
const std::string eventHeaderCollection_
 
const std::string eventHeaderProducer_
 
int fedID
 
double fit
 
double fw20
 
double fw80
 
double fwhm
 
int iEvent
 
bool isThereMatacq
 
int laserEvents
 
int lightside
 
double matacq [2560]
 
int maxsamp
 
TTree * meanTree [nColor]
 
TMTQMTQ [nColor][nSide]
 
TTree * mtqShape
 
int nsamples
 
unsigned int nSides
 
std::string outfile
 
TFile * outFile
 
double peak
 
double ped
 
double pedsig
 
const edm::EDGetTokenT< EcalMatacqDigiCollectionpmatToken_
 
const std::string resdir_
 
int runNum
 
int runType
 
std::string sampfile
 
TFile * sampFile
 
double sigma
 
double sliding
 
int status
 
TTree * tree
 
double trise
 
double tt
 
double ttrig
 

Additional Inherited Members

- 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 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

Definition at line 16 of file EcalMatacqAnalyzer.h.

Member Enumeration Documentation

◆ VarCol

◆ VarSide

Constructor & Destructor Documentation

◆ EcalMatacqAnalyzer()

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

Definition at line 34 of file EcalMatacqAnalyzer.cc.

36  :
37 
38  iEvent(0),
39 
40  // framework parameters with default values
41 
42  _presample(iConfig.getUntrackedParameter<double>("nPresamples", 6.7)),
43  _nsamplesaftmax(iConfig.getUntrackedParameter<unsigned int>("nSamplesAftMax", 80)),
44  _noiseCut(iConfig.getUntrackedParameter<unsigned int>("noiseCut", 7)),
45  _parabnbefmax(iConfig.getUntrackedParameter<unsigned int>("paraBeforeMax", 8)),
46  _parabnaftmax(iConfig.getUntrackedParameter<unsigned int>("paraAfterMax", 7)),
47  _thres(iConfig.getUntrackedParameter<unsigned int>("threshold", 10)),
48  _lowlev(iConfig.getUntrackedParameter<unsigned int>("lowLevel", 20)),
49  _highlev(iConfig.getUntrackedParameter<unsigned int>("highLevel", 80)),
50  _nevlasers(iConfig.getUntrackedParameter<unsigned int>("nEventLaser", 600)),
51  _timebefmax(iConfig.getUntrackedParameter<unsigned int>("timeBefMax", 100)),
52  _timeaftmax(iConfig.getUntrackedParameter<unsigned int>("timeAftMax", 250)),
53  _cutwindow(iConfig.getUntrackedParameter<double>("cutWindow", 0.1)),
54  _nsamplesshape(iConfig.getUntrackedParameter<unsigned int>("nSamplesShape", 250)),
55  _presampleshape(iConfig.getUntrackedParameter<unsigned int>("nPresamplesShape", 50)),
56  _slide(iConfig.getUntrackedParameter<unsigned int>("nSlide", 100)),
57  _fedid(iConfig.getUntrackedParameter<int>("fedID", -999)),
58  _debug(iConfig.getUntrackedParameter<int>("debug", 0)),
59  resdir_(iConfig.getUntrackedParameter<std::string>("resDir")),
60  digiCollection_(iConfig.getParameter<std::string>("digiCollection")),
61  digiProducer_(iConfig.getParameter<std::string>("digiProducer")),
62  eventHeaderCollection_(iConfig.getParameter<std::string>("eventHeaderCollection")),
63  eventHeaderProducer_(iConfig.getParameter<std::string>("eventHeaderProducer")),
64  pmatToken_(consumes<EcalMatacqDigiCollection>(edm::InputTag(digiProducer_, digiCollection_))),
65  dccToken_(consumes<EcalRawDataCollection>(edm::InputTag(eventHeaderProducer_, eventHeaderCollection_))),
66  nSides(NSIDES),
67  lightside(0),
68  runType(-1),
69  runNum(0),
70  event(0),
71  color(-1),
72  maxsamp(0),
73  nsamples(0),
74  tt(0)
75 
76 //========================================================================
77 {
78  //now do what ever initialization is needed
79 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const unsigned int _timeaftmax
const unsigned int _thres
#define NSIDES
const unsigned int _slide
const unsigned int _lowlev
const std::string digiCollection_
const unsigned int _presampleshape
const std::string resdir_
const std::string eventHeaderCollection_
T getUntrackedParameter(std::string const &, T const &) const
const unsigned int _nevlasers
const unsigned int _timebefmax
const std::string eventHeaderProducer_
const unsigned int _parabnbefmax
const edm::EDGetTokenT< EcalMatacqDigiCollection > pmatToken_
const std::string digiProducer_
const unsigned int _nsamplesaftmax
const unsigned int _nsamplesshape
const unsigned int _noiseCut
const edm::EDGetTokenT< EcalRawDataCollection > dccToken_
const unsigned int _highlev
const unsigned int _parabnaftmax

◆ ~EcalMatacqAnalyzer()

EcalMatacqAnalyzer::~EcalMatacqAnalyzer ( )
overridedefault

Member Function Documentation

◆ analyze()

void EcalMatacqAnalyzer::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 126 of file EcalMatacqAnalyzer.cc.

References _debug, _fedid, EcalMatacqDigi::adcCount(), edm::SortedCollection< T, SORT >::begin(), color, dccID, dccToken_, digiCollection_, digiProducer_, MillePedeFileConverter_cfg::e, edm::SortedCollection< T, SORT >::end(), eventHeaderCollection_, eventHeaderProducer_, fedID, spr::find(), mps_fire::i, iEvent, caHitNtupletGeneratorKernels::if(), createfilelist::int, isThereMatacq, edm::HandleBase::isValid(), EcalDCCHeaderBlock::LASER_DELAY_SCAN, EcalDCCHeaderBlock::LASER_GAP, EcalDCCHeaderBlock::LASER_POWER_SCAN, EcalDCCHeaderBlock::LASER_STD, laserEvents, lightside, matacq, SiStripPI::max, maxsamp, nsamples, pmatToken_, edm::Handle< T >::product(), runNum, runType, EcalMatacqDigi::size(), EcalMatacqDigi::tTrig(), and EcalDCCHeaderBlock::EcalDCCEventSettings::wavelength.

126  {
127  //========================================================================
128 
129  ++iEvent;
130 
131  if (_debug == 1)
132  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- Entering Analyze -- event= " << iEvent;
133 
134  // retrieving MATACQ :
135  const edm::Handle<EcalMatacqDigiCollection>& pmatacqDigi = e.getHandle(pmatToken_);
136  const EcalMatacqDigiCollection* matacqDigi = (pmatacqDigi.isValid()) ? pmatacqDigi.product() : nullptr;
137  if (pmatacqDigi.isValid()) {
138  if (_debug == 1)
139  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- Matacq Digis Found -- ";
140  } else {
141  edm::LogError("EcalMatacqAnalyzzer") << "Error! can't get the product EcalMatacqDigi producer:"
142  << digiProducer_.c_str() << " collection:" << digiCollection_.c_str();
143  return;
144  }
145 
146  // retrieving DCC header
147 
148  const edm::Handle<EcalRawDataCollection>& pDCCHeader = e.getHandle(dccToken_);
149  const EcalRawDataCollection* DCCHeader = (pDCCHeader.isValid()) ? pDCCHeader.product() : nullptr;
150  if (!pDCCHeader.isValid()) {
151  edm::LogError("EcalMatacqAnalyzzer") << "Error! can't get the product EcalRawData producer:"
152  << eventHeaderProducer_.c_str()
153  << " collection:" << eventHeaderCollection_.c_str();
154  return;
155  }
156 
157  // ====================================
158  // Decode Basic DCCHeader Information
159  // ====================================
160 
161  if (_debug == 1)
162  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- Before header -- ";
163 
164  for (EcalRawDataCollection::const_iterator headerItr = DCCHeader->begin(); headerItr != DCCHeader->end();
165  ++headerItr) {
166  EcalDCCHeaderBlock::EcalDCCEventSettings settings = headerItr->getEventSettings();
167  color = (int)settings.wavelength;
168  if (color < 0)
169  return;
170 
171  // Get run type and run number
172 
173  int fed = headerItr->fedId();
174 
175  if (fed != _fedid && _fedid != -999)
176  continue;
177 
178  runType = headerItr->getRunType();
179  runNum = headerItr->getRunNumber();
180  event = headerItr->getLV1();
181 
182  if (_debug == 1)
183  edm::LogVerbatim("EcalMatacqAnalyzzer")
184  << "-- debug test -- runtype:" << runType << " event:" << event << " runNum:" << runNum;
185 
186  dccID = headerItr->getDccInTCCCommand();
187  fedID = headerItr->fedId();
188  lightside = headerItr->getRtHalf();
189 
190  //assert (lightside<2 && lightside>=0);
191 
192  if (lightside != 1 && lightside != 0) {
193  edm::LogVerbatim("EcalMatacqAnalyzzer") << "Unexpected lightside: " << lightside << " for event " << iEvent;
194  return;
195  }
196  if (_debug == 1) {
197  edm::LogVerbatim("EcalMatacqAnalyzzer")
198  << "-- debug test -- Inside header before fed cut -- color=" << color << ", dcc=" << dccID
199  << ", fed=" << fedID << ", lightside=" << lightside << ", runType=" << runType;
200  }
201 
202  // take event only if the fed corresponds to the DCC in TCC
203  if (600 + dccID != fedID)
204  continue;
205 
206  if (_debug == 1) {
207  edm::LogVerbatim("EcalMatacqAnalyzzer")
208  << "-- debug test -- Inside header after fed cut -- color=" << color << ", dcc=" << dccID << ", fed=" << fedID
209  << ", lightside=" << lightside << ", runType=" << runType;
210  }
211 
212  // Cut on runType
213 
216  return;
217 
218  std::vector<int>::iterator iter = find(colors.begin(), colors.end(), color);
219  if (iter == colors.end()) {
220  colors.push_back(color);
221  edm::LogVerbatim("EcalMatacqAnalyzzer") << " new color found " << color << " " << colors.size();
222  }
223  }
224 
225  if (_debug == 1)
226  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- Before digis -- Event:" << iEvent;
227 
228  // Count laser events
229  laserEvents++;
230 
231  // ===========================
232  // Decode Matacq Information
233  // ===========================
234 
235  double max = 0;
236 
237  for (EcalMatacqDigiCollection::const_iterator it = matacqDigi->begin(); it != matacqDigi->end();
238  ++it) { // Loop on matacq channel
239 
240  //
241  const EcalMatacqDigi& digis = *it;
242 
243  if (_debug == 1) {
244  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- Inside digis -- digi size=" << digis.size();
245  }
246 
247  if (digis.size() == 0)
248  continue;
249  else
250  isThereMatacq = true;
251 
252  max = 0;
253  maxsamp = 0;
254  nsamples = digis.size();
255  tt = digis.tTrig();
256 
257  for (int i = 0; i < digis.size(); ++i) { // Loop on matacq samples
258  matacq[i] = -digis.adcCount(i);
259  if (matacq[i] > max) {
260  max = matacq[i];
261  maxsamp = i;
262  }
263  }
264  if (_debug == 1) {
265  edm::LogVerbatim("EcalMatacqAnalyzzer")
266  << "-- debug test -- Inside digis -- nsamples=" << nsamples << ", max=" << max;
267  }
268  }
269 
270  if (_debug == 1)
271  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- After digis -- Event: " << iEvent;
272  tree->Fill();
273 
274 } // analyze
Log< level::Info, true > LogVerbatim
const std::string digiCollection_
T const * product() const
Definition: Handle.h:70
std::vector< T >::const_iterator const_iterator
Log< level::Error, false > LogError
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
float adcCount(const int &i) const
const std::string eventHeaderCollection_
Definition: TTTypes.h:54
const_iterator begin() const
float tTrig() const
const_iterator end() const
const std::string eventHeaderProducer_
const edm::EDGetTokenT< EcalMatacqDigiCollection > pmatToken_
const std::string digiProducer_
bool isValid() const
Definition: HandleBase.h:70
Definition: colors.py:1
int size() const
Definition: tree.py:1
const edm::EDGetTokenT< EcalRawDataCollection > dccToken_

◆ beginJob()

void EcalMatacqAnalyzer::beginJob ( )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 82 of file EcalMatacqAnalyzer.cc.

References color, isThereMatacq, laserEvents, lightside, matacq, maxsamp, nsamples, outfile, resdir_, sampfile, and sampFile.

82  {
83  //========================================================================
84 
85  // Define temporary file name
86 
87  sampfile = resdir_;
88  sampfile += "/TmpTreeMatacqAnalyzer.root";
89 
90  sampFile = new TFile(sampfile.c_str(), "RECREATE");
91 
92  // declaration of the tree to fill
93 
94  tree = new TTree("MatacqTree", "MatacqTree");
95 
96  //List of branches
97 
98  tree->Branch("event", &event, "event/I");
99  tree->Branch("color", &color, "color/I");
100  tree->Branch("matacq", &matacq, "matacq[2560]/D");
101  tree->Branch("nsamples", &nsamples, "nsamples/I");
102  tree->Branch("maxsamp", &maxsamp, "maxsamp/I");
103  tree->Branch("tt", &tt, "tt/D");
104  tree->Branch("lightside", &lightside, "lightside/I");
105 
106  tree->SetBranchAddress("event", &event);
107  tree->SetBranchAddress("color", &color);
108  tree->SetBranchAddress("matacq", matacq);
109  tree->SetBranchAddress("nsamples", &nsamples);
110  tree->SetBranchAddress("maxsamp", &maxsamp);
111  tree->SetBranchAddress("tt", &tt);
112  tree->SetBranchAddress("lightside", &lightside);
113 
114  // Define output results files' names
115 
116  std::stringstream namefile;
117  namefile << resdir_ << "/MATACQ.root";
118  outfile = namefile.str();
119 
120  // Laser events counter
121  laserEvents = 0;
122  isThereMatacq = false;
123 }
const std::string resdir_
Definition: TTTypes.h:54
Definition: tree.py:1
Definition: event.py:1

◆ endJob()

void EcalMatacqAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 277 of file EcalMatacqAnalyzer.cc.

References _cutwindow, _debug, _highlev, _lowlev, _nevlasers, _noiseCut, _nsamplesaftmax, _nsamplesshape, _parabnaftmax, _parabnbefmax, _presample, _presampleshape, _slide, _thres, _timeaftmax, _timebefmax, a0, testProducerWithPsetDescEmpty_cfi::a2, ampl, cms::cuda::assert(), color, TMatacq::compute_trise(), TMatacq::doFit(), TMatacq::findPeak(), fw20, fw80, fwhm, TMTQ::get(), TMatacq::getAmpl(), TMatacq::getBaseLine(), TMatacq::getFwhm(), TMatacq::getsigBaseLine(), TMatacq::getsigTimpeak(), TMatacq::getSlide(), TMatacq::getTimax(), TMatacq::getTimpeak(), TMatacq::getTrise(), TMatacq::getWidth20(), TMatacq::getWidth80(), mps_fire::i, TMTQ::iAmpl, TMTQ::iFit, TMTQ::iFw20, TMTQ::iFw80, TMTQ::iFwhm, createfilelist::int, TMTQ::iPeak, TMTQ::iPed, TMTQ::iPedsig, TMTQ::iSigma, TMTQ::iSlide, isThereMatacq, TMTQ::iTrise, lightside, matacq, maxsamp, meanTree, MTQ, mtqShape, nColor, TMTQ::nOutVar, nsamples, nSide, nSides, outfile, outFile, peak, ped, pedsig, TMatacq::rawPulseAnalysis(), sampfile, sampFile, sigma, sliding, status, ctpps_dqm_sourceclient-live_cfg::test, trise, tt, ttrig, and heppy_batch::val.

Referenced by o2olib.O2ORunMgr::executeJob().

277  {
278  // Don't do anything if there is no events
279  if (!isThereMatacq) {
280  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\n\t+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+";
281  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\t+=+ WARNING! NO MATACQ +=+";
282  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\t+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+";
283 
284  // Remove temporary file
285  FILE* test;
286  test = fopen(sampfile.c_str(), "r");
287  if (test) {
288  std::stringstream del2;
289  del2 << "rm " << sampfile;
290  system(del2.str().c_str());
291  }
292  return;
293  }
294 
295  assert(colors.size() <= nColor);
296  unsigned int nCol = colors.size();
297 
298  for (unsigned int iCol = 0; iCol < nCol; iCol++) {
299  for (unsigned int iSide = 0; iSide < nSide; iSide++) {
300  MTQ[iCol][iSide] = new TMTQ();
301  }
302  }
303 
304  outFile = new TFile(outfile.c_str(), "RECREATE");
305 
306  TProfile* shapeMat = new TProfile("shapeLaser", "shapeLaser", _nsamplesshape, -0.5, double(_nsamplesshape) - 0.5);
307  TProfile* shapeMatTmp = new TProfile(
308  "shapeLaserTmp", "shapeLaserTmp", _timeaftmax + _timebefmax, -0.5, double(_timeaftmax + _timebefmax) - 0.5);
309 
310  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\n\t+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+";
311  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\t+=+ Analyzing MATACQ data +=+";
312 
313  //
314  // create output ntuple
315  //
316 
317  mtqShape = new TTree("MatacqShape", "MatacqShape");
318 
319  // list of branches
320  // keep Patrice's notations
321 
322  mtqShape->Branch("event", &event, "event/I");
323  mtqShape->Branch("color", &color, "color/I");
324  mtqShape->Branch("status", &status, "status/I");
325  mtqShape->Branch("peak", &peak, "peak/D");
326  mtqShape->Branch("sigma", &sigma, "sigma/D");
327  mtqShape->Branch("fit", &fit, "fit/D");
328  mtqShape->Branch("ampl", &ampl, "ampl/D");
329  mtqShape->Branch("trise", &trise, "trise/D");
330  mtqShape->Branch("fwhm", &fwhm, "fwhm/D");
331  mtqShape->Branch("fw20", &fw20, "fw20/D");
332  mtqShape->Branch("fw80", &fw80, "fw80/D");
333  mtqShape->Branch("ped", &ped, "ped/D");
334  mtqShape->Branch("pedsig", &pedsig, "pedsig/D");
335  mtqShape->Branch("ttrig", &ttrig, "ttrig/D");
336  mtqShape->Branch("sliding", &sliding, "sliding/D");
337 
338  mtqShape->SetBranchAddress("event", &event);
339  mtqShape->SetBranchAddress("color", &color);
340  mtqShape->SetBranchAddress("status", &status);
341  mtqShape->SetBranchAddress("peak", &peak);
342  mtqShape->SetBranchAddress("sigma", &sigma);
343  mtqShape->SetBranchAddress("fit", &fit);
344  mtqShape->SetBranchAddress("ampl", &ampl);
345  mtqShape->SetBranchAddress("fwhm", &fwhm);
346  mtqShape->SetBranchAddress("fw20", &fw20);
347  mtqShape->SetBranchAddress("fw80", &fw80);
348  mtqShape->SetBranchAddress("trise", &trise);
349  mtqShape->SetBranchAddress("ped", &ped);
350  mtqShape->SetBranchAddress("pedsig", &pedsig);
351  mtqShape->SetBranchAddress("ttrig", &ttrig);
352  mtqShape->SetBranchAddress("sliding", &sliding);
353 
354  unsigned int endsample;
355  unsigned int presample;
356 
357  // loop over the entries of the tree
358  TChain* fChain = (TChain*)tree;
359  Long64_t nentries = fChain->GetEntriesFast();
360 
361  for (Long64_t jentry = 0; jentry < nentries; jentry++) {
362  // load the event
363  Long64_t ientry = fChain->LoadTree(jentry);
364  if (ientry < 0)
365  break;
366  fChain->GetEntry(jentry);
367 
368  status = 0;
369  peak = -1;
370  sigma = 0;
371  fit = -1;
372  ampl = -1;
373  trise = -1;
374  ttrig = tt;
375  fwhm = 0;
376  fw20 = 0;
377  fw80 = 0;
378  ped = 0;
379  pedsig = 0;
380  sliding = 0;
381 
382  if (_debug == 1)
383  edm::LogVerbatim("EcalMatacqAnalyzzer")
384  << "-- debug test -- inside loop 1 -- jentry:" << jentry << " over nentries=" << nentries;
385 
386  // create the object for Matacq data analysis
387 
388  endsample = maxsamp + _nsamplesaftmax;
389  presample = int(_presample * nsamples / 100.);
390  TMatacq* mtq = new TMatacq(nsamples,
391  presample,
392  endsample,
393  _noiseCut,
396  _thres,
397  _lowlev,
398  _highlev,
399  _nevlasers,
400  _slide);
401 
402  if (_debug == 1)
403  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 2 -- ";
404 
405  // analyse the Matacq data
406  if (mtq->rawPulseAnalysis(nsamples, &matacq[0]) == 0) {
407  status = 1;
408  ped = mtq->getBaseLine();
409  pedsig = mtq->getsigBaseLine();
410 
411  if (_debug == 1)
412  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 3 -- ped:" << ped;
413  if (mtq->findPeak() == 0) {
414  peak = mtq->getTimpeak();
415  sigma = mtq->getsigTimpeak();
416  }
417  if (_debug == 1)
418  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 4 -- peak:" << peak;
419  if (mtq->doFit() == 0) {
420  fit = mtq->getTimax();
421  ampl = mtq->getAmpl();
422  fwhm = mtq->getFwhm();
423  fw20 = mtq->getWidth20();
424  fw80 = mtq->getWidth80();
425  sliding = mtq->getSlide();
426  }
427  if (_debug == 1)
428  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 4 -- ampl:" << ampl;
429  if (mtq->compute_trise() == 0) {
430  trise = mtq->getTrise();
431  }
432  if (_debug == 1)
433  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 5 -- trise:" << trise;
434  }
435 
436  if (_debug == 1)
437  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 6 -- status:" << status;
438 
439  if (status == 1 && mtq->findPeak() == 0) {
440  int firstS = int(peak - double(_timebefmax));
441  int lastS = int(peak + double(_timeaftmax));
442 
443  // Fill histo if there are enough samples
444  if (_debug == 1)
445  edm::LogVerbatim("EcalMatacqAnalyzzer")
446  << "-- debug test -- inside loop 7 -- firstS:" << firstS << ", nsamples:" << nsamples;
447 
448  if (firstS >= 0 && lastS <= nsamples) {
449  for (int i = firstS; i < lastS; i++) {
450  shapeMatTmp->Fill(double(i) - firstS, matacq[i]);
451  }
452 
453  } else { // else extrapolate
454 
455  int firstSBis;
456 
457  if (firstS < 0) { // fill first bins with 0
458 
459  double thisped;
460  thisped = (matacq[0] + matacq[1] + matacq[2] + matacq[4] + matacq[5]) / 5.0;
461 
462  for (int i = firstS; i < 0; i++) {
463  shapeMatTmp->Fill(double(i) - firstS, thisped);
464  }
465  firstSBis = 0;
466 
467  } else {
468  firstSBis = firstS;
469  }
470 
471  if (lastS > nsamples) {
472  for (int i = firstSBis; i < int(nsamples); i++) {
473  shapeMatTmp->Fill(double(i) - firstS, matacq[i]);
474  }
475 
476  //extrapolate with expo tail
477 
478  double expb = 0.998;
479  double matacqval = expb * matacq[nsamples - 1];
480 
481  for (int i = nsamples; i < lastS; i++) {
482  shapeMatTmp->Fill(double(i) - firstS, matacqval);
483  matacqval *= expb;
484  }
485 
486  } else {
487  for (int i = firstSBis; i < lastS; i++) {
488  shapeMatTmp->Fill(double(i) - firstS, matacq[i]);
489  }
490  }
491  }
492  }
493  if (_debug == 1)
494  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 8";
495 
496  // get back color
497 
498  int iCol = nCol;
499  for (unsigned int i = 0; i < nCol; i++) {
500  if (color == colors[i]) {
501  iCol = i;
502  i = nCol;
503  }
504  }
505  if (_debug == 1)
506  edm::LogVerbatim("EcalMatacqAnalyzzer")
507  << "-- debug test -- inside loop 8bis color:" << color << " iCol:" << iCol << " nCol:" << nCol;
508 
509  // fill TMTQ
510 
511  if (status == 1 && mtq->findPeak() == 0 && mtq->doFit() == 0 && mtq->compute_trise() == 0)
512  MTQ[iCol][lightside]->addEntry(peak, sigma, fit, ampl, trise, fwhm, fw20, fw80, ped, pedsig, sliding);
513 
514  // fill the output tree
515 
516  if (_debug == 1)
517  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside loop 9";
518  mtqShape->Fill();
519 
520  // clean up
521  delete mtq;
522  }
523 
524  if (_debug == 1)
525  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- after loop ";
526  sampFile->Close();
527 
528  double Peak[6], Sigma[6], Fit[6], Ampl[6], Trise[6], Fwhm[6], Fw20[6], Fw80[6], Ped[6], Pedsig[6], Sliding[6];
529  int Side;
530 
531  for (unsigned int iColor = 0; iColor < nCol; iColor++) {
532  std::stringstream nametree;
533  nametree << "MatacqCol" << colors[iColor];
534  meanTree[iColor] = new TTree(nametree.str().c_str(), nametree.str().c_str());
535  meanTree[iColor]->Branch("side", &Side, "Side/I");
536  meanTree[iColor]->Branch("peak", &Peak, "Peak[6]/D");
537  meanTree[iColor]->Branch("sigma", &Sigma, "Sigma[6]/D");
538  meanTree[iColor]->Branch("fit", &Fit, "Fit[6]/D");
539  meanTree[iColor]->Branch("ampl", &Ampl, "Ampl[6]/D");
540  meanTree[iColor]->Branch("trise", &Trise, "Trise[6]/D");
541  meanTree[iColor]->Branch("fwhm", &Fwhm, "Fwhm[6]/D");
542  meanTree[iColor]->Branch("fw20", &Fw20, "Fw20[6]/D");
543  meanTree[iColor]->Branch("fw80", &Fw80, "Fw80[6]/D");
544  meanTree[iColor]->Branch("ped", &Ped, "Ped[6]/D");
545  meanTree[iColor]->Branch("pedsig", &Pedsig, "Pedsig[6]/D");
546  meanTree[iColor]->Branch("sliding", &Sliding, "Sliding[6]/D");
547 
548  meanTree[iColor]->SetBranchAddress("side", &Side);
549  meanTree[iColor]->SetBranchAddress("peak", Peak);
550  meanTree[iColor]->SetBranchAddress("sigma", Sigma);
551  meanTree[iColor]->SetBranchAddress("fit", Fit);
552  meanTree[iColor]->SetBranchAddress("ampl", Ampl);
553  meanTree[iColor]->SetBranchAddress("fwhm", Fwhm);
554  meanTree[iColor]->SetBranchAddress("fw20", Fw20);
555  meanTree[iColor]->SetBranchAddress("fw80", Fw80);
556  meanTree[iColor]->SetBranchAddress("trise", Trise);
557  meanTree[iColor]->SetBranchAddress("ped", Ped);
558  meanTree[iColor]->SetBranchAddress("pedsig", Pedsig);
559  meanTree[iColor]->SetBranchAddress("sliding", Sliding);
560  }
561 
562  for (unsigned int iCol = 0; iCol < nCol; iCol++) {
563  for (unsigned int iSide = 0; iSide < nSides; iSide++) {
564  Side = iSide;
565  std::vector<double> val[TMTQ::nOutVar];
566 
567  for (int iVar = 0; iVar < TMTQ::nOutVar; iVar++) {
568  val[iVar] = MTQ[iCol][iSide]->get(iVar);
569 
570  for (unsigned int i = 0; i < val[iVar].size(); i++) {
571  switch (iVar) {
572  case TMTQ::iPeak:
573  Peak[i] = val[iVar].at(i);
574  break;
575  case TMTQ::iSigma:
576  Sigma[i] = val[iVar].at(i);
577  break;
578  case TMTQ::iFit:
579  Fit[i] = val[iVar].at(i);
580  break;
581  case TMTQ::iAmpl:
582  Ampl[i] = val[iVar].at(i);
583  break;
584  case TMTQ::iFwhm:
585  Fwhm[i] = val[iVar].at(i);
586  break;
587  case TMTQ::iFw20:
588  Fw20[i] = val[iVar].at(i);
589  break;
590  case TMTQ::iFw80:
591  Fw80[i] = val[iVar].at(i);
592  break;
593  case TMTQ::iTrise:
594  Trise[i] = val[iVar].at(i);
595  break;
596  case TMTQ::iPed:
597  Ped[i] = val[iVar].at(i);
598  break;
599  case TMTQ::iPedsig:
600  Pedsig[i] = val[iVar].at(i);
601  break;
602  case TMTQ::iSlide:
603  Sliding[i] = val[iVar].at(i);
604  break;
605  }
606  }
607  }
608  meanTree[iCol]->Fill();
609  if (_debug == 1)
610  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- inside final loop ";
611  }
612  }
613 
614  // Calculate maximum with pol 2
615 
616  int im = shapeMatTmp->GetMaximumBin();
617  double q1 = shapeMatTmp->GetBinContent(im - 1);
618  double q2 = shapeMatTmp->GetBinContent(im);
619  double q3 = shapeMatTmp->GetBinContent(im + 1);
620 
621  double a2 = (q3 + q1) / 2.0 - q2;
622  double a1 = q2 - q1 + a2 * (1 - 2 * im);
623  double a0 = q2 - a1 * im - a2 * im * im;
624 
625  double am = a0 - a1 * a1 / (4 * a2);
626 
627  // Compute pedestal
628 
629  double bl = 0;
630  for (unsigned int i = 1; i < _presampleshape + 1; i++) {
631  bl += shapeMatTmp->GetBinContent(i);
632  }
633  bl /= _presampleshape;
634 
635  // Compute and save laser shape
636 
637  if (_debug == 1)
638  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- computing shape ";
639 
640  int firstBin = 0;
641  double height = 0.0;
642 
643  for (unsigned int i = _timebefmax; i > _presampleshape; i--) {
644  height = shapeMatTmp->GetBinContent(i) - bl;
645 
646  if (height < (am - bl) * _cutwindow) {
647  firstBin = i;
648  i = _presampleshape;
649  }
650  }
651 
652  unsigned int lastBin = firstBin + _nsamplesshape;
653 
654  for (unsigned int i = firstBin; i < lastBin; i++) {
655  shapeMat->Fill(i - firstBin, shapeMatTmp->GetBinContent(i) - bl);
656  }
657 
658  mtqShape->Write();
659  for (unsigned int iColor = 0; iColor < nCol; iColor++) {
660  meanTree[iColor]->Write();
661  }
662  if (_debug == 1)
663  edm::LogVerbatim("EcalMatacqAnalyzzer") << "-- debug test -- writing ";
664  shapeMat->Write();
665 
666  // close the output file
667  outFile->Close();
668 
669  // Remove temporary file
670  FILE* test;
671  test = fopen(sampfile.c_str(), "r");
672  if (test) {
673  std::stringstream del2;
674  del2 << "rm " << sampfile;
675  system(del2.str().c_str());
676  }
677 
678  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\t+=+ .................... done +=+";
679  edm::LogVerbatim("EcalMatacqAnalyzzer") << "\t+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+";
680 }
double getWidth80()
Definition: TMatacq.h:74
Log< level::Info, true > LogVerbatim
Definition: TMTQ.h:8
const unsigned int _timeaftmax
const unsigned int _thres
const unsigned int _slide
const unsigned int _lowlev
const unsigned int _presampleshape
int compute_trise()
Definition: TMatacq.cc:347
double getTimax()
Definition: TMatacq.h:69
TMTQ * MTQ[nColor][nSide]
assert(be >=bs)
double getBaseLine()
Definition: TMatacq.h:62
double getsigBaseLine()
Definition: TMatacq.h:63
double getFwhm()
Definition: TMatacq.h:72
TTree * meanTree[nColor]
double getsigTimpeak()
Definition: TMatacq.h:66
const unsigned int _nevlasers
double getSlide()
Definition: TMatacq.h:75
Definition: Fit.h:32
std::vector< double > get(int)
Definition: TMTQ.cc:69
int doFit()
Definition: TMatacq.cc:213
double getAmpl()
Definition: TMatacq.h:68
int rawPulseAnalysis(Int_t, Double_t *)
Definition: TMatacq.cc:57
const unsigned int _timebefmax
double getWidth20()
Definition: TMatacq.h:73
int findPeak()
Definition: TMatacq.cc:136
const unsigned int _parabnbefmax
static constexpr float a0
double getTrise()
Definition: TMatacq.h:71
const unsigned int _nsamplesaftmax
Definition: colors.py:1
Definition: TMatacq.h:6
const unsigned int _nsamplesshape
Definition: tree.py:1
const unsigned int _noiseCut
const unsigned int _highlev
const unsigned int _parabnaftmax
Definition: event.py:1
double getTimpeak()
Definition: TMatacq.h:65

Member Data Documentation

◆ _cutwindow

const double EcalMatacqAnalyzer::_cutwindow
private

Definition at line 46 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _debug

const int EcalMatacqAnalyzer::_debug
private

◆ _fedid

const int EcalMatacqAnalyzer::_fedid
private

Definition at line 50 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ _highlev

const unsigned int EcalMatacqAnalyzer::_highlev
private

Definition at line 42 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _lowlev

const unsigned int EcalMatacqAnalyzer::_lowlev
private

Definition at line 41 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _nevlasers

const unsigned int EcalMatacqAnalyzer::_nevlasers
private

Definition at line 43 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _noiseCut

const unsigned int EcalMatacqAnalyzer::_noiseCut
private

Definition at line 37 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _nsamplesaftmax

const unsigned int EcalMatacqAnalyzer::_nsamplesaftmax
private

Definition at line 36 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _nsamplesshape

const unsigned int EcalMatacqAnalyzer::_nsamplesshape
private

Definition at line 47 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _parabnaftmax

const unsigned int EcalMatacqAnalyzer::_parabnaftmax
private

Definition at line 39 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _parabnbefmax

const unsigned int EcalMatacqAnalyzer::_parabnbefmax
private

Definition at line 38 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _presample

const double EcalMatacqAnalyzer::_presample
private

Definition at line 35 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _presampleshape

const unsigned int EcalMatacqAnalyzer::_presampleshape
private

Definition at line 48 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _slide

const unsigned int EcalMatacqAnalyzer::_slide
private

Definition at line 49 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _thres

const unsigned int EcalMatacqAnalyzer::_thres
private

Definition at line 40 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _timeaftmax

const unsigned int EcalMatacqAnalyzer::_timeaftmax
private

Definition at line 45 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ _timebefmax

const unsigned int EcalMatacqAnalyzer::_timebefmax
private

Definition at line 44 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ ampl

double EcalMatacqAnalyzer::ampl
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ color

int EcalMatacqAnalyzer::color
private

◆ colors

std::vector<int> EcalMatacqAnalyzer::colors
private

Definition at line 92 of file EcalMatacqAnalyzer.h.

◆ dccID

int EcalMatacqAnalyzer::dccID
private

Definition at line 70 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ dccToken_

const edm::EDGetTokenT<EcalRawDataCollection> EcalMatacqAnalyzer::dccToken_
private

Definition at line 59 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ digiCollection_

const std::string EcalMatacqAnalyzer::digiCollection_
private

Definition at line 54 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ digiProducer_

const std::string EcalMatacqAnalyzer::digiProducer_
private

Definition at line 55 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ event

int EcalMatacqAnalyzer::event
private

◆ eventHeaderCollection_

const std::string EcalMatacqAnalyzer::eventHeaderCollection_
private

Definition at line 56 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ eventHeaderProducer_

const std::string EcalMatacqAnalyzer::eventHeaderProducer_
private

Definition at line 57 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ fedID

int EcalMatacqAnalyzer::fedID
private

Definition at line 71 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ fit

double EcalMatacqAnalyzer::fit
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by trackingPlots.Iteration::modules().

◆ fw20

double EcalMatacqAnalyzer::fw20
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ fw80

double EcalMatacqAnalyzer::fw80
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ fwhm

double EcalMatacqAnalyzer::fwhm
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ iEvent

int EcalMatacqAnalyzer::iEvent
private

Definition at line 29 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ isThereMatacq

bool EcalMatacqAnalyzer::isThereMatacq
private

Definition at line 75 of file EcalMatacqAnalyzer.h.

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

◆ laserEvents

int EcalMatacqAnalyzer::laserEvents
private

Definition at line 74 of file EcalMatacqAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ lightside

int EcalMatacqAnalyzer::lightside
private

Definition at line 67 of file EcalMatacqAnalyzer.h.

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

◆ matacq

double EcalMatacqAnalyzer::matacq[2560]
private

Definition at line 81 of file EcalMatacqAnalyzer.h.

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

◆ maxsamp

int EcalMatacqAnalyzer::maxsamp
private

Definition at line 82 of file EcalMatacqAnalyzer.h.

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

◆ meanTree

TTree* EcalMatacqAnalyzer::meanTree[nColor]
private

Definition at line 90 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ MTQ

TMTQ* EcalMatacqAnalyzer::MTQ[nColor][nSide]
private

Definition at line 89 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ mtqShape

TTree* EcalMatacqAnalyzer::mtqShape
private

Definition at line 97 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ nsamples

int EcalMatacqAnalyzer::nsamples
private

Definition at line 83 of file EcalMatacqAnalyzer.h.

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

◆ nSides

unsigned int EcalMatacqAnalyzer::nSides
private

Definition at line 66 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ outfile

std::string EcalMatacqAnalyzer::outfile
private

Definition at line 61 of file EcalMatacqAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ outFile

TFile* EcalMatacqAnalyzer::outFile
private

◆ peak

double EcalMatacqAnalyzer::peak
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ ped

double EcalMatacqAnalyzer::ped
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ pedsig

double EcalMatacqAnalyzer::pedsig
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ pmatToken_

const edm::EDGetTokenT<EcalMatacqDigiCollection> EcalMatacqAnalyzer::pmatToken_
private

Definition at line 58 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ resdir_

const std::string EcalMatacqAnalyzer::resdir_
private

Definition at line 53 of file EcalMatacqAnalyzer.h.

Referenced by beginJob().

◆ runNum

int EcalMatacqAnalyzer::runNum
private

Definition at line 69 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ runType

int EcalMatacqAnalyzer::runType
private

Definition at line 68 of file EcalMatacqAnalyzer.h.

Referenced by analyze().

◆ sampfile

std::string EcalMatacqAnalyzer::sampfile
private

Definition at line 62 of file EcalMatacqAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ sampFile

TFile* EcalMatacqAnalyzer::sampFile
private

Definition at line 86 of file EcalMatacqAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ sigma

double EcalMatacqAnalyzer::sigma
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ sliding

double EcalMatacqAnalyzer::sliding
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ status

int EcalMatacqAnalyzer::status
private

◆ tree

TTree* EcalMatacqAnalyzer::tree
private

◆ trise

double EcalMatacqAnalyzer::trise
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ tt

double EcalMatacqAnalyzer::tt
private

Definition at line 84 of file EcalMatacqAnalyzer.h.

Referenced by endJob().

◆ ttrig

double EcalMatacqAnalyzer::ttrig
private

Definition at line 96 of file EcalMatacqAnalyzer.h.

Referenced by endJob().