CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Attributes | Private Attributes
evf::ExceptionGenerator Class Reference

#include <ExceptionGenerator.h>

Inheritance diagram for evf::ExceptionGenerator:
edm::stream::EDAnalyzer<> edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 
void beginRun (edm::Run &r, const edm::EventSetup &iSetup)
 
void beginStream ()
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
 ExceptionGenerator (const edm::ParameterSet &)
 
 ~ExceptionGenerator ()
 
- Public Member Functions inherited from edm::stream::EDAnalyzer<>
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Attributes

static const std::string menu [menu_items]
 
static const int menu_items = 14
 

Private Attributes

int actionId_
 
bool actionRequired_
 
unsigned int intqualifier_
 
std::string original_referrer_
 
std::string qualifier_
 
TH1D * timingHisto_
 
timeval tv_start_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer<>
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 14 of file ExceptionGenerator.h.

Constructor & Destructor Documentation

evf::ExceptionGenerator::ExceptionGenerator ( const edm::ParameterSet pset)
explicit

Definition at line 26 of file ExceptionGenerator.cc.

26  :
27  actionId_(pset.getUntrackedParameter<int>("defaultAction",-1)),
28  intqualifier_(pset.getUntrackedParameter<int>("defaultQualifier",0)),
30  {
31 
32  }
T getUntrackedParameter(std::string const &, T const &) const
evf::ExceptionGenerator::~ExceptionGenerator ( )
inline

Definition at line 21 of file ExceptionGenerator.h.

21 {};

Member Function Documentation

void evf::ExceptionGenerator::analyze ( const edm::Event e,
const edm::EventSetup c 
)
virtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 148 of file ExceptionGenerator.cc.

References actionId_, actionRequired_, data, edm::hlt::Exception, cmsRelvalreport::exit, cmsHarvester::index, intqualifier_, j, fff_deleter::log, pi, qualifier_, random, mathSSE::sqrt(), relval_parameters_module::step, timingHisto_, tv_start_, and relativeConstraints::value.

149  {
150  float dummy = 0.;
151  unsigned int iterations = 0;
152  if(actionRequired_)
153  {
154  int *pi = 0;
155  int ind = 0;
156  int step = 1;
157  switch(actionId_)
158  {
159  case 0:
160  ::usleep(intqualifier_*1000);
161  break;
162  case 1:
163  ::sleep(0xFFFFFFF);
164  break;
165  case 2:
166  throw cms::Exception(qualifier_) << "This exception was generated by the ExceptionGenerator";
167  break;
168  case 3:
169  exit(-1);
170  break;
171  case 4:
172  abort();
173  break;
174  case 5:
175  throw qualifier_;
176  break;
177  case 6:
178  while(1){ind+=step; if(ind>1000000) step = -1; if(ind==0) step = 1;}
179  break;
180  case 7:
181  edm::LogError("TestErrorMessage") << qualifier_;
182  break;
183  case 8:
184  *pi=0;
185  break;
186  case 9:
187  for(unsigned int j=0; j<intqualifier_*1000;j++){
188  dummy += sqrt(log(float(j+1)))/float(j*j);
189  }
190  break;
191  case 10:
192  iterations = static_cast<unsigned int>(
193  timingHisto_->GetRandom() * intqualifier_*17. + 0.5
194  );
195  for(unsigned int j=0; j<iterations;j++){
196  dummy += sqrt(log(float(j+1)))/float(j*j);
197  }
198  break;
199  case 11:
200  {
201  iterations = static_cast<unsigned int>(
202  timingHisto_->GetRandom() * intqualifier_*12. + 0.5
203  );
204  TRandom3 random(iterations);
205  const size_t dataSize = 32*500; // 124kB
206  std::vector<double> data(dataSize);
207  random.RndmArray(dataSize, &data[0]);
208 
209  for(unsigned int j=0; j<iterations;j++){
210  const size_t index = static_cast<size_t>(random.Rndm() * dataSize + 0.5);
211  const double value = data[index];
212  dummy += sqrt(log(value+1))/(value*value);
213  if ( random.Rndm() < 0.1 )
214  data[index] = dummy;
215  }
216  }
217  break;
218  case 12:
219  {
220  timeval tv_now;
221  gettimeofday(&tv_now,0);
222  if ((unsigned)(tv_now.tv_sec-tv_start_.tv_sec)>intqualifier_)
223  *pi=0;
224  }
225  break;
226  case 13:
227  void *vp = malloc(1024);
228  memset((char *)vp - 32, 0, 1024);
229  free(vp);
230  break;
231  }
232  }
233  }
TRandom random
Definition: MVATrainer.cc:138
const Double_t pi
T sqrt(T t)
Definition: SSEVec.h:48
int j
Definition: DBlmapReader.cc:9
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void evf::ExceptionGenerator::beginRun ( edm::Run r,
const edm::EventSetup iSetup 
)

Definition at line 143 of file ExceptionGenerator.cc.

References tv_start_.

144  {
145  gettimeofday(&tv_start_,0);
146  }
void evf::ExceptionGenerator::beginStream ( )

Definition at line 33 of file ExceptionGenerator.cc.

References timingHisto_.

34  {
35  // timing destribution from (https://twiki.cern.ch/twiki/bin/viewauth/CMS/HLTCpuTimingFAQ#2011_Most_Recent_Data)
36  // /castor/cern.ch/user/d/dsperka/HLT/triggerSkim_HLTPhysics_run178479_68_188.root
37  // Baseline result with CMSSW_4_2_9_HLT3_hltpatch3 and /online/collisions/2011/5e33/v2.1/HLT/V9 :
38  // vocms110:/store/timing_178479/outfile-178479-col1.root
39 
40  timingHisto_ = new TH1D("timingHisto_","Total time for all modules per event",100,0,1000);
41  timingHisto_->SetBinContent(1,5016);
42  timingHisto_->SetBinContent(2,4563);
43  timingHisto_->SetBinContent(3,3298);
44  timingHisto_->SetBinContent(4,1995);
45  timingHisto_->SetBinContent(5,1708);
46  timingHisto_->SetBinContent(6,1167);
47  timingHisto_->SetBinContent(7,928);
48  timingHisto_->SetBinContent(8,785);
49  timingHisto_->SetBinContent(9,643);
50  timingHisto_->SetBinContent(10,486);
51  timingHisto_->SetBinContent(11,427);
52  timingHisto_->SetBinContent(12,335);
53  timingHisto_->SetBinContent(13,332);
54  timingHisto_->SetBinContent(14,327);
55  timingHisto_->SetBinContent(15,258);
56  timingHisto_->SetBinContent(16,257);
57  timingHisto_->SetBinContent(17,222);
58  timingHisto_->SetBinContent(18,253);
59  timingHisto_->SetBinContent(19,223);
60  timingHisto_->SetBinContent(20,177);
61  timingHisto_->SetBinContent(21,148);
62  timingHisto_->SetBinContent(22,148);
63  timingHisto_->SetBinContent(23,113);
64  timingHisto_->SetBinContent(24,83);
65  timingHisto_->SetBinContent(25,84);
66  timingHisto_->SetBinContent(26,75);
67  timingHisto_->SetBinContent(27,61);
68  timingHisto_->SetBinContent(28,66);
69  timingHisto_->SetBinContent(29,51);
70  timingHisto_->SetBinContent(30,43);
71  timingHisto_->SetBinContent(31,38);
72  timingHisto_->SetBinContent(32,27);
73  timingHisto_->SetBinContent(33,34);
74  timingHisto_->SetBinContent(34,28);
75  timingHisto_->SetBinContent(35,18);
76  timingHisto_->SetBinContent(36,26);
77  timingHisto_->SetBinContent(37,18);
78  timingHisto_->SetBinContent(38,11);
79  timingHisto_->SetBinContent(39,11);
80  timingHisto_->SetBinContent(40,12);
81  timingHisto_->SetBinContent(41,14);
82  timingHisto_->SetBinContent(42,11);
83  timingHisto_->SetBinContent(43,8);
84  timingHisto_->SetBinContent(44,4);
85  timingHisto_->SetBinContent(45,2);
86  timingHisto_->SetBinContent(46,5);
87  timingHisto_->SetBinContent(47,3);
88  timingHisto_->SetBinContent(48,4);
89  timingHisto_->SetBinContent(49,6);
90  timingHisto_->SetBinContent(50,6);
91  timingHisto_->SetBinContent(51,3);
92  timingHisto_->SetBinContent(52,5);
93  timingHisto_->SetBinContent(53,6);
94  timingHisto_->SetBinContent(54,6);
95  timingHisto_->SetBinContent(55,6);
96  timingHisto_->SetBinContent(56,4);
97  timingHisto_->SetBinContent(57,5);
98  timingHisto_->SetBinContent(58,9);
99  timingHisto_->SetBinContent(59,3);
100  timingHisto_->SetBinContent(60,3);
101  timingHisto_->SetBinContent(61,8);
102  timingHisto_->SetBinContent(62,7);
103  timingHisto_->SetBinContent(63,5);
104  timingHisto_->SetBinContent(64,7);
105  timingHisto_->SetBinContent(65,5);
106  timingHisto_->SetBinContent(66,5);
107  timingHisto_->SetBinContent(67,4);
108  timingHisto_->SetBinContent(68,2);
109  timingHisto_->SetBinContent(69,2);
110  timingHisto_->SetBinContent(70,4);
111  timingHisto_->SetBinContent(71,5);
112  timingHisto_->SetBinContent(72,4);
113  timingHisto_->SetBinContent(73,5);
114  timingHisto_->SetBinContent(74,3);
115  timingHisto_->SetBinContent(75,5);
116  timingHisto_->SetBinContent(76,3);
117  timingHisto_->SetBinContent(77,9);
118  timingHisto_->SetBinContent(78,2);
119  timingHisto_->SetBinContent(79,2);
120  timingHisto_->SetBinContent(80,5);
121  timingHisto_->SetBinContent(81,5);
122  timingHisto_->SetBinContent(82,5);
123  timingHisto_->SetBinContent(83,5);
124  timingHisto_->SetBinContent(84,4);
125  timingHisto_->SetBinContent(85,4);
126  timingHisto_->SetBinContent(86,9);
127  timingHisto_->SetBinContent(87,5);
128  timingHisto_->SetBinContent(88,4);
129  timingHisto_->SetBinContent(89,4);
130  timingHisto_->SetBinContent(90,5);
131  timingHisto_->SetBinContent(91,3);
132  timingHisto_->SetBinContent(92,3);
133  timingHisto_->SetBinContent(93,3);
134  timingHisto_->SetBinContent(94,7);
135  timingHisto_->SetBinContent(95,5);
136  timingHisto_->SetBinContent(96,6);
137  timingHisto_->SetBinContent(97,2);
138  timingHisto_->SetBinContent(98,3);
139  timingHisto_->SetBinContent(99,5);
140  timingHisto_->SetBinContent(101,147);
141  timingHisto_->SetEntries(24934);
142  }
void evf::ExceptionGenerator::endLuminosityBlock ( edm::LuminosityBlock const &  lb,
edm::EventSetup const &  es 
)
virtual

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 235 of file ExceptionGenerator.cc.

236  {
237 
238  }

Member Data Documentation

int evf::ExceptionGenerator::actionId_
private

Definition at line 28 of file ExceptionGenerator.h.

Referenced by analyze().

bool evf::ExceptionGenerator::actionRequired_
private

Definition at line 31 of file ExceptionGenerator.h.

Referenced by analyze().

unsigned int evf::ExceptionGenerator::intqualifier_
private

Definition at line 29 of file ExceptionGenerator.h.

Referenced by analyze().

const std::string evf::ExceptionGenerator::menu[menu_items]
static
const int evf::ExceptionGenerator::menu_items = 14
static

Definition at line 17 of file ExceptionGenerator.h.

std::string evf::ExceptionGenerator::original_referrer_
private

Definition at line 32 of file ExceptionGenerator.h.

std::string evf::ExceptionGenerator::qualifier_
private

Definition at line 30 of file ExceptionGenerator.h.

Referenced by analyze().

TH1D* evf::ExceptionGenerator::timingHisto_
private

Definition at line 33 of file ExceptionGenerator.h.

Referenced by analyze(), and beginStream().

timeval evf::ExceptionGenerator::tv_start_
private

Definition at line 34 of file ExceptionGenerator.h.

Referenced by analyze(), and beginRun().