CMS 3D CMS Logo

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

#include <EcnaAnalyzer.h>

Inheritance diagram for EcnaAnalyzer:
edm::EDAnalyzer edm::EDConsumerBase

Public Types

enum  { kChannels = 1700, kGains = 3, kFirstGainId = 1 }
 
- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

Bool_t AnalysisOutcome (const TString &)
 
void analyze (const edm::Event &, const edm::EventSetup &) override
 
void CheckMsg (const Int_t &, const Int_t &)
 
void CheckMsg (const Int_t &)
 
 EcnaAnalyzer (const edm::ParameterSet &)
 
Int_t gainvalue (const Int_t &)
 
TString runtype (const Int_t &)
 
 ~EcnaAnalyzer () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () 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
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

std::string digiProducer_
 
std::string EBdigiCollection_
 
std::string EEdigiCollection_
 
std::string eventHeaderCollection_
 
std::string eventHeaderProducer_
 
TString fAnalysisName
 
Int_t fANY_RUN
 
Int_t * fBuildEventDistribBad
 
Int_t * fBuildEventDistribGood
 
TString fCfgAnalyzerParametersFileName
 
TString fCfgAnalyzerParametersFilePath
 
Int_t fChozenGainNumber
 
Int_t fChozenRunTypeNumber
 
Int_t * fCounterQuad
 
Int_t fCurrentEventNumber
 
TString * fDateFirst
 
TString * fDateLast
 
Int_t fDeeDS5Memo1
 
Int_t fDeeDS5Memo2
 
Int_t * fDeeFromFedTcc
 
Int_t fDeeIndexBegin
 
Int_t fDeeIndexStop
 
TString * fDeeNumberString
 
TString fDynBaseLineSub
 
Int_t * fESFromFedTcc
 
Int_t fEvtNumber
 
Int_t fEvtNumberMemo
 
std::ifstream fFcin_f
 
Int_t * fFedDigiOK
 
Int_t fFedId
 
Int_t * fFedIdCounter
 
Int_t * fFedNbOfTreatedEvents
 
Int_t * fFedStatus
 
Int_t * fFedStatusOrder
 
Int_t fFedTcc
 
Int_t fFirstReqEvent
 
Int_t fgMaxCar
 
Int_t fLASER_STD
 
Int_t fLastReqEvent
 
Int_t fMaxCounterQuad
 
Int_t fMaxFedIdCounter
 
Int_t fMaxFedUnitCounter
 
Int_t fMaxMgpaGainCounter
 
Int_t fMaxRunTypeCounter
 
Int_t fMaxTreatedStexCounter
 
Int_t fMemoCutOK
 
Int_t * fMemoDateFirstEvent
 
Int_t * fMgpaGainCounter
 
Int_t fMgpaGainNumber
 
TEcnaRun ** fMyCnaEBSM
 
TEcnaRun ** fMyCnaEEDee
 
TEcnaParEcalfMyEBEcal
 
TEcnaNumberingfMyEBNumbering
 
TEcnaObjectfMyEcnaEBObjectManager
 
TEcnaObjectfMyEcnaEEObjectManager
 
TEcnaParEcalfMyEEEcal
 
TEcnaNumberingfMyEENumbering
 
Int_t fNbOfSamples
 
Int_t fNbOfSelectedEvents
 
Int_t * fNbOfTreatedFedsInDee
 
Int_t * fNbOfTreatedFedsInStex
 
Int_t fNbOfTreatedStexs
 
Bool_t fOutcomeError
 
Int_t fPEDESTAL_GAP
 
Int_t fPEDESTAL_STD
 
Int_t fPEDSIM
 
Int_t fPHYSICS_GLOBAL
 
Int_t fRecNumber
 
Int_t fReqNbOfEvts
 
Int_t fRunNumber
 
Int_t * fRunTypeCounter
 
Int_t fRunTypeNumber
 
Int_t * fSMFromFedTcc
 
Int_t fSMIndexBegin
 
Int_t fSMIndexStop
 
Int_t * fStexDigiOK
 
Int_t fStexIndexBegin
 
Int_t fStexIndexStop
 
TString fStexName
 
Int_t * fStexNbOfTreatedEvents
 
Int_t fStexNumber
 
Int_t * fStexStatus
 
time_t * fTimeFirst
 
time_t * fTimeLast
 
Int_t fTreatedFedOrder
 
TString fTTBELL
 
Int_t iEvent_
 
Int_t nChannels_
 
TString sAnalysisName_
 
TString sFirstReqEvent_
 
TString sLastReqEvent_
 
TString sNbOfSamples_
 
TString sReqNbOfEvts_
 
TString sStexName_
 
TString sStexNumber_
 
unsigned int verbosity_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description


EcnaAnalyzer.h Update: 11/0'/2011 Authors: B.Fabbro (berna.nosp@m.rd.f.nosp@m.abbro.nosp@m.@cea.nosp@m..fr) DSM/IRFU/SPP CEA-Saclay Copyright: Those valid for CEA sofware

ECNA web page: http://cms-fabbro.web.cern.ch/cms-fabbro/

cna_new/Correlated_Noise_Analysis/ECNA_cna_1.htm

--------------------------------— Analysis name codes

  TString  AnalysisName: code for the analysis. According to this code,
                         the analyzer selects the event type
                         (PEDESTAL_STD, PEDESTAL_GAP, LASER_STD, etc...)
                         and some other event characteristics
                         (example: the gain in pedestal runs:
                          AnalysisName = "Ped1" or "Ped6" or "Ped12")
                         The string AnalysisName is automatically
                         included in the name of the results files

              AnalysisName  RunType         Gain    DBLS (Dynamic
              BaseLine Substraction)
              ..........................................

              AdcAny        any run type       0    No

              AdcPed1       fPEDESTAL_STD      3    No
              AdcPed6       fPEDESTAL_STD      2    No
              AdcPed12      fPEDESTAL_STD      1    No

              AdcPeg12      fPEDESTAL_GAP      1    No

              AdcLaser      fLASER_STD         0    No
              AdcPes12      fPEDSIM            0    No

              AdcPhys       fPHYSICS_GLOBAL    0    No


              AdcSPed1      fPEDESTAL_STD      3    Yes
              AdcSPed6      fPEDESTAL_STD      2    Yes
              AdcSPed12     fPEDESTAL_STD      1    Yes

              AdcSPeg12     fPEDESTAL_GAP      1    Yes

              AdcSLaser     fLASER_STD         0    Yes
              AdcSPes12     fPEDSIM            0    Yes

CalibCalorimetry/EcalCorrelatedNoiseAnalysisModules/src/EcnaAnalyzer.cc

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

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

Definition at line 135 of file EcnaAnalyzer.h.

Member Enumeration Documentation

anonymous enum
Enumerator
kChannels 
kGains 
kFirstGainId 

Definition at line 137 of file EcnaAnalyzer.h.

Constructor & Destructor Documentation

EcnaAnalyzer::EcnaAnalyzer ( const edm::ParameterSet pSet)
explicit

Definition at line 44 of file EcnaAnalyzer.cc.

References AnalysisOutcome(), gather_cfg::cout, digiProducer_, EBdigiCollection_, EEdigiCollection_, eventHeaderCollection_, eventHeaderProducer_, fAnalysisName, fANY_RUN, fBuildEventDistribBad, fBuildEventDistribGood, fChozenGainNumber, fChozenRunTypeNumber, fCurrentEventNumber, fDateFirst, fDateLast, fDeeDS5Memo1, fDeeDS5Memo2, fDeeIndexBegin, fDeeIndexStop, fDeeNumberString, fDynBaseLineSub, fESFromFedTcc, fEvtNumber, fEvtNumberMemo, fFedDigiOK, fFedId, fFedIdCounter, fFedNbOfTreatedEvents, fFedStatus, fFedStatusOrder, fFedTcc, fFirstReqEvent, fgMaxCar, fLASER_STD, fLastReqEvent, fMaxFedIdCounter, fMaxFedUnitCounter, fMaxMgpaGainCounter, fMaxRunTypeCounter, fMaxTreatedStexCounter, fMemoCutOK, fMemoDateFirstEvent, fMgpaGainCounter, fMgpaGainNumber, fMyCnaEBSM, fMyCnaEEDee, fMyEBEcal, fMyEBNumbering, fMyEcnaEBObjectManager, fMyEcnaEEObjectManager, fMyEEEcal, fMyEENumbering, fNbOfSamples, fNbOfSelectedEvents, fNbOfTreatedFedsInDee, fNbOfTreatedFedsInStex, fNbOfTreatedStexs, fOutcomeError, fPEDESTAL_GAP, fPEDESTAL_STD, fPEDSIM, fPHYSICS_GLOBAL, fRecNumber, fReqNbOfEvts, fRunNumber, fRunTypeCounter, fRunTypeNumber, fSMFromFedTcc, fSMIndexBegin, fSMIndexStop, fStexDigiOK, fStexIndexBegin, fStexIndexStop, fStexName, fStexNbOfTreatedEvents, fStexNumber, fStexStatus, fTimeFirst, fTimeLast, fTreatedFedOrder, fTTBELL, edm::ParameterSet::getParameter(), TEcnaParPaths::GetPathForResultsRootFiles(), mps_fire::i, TEcnaParEcal::MaxDeeInEE(), TEcnaParEcal::MaxDSInEE(), TEcnaParEcal::MaxSMInEB(), TEcnaParPaths::ResultsRootFilePath(), sAnalysisName_, sFirstReqEvent_, sLastReqEvent_, sNbOfSamples_, sReqNbOfEvts_, sStexName_, sStexNumber_, and AlCaHLTBitMon_QueryRunRegistry::string.

45  : verbosity_(pSet.getUntrackedParameter("verbosity", 1U)), nChannels_(0), iEvent_(0) {
46  // now do what ever initialization is needed
47 
48  using namespace edm;
49  using namespace std;
50 
53 
56 
57  std::cout << "*EcnaAnalyzer-constructor> Check path for resultsq Root files." << std::endl;
58 
59  if (myPathEB->GetPathForResultsRootFiles() == kFALSE) {
60  std::cout << "*EcnaAnalyzer-constructor> *** ERROR *** Path for result "
61  "files not found."
62  << std::endl;
63  kill(getpid(), SIGUSR2);
64  } else {
65  std::cout << "*EcnaAnalyzer-constructor> Path for result files found = " << myPathEB->ResultsRootFilePath()
66  << std::endl;
67  }
68 
69  if (myPathEE->GetPathForResultsRootFiles() == kFALSE) {
70  std::cout << "*EcnaAnalyzer-constructor> *** ERROR *** Path for result "
71  "files not found."
72  << std::endl;
73  kill(getpid(), SIGUSR2);
74  } else {
75  std::cout << "*EcnaAnalyzer-constructor> Path for result files found = " << myPathEE->ResultsRootFilePath()
76  << std::endl;
77  }
78 
79  std::cout << "*EcnaAnalyzer-constructor> Parameter initialization." << std::endl;
80 
81  fgMaxCar = (Int_t)512;
82  fTTBELL = '\007';
83  fOutcomeError = kFALSE;
84 
87 
90 
91  //==========================================================================================
92  //.................................. Get parameter values from python file
93  eventHeaderProducer_ = pSet.getParameter<std::string>("eventHeaderProducer");
94  digiProducer_ = pSet.getParameter<std::string>("digiProducer");
95 
96  eventHeaderCollection_ = pSet.getParameter<std::string>("eventHeaderCollection");
97  EBdigiCollection_ = pSet.getParameter<std::string>("EBdigiCollection");
98  EEdigiCollection_ = pSet.getParameter<std::string>("EEdigiCollection");
99 
100  sAnalysisName_ = pSet.getParameter<std::string>("sAnalysisName");
101  sNbOfSamples_ = pSet.getParameter<std::string>("sNbOfSamples");
102  sFirstReqEvent_ = pSet.getParameter<std::string>("sFirstReqEvent");
103  sLastReqEvent_ = pSet.getParameter<std::string>("sLastReqEvent");
104  sReqNbOfEvts_ = pSet.getParameter<std::string>("sReqNbOfEvts");
105  sStexName_ = pSet.getParameter<std::string>("sStexName");
106  sStexNumber_ = pSet.getParameter<std::string>("sStexNumber");
107 
108  fAnalysisName = sAnalysisName_.Data();
109  fNbOfSamples = atoi(sNbOfSamples_.Data());
110  fFirstReqEvent = atoi(sFirstReqEvent_.Data());
111  fLastReqEvent = atoi(sLastReqEvent_.Data());
112  fReqNbOfEvts = atoi(sReqNbOfEvts_.Data());
113  fStexName = sStexName_.Data();
114  fStexNumber = atoi(sStexNumber_.Data());
115 
116  //------------------------------- ERRORS in requested evts numbers
117  if (fFirstReqEvent < 1) {
118  fOutcomeError = AnalysisOutcome("ERR_FNEG");
119  }
120 
121  if ((fLastReqEvent >= fFirstReqEvent) && (fReqNbOfEvts > fLastReqEvent - fFirstReqEvent + 1)) {
122  fOutcomeError = AnalysisOutcome("ERR_LREQ");
123  }
124 
125  if (fOutcomeError == kTRUE)
126  return;
127  //===========================================================================================
128 
129  fRunTypeCounter = nullptr;
130  fMaxRunTypeCounter = 26;
131  fRunTypeCounter = new Int_t[fMaxRunTypeCounter];
132  for (Int_t i = 0; i < fMaxRunTypeCounter; i++) {
133  fRunTypeCounter[i] = 0;
134  }
135 
136  fMgpaGainCounter = nullptr;
137  fMaxMgpaGainCounter = 4; // Because chozen gain = 0,1,2,3
139  for (Int_t i = 0; i < fMaxMgpaGainCounter; i++) {
140  fMgpaGainCounter[i] = 0;
141  }
142 
143  fFedIdCounter = nullptr;
144  fMaxFedIdCounter = 54;
145  fFedIdCounter = new Int_t[fMaxFedIdCounter];
146  for (Int_t i = 0; i < fMaxFedIdCounter; i++) {
147  fFedIdCounter[i] = 0;
148  }
149 
150  fEvtNumber = 0;
151  fEvtNumberMemo = -1;
152  fRecNumber = 0;
153 
154  fDeeDS5Memo1 = 0;
155  fDeeDS5Memo2 = 0;
156 
159 
160  fMemoCutOK = 0;
161  fTreatedFedOrder = 0;
162  fNbOfTreatedStexs = 0;
163 
164  //-------------- Fed
165  if (fStexName == "SM") {
167  } // EB: FED Unit = SM
168  if (fStexName == "Dee") {
170  } // EE: FED Unit = Data Sector
171 
172  fFedDigiOK = new Int_t[fMaxFedUnitCounter];
173  for (Int_t i = 0; i < fMaxFedUnitCounter; i++) {
174  fFedDigiOK[i] = 0;
175  }
176 
178  for (Int_t i = 0; i < fMaxFedUnitCounter; i++) {
180  }
181 
182  fFedStatus = new Int_t[fMaxFedUnitCounter];
183  for (Int_t i = 0; i < fMaxFedUnitCounter; i++) {
184  fFedStatus[i] = 0;
185  }
186 
187  fFedStatusOrder = new Int_t[fMaxFedUnitCounter];
188  for (Int_t i = 0; i < fMaxFedUnitCounter; i++) {
189  fFedStatusOrder[i] = 0;
190  }
191 
192  fDeeNumberString = new TString[fMaxFedUnitCounter];
193  for (Int_t i = 0; i < fMaxFedUnitCounter; i++) {
194  fDeeNumberString[i] = "SM";
195  }
196 
197  if (fStexName == "Dee") {
198  fDeeNumberString[0] = "Sector1 Dee4";
199  fDeeNumberString[1] = "Sector2 Dee4";
200  fDeeNumberString[2] = "Sector3 Dee4";
201  fDeeNumberString[3] = "Sector4 Dee4";
202  fDeeNumberString[4] = "Sector5 Dee4-Dee3";
203  fDeeNumberString[5] = "Sector6 Dee3";
204  fDeeNumberString[6] = "Sector7 Dee3";
205  fDeeNumberString[7] = "Sector8 Dee3";
206  fDeeNumberString[8] = "Sector9 Dee3";
207  fDeeNumberString[9] = "Sector1 Dee1";
208  fDeeNumberString[10] = "Sector2 Dee1";
209  fDeeNumberString[11] = "Sector3 Dee1";
210  fDeeNumberString[12] = "Sector4 Dee1";
211  fDeeNumberString[13] = "Sector5 Dee1-Dee2";
212  fDeeNumberString[14] = "Sector6 Dee2";
213  fDeeNumberString[15] = "Sector7 Dee2";
214  fDeeNumberString[16] = "Sector8 Dee2";
215  fDeeNumberString[17] = "Sector9 Dee2";
216  }
217  //............................... arrays fSMFromFedDcc and fESFromFedTcc
218  //
219  // FED-TCC: 1 2 3 4 5 6 7 8 9
220  // Dee: 3 3 3 4 4 4 4 4-3 3
221  // DS: 7 8 9 1 2 3 4 5 6
222  // ES: 7 8 9 1 2 3 4 5 6 (ES = DS)
223  //
224  // FED-TCC: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
225  // 26 27
226  // SM: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
227  // 35 36 SM: -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14
228  // -15 -16 -17 -18
229  //
230  // FED-TCC: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
231  // 44 45
232  // SM: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
233  // 17 18
234  //
235  // FED-TCC: 46 47 48 49 50 51 52 53 54
236  // Dee: 2 2 2 1 1 1 1 1-2 2
237  // DS: 7 8 9 1 2 3 4 5 6
238  // ES: 16 17 18 10 11 12 13 14 15 (ES = DS + 9)
239 
240  Int_t MaxSMAndDS = fMyEBEcal->MaxSMInEB() + fMyEEEcal->MaxDSInEE();
241 
242  fSMFromFedTcc = new Int_t[MaxSMAndDS];
243  fESFromFedTcc = new Int_t[MaxSMAndDS];
244  for (Int_t nFedTcc = 1; nFedTcc <= MaxSMAndDS; nFedTcc++) {
245  fESFromFedTcc[nFedTcc - 1] = -1;
246  }
247 
248  for (Int_t nFedTcc = 1; nFedTcc <= 3; nFedTcc++) {
249  fESFromFedTcc[nFedTcc - 1] = nFedTcc + 6;
250  } // Dee3, ES 7,8,9
251  for (Int_t nFedTcc = 4; nFedTcc <= 9; nFedTcc++) {
252  fESFromFedTcc[nFedTcc - 1] = nFedTcc - 3;
253  } // Dee4, ES 1,2,3,4,5; Dee3, DS 5,6
254 
255  for (Int_t nFedTcc = 10; nFedTcc <= 27; nFedTcc++) {
256  fSMFromFedTcc[nFedTcc - 1] = nFedTcc + 9;
257  } // EB- SM 19 to 36
258  for (Int_t nFedTcc = 28; nFedTcc <= 45; nFedTcc++) {
259  fSMFromFedTcc[nFedTcc - 1] = nFedTcc - 27;
260  } // EB+ SM 1 to 18
261 
262  for (Int_t nFedTcc = 46; nFedTcc <= 48; nFedTcc++) {
263  fESFromFedTcc[nFedTcc - 1] = nFedTcc - 30;
264  } // Dee2, ES 16,17,18
265  for (Int_t nFedTcc = 49; nFedTcc <= 54; nFedTcc++) {
266  fESFromFedTcc[nFedTcc - 1] = nFedTcc - 39;
267  } // Dee1, ES 10,11,12,13,14; Dee2, ES 14,15
268 
269  //............................... Nb of treated events for "AdcPeg12" and
270  //"AdcSPeg12" analysis
271  //-------------- Stex
272  if (fStexName == "SM") {
274  } // EB: Stex = SM
275  if (fStexName == "Dee") {
277  } // EE: Stex = Dee
278 
280  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
282  }
283 
284  fTimeFirst = new time_t[fMaxTreatedStexCounter];
285  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
286  fTimeFirst[i] = 0;
287  }
288  fTimeLast = new time_t[fMaxTreatedStexCounter];
289  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
290  fTimeLast[i] = 0;
291  }
292 
294  ;
295  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
296  fMemoDateFirstEvent[i] = 0;
297  }
298 
299  Int_t MaxCar = fgMaxCar;
300  fDateFirst = new TString[fMaxTreatedStexCounter];
301  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
302  fDateFirst[i].Resize(MaxCar);
303  fDateFirst[i] = "*1st event date not found*";
304  }
305 
306  MaxCar = fgMaxCar;
307  fDateLast = new TString[fMaxTreatedStexCounter];
308  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
309  fDateLast[i].Resize(MaxCar);
310  fDateLast[i] = "*last event date not found*";
311  }
312 
313  fStexStatus = new Int_t[fMaxTreatedStexCounter];
314  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
315  fStexStatus[i] = 0;
316  }
317 
318  fStexDigiOK = new Int_t[fMaxTreatedStexCounter];
319  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
320  fStexDigiOK[i] = 0;
321  }
322 
324  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
326  }
327 
329  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
331  }
332 
333  //.......................... counters of events for GetSampleAdcValues
334  fBuildEventDistribBad = nullptr;
336  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
338  }
339 
340  fBuildEventDistribGood = nullptr;
342  for (Int_t i = 0; i < fMaxTreatedStexCounter; i++) {
344  }
345 
346  //----------------------------------- Analysis name codes
347  //------------------------------------------
348  //
349  // AnalysisName RunType Gain DBLS (Dynamic
350  // BaseLine Substraction)
351  //
352  // AdcAny any run type 0 no
353  //
354  // AdcPed1 fPEDESTAL_STD 3 No
355  // AdcPed6 fPEDESTAL_STD 2 No
356  // AdcPed12 fPEDESTAL_STD 1 No
357  //
358  // AdcPeg12 fPEDESTAL_GAP 1 No
359  //
360  // AdcLaser fLASER_STD 0 No
361  // AdcPes12 fPEDSIM 0 No
362  //
363  // AdcPhys fPHYSICS_GLOBAL 0 No
364  //
365  //
366  // AdcSPed1 fPEDESTAL_STD 3 Yes
367  // AdcSPed6 fPEDESTAL_STD 2 Yes
368  // AdcSPed12 fPEDESTAL_STD 1 Yes
369  //
370  // AdcSPeg12 fPEDESTAL_GAP 1 Yes
371  //
372  // AdcSLaser fLASER_STD 0 Yes
373  // AdcSPes12 fPEDSIM 0 Yes
374  //
375  //--------------------------------------------------------------------------------------------------
376 
377  //................ Run type list
378 
379  fLASER_STD = 4;
380  fPEDESTAL_STD = 9;
381  fPHYSICS_GLOBAL = 13;
382  fPEDESTAL_GAP = 18;
383  fPEDSIM = 24;
384 
385  fANY_RUN = 25;
386 
387  //................ Chozen run type from analysis name
388  fChozenRunTypeNumber = fANY_RUN; // default
389  if (fAnalysisName == "AdcAny") {
391  }
392  if (fAnalysisName == "AdcPed1" || fAnalysisName == "AdcPed6" || fAnalysisName == "AdcPed12" ||
393  fAnalysisName == "AdcSPed1" || fAnalysisName == "AdcSPed6" || fAnalysisName == "AdcSPed12") {
395  }
396  if (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12") {
398  }
399  if (fAnalysisName == "AdcLaser" || fAnalysisName == "AdcSLaser") {
401  }
402  if (fAnalysisName == "AdcPhys") {
404  }
405  if (fAnalysisName == "AdcPes12 " || fAnalysisName == "AdcSPes12 ") {
407  }
408 
409  //................ Gains from analysis name
410  fChozenGainNumber = 0; // default => event always accepted if fChozenGainNumber = 0 ( see
411  // USER's Analysis cut in ::analyze(...) )
412  if (fAnalysisName == "AdcAny") {
413  fChozenGainNumber = 0;
414  }
415  if (fAnalysisName == "AdcPed1" || fAnalysisName == "AdcSPed1") {
416  fChozenGainNumber = 3;
417  }
418  if (fAnalysisName == "AdcPed6" || fAnalysisName == "AdcSPed6") {
419  fChozenGainNumber = 2;
420  }
421  if (fAnalysisName == "AdcPed12" || fAnalysisName == "AdcSPed12") {
422  fChozenGainNumber = 1;
423  }
424  if (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12") {
425  fChozenGainNumber = 0;
426  }
427  if (fAnalysisName == "AdcLaser" || fAnalysisName == "AdcSLaser") {
428  fChozenGainNumber = 0;
429  }
430  if (fAnalysisName == "AdcPes12 " || fAnalysisName == "AdcSPes12 ") {
431  fChozenGainNumber = 0;
432  }
433  if (fAnalysisName == "AdcPhys") {
434  fChozenGainNumber = 0;
435  }
436 
437  //............... Flag for Dynamic BaseLine Substraction from analysis name
438  fDynBaseLineSub = "no"; // default
439  if (fAnalysisName == "AdcAny" || fAnalysisName == "AdcPed1" || fAnalysisName == "AdcPed6" ||
440  fAnalysisName == "AdcPed12" || fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcLaser" ||
441  fAnalysisName == "AdcPhys" || fAnalysisName == "AdcPes12 ") {
442  fDynBaseLineSub = "no";
443  }
444  if (fAnalysisName == "AdcSPed1" || fAnalysisName == "AdcSPed6" || fAnalysisName == "AdcSPed12" ||
445  fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcSLaser" || fAnalysisName == "AdcSPes12 ") {
446  fDynBaseLineSub = "yes";
447  }
448 
449  //....................... Index range for ECNA init and for loop on
450  // GetSampleAdcValues calls
451  if (fStexNumber == 0) {
452  if (fStexName == "SM") {
453  fSMIndexBegin = 0;
457  fDeeIndexBegin = 0;
458  fDeeIndexStop = 0;
459  }
460  if (fStexName == "Dee") {
461  fSMIndexBegin = 0;
462  fSMIndexStop = 0;
463  fDeeIndexBegin = 0;
467  }
468  } else {
469  if (fStexName == "SM") {
474  fDeeIndexBegin = 0;
475  fDeeIndexStop = 0;
476  }
477  if (fStexName == "Dee") {
478  fSMIndexBegin = 0;
479  fSMIndexStop = 0;
484  }
485  }
486 
487  //......... DATA DEPENDENT PARAMETERS
488  fRunNumber = 0;
489 
490  fMyCnaEBSM = nullptr;
491  fMyCnaEEDee = nullptr;
492 
493  fRunTypeNumber = -1;
494  fMgpaGainNumber = -1;
495 
496  fFedId = -1;
497  fFedTcc = -1;
498 
499  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fAnalysisName = " << fAnalysisName << std::endl;
500  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fNbOfSamples = " << fNbOfSamples << std::endl;
501  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fFirstReqEvent = " << fFirstReqEvent << std::endl;
502  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fLastReqEvent = " << fLastReqEvent << std::endl;
503  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fReqNbOfEvts = " << fReqNbOfEvts << std::endl;
504  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fStexName = " << fStexName << std::endl;
505  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fStexNumber = " << fStexNumber << std::endl;
506  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fChozenRunTypeNumber = " << fChozenRunTypeNumber << std::endl;
507  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> fChozenGainNumber = " << fChozenGainNumber << std::endl
508  << std::endl;
509 
510  std::cout << "*EcnaAnalyzer::EcnaAnalyzer-constructor> Init done. " << std::endl;
511 }
T getParameter(std::string const &) const
Int_t fFirstReqEvent
Definition: EcnaAnalyzer.h:195
Int_t * fStexNbOfTreatedEvents
Definition: EcnaAnalyzer.h:223
T getUntrackedParameter(std::string const &, T const &) const
Int_t * fFedStatus
Definition: EcnaAnalyzer.h:227
std::string digiProducer_
Definition: EcnaAnalyzer.h:158
time_t * fTimeLast
Definition: EcnaAnalyzer.h:244
Int_t fStexIndexBegin
Definition: EcnaAnalyzer.h:207
Int_t fDeeDS5Memo2
Definition: EcnaAnalyzer.h:221
Int_t * fFedIdCounter
Definition: EcnaAnalyzer.h:272
TString * fDateLast
Definition: EcnaAnalyzer.h:246
Int_t fRunTypeNumber
Definition: EcnaAnalyzer.h:194
Int_t * fBuildEventDistribBad
Definition: EcnaAnalyzer.h:179
Int_t fChozenRunTypeNumber
Definition: EcnaAnalyzer.h:189
Int_t fMaxMgpaGainCounter
Definition: EcnaAnalyzer.h:268
TString sAnalysisName_
Definition: EcnaAnalyzer.h:163
TEcnaParEcal * fMyEEEcal
Definition: EcnaAnalyzer.h:260
Int_t fDeeIndexStop
Definition: EcnaAnalyzer.h:206
Int_t fNbOfTreatedStexs
Definition: EcnaAnalyzer.h:232
Int_t * fFedNbOfTreatedEvents
Definition: EcnaAnalyzer.h:229
TEcnaNumbering * fMyEENumbering
Definition: EcnaAnalyzer.h:259
TString sNbOfSamples_
Definition: EcnaAnalyzer.h:164
Bool_t AnalysisOutcome(const TString &)
TString fAnalysisName
Definition: EcnaAnalyzer.h:187
Int_t fCurrentEventNumber
Definition: EcnaAnalyzer.h:176
Int_t * fFedDigiOK
Definition: EcnaAnalyzer.h:228
Int_t fPEDESTAL_GAP
Definition: EcnaAnalyzer.h:238
Int_t fDeeDS5Memo1
Definition: EcnaAnalyzer.h:220
Int_t * fMgpaGainCounter
Definition: EcnaAnalyzer.h:269
TString sLastReqEvent_
Definition: EcnaAnalyzer.h:166
TString fStexName
Definition: EcnaAnalyzer.h:197
TEcnaRun ** fMyCnaEEDee
Definition: EcnaAnalyzer.h:254
Int_t * fESFromFedTcc
Definition: EcnaAnalyzer.h:212
Int_t fMgpaGainNumber
Definition: EcnaAnalyzer.h:201
Int_t fStexNumber
Definition: EcnaAnalyzer.h:198
std::string EBdigiCollection_
Definition: EcnaAnalyzer.h:160
Bool_t fOutcomeError
Definition: EcnaAnalyzer.h:171
Int_t fMaxTreatedStexCounter
Definition: EcnaAnalyzer.h:219
Int_t fEvtNumber
Definition: EcnaAnalyzer.h:173
TString fDynBaseLineSub
Definition: EcnaAnalyzer.h:190
Int_t * fSMFromFedTcc
Definition: EcnaAnalyzer.h:211
TEcnaParEcal * fMyEBEcal
Definition: EcnaAnalyzer.h:257
Int_t fNbOfSelectedEvents
Definition: EcnaAnalyzer.h:177
Int_t fMaxFedUnitCounter
Definition: EcnaAnalyzer.h:226
Int_t fRecNumber
Definition: EcnaAnalyzer.h:175
Int_t fSMIndexBegin
Definition: EcnaAnalyzer.h:203
TString * fDateFirst
Definition: EcnaAnalyzer.h:245
TEcnaNumbering * fMyEBNumbering
Definition: EcnaAnalyzer.h:256
Int_t * fStexDigiOK
Definition: EcnaAnalyzer.h:222
Int_t fPEDESTAL_STD
Definition: EcnaAnalyzer.h:237
Int_t fTreatedFedOrder
Definition: EcnaAnalyzer.h:214
Int_t * fBuildEventDistribGood
Definition: EcnaAnalyzer.h:180
TEcnaRun ** fMyCnaEBSM
Definition: EcnaAnalyzer.h:253
Int_t fPHYSICS_GLOBAL
Definition: EcnaAnalyzer.h:240
Int_t * fNbOfTreatedFedsInStex
Definition: EcnaAnalyzer.h:234
Bool_t GetPathForResultsRootFiles()
Int_t fSMIndexStop
Definition: EcnaAnalyzer.h:204
Int_t fRunNumber
Definition: EcnaAnalyzer.h:193
Int_t MaxDSInEE()
time_t * fTimeFirst
Definition: EcnaAnalyzer.h:243
std::string eventHeaderProducer_
Definition: EcnaAnalyzer.h:157
TString fTTBELL
Definition: EcnaAnalyzer.h:151
Int_t fLastReqEvent
Definition: EcnaAnalyzer.h:196
Int_t fMemoCutOK
Definition: EcnaAnalyzer.h:231
Int_t nChannels_
Definition: EcnaAnalyzer.h:155
Int_t fDeeIndexBegin
Definition: EcnaAnalyzer.h:205
TString * fDeeNumberString
Definition: EcnaAnalyzer.h:217
Int_t fNbOfSamples
Definition: EcnaAnalyzer.h:192
Int_t * fRunTypeCounter
Definition: EcnaAnalyzer.h:266
TString ResultsRootFilePath()
std::string eventHeaderCollection_
Definition: EcnaAnalyzer.h:159
HLT enums.
Int_t MaxDeeInEE()
Int_t MaxSMInEB()
Int_t fEvtNumberMemo
Definition: EcnaAnalyzer.h:174
TString sFirstReqEvent_
Definition: EcnaAnalyzer.h:165
Int_t fLASER_STD
Definition: EcnaAnalyzer.h:239
Int_t fStexIndexStop
Definition: EcnaAnalyzer.h:208
std::string EEdigiCollection_
Definition: EcnaAnalyzer.h:161
TString sStexNumber_
Definition: EcnaAnalyzer.h:169
Int_t * fMemoDateFirstEvent
Definition: EcnaAnalyzer.h:248
Int_t * fFedStatusOrder
Definition: EcnaAnalyzer.h:215
Int_t fReqNbOfEvts
Definition: EcnaAnalyzer.h:200
Int_t * fStexStatus
Definition: EcnaAnalyzer.h:224
TString sReqNbOfEvts_
Definition: EcnaAnalyzer.h:167
TEcnaObject * fMyEcnaEBObjectManager
Definition: EcnaAnalyzer.h:250
Int_t fMaxRunTypeCounter
Definition: EcnaAnalyzer.h:265
Int_t fChozenGainNumber
Definition: EcnaAnalyzer.h:188
unsigned int verbosity_
Definition: EcnaAnalyzer.h:154
TString sStexName_
Definition: EcnaAnalyzer.h:168
TEcnaObject * fMyEcnaEEObjectManager
Definition: EcnaAnalyzer.h:251
Int_t fMaxFedIdCounter
Definition: EcnaAnalyzer.h:271
Int_t * fNbOfTreatedFedsInDee
Definition: EcnaAnalyzer.h:233
EcnaAnalyzer::~EcnaAnalyzer ( )
override

Definition at line 514 of file EcnaAnalyzer.cc.

References CheckMsg(), gather_cfg::cout, TauDecayModes::dec, fBuildEventDistribBad, fBuildEventDistribGood, fDateFirst, fDateLast, fDeeIndexBegin, fDeeIndexStop, fFedId, fFedIdCounter, alignBH_cfg::fixed, fMaxFedIdCounter, fMaxMgpaGainCounter, fMaxRunTypeCounter, fMgpaGainCounter, fMgpaGainNumber, fMyCnaEBSM, fMyCnaEEDee, fMyEBEcal, fMyEBNumbering, fMyEEEcal, fMyEENumbering, fOutcomeError, fRunTypeCounter, fRunTypeNumber, fSMIndexBegin, fSMIndexStop, fStexIndexBegin, fStexIndexStop, fStexName, fStexNumber, fTimeFirst, fTimeLast, fTTBELL, gainvalue(), TEcnaRun::GetReadyToCompute(), mps_fire::i, n0, runtype(), TEcnaRun::SampleValues(), TEcnaRun::StartStopDate(), and TEcnaRun::StartStopTime().

514  {
515  // do anything here that needs to be done at destruction time
516  // (e.g. close files, deallocate resources etc.)
517 
518  using namespace std;
519  //..................................... format numerical values
520  std::cout << std::setiosflags(std::ios::showpoint | std::ios::uppercase);
521  std::cout << std::setprecision(3) << std::setw(6);
522  cout.setf(std::ios::dec, std::ios::basefield);
523  cout.setf(std::ios::fixed, std::ios::floatfield);
524  cout.setf(std::ios::left, std::ios::adjustfield);
525  cout.setf(std::ios::right, std::ios::adjustfield);
526 
527  std::cout << "EcnaAnalyzer::~EcnaAnalyzer()> destructor is going to be executed." << std::endl;
528 
529  if (fOutcomeError == kTRUE)
530  return;
531 
532  //-------------------------------------------------------------------------------
533 
534  //....................................................... EB (SM)
535  if (fMyCnaEBSM == nullptr && fStexName == "SM") {
536  std::cout << std::endl
537  << "!EcnaAnalyzer-destructor> **** ERROR **** fMyCnaEBSM = " << fMyCnaEBSM
538  << ". !===> ECNA HAS NOT BEEN INITIALIZED." << std::endl
539  << " Last event run type = " << runtype(fRunTypeNumber) << ", fRunTypeNumber = " << fRunTypeNumber
540  << ", last event Mgpa gain = " << gainvalue(fMgpaGainNumber) << ", fMgpaGainNumber = " << fMgpaGainNumber
541  << ", last event fFedId(+601) = " << fFedId + 601 << std::endl
542  << std::endl;
543  } else {
544  for (Int_t iSM = fSMIndexBegin; iSM < fSMIndexStop; iSM++) {
545  if (fMyCnaEBSM[iSM] != nullptr) {
546  //........................................ register dates 1 and 2
547  fMyCnaEBSM[iSM]->StartStopDate(fDateFirst[iSM], fDateLast[iSM]);
548  fMyCnaEBSM[iSM]->StartStopTime(fTimeFirst[iSM], fTimeLast[iSM]);
549 
550  //........................................ Init .root file
552  fMyCnaEBSM[iSM]->SampleValues();
553 
554  //........................................ write the sample values in
555  //.root file
556  if (fMyCnaEBSM[iSM]->WriteRootFile() == kFALSE) {
557  std::cout << "!EcnaAnalyzer-destructor> PROBLEM with write ROOT file for SM" << iSM + 1 << fTTBELL
558  << std::endl;
559  }
560  } else {
561  std::cout << "*EcnaAnalyzer-destructor> Calculations and writing on "
562  "file already done for SM "
563  << iSM + 1 << std::endl;
564  }
565  }
566  delete fMyCnaEBSM;
567  }
568  //....................................................... EE (Dee)
569 
570  if (fMyCnaEEDee == nullptr && fStexName == "Dee") {
571  std::cout << std::endl
572  << "!EcnaAnalyzer-destructor> **** ERROR **** fMyCnaEEDee = " << fMyCnaEEDee
573  << ". !===> ECNA HAS NOT BEEN INITIALIZED." << std::endl
574  << " Last event run type = " << runtype(fRunTypeNumber) << ", fRunTypeNumber = " << fRunTypeNumber
575  << ", last event Mgpa gain = " << gainvalue(fMgpaGainNumber) << ", fMgpaGainNumber = " << fMgpaGainNumber
576  << ", last event fFedId(+601) = " << fFedId + 601 << std::endl
577  << std::endl;
578  } else {
579  for (Int_t iDee = fDeeIndexBegin; iDee < fDeeIndexStop; iDee++) {
580  if (fMyCnaEEDee[iDee] != nullptr) {
581  //........................................ register dates 1 and 2
582  fMyCnaEEDee[iDee]->StartStopDate(fDateFirst[iDee], fDateLast[iDee]);
583  fMyCnaEEDee[iDee]->StartStopTime(fTimeFirst[iDee], fTimeLast[iDee]);
584 
585  //........................................ Init .root file
587  fMyCnaEEDee[iDee]->SampleValues();
588 
589  //........................................ write the sample values in
590  //.root file
591  if (fMyCnaEEDee[iDee]->WriteRootFile() == kFALSE) {
592  std::cout << "!EcnaAnalyzer-destructor> PROBLEM with write ROOT file "
593  "for Dee"
594  << iDee + 1 << fTTBELL << std::endl;
595  }
596  } else {
597  std::cout << "*EcnaAnalyzer-destructor> Calculations and writing on "
598  "file already done for Dee "
599  << iDee + 1 << std::endl;
600  }
601  }
602  delete fMyCnaEEDee;
603  }
604  std::cout << endl;
605 
606  //-----------------------------------------------------------------------------------
607 
608  std::cout << "*EcnaAnalyzer-destructor> Status of events returned by "
609  "GetSampleAdcValues(): "
610  << std::endl;
611 
612  for (Int_t i0Stex = fStexIndexBegin; i0Stex < fStexIndexStop; i0Stex++) {
613  std::cout << fStexName << i0Stex + 1 << "> Status OK: " << fBuildEventDistribGood[i0Stex]
614  << " / ERROR(S): " << fBuildEventDistribBad[i0Stex];
615  if (fBuildEventDistribBad[i0Stex] > 0) {
616  std::cout << " <=== SHOULD BE EQUAL TO ZERO ! " << fTTBELL;
617  }
618  std::cout << std::endl;
619  }
620 
621  std::cout << std::endl << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << std::endl;
622 
623  std::cout << "*EcnaAnalyzer-destructor> Run types seen in event headers "
624  "before selection:"
625  << std::endl;
626 
627  for (Int_t i = 0; i < fMaxRunTypeCounter; i++) {
628  std::cout << " => " << std::setw(10) << fRunTypeCounter[i] << " event header(s) with run type " << runtype(i)
629  << std::endl;
630  }
631 
632  std::cout << std::endl << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << std::endl;
633 
634  std::cout << "*EcnaAnalyzer-destructor> Mgpa gains seen in event headers "
635  "before selection:"
636  << std::endl;
637 
638  for (Int_t i = 0; i < fMaxMgpaGainCounter; i++) {
639  std::cout << " => " << std::setw(10) << fMgpaGainCounter[i] << " event header(s) with gain " << gainvalue(i)
640  << std::endl;
641  }
642 
643  std::cout << std::endl << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << std::endl;
644 
645  std::cout << "*EcnaAnalyzer-destructor> Numbers of selected events for each FED:" << std::endl;
646 
647  for (Int_t i = 0; i < fMaxFedIdCounter; i++) {
648  std::cout << " => FedId " << i + 601 << ": " << std::setw(10) << fFedIdCounter[i] << " events" << std::endl;
649  }
650 
651  std::cout << std::endl << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << std::endl;
652 
653  if (fStexNumber == 0) {
654  // std::cout << "*EcnaAnalyzer-destructor> fDateFirst = " << fDateFirst[0]
655  // << std::endl
656  // << " fDateLast = " <<
657  // fDateLast[fMaxTreatedStexCounter-1] << std::endl << std::endl;
658  }
659  if (fStexNumber > 0) {
660  std::cout << "*EcnaAnalyzer-destructor> fDateFirst = " << fDateFirst[fStexNumber - 1] << std::endl
661  << " fDateLast = " << fDateLast[fStexNumber - 1] << std::endl
662  << std::endl;
663  }
664 
665  std::cout << std::endl << "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " << std::endl;
666 
667  Int_t n0 = 0;
668  CheckMsg(n0);
669 
670  delete fMyEBNumbering;
671  delete fMyEENumbering;
672 
673  delete fMyEBEcal;
674  delete fMyEEEcal;
675 
676  std::cout << "*EcnaAnalyzer-destructor> End of execution." << std::endl;
677 }
time_t * fTimeLast
Definition: EcnaAnalyzer.h:244
Int_t fStexIndexBegin
Definition: EcnaAnalyzer.h:207
Int_t * fFedIdCounter
Definition: EcnaAnalyzer.h:272
TString * fDateLast
Definition: EcnaAnalyzer.h:246
Int_t fRunTypeNumber
Definition: EcnaAnalyzer.h:194
Int_t * fBuildEventDistribBad
Definition: EcnaAnalyzer.h:179
TString runtype(const Int_t &)
Int_t fMaxMgpaGainCounter
Definition: EcnaAnalyzer.h:268
TEcnaParEcal * fMyEEEcal
Definition: EcnaAnalyzer.h:260
Int_t fDeeIndexStop
Definition: EcnaAnalyzer.h:206
TEcnaNumbering * fMyEENumbering
Definition: EcnaAnalyzer.h:259
Int_t gainvalue(const Int_t &)
void CheckMsg(const Int_t &, const Int_t &)
void GetReadyToCompute()
Definition: TEcnaRun.cc:1219
Int_t * fMgpaGainCounter
Definition: EcnaAnalyzer.h:269
TString fStexName
Definition: EcnaAnalyzer.h:197
TEcnaRun ** fMyCnaEEDee
Definition: EcnaAnalyzer.h:254
Int_t fMgpaGainNumber
Definition: EcnaAnalyzer.h:201
Int_t fStexNumber
Definition: EcnaAnalyzer.h:198
Bool_t fOutcomeError
Definition: EcnaAnalyzer.h:171
int n0
Definition: AMPTWrapper.h:34
TEcnaParEcal * fMyEBEcal
Definition: EcnaAnalyzer.h:257
void SampleValues()
Definition: TEcnaRun.cc:1257
Int_t fSMIndexBegin
Definition: EcnaAnalyzer.h:203
TString * fDateFirst
Definition: EcnaAnalyzer.h:245
TEcnaNumbering * fMyEBNumbering
Definition: EcnaAnalyzer.h:256
Int_t * fBuildEventDistribGood
Definition: EcnaAnalyzer.h:180
TEcnaRun ** fMyCnaEBSM
Definition: EcnaAnalyzer.h:253
Int_t fSMIndexStop
Definition: EcnaAnalyzer.h:204
time_t * fTimeFirst
Definition: EcnaAnalyzer.h:243
TString fTTBELL
Definition: EcnaAnalyzer.h:151
Int_t fDeeIndexBegin
Definition: EcnaAnalyzer.h:205
Int_t * fRunTypeCounter
Definition: EcnaAnalyzer.h:266
Int_t fStexIndexStop
Definition: EcnaAnalyzer.h:208
void StartStopTime(time_t, time_t)
Definition: TEcnaRun.cc:1198
Int_t fMaxRunTypeCounter
Definition: EcnaAnalyzer.h:265
Int_t fMaxFedIdCounter
Definition: EcnaAnalyzer.h:271
void StartStopDate(const TString &, const TString &)
Definition: TEcnaRun.cc:1206

Member Function Documentation

Bool_t EcnaAnalyzer::AnalysisOutcome ( const TString &  s_opt)

Definition at line 1488 of file EcnaAnalyzer.cc.

References CheckMsg(), gather_cfg::cout, fCurrentEventNumber, fFirstReqEvent, fLastReqEvent, fMyEBEcal, fMyEEEcal, fNbOfSelectedEvents, fNbOfTreatedStexs, fReqNbOfEvts, fStexName, fStexNumber, TEcnaParEcal::MaxDeeInEE(), TEcnaParEcal::MaxSMInEB(), n0, and mps_fire::result.

Referenced by analyze(), and EcnaAnalyzer().

1488  {
1489  //---- STOP if end of analysis
1490 
1491  Bool_t result = kFALSE;
1492 
1493  if (s_opt == "EVT") {
1494  Int_t MaxNbOfStex = 0;
1495  if (fStexName == "SM") {
1496  MaxNbOfStex = fMyEBEcal->MaxSMInEB();
1497  }
1498  if (fStexName == "Dee") {
1499  MaxNbOfStex = fMyEEEcal->MaxDeeInEE();
1500  }
1501 
1502  if (((fStexNumber > 0 && fNbOfTreatedStexs == 1) || (fStexNumber == 0 && fNbOfTreatedStexs == MaxNbOfStex)) &&
1505  std::cout << std::endl
1506  << "**************************** ANALYSIS REPORT > OK "
1507  "**************************************"
1508  << std::endl
1509  << "*EcnaAnalyzer::AnalysisOutcome(...)> The maximum requested "
1510  "number of events and the maximum"
1511  << std::endl
1512  << " number of treated " << fStexName << "'s have been reached."
1513  << std::endl
1514  << " Analysis successfully "
1515  "ended from EcnaAnalyzer "
1516  << std::endl
1517  << " by SIGNAL: "
1518  "kill(getpid(),SIGUSR2)."
1519  << std::endl
1520  << " Number of selected "
1521  "events = "
1522  << fNbOfSelectedEvents << std::endl
1523  << " Last requested event "
1524  "number = "
1525  << fLastReqEvent << std::endl
1526  << " Current event number "
1527  " = "
1528  << fCurrentEventNumber << std::endl;
1529 
1530  Int_t n0 = 0;
1531  CheckMsg(n0);
1532 
1533  std::cout << "***********************************************************"
1534  "*****************************"
1535  << std::endl
1536  << std::endl;
1537 
1538  result = kTRUE;
1539  kill(getpid(), SIGUSR2);
1540  }
1541 
1543  !((fStexNumber > 0 && fNbOfTreatedStexs == 1) || (fStexNumber == 0 && fNbOfTreatedStexs == MaxNbOfStex))) {
1544  std::cout << std::endl
1545  << "**************************** ANALYSIS REPORT >>> *** "
1546  "WARNING *** WARNING *** WARNING ***"
1547  << std::endl
1548  << "*EcnaAnalyzer::AnalysisOutcome(...)> Last event reached "
1549  "before completion of analysis."
1550  << std::endl
1551  << " Analysis ended from "
1552  "EcnaAnalyzer "
1553  << std::endl
1554  << " by SIGNAL: "
1555  "kill(getpid(),SIGUSR2)."
1556  << std::endl
1557  << " Number of selected "
1558  "events = "
1559  << fNbOfSelectedEvents << std::endl
1560  << " Last requested event "
1561  "number = "
1562  << fLastReqEvent << std::endl
1563  << " Current event number "
1564  " = "
1565  << fCurrentEventNumber << std::endl;
1566 
1567  Int_t n0 = 0;
1568  CheckMsg(n0);
1569 
1570  std::cout << "***********************************************************"
1571  "*****************************"
1572  << std::endl
1573  << std::endl;
1574 
1575  result = kTRUE;
1576  kill(getpid(), SIGUSR2);
1577  }
1578  } else {
1579  if (s_opt == "ERR_FNEG") {
1580  std::cout << std::endl
1581  << "**************************** ANALYSIS REPORT >>> **** ERROR **** "
1582  "ERROR **** ERROR ******"
1583  << std::endl
1584  << "*EcnaAnalyzer::AnalysisOutcome(...)> First event number = " << fFirstReqEvent
1585  << ". Should be strictly potitive." << std::endl
1586  << " Analysis ended from EcnaAnalyzer " << std::endl
1587  << " by SIGNAL: kill(getpid(),SIGUSR2)." << std::endl;
1588 
1589  std::cout << "***********************************************************"
1590  "*****************************"
1591  << std::endl
1592  << std::endl;
1593 
1594  result = kTRUE;
1595  kill(getpid(), SIGUSR2);
1596  }
1597  if (s_opt == "ERR_LREQ") {
1598  std::cout << std::endl
1599  << "**************************** ANALYSIS REPORT >>> **** ERROR **** "
1600  "ERROR **** ERROR ******"
1601  << std::endl
1602  << "*EcnaAnalyzer::analyze(...)> Requested number of events = " << fReqNbOfEvts << "." << std::endl
1603  << " Too large compared to the event "
1604  "range: "
1605  << fFirstReqEvent << " - " << fLastReqEvent << std::endl
1606  << " Analysis ended from EcnaAnalyzer " << std::endl
1607  << " by SIGNAL: kill(getpid(),SIGUSR2)." << std::endl;
1608 
1609  std::cout << "***********************************************************"
1610  "*****************************"
1611  << std::endl
1612  << std::endl;
1613 
1614  result = kTRUE;
1615  kill(getpid(), SIGUSR2);
1616  }
1617  }
1618  return result;
1619 } // end of EcnaAnalyzer::AnalysisOutcome(const Int_t& n_option)
Int_t fFirstReqEvent
Definition: EcnaAnalyzer.h:195
TEcnaParEcal * fMyEEEcal
Definition: EcnaAnalyzer.h:260
Int_t fNbOfTreatedStexs
Definition: EcnaAnalyzer.h:232
void CheckMsg(const Int_t &, const Int_t &)
Int_t fCurrentEventNumber
Definition: EcnaAnalyzer.h:176
TString fStexName
Definition: EcnaAnalyzer.h:197
Int_t fStexNumber
Definition: EcnaAnalyzer.h:198
int n0
Definition: AMPTWrapper.h:34
TEcnaParEcal * fMyEBEcal
Definition: EcnaAnalyzer.h:257
Int_t fNbOfSelectedEvents
Definition: EcnaAnalyzer.h:177
Int_t fLastReqEvent
Definition: EcnaAnalyzer.h:196
Int_t MaxDeeInEE()
Int_t MaxSMInEB()
Int_t fReqNbOfEvts
Definition: EcnaAnalyzer.h:200
void EcnaAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 685 of file EcnaAnalyzer.cc.

References ecalMGPA::adc(), EcalMGPASample::adc(), AnalysisOutcome(), edm::SortedCollection< T, SORT >::begin(), edm::DataFrameContainer::begin(), MessageLogger_cfi::cerr, CheckMsg(), gather_cfg::cout, TauDecayModes::dec, digiProducer_, EBdigiCollection_, EEdigiCollection_, edm::SortedCollection< T, SORT >::end(), edm::DataFrameContainer::end(), edm::EventID::event(), eventHeaderCollection_, eventHeaderProducer_, cppFunctionSkipper::exception, fAnalysisName, fANY_RUN, fBuildEventDistribBad, fBuildEventDistribGood, fChozenGainNumber, fChozenRunTypeNumber, fCurrentEventNumber, fDateFirst, fDateLast, fDeeDS5Memo1, fDeeDS5Memo2, fDeeIndexBegin, fDeeIndexStop, fDynBaseLineSub, fESFromFedTcc, fEvtNumber, fEvtNumberMemo, fFedDigiOK, fFedId, fFedIdCounter, fFedNbOfTreatedEvents, fFedStatus, fFedStatusOrder, fFedTcc, fFirstReqEvent, alignBH_cfg::fixed, fLastReqEvent, fMaxFedIdCounter, fMaxFedUnitCounter, fMaxMgpaGainCounter, fMaxRunTypeCounter, fMaxTreatedStexCounter, fMemoCutOK, fMemoDateFirstEvent, fMgpaGainCounter, fMgpaGainNumber, fMyCnaEBSM, fMyCnaEEDee, fMyEBEcal, fMyEBNumbering, fMyEcnaEBObjectManager, fMyEcnaEEObjectManager, fMyEEEcal, fMyEENumbering, fNbOfSamples, fNbOfSelectedEvents, fNbOfTreatedFedsInDee, fNbOfTreatedFedsInStex, fNbOfTreatedStexs, fRecNumber, fReqNbOfEvts, fRunNumber, fRunTypeCounter, fRunTypeNumber, fSMFromFedTcc, fSMIndexBegin, fSMIndexStop, fStexDigiOK, fStexIndexBegin, fStexIndexStop, fStexName, fStexNbOfTreatedEvents, fStexNumber, fStexStatus, fTimeFirst, fTimeLast, fTreatedFedOrder, fTTBELL, TEcnaNumbering::Get0TowEchaFrom1SMCrys(), TEcnaNumbering::Get1DeeSCEcnaFrom1DeeCrys(), TEcnaNumbering::Get1SCEchaFrom1DeeCrys(), TEcnaNumbering::Get1SMTowFrom1SMCrys(), edm::Event::getByLabel(), TEcnaNumbering::GetDeeDirViewedFromIP(), TEcnaRun::GetReadyToCompute(), TEcnaRun::GetReadyToReadData(), edm::EventBase::id(), EBDetId::ism(), EEDetId::ix(), TEcnaParEcal::MaxCrysIYInSC(), TEcnaParEcal::MaxCrysPhiInTow(), TEcnaParEcal::MaxDeeInEE(), TEcnaParEcal::MaxDSInEE(), TEcnaParEcal::MaxSCIYInDee(), TEcnaParEcal::MaxSMInEB(), TEcnaParEcal::MaxTowPhiInSM(), nChannels_, edm::Handle< T >::product(), edm::EventID::run(), runtype(), EcalDataFrame::sample(), TEcnaRun::SampleValues(), edm::DataFrameContainer::size(), TEcnaRun::StartStopDate(), TEcnaRun::StartStopTime(), edm::EventBase::time(), and edm::Timestamp::value().

685  {
686  using namespace std;
687  //..................................... format numerical values
688  std::cout << std::setiosflags(std::ios::showpoint | std::ios::uppercase);
689  std::cout << std::setprecision(3) << std::setw(6);
690  cout.setf(std::ios::dec, std::ios::basefield);
691  cout.setf(std::ios::fixed, std::ios::floatfield);
692  cout.setf(std::ios::left, std::ios::adjustfield);
693  cout.setf(std::ios::right, std::ios::adjustfield);
694 
695  using namespace edm;
696 
697  fRecNumber++;
698 
699  Int_t iFreq = (fLastReqEvent - fFirstReqEvent + 1) / 5;
700  if (iFreq <= 0) {
701  iFreq = 10000;
702  }
703 
704  Int_t MaxSMAndDS = fMyEBEcal->MaxSMInEB() + fMyEEEcal->MaxDSInEE();
705 
706  //********************************************* EVENT TREATMENT
707  //********************************
708  Handle<EcalRawDataCollection> pEventHeader;
709  const EcalRawDataCollection *myEventHeader = nullptr;
710  try {
712  myEventHeader = pEventHeader.product();
713  } catch (std::exception &ex) {
714  std::cerr << "Error! can't get the product " << eventHeaderCollection_.c_str() << std::endl;
715  }
716  //........... Decode myEventHeader infos
717  for (EcalRawDataCollection::const_iterator headerItr = myEventHeader->begin(); headerItr != myEventHeader->end();
718  ++headerItr) {
719  //===> fRunNumber, fRunTypeNumber, fMgpaGainNumber, fFedId, fEvtNumber
720  // will be used in AnalysisOutcome(...) below
721  fRunNumber = (Int_t)headerItr->getRunNumber();
722  if (fRunNumber <= 0) {
723  fRunNumber = (Int_t)iEvent.id().run();
724  }
725  fRunTypeNumber = (Int_t)headerItr->getRunType();
726  fMgpaGainNumber = (Int_t)headerItr->getMgpaGain();
727  fFedId = (Int_t)headerItr->fedId() - 601; // 1st Fed = 601, FedId = Fed number - 1
728  fEvtNumber = (Int_t)headerItr->getLV1();
729  if (fEvtNumber <= 0) {
730  fEvtNumber = (Int_t)iEvent.id().event();
731  }
732 
733  if (fEvtNumber != fEvtNumberMemo) {
735 
736  //============================================
737  // cmsRun INTERRUPTION if analysis complete
738  // or if fCurrentEventNumber >= LastReqEvent
739  //============================================
740  if (AnalysisOutcome("EVT") == kTRUE) {
741  return;
742  }
743 
744  // no interruption => event has to be analyzed
745 
747 
748  if (fRecNumber == 1 || fRecNumber == 50 || fRecNumber == 100 || fRecNumber == 500 || fRecNumber == 1000 ||
749  fRecNumber % iFreq == 0) {
750  Int_t n1 = 1;
751  CheckMsg(n1);
752  }
753 
755  return; // skip events before fFirstReqEvent
756  }
757 
758  //.................. Increment Run type and MgpaGain counters
761  }
764  }
765 
766  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User's analysis cut
767  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
768 
771  return;
772 
773  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
774 
775  if (fMemoCutOK == 0) {
776  fMemoCutOK = 1;
777  }
778 
779  //---- Accelerating selection with "FED-TCC" number [ from
780  // headerItr->getDccInTCCCommand() ]
781  // Arrays fSMFromFedTcc[] and fESFromFedTcc[] are initialised in Init()
782 
783  if (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcPhys" ||
784  fAnalysisName == "AdcAny") {
785  fFedTcc = (Int_t)headerItr->getDccInTCCCommand();
786 
787  if (fFedTcc >= 1 && fFedTcc <= MaxSMAndDS) {
788  if (fStexName == "SM") {
789  if (fFedTcc < 10 || fFedTcc > 45)
790  return;
791 
792  if (fSMFromFedTcc[fFedTcc - 1] >= 1 && fSMFromFedTcc[fFedTcc - 1] <= fMyEBEcal->MaxSMInEB() &&
794  return;
795  }
796 
797  if (fStexName == "Dee") {
798  if (fFedTcc >= 10 && fFedTcc <= 45)
799  return;
800 
801  if (fESFromFedTcc[fFedTcc - 1] >= 1 && fESFromFedTcc[fFedTcc - 1] <= fMyEEEcal->MaxDSInEE() &&
803  return;
804  }
805  } // end of if( fFedTcc >= 1 && fFedTcc <= MaxSMAndDS )
806  } // end of if( fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12"
807  // ...)
808 
809  //.................. Increment FedId counters
810  if (fFedId >= 0 && fFedId < fMaxFedIdCounter) {
812  }
813 
814  } // end of for(EcalRawDataCollection::const_iterator
815  // headerItr=myEventHeader->begin(); headerItr !=
816  // myEventHeader->end();++headerItr)
817 
818  if (fMemoCutOK == 0)
819  return; // return if no event passed the user's analysis cut
820 
821  //========================== SELECTED EVENTS ================================
823  if (fNbOfSelectedEvents == 1) {
824  Int_t n2 = 2;
825  CheckMsg(n2);
826  }
827 
828  //============================ Ecna init for the pointers array
829  //=================================
830  //.................................................................. EB (SM)
831  if (fMyCnaEBSM == nullptr && fStexName == "SM") {
833  for (Int_t i0SM = 0; i0SM < fMyEBEcal->MaxSMInEB(); i0SM++) {
834  fMyCnaEBSM[i0SM] = nullptr;
835  }
836  }
837  //.................................................................. EE (Dee)
838  if (fMyCnaEEDee == nullptr && fStexName == "Dee") {
840  for (Int_t iDee = 0; iDee < fMyEEEcal->MaxDeeInEE(); iDee++) {
841  fMyCnaEEDee[iDee] = nullptr;
842  }
843  }
844 
845  //============================ EVENT TREATMENT ==============================
846  Int_t MaxNbOfStex = 0;
847  if (fStexName == "SM") {
848  MaxNbOfStex = fMyEBEcal->MaxSMInEB();
849  }
850  if (fStexName == "Dee") {
851  MaxNbOfStex = fMyEEEcal->MaxDeeInEE();
852  }
853 
854  if ((fStexNumber > 0 && fNbOfTreatedStexs == 0) || (fStexNumber == 0 && fNbOfTreatedStexs < MaxNbOfStex)) {
855  //================================================================= Record
856  // type EB (SM)
857  if (fStexName == "SM" && fSMIndexBegin < fSMIndexStop) {
858  //......................................... Get digisEB
859  Handle<EBDigiCollection> pdigisEB;
860  const EBDigiCollection *digisEB = nullptr;
861  try {
862  iEvent.getByLabel(digiProducer_, EBdigiCollection_, pdigisEB);
863  digisEB = pdigisEB.product();
864  } catch (std::exception &ex) {
865  std::cerr << "Error! can't get the product " << EBdigiCollection_.c_str() << std::endl;
866  }
867 
868  // Initialize vectors if not already done
869  if (int(digisEB->size()) > nChannels_) {
870  nChannels_ = digisEB->size();
871  }
872 
873  // Int_t print_count = 0;
874  if (Int_t(digisEB->end() - digisEB->begin()) >= 0 &&
875  Int_t(digisEB->end() - digisEB->begin()) <= Int_t(digisEB->size())) {
876  //..........................................EB
877  //===============================================================================
878  //
879  // Loop over Ecal barrel digisEB (Xtals)
880  //
881  //===============================================================================
882 
883  for (EBDigiCollection::const_iterator digiItr = digisEB->begin(); digiItr != digisEB->end(); ++digiItr) {
884  EBDetId id_crystal(digiItr->id());
885  // Int_t HashedIndex = id_crystal.hashedIndex();
886 
887  Int_t i0SM = id_crystal.ism() - 1; // <============== GET the SM number - 1 here
888 
889  if (i0SM >= 0 && i0SM < fMaxTreatedStexCounter) {
890  if (fMyCnaEBSM[i0SM] == nullptr && fStexStatus[i0SM] != 2) {
891  //=============================== Init Ecna EB
892  //===============================
896 
897  std::cout << "*EcnaAnalyzer::analyze(...)> ********* INIT ECNA "
898  "EB ********* "
899  << std::endl
900  << " fAnalysisName = " << fAnalysisName << std::endl
901  << " fRunNumber = " << fRunNumber << std::endl
902  << " fFirstReqEvent = " << fFirstReqEvent << std::endl
903  << " fLastReqEvent = " << fLastReqEvent << std::endl
904  << " fReqNbOfEvts = " << fReqNbOfEvts << std::endl
905  << " SM = " << i0SM + 1 << std::endl
906  << " run type = " << runtype(fRunTypeNumber)
907  << std::endl;
908  //============================================================================
909  }
910 
911  if (fStexStatus[i0SM] < 2) // nothing to do if status=2 reached
912  {
913  fStexDigiOK[i0SM]++;
914  if (fStexDigiOK[i0SM] == 1) {
915  fStexNbOfTreatedEvents[i0SM]++;
916  }
917 
918  if (fStexNbOfTreatedEvents[i0SM] >= 1 && fStexNbOfTreatedEvents[i0SM] <= fReqNbOfEvts) {
919  //......................................... date of first event
920  //(in real time)
921  edm::Timestamp Time = iEvent.time();
922  edm::TimeValue_t t_current_ev_time = (cond::Time_t)Time.value();
923  time_t i_current_ev_time = (time_t)(t_current_ev_time >> 32);
924  const time_t *p_current_ev_time = &i_current_ev_time;
925  char *astime = ctime(p_current_ev_time);
926 
927  if (fStexDigiOK[i0SM] == 1 && fStexNbOfTreatedEvents[i0SM] == 1 &&
928  (fStexNumber == 0 || i0SM + 1 == fStexNumber)) {
929  fTimeFirst[i0SM] = i_current_ev_time;
930  fDateFirst[i0SM] = astime;
931  fTimeLast[i0SM] = i_current_ev_time;
932  fDateLast[i0SM] = astime;
933  std::cout << "*----> beginning of analysis for " << fStexName << i0SM + 1
934  << ". First analyzed event date : " << astime << std::endl;
935  // << " t_current_ev_time = " << t_current_ev_time <<
936  // std::endl
937  // << " i_current_ev_time = " << i_current_ev_time <<
938  // std::endl
939  // << " p_current_ev_time = " << p_current_ev_time <<
940  // std::endl
941  }
942 
943  if (i_current_ev_time < fTimeFirst[i0SM]) {
944  fTimeFirst[i0SM] = i_current_ev_time;
945  fDateFirst[i0SM] = astime;
946  }
947  if (i_current_ev_time > fTimeLast[i0SM]) {
948  fTimeLast[i0SM] = i_current_ev_time;
949  fDateLast[i0SM] = astime;
950  }
951 
952  //=============================================> CUT on i0SM
953  // value
954  if ((fStexNumber > 0 && i0SM == fStexNumber - 1) || (fStexNumber == 0)) {
955  Int_t iEta = id_crystal.ietaSM(); // ietaSM() : range = [1,85]
956  Int_t iPhi = id_crystal.iphiSM(); // iphiSM() : range = [1,20]
957 
958  Int_t n1SMCrys = (iEta - 1) * (fMyEBEcal->MaxTowPhiInSM() * fMyEBEcal->MaxCrysPhiInTow()) +
959  iPhi; // range = [1,1700]
960  Int_t n1SMTow = fMyEBNumbering->Get1SMTowFrom1SMCrys(n1SMCrys); // range = [1,68]
961  Int_t i0TowEcha = fMyEBNumbering->Get0TowEchaFrom1SMCrys(n1SMCrys); // range = [0,24]
962 
963  Int_t NbOfSamplesFromDigis = digiItr->size();
964 
965  EBDataFrame df(*digiItr);
966 
967  if (NbOfSamplesFromDigis > 0 && NbOfSamplesFromDigis <= fMyEBEcal->MaxSampADC()) {
968  Double_t adcDBLS = (Double_t)0;
969  // Three 1st samples mean value for Dynamic Base Line
970  // Substraction (DBLS)
971  if (fDynBaseLineSub == "yes") {
972  for (Int_t i0Sample = 0; i0Sample < 3; i0Sample++) {
973  adcDBLS += (Double_t)(df.sample(i0Sample).adc());
974  }
975  adcDBLS /= (Double_t)3;
976  }
977  // Loop over the samples
978  for (Int_t i0Sample = 0; i0Sample < fNbOfSamples; i0Sample++) {
979  Double_t adc = (Double_t)(df.sample(i0Sample).adc()) - adcDBLS;
980  //................................................. Calls
981  // to GetSampleAdcValues
982  if (fMyCnaEBSM[i0SM]->GetSampleAdcValues(
983  fStexNbOfTreatedEvents[i0SM], n1SMTow, i0TowEcha, i0Sample, adc) == kTRUE) {
984  fBuildEventDistribGood[i0SM]++;
985  } else {
986  fBuildEventDistribBad[i0SM]++;
987  }
988  }
989  } else {
990  std::cout << "EcnaAnalyzer::analyze(...)> "
991  "NbOfSamplesFromDigis out of bounds = "
992  << NbOfSamplesFromDigis << std::endl;
993  }
994  } // end of if( (fStexNumber > 0 && i0SM == fStexNumber-1) ||
995  // (fStexNumber == 0) )
996  } // end of if( fStexNbOfTreatedEvents[i0SM] >= 1 &&
997  // fStexNbOfTreatedEvents[i0SM] <= fReqNbOfEvts )
998  } // end of if( fStexStatus[i0SM] < 2 )
999  } // end of if( i0SM >= 0 && i0SM<fMaxTreatedStexCounter )
1000  } // end of for (EBDigiCollection::const_iterator digiItr =
1001  // digisEB->begin();
1002  // digiItr != digisEB->end(); ++digiItr)
1003 
1004  for (Int_t i0SM = 0; i0SM < fMaxTreatedStexCounter; i0SM++) {
1005  fStexDigiOK[i0SM] = 0; // reset fStexDigiOK[i0SM] after loop on digis
1006  }
1007 
1008  } // end of if( Int_t(digisEB->end()-digisEB->begin()) >= 0 &&
1009  // Int_t(digisEB->end()-digisEB->begin()) <= Int_t(digisEB->size()) )
1010  } // end of if( fStexName == "SM" && fSMIndexBegin < fSMIndexStop )
1011 
1012  //=============================================================== Record
1013  // type EE (Dee)
1014  if (fStexName == "Dee" && fDeeIndexBegin < fDeeIndexStop) {
1015  //......................................... Get digisEE
1016  Handle<EEDigiCollection> pdigisEE;
1017  const EEDigiCollection *digisEE = nullptr;
1018  try {
1019  iEvent.getByLabel(digiProducer_, EEdigiCollection_, pdigisEE);
1020  digisEE = pdigisEE.product();
1021  } catch (std::exception &ex) {
1022  std::cerr << "Error! can't get the product " << EEdigiCollection_.c_str() << std::endl;
1023  }
1024 
1025  // Initialize vectors if not already done
1026  if (int(digisEE->size()) > nChannels_) {
1027  nChannels_ = digisEE->size();
1028  }
1029 
1030  // Int_t print_count = 0;
1031  if (Int_t(digisEE->end() - digisEE->begin()) >= 0 &&
1032  Int_t(digisEE->end() - digisEE->begin()) <= Int_t(digisEE->size())) {
1033  //======================================================================================
1034  //
1035  // Loop over Ecal endcap digisEE (Xtals)
1036  //
1037  //======================================================================================
1038 
1039  for (EEDigiCollection::const_iterator digiItr = digisEE->begin(); digiItr != digisEE->end(); ++digiItr) {
1040  EEDetId id_crystal(digiItr->id());
1041 
1042  Int_t iX_data = id_crystal.ix(); // iX_data : range = [1,100]
1043  Int_t iY_data = id_crystal.iy(); // iY_data : range = [1,100]
1044  Int_t i_quad = id_crystal.iquadrant(); // iquadrant() : range = [1,4]
1045  Int_t i_sgnZ = id_crystal.zside(); // zside() : values = -1,+1
1046 
1047  Int_t iX = iX_data;
1048  Int_t iY = iY_data; // iY : range = [1,100]
1049 
1050  //.......... See
1051  // CMSSW/DataFormats/EcalDetId/src/EEDetId.cc::ixQuadrantOne() [ in
1052  // which ix() = iX_data ]
1053  if (i_quad == 1 || i_quad == 4) {
1054  iX = iX_data - 50;
1055  } // iX_data : range = [51,100], iX : range = [1,50]
1056  if (i_quad == 3 || i_quad == 2) {
1057  iX = 51 - iX_data;
1058  } // iX_data : range = [50,1], iX : range = [1,50]
1059 
1060  Int_t n1DeeCrys =
1061  (iX - 1) * (fMyEEEcal->MaxSCIYInDee() * fMyEEEcal->MaxCrysIYInSC()) + iY; // n1DeeCrys: range = [1,5000]
1062 
1063  Int_t n1DeeNumber = 0;
1064  if (i_quad == 1 && i_sgnZ == 1) {
1065  n1DeeNumber = 2;
1066  }
1067  if (i_quad == 1 && i_sgnZ == -1) {
1068  n1DeeNumber = 3;
1069  }
1070  if (i_quad == 2 && i_sgnZ == 1) {
1071  n1DeeNumber = 1;
1072  }
1073  if (i_quad == 2 && i_sgnZ == -1) {
1074  n1DeeNumber = 4;
1075  }
1076  if (i_quad == 3 && i_sgnZ == 1) {
1077  n1DeeNumber = 1;
1078  }
1079  if (i_quad == 3 && i_sgnZ == -1) {
1080  n1DeeNumber = 4;
1081  }
1082  if (i_quad == 4 && i_sgnZ == 1) {
1083  n1DeeNumber = 2;
1084  }
1085  if (i_quad == 4 && i_sgnZ == -1) {
1086  n1DeeNumber = 3;
1087  }
1088 
1089  Int_t i0Dee = n1DeeNumber - 1; // <============== GET the Dee number - 1 here
1090 
1091  if (i0Dee >= 0 && i0Dee < fMaxTreatedStexCounter) {
1092  if (fMyCnaEEDee[i0Dee] == nullptr && fStexStatus[i0Dee] != 2) {
1093  //=============================== Init Ecna EE
1094  //===============================
1098 
1099  std::cout << "*EcnaAnalyzer::analyze(...)> ********* INIT ECNA "
1100  "EE ********* "
1101  << std::endl
1102  << " fAnalysisName = " << fAnalysisName << std::endl
1103  << " fRunNumber = " << fRunNumber << std::endl
1104  << " fFirstReqEvent = " << fFirstReqEvent << std::endl
1105  << " fLastReqEvent = " << fLastReqEvent << std::endl
1106  << " fReqNbOfEvts = " << fReqNbOfEvts << std::endl
1107  << " Dee = " << i0Dee + 1 << std::endl
1108  << " run type = " << runtype(fRunTypeNumber)
1109  << std::endl;
1110  //============================================================================
1111  }
1112 
1113  if (fStexStatus[i0Dee] < 2) // nothing to do if status=2 reached
1114  {
1115  Bool_t cOKForTreatment = kFALSE;
1116 
1117  if (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcPhys" ||
1118  fAnalysisName == "AdcAny") {
1119  if (fFedTcc >= 1 && fFedTcc <= MaxSMAndDS) {
1120  fFedDigiOK[fESFromFedTcc[fFedTcc - 1] - 1]++;
1121 
1122  if (!(fESFromFedTcc[fFedTcc - 1] == 5 || fESFromFedTcc[fFedTcc - 1] == 14)) {
1123  if (fFedDigiOK[fESFromFedTcc[fFedTcc - 1] - 1] == 1) {
1124  fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1]++;
1125  }
1126  if (fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1] >= 1 &&
1127  fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1] <= fReqNbOfEvts) {
1128  fStexNbOfTreatedEvents[i0Dee] = fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1];
1129  cOKForTreatment = kTRUE;
1130  }
1131  }
1132  if (fESFromFedTcc[fFedTcc - 1] == 5 || fESFromFedTcc[fFedTcc - 1] == 14) {
1133  if (fFedDigiOK[fESFromFedTcc[fFedTcc - 1] - 1] == 1) {
1134  fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1]++;
1135  fDeeDS5Memo1 = n1DeeNumber;
1136  fStexNbOfTreatedEvents[i0Dee] = fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1];
1137  } else {
1138  if (fDeeDS5Memo2 == 0) {
1139  if (n1DeeNumber != fDeeDS5Memo1) {
1140  // change of Dee in Data sector 5
1141  fDeeDS5Memo2 = n1DeeNumber;
1142  fStexNbOfTreatedEvents[i0Dee] = fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1];
1143  }
1144  }
1145  }
1146  if (fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1] >= 1 &&
1147  fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc - 1] - 1] <= fReqNbOfEvts) {
1148  cOKForTreatment = kTRUE;
1149  }
1150  }
1151  } // end of if( fFedTcc >= 1 && fFedTcc <= MaxSMAndDS )
1152  } // end of if( fAnalysisName == "AdcPeg12" || fAnalysisName ==
1153  // "AdcSPeg12" .... )
1154  else {
1155  fStexDigiOK[i0Dee]++;
1156  if (fStexDigiOK[i0Dee] == 1) {
1157  fStexNbOfTreatedEvents[i0Dee]++;
1158  }
1159  if (fStexNbOfTreatedEvents[i0Dee] >= 1 && fStexNbOfTreatedEvents[i0Dee] <= fReqNbOfEvts) {
1160  cOKForTreatment = kTRUE;
1161  }
1162  }
1163 
1164  if (cOKForTreatment == kTRUE) {
1165  //......................................... date of first event
1166  //(in real time)
1167  edm::Timestamp Time = iEvent.time();
1168  edm::TimeValue_t t_current_ev_time = (cond::Time_t)Time.value();
1169  time_t i_current_ev_time = (time_t)(t_current_ev_time >> 32);
1170  const time_t *p_current_ev_time = &i_current_ev_time;
1171  char *astime = ctime(p_current_ev_time);
1172 
1173  if ((!(fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcPhys" ||
1174  fAnalysisName == "AdcAny") &&
1175  fStexDigiOK[i0Dee] == 1 && fStexNbOfTreatedEvents[i0Dee] == 1) ||
1176  ((fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcPhys" ||
1177  fAnalysisName == "AdcAny") &&
1178  fFedDigiOK[fESFromFedTcc[fFedTcc - 1] - 1] == 1 && fStexNbOfTreatedEvents[i0Dee] == 1 &&
1179  fMemoDateFirstEvent[i0Dee] == 0)) {
1180  fTimeFirst[i0Dee] = i_current_ev_time;
1181  fDateFirst[i0Dee] = astime;
1182  fTimeLast[i0Dee] = i_current_ev_time;
1183  fDateLast[i0Dee] = astime;
1184  std::cout << "----- beginning of analysis for " << fStexName << i0Dee + 1 << "-------"
1185  << std::endl
1186  //<< " t_current_ev_time = " << t_current_ev_time <<
1187  // std::endl
1188  //<< " i_current_ev_time = " << i_current_ev_time <<
1189  // std::endl
1190  //<< " p_current_ev_time = " << p_current_ev_time <<
1191  // std::endl
1192  << " First event date = " << astime << std::endl
1193  << " Nb of selected evts = " << fNbOfSelectedEvents << std::endl
1194  << "-----------------------------------------------"
1195  "----------------"
1196  << std::endl;
1197  fMemoDateFirstEvent[i0Dee]++;
1198  }
1199 
1200  if (i_current_ev_time < fTimeFirst[i0Dee]) {
1201  fTimeFirst[i0Dee] = i_current_ev_time;
1202  fDateFirst[i0Dee] = astime;
1203  }
1204  if (i_current_ev_time > fTimeLast[i0Dee]) {
1205  fTimeLast[i0Dee] = i_current_ev_time;
1206  fDateLast[i0Dee] = astime;
1207  }
1208 
1209  //=============================================> cut on i0Dee
1210  // value
1211  if ((fStexNumber > 0 && i0Dee == fStexNumber - 1) || (fStexNumber == 0)) {
1212  TString sDir = fMyEENumbering->GetDeeDirViewedFromIP(n1DeeNumber);
1213  Int_t n1DeeSCEcna = fMyEENumbering->Get1DeeSCEcnaFrom1DeeCrys(n1DeeCrys, sDir);
1214  Int_t i0SCEcha = fMyEENumbering->Get1SCEchaFrom1DeeCrys(n1DeeCrys, sDir) - 1;
1215 
1216  Int_t NbOfSamplesFromDigis = digiItr->size();
1217 
1218  EEDataFrame df(*digiItr);
1219 
1220  if (NbOfSamplesFromDigis > 0 && NbOfSamplesFromDigis <= fMyEEEcal->MaxSampADC()) {
1221  Double_t adcDBLS = (Double_t)0;
1222  // Three 1st samples mean value for Dynamic Base Line
1223  // Substraction (DBLS)
1224  if (fDynBaseLineSub == "yes") {
1225  for (Int_t i0Sample = 0; i0Sample < 3; i0Sample++) {
1226  adcDBLS += (Double_t)(df.sample(i0Sample).adc());
1227  }
1228  adcDBLS /= (Double_t)3;
1229  }
1230  // Loop over the samples
1231  for (Int_t i0Sample = 0; i0Sample < fNbOfSamples; i0Sample++) {
1232  Double_t adc = (Double_t)(df.sample(i0Sample).adc()) - adcDBLS;
1233  //................................................. Calls
1234  // to GetSampleAdcValues
1235  if (fMyCnaEEDee[i0Dee]->GetSampleAdcValues(
1236  fStexNbOfTreatedEvents[i0Dee], n1DeeSCEcna, i0SCEcha, i0Sample, adc) == kTRUE) {
1237  fBuildEventDistribGood[i0Dee]++;
1238  } else {
1239  fBuildEventDistribBad[i0Dee]++;
1240  }
1241  }
1242  } else {
1243  std::cout << "EcnaAnalyzer::analyze(...)> "
1244  "NbOfSamplesFromDigis out of bounds = "
1245  << NbOfSamplesFromDigis << std::endl;
1246  }
1247  } // end of if( (fStexNumber > 0 && i0Dee == fStexNumber-1) ||
1248  // (fStexNumber == 0) )
1249  } // end of if( fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc-1]-1]
1250  // >= 1 &&
1251  // fFedNbOfTreatedEvents[fESFromFedTcc[fFedTcc-1]-1] <=
1252  // fReqNbOfEvts )
1253  } // end of if( fStexStatus[i0Dee] < 2 )
1254  } // end of if( i0Dee >= 0 && i0Dee<fMaxTreatedStexCounter )
1255  } // end of for (EBDigiCollection::const_iterator digiItr =
1256  // digisEB->begin();
1257  // digiItr != digisEB->end(); ++digiItr)
1258 
1259  // reset fStexDigiOK[i0Dee] or fFedDigiOK[i0Dee] to zero after loop on
1260  // digis
1261  if (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcPhys" ||
1262  fAnalysisName == "AdcAny") {
1263  for (Int_t i0FedES = 0; i0FedES < fMaxFedUnitCounter; i0FedES++) {
1264  fFedDigiOK[i0FedES] = 0;
1265  }
1266 
1267  // reset fDeeDS5Memo1 and fDeeDS5Memo2 (for Data sector 5 versus Dee
1268  // number management)
1269  fDeeDS5Memo1 = 0;
1270  fDeeDS5Memo2 = 0;
1271  } else {
1272  for (Int_t i0Dee = 0; i0Dee < fMaxTreatedStexCounter; i0Dee++) {
1273  fStexDigiOK[i0Dee] = 0;
1274  }
1275  }
1276 
1277  } // end of if( Int_t(digisEB->end()-digisEB->begin()) >= 0 &&
1278  // Int_t(digisEB->end()-digisEB->begin()) <= Int_t(digisEB->size()) )
1279 
1280  } // end of if( fStexName == "Dee" && fDeeIndexBegin < fDeeIndexStop )
1281  } // end of if( (fStexNumber > 0 && fNbOfTreatedStexs == 0) || (fStexNumber ==
1282  // 0 && fNbOfTreatedStexs < MaxNbOfStex) )
1283 
1284  //=============================================================================================
1285  //
1286  // Number of treated events. Setting Stex and Fed status.
1287  //
1288  //=============================================================================================
1289 
1290  // (take into account the "Accelerating selection with FED number" section -
1291  // see above -)
1292  if (fStexName == "SM" || (fStexName == "Dee" &&
1293  !(fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" ||
1294  fAnalysisName == "AdcPhys" || fAnalysisName == "AdcAny"))) // one FED = one SM = one Stex
1295  {
1296  for (Int_t i0Stex = fStexIndexBegin; i0Stex < fStexIndexStop; i0Stex++) {
1297  if (fStexStatus[i0Stex] != 2) // do not change fStexStatus[i0Stex] if already set to 2
1298  // even if fStexNbOfTreatedEvents[i0Stex] == fReqNbOfEvts
1299  {
1300  if (fStexNbOfTreatedEvents[i0Stex] == fReqNbOfEvts) {
1301  fStexStatus[i0Stex] = 1;
1302  }
1303  if (fStexNbOfTreatedEvents[i0Stex] > fReqNbOfEvts) {
1304  fStexStatus[i0Stex] = 2;
1305  }
1306  }
1307  }
1308  }
1309 
1310  // one FED = one Data Sector (DS or ES)
1311  if (fStexName == "Dee" && (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" ||
1312  fAnalysisName == "AdcPhys" || fAnalysisName == "AdcAny")) {
1313  for (Int_t i0FedES = 0; i0FedES < fMaxFedUnitCounter; i0FedES++) {
1314  if (fFedStatus[i0FedES] != 2) // do not change fFedStatus[i0FedES] if already set to 2
1315  // even if fFedNbOfTreatedEvents[i0FedES] == fReqNbOfEvts
1316  {
1317  if (fFedNbOfTreatedEvents[i0FedES] == fReqNbOfEvts) {
1318  fFedStatus[i0FedES] = 1;
1319  fTreatedFedOrder++;
1320  fFedStatusOrder[i0FedES] = fTreatedFedOrder;
1321  }
1322  if (fFedNbOfTreatedEvents[i0FedES] > fReqNbOfEvts) {
1323  fFedStatus[i0FedES] = 2;
1324  }
1325  }
1326  }
1327 
1328  Int_t j0Fed = 4;
1329  //..................................................... Dee 4 (DS 1,2,3,4 ;
1330  // ES 1,2,3,4)
1331  for (Int_t i0FedES = 0; i0FedES <= 3; i0FedES++) {
1332  if (fFedStatus[i0FedES] == 1) {
1333  fNbOfTreatedFedsInDee[3]++;
1334  fFedStatus[i0FedES] = 2;
1335  }
1336  }
1337 
1338  //..................................................... Dee 3, Dee 4 (DS 5 ;
1339  // ES 5)
1340  j0Fed = 4;
1341  if (fFedStatus[j0Fed] == 1) {
1342  fNbOfTreatedFedsInDee[3]++;
1343  fNbOfTreatedFedsInDee[2]++;
1344  fFedStatus[j0Fed] = 2;
1345  }
1346 
1347  //.................................................... Dee 3 (DS 6,7,8,9 ;
1348  // ES 6,7,8,9)
1349  for (Int_t i0FedES = 5; i0FedES <= 8; i0FedES++) {
1350  if (fFedStatus[i0FedES] == 1) {
1351  fNbOfTreatedFedsInDee[2]++;
1352  fFedStatus[i0FedES] = 2;
1353  }
1354  }
1355 
1356  //..................................................... Dee 1 (DS 1,2,3,4 ;
1357  // ES 10,11,12,13)
1358  for (Int_t i0FedES = 9; i0FedES <= 12; i0FedES++) {
1359  if (fFedStatus[i0FedES] == 1) {
1360  fNbOfTreatedFedsInDee[0]++;
1361  fFedStatus[i0FedES] = 2;
1362  }
1363  }
1364 
1365  //..................................................... Dee 1, Dee 2 (DS 5 ;
1366  // ES 5)
1367  j0Fed = 13;
1368  if (fFedStatus[j0Fed] == 1) {
1369  fNbOfTreatedFedsInDee[0]++;
1370  fNbOfTreatedFedsInDee[1]++;
1371  fFedStatus[j0Fed] = 2;
1372  }
1373 
1374  //..................................................... Dee 2 (DS 6,7,8,9 ;
1375  // ES 15,16,17,18)
1376  for (Int_t i0FedES = 14; i0FedES <= 17; i0FedES++) {
1377  if (fFedStatus[i0FedES] == 1) {
1378  fNbOfTreatedFedsInDee[1]++;
1379  fFedStatus[i0FedES] = 2;
1380  }
1381  }
1382 
1383  //-----------------------------------------------------
1384  for (Int_t i0Dee = 0; i0Dee < 4; i0Dee++) {
1385  if (fNbOfTreatedFedsInStex[i0Dee] >= 0 && fNbOfTreatedFedsInStex[i0Dee] < 5) {
1387  }
1388  if (fNbOfTreatedFedsInDee[i0Dee] == 5) {
1389  fStexStatus[i0Dee] = 1;
1390  fNbOfTreatedFedsInDee[i0Dee] = 0;
1391  }
1392  }
1393 
1394  } // end of if( fStexName == "Dee" &&
1395  // ( fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" ... ) )
1396 
1397  //----------------------------------------------------------------------------------------------
1398  for (Int_t i0Stex = fStexIndexBegin; i0Stex < fStexIndexStop; i0Stex++) {
1399  if (fStexStatus[i0Stex] == 1) {
1400  fNbOfTreatedStexs++; // increase nb of treated Stex's only if
1401  // fStexStatus[i0Stex] == 1
1402  //....................................................... date of last
1403  // event edm::Timestamp Time = iEvent.time(); edm::TimeValue_t
1404  // t_current_ev_time = (cond::Time_t)Time.value(); time_t
1405  // i_current_ev_time = (time_t)(t_current_ev_time>>32); const time_t*
1406  // p_current_ev_time = &i_current_ev_time; char* astime =
1407  // ctime(p_current_ev_time); fTimeLast[i0Stex] = i_current_ev_time;
1408  // fDateLast[i0Stex] = astime;
1409 
1410  // if( i_current_ev_time > fTimeLast[i0Stex] )
1411  // {fTimeLast[i0Stex] = i_current_ev_time; fDateLast[i0Stex] = astime;}
1412 
1413  std::cout << "---------- End of analysis for " << fStexName << i0Stex + 1 << " -----------" << std::endl;
1414  Int_t n3 = 3;
1415  CheckMsg(n3, i0Stex);
1416  // std::cout << " t_current_ev_time = " << t_current_ev_time <<
1417  // std::endl
1418  //<< " i_current_ev_time = " << i_current_ev_time << std::endl
1419  //<< " p_current_ev_time = " << p_current_ev_time << std::endl
1420  // std::cout << " Last analyzed event date = " << astime <<
1421  // std::endl;
1422  std::cout << " Number of selected events = " << fNbOfSelectedEvents << std::endl;
1423  std::cout << std::endl
1424  << fNbOfTreatedStexs << " " << fStexName << "'s with " << fReqNbOfEvts << " events analyzed."
1425  << std::endl
1426  << "---------------------------------------------------------" << std::endl;
1427 
1428  //================================= WRITE RESULTS FILE
1429  if (fStexName == "SM") {
1430  if (fMyCnaEBSM[i0Stex] != nullptr) {
1431  //........................................ register dates 1 and 2
1432  fMyCnaEBSM[i0Stex]->StartStopDate(fDateFirst[i0Stex], fDateLast[i0Stex]);
1433  fMyCnaEBSM[i0Stex]->StartStopTime(fTimeFirst[i0Stex], fTimeLast[i0Stex]);
1434 
1435  //........................................ Init .root file
1436  fMyCnaEBSM[i0Stex]->GetReadyToCompute();
1437  fMyCnaEBSM[i0Stex]->SampleValues();
1438 
1439  //........................................ write the sample values in
1440  //.root file
1441  if (fMyCnaEBSM[i0Stex]->WriteRootFile() == kFALSE) {
1442  std::cout << "!EcnaAnalyzer::analyze> PROBLEM with write ROOT file for SM" << i0Stex + 1 << fTTBELL
1443  << std::endl;
1444  }
1445  }
1446  // set pointer to zero in order to avoid recalculation and rewriting at
1447  // the destructor level
1448  delete fMyCnaEBSM[i0Stex];
1449  fMyCnaEBSM[i0Stex] = nullptr;
1450  std::cout << "!EcnaAnalyzer::analyze> Set memory free: delete done for SM " << i0Stex + 1 << std::endl;
1451  }
1452 
1453  if (fStexName == "Dee") {
1454  if (fMyCnaEEDee[i0Stex] != nullptr) {
1455  //........................................ register dates 1 and 2
1456  fMyCnaEEDee[i0Stex]->StartStopDate(fDateFirst[i0Stex], fDateLast[i0Stex]);
1457  fMyCnaEEDee[i0Stex]->StartStopTime(fTimeFirst[i0Stex], fTimeLast[i0Stex]);
1458 
1459  //........................................ Init .root file
1460  fMyCnaEEDee[i0Stex]->GetReadyToCompute();
1461  fMyCnaEEDee[i0Stex]->SampleValues();
1462 
1463  //........................................ write the sample values in
1464  //.root file
1465  if (fMyCnaEEDee[i0Stex]->WriteRootFile() == kFALSE) {
1466  std::cout << "!EcnaAnalyzer::analyze> PROBLEM with write ROOT file "
1467  "for Dee"
1468  << i0Stex + 1 << fTTBELL << std::endl;
1469  }
1470  }
1471  // set pointer to zero in order to avoid recalculation and rewriting at
1472  // the destructor level
1473  delete fMyCnaEEDee[i0Stex];
1474  fMyCnaEEDee[i0Stex] = nullptr;
1475  std::cout << "!EcnaAnalyzer::analyze> Set memory free: delete done for Dee " << i0Stex + 1 << std::endl;
1476  }
1477 
1478  fStexStatus[i0Stex] = 2; // set fStexStatus[i0Stex] to 2 definitively
1479  std::cout << "*----------------------------------------------------------"
1480  "------------------ "
1481  << std::endl;
1482 
1483  } // end of if( fStexStatus[i0Stex] == 1 )
1484  } // end of for(Int_t i0Stex=fStexIndexBegin; i0Stex<fStexIndexStop; i0Stex++)
1485 }
RunNumber_t run() const
Definition: EventID.h:39
Int_t MaxCrysPhiInTow()
EventNumber_t event() const
Definition: EventID.h:41
Int_t fFirstReqEvent
Definition: EcnaAnalyzer.h:195
Int_t * fStexNbOfTreatedEvents
Definition: EcnaAnalyzer.h:223
Int_t * fFedStatus
Definition: EcnaAnalyzer.h:227
Int_t MaxSCIYInDee()
std::string digiProducer_
Definition: EcnaAnalyzer.h:158
time_t * fTimeLast
Definition: EcnaAnalyzer.h:244
Int_t fStexIndexBegin
Definition: EcnaAnalyzer.h:207
Int_t fDeeDS5Memo2
Definition: EcnaAnalyzer.h:221
Int_t * fFedIdCounter
Definition: EcnaAnalyzer.h:272
int ix() const
Definition: EEDetId.h:77
TString * fDateLast
Definition: EcnaAnalyzer.h:246
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
void GetReadyToReadData(const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:507
Int_t fRunTypeNumber
Definition: EcnaAnalyzer.h:194
Int_t * fBuildEventDistribBad
Definition: EcnaAnalyzer.h:179
TString runtype(const Int_t &)
Int_t fChozenRunTypeNumber
Definition: EcnaAnalyzer.h:189
Int_t fMaxMgpaGainCounter
Definition: EcnaAnalyzer.h:268
TString GetDeeDirViewedFromIP(const Int_t &)
std::vector< T >::const_iterator const_iterator
TEcnaParEcal * fMyEEEcal
Definition: EcnaAnalyzer.h:260
Int_t fDeeIndexStop
Definition: EcnaAnalyzer.h:206
Int_t fNbOfTreatedStexs
Definition: EcnaAnalyzer.h:232
Int_t * fFedNbOfTreatedEvents
Definition: EcnaAnalyzer.h:229
Int_t MaxTowPhiInSM()
TEcnaNumbering * fMyEENumbering
Definition: EcnaAnalyzer.h:259
const_iterator begin() const
Int_t Get0TowEchaFrom1SMCrys(const Int_t &)
Int_t Get1DeeSCEcnaFrom1DeeCrys(const Int_t &, const TString &)
Bool_t AnalysisOutcome(const TString &)
TString fAnalysisName
Definition: EcnaAnalyzer.h:187
void CheckMsg(const Int_t &, const Int_t &)
Int_t fCurrentEventNumber
Definition: EcnaAnalyzer.h:176
Int_t Get1SMTowFrom1SMCrys(const Int_t &)
Int_t * fFedDigiOK
Definition: EcnaAnalyzer.h:228
int ism() const
get the ECAL/SM id
Definition: EBDetId.h:59
void GetReadyToCompute()
Definition: TEcnaRun.cc:1219
Int_t fDeeDS5Memo1
Definition: EcnaAnalyzer.h:220
Int_t * fMgpaGainCounter
Definition: EcnaAnalyzer.h:269
TString fStexName
Definition: EcnaAnalyzer.h:197
TEcnaRun ** fMyCnaEEDee
Definition: EcnaAnalyzer.h:254
Int_t * fESFromFedTcc
Definition: EcnaAnalyzer.h:212
Int_t fMgpaGainNumber
Definition: EcnaAnalyzer.h:201
Int_t fStexNumber
Definition: EcnaAnalyzer.h:198
std::string EBdigiCollection_
Definition: EcnaAnalyzer.h:160
Int_t fMaxTreatedStexCounter
Definition: EcnaAnalyzer.h:219
Int_t fEvtNumber
Definition: EcnaAnalyzer.h:173
TString fDynBaseLineSub
Definition: EcnaAnalyzer.h:190
Int_t * fSMFromFedTcc
Definition: EcnaAnalyzer.h:211
unsigned long long Time_t
Definition: Time.h:16
Int_t Get1SCEchaFrom1DeeCrys(const Int_t &, const TString &)
TEcnaParEcal * fMyEBEcal
Definition: EcnaAnalyzer.h:257
void SampleValues()
Definition: TEcnaRun.cc:1257
Int_t fNbOfSelectedEvents
Definition: EcnaAnalyzer.h:177
Int_t fMaxFedUnitCounter
Definition: EcnaAnalyzer.h:226
Int_t fRecNumber
Definition: EcnaAnalyzer.h:175
Int_t fSMIndexBegin
Definition: EcnaAnalyzer.h:203
TString * fDateFirst
Definition: EcnaAnalyzer.h:245
TEcnaNumbering * fMyEBNumbering
Definition: EcnaAnalyzer.h:256
Int_t * fStexDigiOK
Definition: EcnaAnalyzer.h:222
Int_t fTreatedFedOrder
Definition: EcnaAnalyzer.h:214
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
Int_t * fBuildEventDistribGood
Definition: EcnaAnalyzer.h:180
TEcnaRun ** fMyCnaEBSM
Definition: EcnaAnalyzer.h:253
unsigned long long TimeValue_t
Definition: Timestamp.h:28
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:480
Int_t * fNbOfTreatedFedsInStex
Definition: EcnaAnalyzer.h:234
Int_t fSMIndexStop
Definition: EcnaAnalyzer.h:204
Int_t fRunNumber
Definition: EcnaAnalyzer.h:193
const_iterator end() const
Int_t MaxDSInEE()
Int_t MaxCrysIYInSC()
time_t * fTimeFirst
Definition: EcnaAnalyzer.h:243
std::string eventHeaderProducer_
Definition: EcnaAnalyzer.h:157
TString fTTBELL
Definition: EcnaAnalyzer.h:151
Int_t fLastReqEvent
Definition: EcnaAnalyzer.h:196
T const * product() const
Definition: Handle.h:74
Int_t fMemoCutOK
Definition: EcnaAnalyzer.h:231
Int_t nChannels_
Definition: EcnaAnalyzer.h:155
Int_t fDeeIndexBegin
Definition: EcnaAnalyzer.h:205
Int_t fNbOfSamples
Definition: EcnaAnalyzer.h:192
Int_t * fRunTypeCounter
Definition: EcnaAnalyzer.h:266
const_iterator end() const
std::string eventHeaderCollection_
Definition: EcnaAnalyzer.h:159
edm::EventID id() const
Definition: EventBase.h:59
HLT enums.
Int_t MaxDeeInEE()
Int_t MaxSMInEB()
Int_t fEvtNumberMemo
Definition: EcnaAnalyzer.h:174
Int_t fStexIndexStop
Definition: EcnaAnalyzer.h:208
std::string EEdigiCollection_
Definition: EcnaAnalyzer.h:161
Int_t * fMemoDateFirstEvent
Definition: EcnaAnalyzer.h:248
Int_t * fFedStatusOrder
Definition: EcnaAnalyzer.h:215
Int_t fReqNbOfEvts
Definition: EcnaAnalyzer.h:200
Int_t * fStexStatus
Definition: EcnaAnalyzer.h:224
void StartStopTime(time_t, time_t)
Definition: TEcnaRun.cc:1198
TimeValue_t value() const
Definition: Timestamp.h:56
TEcnaObject * fMyEcnaEBObjectManager
Definition: EcnaAnalyzer.h:250
Int_t fMaxRunTypeCounter
Definition: EcnaAnalyzer.h:265
edm::Timestamp time() const
Definition: EventBase.h:60
Int_t fChozenGainNumber
Definition: EcnaAnalyzer.h:188
TEcnaObject * fMyEcnaEEObjectManager
Definition: EcnaAnalyzer.h:251
Int_t fMaxFedIdCounter
Definition: EcnaAnalyzer.h:271
const_iterator begin() const
void StartStopDate(const TString &, const TString &)
Definition: TEcnaRun.cc:1206
Int_t * fNbOfTreatedFedsInDee
Definition: EcnaAnalyzer.h:233
void EcnaAnalyzer::CheckMsg ( const Int_t &  MsgNum,
const Int_t &  i0Stex 
)

Definition at line 1626 of file EcnaAnalyzer.cc.

References gather_cfg::cout, fAnalysisName, fChozenGainNumber, fChozenRunTypeNumber, fCurrentEventNumber, fDeeNumberString, fEvtNumber, fFedId, fFedNbOfTreatedEvents, fFedStatus, fFedStatusOrder, fFedTcc, fMaxFedUnitCounter, fMgpaGainNumber, fNbOfSelectedEvents, fNbOfTreatedFedsInStex, fNbOfTreatedStexs, fRecNumber, fReqNbOfEvts, fRunNumber, fRunTypeNumber, fStexIndexBegin, fStexIndexStop, fStexName, fStexNbOfTreatedEvents, fStexStatus, gainvalue(), and runtype().

Referenced by AnalysisOutcome(), analyze(), CheckMsg(), and ~EcnaAnalyzer().

1626  {
1627  //------ Cross-check messages
1628 
1629  if (MsgNum == 1) {
1630  std::cout << "---------------- CROSS-CHECK A ------------------ " << std::endl
1631  << "**************** CURRENT EVENT ****************** " << std::endl;
1632  }
1633  if (MsgNum == 2) {
1634  std::cout << "---------------- CROSS-CHECK B ------------------ " << std::endl
1635  << "**** FIRST EVENT PASSING USER'S ANALYSIS CUT **** " << std::endl;
1636  }
1637  if (MsgNum == 3) {
1638  std::cout << "---------------- CROSS-CHECK C ------------------ " << std::endl
1639  << "*** CURRENT VALUES BEFORE RESULT FILE WRITING *** " << std::endl;
1640  }
1641  if (MsgNum == 3 || MsgNum == 4) {
1642  std::cout << " fRecNumber = " << fRecNumber << std::endl
1643  << " fEvtNumber = " << fEvtNumber << std::endl;
1644  }
1645 
1646  std::cout << " fCurrentEventNumber = " << fCurrentEventNumber << std::endl
1647  << " fNbOfSelectedEvents = " << fNbOfSelectedEvents << std::endl
1648  << " fRunNumber = " << fRunNumber << std::endl
1649  << " Chozen run type = " << runtype(fChozenRunTypeNumber) << std::endl
1650  << " Run type = " << runtype(fRunTypeNumber) << std::endl
1651  << " fFedTcc = " << fFedTcc << std::endl
1652  << " fFedId(+601) = " << fFedId + 601 << std::endl
1653  << " fStexName = " << fStexName << std::endl
1654  << " Chozen gain = " << gainvalue(fChozenGainNumber) << std::endl
1655  << " Mgpa Gain = " << gainvalue(fMgpaGainNumber) << std::endl
1656  << std::endl;
1657 
1658  if (fAnalysisName == "AdcPeg12" || fAnalysisName == "AdcSPeg12" || fAnalysisName == "AdcPhys" ||
1659  fAnalysisName == "AdcAny") {
1660  if (fStexName == "SM") {
1661  for (Int_t j0Stex = fStexIndexBegin; j0Stex < fStexIndexStop; j0Stex++) {
1662  Int_t nStexNbOfTreatedEvents = fStexNbOfTreatedEvents[j0Stex];
1663  if (fStexStatus[j0Stex] == 1) {
1664  nStexNbOfTreatedEvents = fStexNbOfTreatedEvents[j0Stex];
1665  }
1666  if (fStexStatus[j0Stex] == 2) {
1667  nStexNbOfTreatedEvents = fStexNbOfTreatedEvents[j0Stex];
1668  }
1669 
1670  std::cout << fStexName << std::setw(3) << j0Stex + 1 << ": " << std::setw(5) << nStexNbOfTreatedEvents
1671  << " events. " << fStexName << " status: " << fStexStatus[j0Stex];
1672  if (j0Stex == i0Stex) {
1673  std::cout << " (going to write file for this " << fStexName << ").";
1674  }
1675  std::cout << std::endl;
1676  }
1677  }
1678 
1679  if (fStexName == "Dee") {
1680  for (Int_t i0FedES = 0; i0FedES < fMaxFedUnitCounter; i0FedES++) {
1681  Int_t nFedNbOfTreatedEvents = fFedNbOfTreatedEvents[i0FedES];
1682  if (fFedStatus[i0FedES] == 1) {
1683  nFedNbOfTreatedEvents = fFedNbOfTreatedEvents[i0FedES];
1684  }
1685  if (fFedStatus[i0FedES] == 2) {
1686  nFedNbOfTreatedEvents = fFedNbOfTreatedEvents[i0FedES];
1687  }
1688 
1689  std::cout << "Fed (ES) " << std::setw(3) << i0FedES + 1 << ": " << std::setw(5) << nFedNbOfTreatedEvents
1690  << " events."
1691  << " Fed status: " << fFedStatus[i0FedES] << ", order: " << std::setw(3) << fFedStatusOrder[i0FedES]
1692  << " (" << fDeeNumberString[i0FedES] << ")" << std::endl;
1693  }
1694 
1695  for (Int_t j0Stex = fStexIndexBegin; j0Stex < fStexIndexStop; j0Stex++) {
1696  std::cout << fStexName << std::setw(3) << j0Stex + 1 << ": " << std::setw(5) << fNbOfTreatedFedsInStex[j0Stex]
1697  << " analyzed Fed(s). " << fStexName << " status: " << fStexStatus[j0Stex];
1698  if (j0Stex == i0Stex) {
1699  std::cout << " (going to write file for this " << fStexName << ").";
1700  }
1701  std::cout << std::endl;
1702  }
1703  }
1704 
1705  std::cout << "Number of " << fStexName << "'s with " << fReqNbOfEvts << " events analyzed: " << fNbOfTreatedStexs
1706  << std::endl;
1707  }
1708 
1709  if (MsgNum == 1 || MsgNum == 2) {
1710  std::cout << "*------------------------------------------------------------"
1711  "---------------- "
1712  << std::endl;
1713  }
1714  if (MsgNum == 3) {
1715  std::cout << "*............................................................"
1716  "................ "
1717  << std::endl;
1718  }
1719 
1720 } // end of EcnaAnalyzer::CheckMsg(const Int_t& MsgNum, const Int_t& i0Stex)
Int_t * fStexNbOfTreatedEvents
Definition: EcnaAnalyzer.h:223
Int_t * fFedStatus
Definition: EcnaAnalyzer.h:227
Int_t fStexIndexBegin
Definition: EcnaAnalyzer.h:207
Int_t fRunTypeNumber
Definition: EcnaAnalyzer.h:194
TString runtype(const Int_t &)
Int_t fChozenRunTypeNumber
Definition: EcnaAnalyzer.h:189
Int_t fNbOfTreatedStexs
Definition: EcnaAnalyzer.h:232
Int_t * fFedNbOfTreatedEvents
Definition: EcnaAnalyzer.h:229
Int_t gainvalue(const Int_t &)
TString fAnalysisName
Definition: EcnaAnalyzer.h:187
Int_t fCurrentEventNumber
Definition: EcnaAnalyzer.h:176
TString fStexName
Definition: EcnaAnalyzer.h:197
Int_t fMgpaGainNumber
Definition: EcnaAnalyzer.h:201
Int_t fEvtNumber
Definition: EcnaAnalyzer.h:173
Int_t fNbOfSelectedEvents
Definition: EcnaAnalyzer.h:177
Int_t fMaxFedUnitCounter
Definition: EcnaAnalyzer.h:226
Int_t fRecNumber
Definition: EcnaAnalyzer.h:175
Int_t * fNbOfTreatedFedsInStex
Definition: EcnaAnalyzer.h:234
Int_t fRunNumber
Definition: EcnaAnalyzer.h:193
TString * fDeeNumberString
Definition: EcnaAnalyzer.h:217
Int_t fStexIndexStop
Definition: EcnaAnalyzer.h:208
Int_t * fFedStatusOrder
Definition: EcnaAnalyzer.h:215
Int_t fReqNbOfEvts
Definition: EcnaAnalyzer.h:200
Int_t * fStexStatus
Definition: EcnaAnalyzer.h:224
Int_t fChozenGainNumber
Definition: EcnaAnalyzer.h:188
void EcnaAnalyzer::CheckMsg ( const Int_t &  MsgNum)

Definition at line 1621 of file EcnaAnalyzer.cc.

References CheckMsg().

1621  {
1622  Int_t nm1 = -1;
1623  CheckMsg(MsgNum, nm1);
1624 }
void CheckMsg(const Int_t &, const Int_t &)
Int_t EcnaAnalyzer::gainvalue ( const Int_t &  numgain)

Definition at line 1812 of file EcnaAnalyzer.cc.

References relativeConstraints::value.

Referenced by CheckMsg(), and ~EcnaAnalyzer().

1812  {
1813  Int_t value = 0;
1814 
1815  if (numgain == 1) {
1816  value = 12;
1817  }
1818  if (numgain == 2) {
1819  value = 6;
1820  }
1821  if (numgain == 3) {
1822  value = 1;
1823  }
1824 
1825  return value;
1826 }
Definition: value.py:1
TString EcnaAnalyzer::runtype ( const Int_t &  numtype)

Definition at line 1722 of file EcnaAnalyzer.cc.

Referenced by analyze(), CheckMsg(), and ~EcnaAnalyzer().

1722  {
1723  TString cType = "?";
1724 
1725  if (numtype == 0) {
1726  cType = "COSMICS";
1727  }
1728  if (numtype == 1) {
1729  cType = "BEAMH4";
1730  }
1731  if (numtype == 2) {
1732  cType = "BEAMH2";
1733  }
1734  if (numtype == 3) {
1735  cType = "MTCC";
1736  }
1737  if (numtype == 4) {
1738  cType = "LASER_STD";
1739  }
1740  if (numtype == 5) {
1741  cType = "LASER_POWER_SCAN";
1742  }
1743  if (numtype == 6) {
1744  cType = "LASER_DELAY_SCAN";
1745  }
1746  if (numtype == 7) {
1747  cType = "TESTPULSE_SCAN_MEM";
1748  }
1749  if (numtype == 8) {
1750  cType = "TESTPULSE_MGPA";
1751  }
1752  if (numtype == 9) {
1753  cType = "PEDESTAL_STD";
1754  }
1755  if (numtype == 10) {
1756  cType = "PEDESTAL_OFFSET_SCAN";
1757  }
1758  if (numtype == 11) {
1759  cType = "PEDESTAL_25NS_SCAN";
1760  }
1761  if (numtype == 12) {
1762  cType = "LED_STD";
1763  }
1764 
1765  if (numtype == 13) {
1766  cType = "PHYSICS_GLOBAL";
1767  }
1768  if (numtype == 14) {
1769  cType = "COSMICS_GLOBAL";
1770  }
1771  if (numtype == 15) {
1772  cType = "HALO_GLOBAL";
1773  }
1774 
1775  if (numtype == 16) {
1776  cType = "LASER_GAP";
1777  }
1778  if (numtype == 17) {
1779  cType = "TESTPULSE_GAP";
1780  }
1781  if (numtype == 18) {
1782  cType = "PEDESTAL_GAP";
1783  }
1784  if (numtype == 19) {
1785  cType = "LED_GAP";
1786  }
1787 
1788  if (numtype == 20) {
1789  cType = "PHYSICS_LOCAL";
1790  }
1791  if (numtype == 21) {
1792  cType = "COSMICS_LOCAL";
1793  }
1794  if (numtype == 22) {
1795  cType = "HALO_LOCAL";
1796  }
1797  if (numtype == 23) {
1798  cType = "CALIB_LOCAL";
1799  }
1800 
1801  //.......................................... non-CMS types
1802  if (numtype == 24) {
1803  cType = "PEDSIM";
1804  } // SIMULATION
1805  if (numtype == 25) {
1806  cType = "ANY_RUN";
1807  } // ANY RUN (ALL TYPES ACCEPTED)
1808 
1809  return cType;
1810 }

Member Data Documentation

std::string EcnaAnalyzer::digiProducer_
private

Definition at line 158 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

std::string EcnaAnalyzer::EBdigiCollection_
private

Definition at line 160 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

std::string EcnaAnalyzer::EEdigiCollection_
private

Definition at line 161 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

std::string EcnaAnalyzer::eventHeaderCollection_
private

Definition at line 159 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

std::string EcnaAnalyzer::eventHeaderProducer_
private

Definition at line 157 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

TString EcnaAnalyzer::fAnalysisName
private

Definition at line 187 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fANY_RUN
private

Definition at line 236 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fBuildEventDistribBad
private

Definition at line 179 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fBuildEventDistribGood
private

Definition at line 180 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TString EcnaAnalyzer::fCfgAnalyzerParametersFileName
private

Definition at line 184 of file EcnaAnalyzer.h.

TString EcnaAnalyzer::fCfgAnalyzerParametersFilePath
private

Definition at line 182 of file EcnaAnalyzer.h.

Int_t EcnaAnalyzer::fChozenGainNumber
private

Definition at line 188 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fChozenRunTypeNumber
private

Definition at line 189 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fCounterQuad
private

Definition at line 275 of file EcnaAnalyzer.h.

Int_t EcnaAnalyzer::fCurrentEventNumber
private

Definition at line 176 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), CheckMsg(), and EcnaAnalyzer().

TString* EcnaAnalyzer::fDateFirst
private

Definition at line 245 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TString* EcnaAnalyzer::fDateLast
private

Definition at line 246 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fDeeDS5Memo1
private

Definition at line 220 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fDeeDS5Memo2
private

Definition at line 221 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fDeeFromFedTcc
private

Definition at line 213 of file EcnaAnalyzer.h.

Int_t EcnaAnalyzer::fDeeIndexBegin
private

Definition at line 205 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fDeeIndexStop
private

Definition at line 206 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TString* EcnaAnalyzer::fDeeNumberString
private

Definition at line 217 of file EcnaAnalyzer.h.

Referenced by CheckMsg(), and EcnaAnalyzer().

TString EcnaAnalyzer::fDynBaseLineSub
private

Definition at line 190 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fESFromFedTcc
private

Definition at line 212 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fEvtNumber
private

Definition at line 173 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fEvtNumberMemo
private

Definition at line 174 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

std::ifstream EcnaAnalyzer::fFcin_f
private

Definition at line 185 of file EcnaAnalyzer.h.

Int_t* EcnaAnalyzer::fFedDigiOK
private

Definition at line 228 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fFedId
private

Definition at line 216 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fFedIdCounter
private

Definition at line 272 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fFedNbOfTreatedEvents
private

Definition at line 229 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fFedStatus
private

Definition at line 227 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fFedStatusOrder
private

Definition at line 215 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fFedTcc
private

Definition at line 210 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fFirstReqEvent
private

Definition at line 195 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fgMaxCar
private

Definition at line 150 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

Int_t EcnaAnalyzer::fLASER_STD
private

Definition at line 239 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

Int_t EcnaAnalyzer::fLastReqEvent
private

Definition at line 196 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fMaxCounterQuad
private

Definition at line 274 of file EcnaAnalyzer.h.

Int_t EcnaAnalyzer::fMaxFedIdCounter
private

Definition at line 271 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fMaxFedUnitCounter
private

Definition at line 226 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fMaxMgpaGainCounter
private

Definition at line 268 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fMaxRunTypeCounter
private

Definition at line 265 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fMaxTreatedStexCounter
private

Definition at line 219 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fMemoCutOK
private

Definition at line 231 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fMemoDateFirstEvent
private

Definition at line 248 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fMgpaGainCounter
private

Definition at line 269 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fMgpaGainNumber
private

Definition at line 201 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TEcnaRun** EcnaAnalyzer::fMyCnaEBSM
private

Definition at line 253 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TEcnaRun** EcnaAnalyzer::fMyCnaEEDee
private

Definition at line 254 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TEcnaParEcal* EcnaAnalyzer::fMyEBEcal
private

Definition at line 257 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TEcnaNumbering* EcnaAnalyzer::fMyEBNumbering
private

Definition at line 256 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TEcnaObject* EcnaAnalyzer::fMyEcnaEBObjectManager
private

Definition at line 250 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

TEcnaObject* EcnaAnalyzer::fMyEcnaEEObjectManager
private

Definition at line 251 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

TEcnaParEcal* EcnaAnalyzer::fMyEEEcal
private

Definition at line 260 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TEcnaNumbering* EcnaAnalyzer::fMyEENumbering
private

Definition at line 259 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fNbOfSamples
private

Definition at line 192 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fNbOfSelectedEvents
private

Definition at line 177 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fNbOfTreatedFedsInDee
private

Definition at line 233 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fNbOfTreatedFedsInStex
private

Definition at line 234 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fNbOfTreatedStexs
private

Definition at line 232 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), CheckMsg(), and EcnaAnalyzer().

Bool_t EcnaAnalyzer::fOutcomeError
private

Definition at line 171 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fPEDESTAL_GAP
private

Definition at line 238 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

Int_t EcnaAnalyzer::fPEDESTAL_STD
private

Definition at line 237 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

Int_t EcnaAnalyzer::fPEDSIM
private

Definition at line 241 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

Int_t EcnaAnalyzer::fPHYSICS_GLOBAL
private

Definition at line 240 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

Int_t EcnaAnalyzer::fRecNumber
private

Definition at line 175 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fReqNbOfEvts
private

Definition at line 200 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fRunNumber
private

Definition at line 193 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t* EcnaAnalyzer::fRunTypeCounter
private

Definition at line 266 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fRunTypeNumber
private

Definition at line 194 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fSMFromFedTcc
private

Definition at line 211 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fSMIndexBegin
private

Definition at line 203 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fSMIndexStop
private

Definition at line 204 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fStexDigiOK
private

Definition at line 222 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fStexIndexBegin
private

Definition at line 207 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fStexIndexStop
private

Definition at line 208 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), EcnaAnalyzer(), and ~EcnaAnalyzer().

TString EcnaAnalyzer::fStexName
private

Definition at line 197 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), CheckMsg(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fStexNbOfTreatedEvents
private

Definition at line 223 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

Int_t EcnaAnalyzer::fStexNumber
private

Definition at line 198 of file EcnaAnalyzer.h.

Referenced by AnalysisOutcome(), analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t* EcnaAnalyzer::fStexStatus
private

Definition at line 224 of file EcnaAnalyzer.h.

Referenced by analyze(), CheckMsg(), and EcnaAnalyzer().

time_t* EcnaAnalyzer::fTimeFirst
private

Definition at line 243 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

time_t* EcnaAnalyzer::fTimeLast
private

Definition at line 244 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::fTreatedFedOrder
private

Definition at line 214 of file EcnaAnalyzer.h.

Referenced by analyze(), and EcnaAnalyzer().

TString EcnaAnalyzer::fTTBELL
private

Definition at line 151 of file EcnaAnalyzer.h.

Referenced by analyze(), EcnaAnalyzer(), and ~EcnaAnalyzer().

Int_t EcnaAnalyzer::iEvent_
private

Definition at line 156 of file EcnaAnalyzer.h.

Int_t EcnaAnalyzer::nChannels_
private

Definition at line 155 of file EcnaAnalyzer.h.

Referenced by analyze().

TString EcnaAnalyzer::sAnalysisName_
private

Definition at line 163 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

TString EcnaAnalyzer::sFirstReqEvent_
private

Definition at line 165 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

TString EcnaAnalyzer::sLastReqEvent_
private

Definition at line 166 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

TString EcnaAnalyzer::sNbOfSamples_
private

Definition at line 164 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

TString EcnaAnalyzer::sReqNbOfEvts_
private

Definition at line 167 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

TString EcnaAnalyzer::sStexName_
private

Definition at line 168 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

TString EcnaAnalyzer::sStexNumber_
private

Definition at line 169 of file EcnaAnalyzer.h.

Referenced by EcnaAnalyzer().

unsigned int EcnaAnalyzer::verbosity_
private

Definition at line 154 of file EcnaAnalyzer.h.