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 25 of file ExceptionGenerator.cc.

25  :
26  actionId_(pset.getUntrackedParameter<int>("defaultAction",-1)),
27  intqualifier_(pset.getUntrackedParameter<int>("defaultQualifier",0)),
29  {
30 
31  }
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 147 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.

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

References tv_start_.

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

Definition at line 32 of file ExceptionGenerator.cc.

References timingHisto_.

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

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 234 of file ExceptionGenerator.cc.

235  {
236 
237  }

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().