Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Electron multi threading2 #6634

Merged
merged 141 commits into from Nov 28, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
c8bd429
multiThreading
archiron Sep 19, 2014
a542acb
multiThreading
archiron Sep 19, 2014
a7100f5
multiThreading
archiron Sep 19, 2014
d18f4ed
multiThreading
archiron Sep 19, 2014
9e39f2e
multiThreading
archiron Sep 19, 2014
681b685
multiThreading
archiron Sep 19, 2014
2525533
multiThreading
archiron Sep 19, 2014
4c74990
multiThreading
archiron Sep 19, 2014
9b3fdb7
multiThreading
archiron Sep 19, 2014
6919cd2
multiThreading
archiron Sep 19, 2014
bd2bc3a
multiThreading
archiron Sep 19, 2014
facac9a
multiThreading
archiron Sep 19, 2014
f51661f
multiThreading
archiron Sep 19, 2014
6dc2178
multiThreading
archiron Sep 19, 2014
a5fc6be
multiThreading
archiron Sep 19, 2014
812e2d0
multiThreading
archiron Sep 19, 2014
11f18e8
multiThreading
archiron Sep 19, 2014
fa14520
multiThreading
archiron Sep 19, 2014
82178e4
multiThreading
archiron Sep 19, 2014
8745012
multiThreading
archiron Sep 19, 2014
8816ccd
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
496b6a9
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
2da1a12
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
7c03390
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
25174a7
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
679e18b
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
9e516eb
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
a315616
setEfficiencyFlag setStatOverflowFlag
archiron Sep 19, 2014
eeed6ed
minor modification
archiron Sep 19, 2014
20736e7
DQMStore removed
archiron Oct 10, 2014
df58f02
DQMStore removed
archiron Oct 10, 2014
3a2492a
MT
archiron Oct 15, 2014
ad9ebba
MT
archiron Oct 15, 2014
bc7938a
MT temp
archiron Oct 15, 2014
5452647
MT temp
archiron Oct 15, 2014
2ab50b1
MT temp
archiron Oct 15, 2014
bbb8775
MT temp
archiron Oct 15, 2014
f916a86
MT temp
archiron Oct 15, 2014
595299d
MT temp
archiron Oct 15, 2014
fa96bc9
MT temp
archiron Oct 15, 2014
9b5f9c8
MT temp
archiron Oct 15, 2014
4acc4c0
MT temp
archiron Oct 15, 2014
769f8e6
MT temp
archiron Oct 15, 2014
a6183bc
MT
archiron Oct 15, 2014
234250a
MT
archiron Oct 15, 2014
8300346
MT
archiron Oct 15, 2014
4fa6ad7
MT
archiron Oct 15, 2014
6029d14
MT temp
archiron Oct 15, 2014
9872d07
MT
archiron Oct 15, 2014
5372d93
MT temp
archiron Oct 15, 2014
b60831e
MT temp
archiron Oct 15, 2014
df96b17
MT
archiron Oct 15, 2014
55c4d4a
MT temp
archiron Oct 15, 2014
c6531d7
MT temp
archiron Oct 15, 2014
c1fdaa8
MT
archiron Oct 15, 2014
d61ab32
MT temp
archiron Oct 15, 2014
f439aa1
MT temp
archiron Oct 15, 2014
ed1ecdf
MT temp
archiron Oct 15, 2014
4011ab4
MultiThreading without DQMStrore
archiron Oct 17, 2014
75d7e5c
MultiThreading without DQMStore
archiron Oct 17, 2014
cf07066
MultiThreading without DQMStore
archiron Oct 17, 2014
48418f7
MultiThreading without DQMStore
archiron Oct 17, 2014
45caa9d
MultiThreading without DQMStore
archiron Oct 17, 2014
8f29b20
MultiThreading without DQMStore
archiron Oct 17, 2014
433a5fe
MultiThreading without DQMStore
archiron Oct 17, 2014
9042b73
MultiThreading without DQMStore
archiron Oct 17, 2014
e2d2212
MultiThreading without DQMStore
archiron Oct 17, 2014
c0a494b
MultiThreading without DQMStore
archiron Oct 17, 2014
5a05dbc
MultiThreading without DQMStore
archiron Oct 17, 2014
e78d85d
MultiThreading without DQMStore
archiron Oct 17, 2014
4af73e2
python script
archiron Oct 17, 2014
bb298f4
python script
archiron Oct 17, 2014
d8f7fe4
python script
archiron Oct 17, 2014
b2516b2
python script
archiron Oct 17, 2014
70193cf
python script
archiron Oct 17, 2014
7dd51e7
python script
archiron Oct 17, 2014
ba6474c
python script
archiron Oct 17, 2014
6b05908
python script
archiron Oct 17, 2014
5d3674e
python script
archiron Oct 17, 2014
bc0c024
unusued
archiron Oct 20, 2014
5c65c75
unusued
archiron Oct 20, 2014
6b71def
unusued
archiron Oct 20, 2014
fc7c3a7
unusued
archiron Oct 20, 2014
a16111a
removed unused ElectronWebGetter
archiron Oct 20, 2014
b157697
multithreading for analyze
archiron Oct 20, 2014
1412633
multithreading for analyze
archiron Oct 20, 2014
6b88e41
multithreading for analyze
archiron Oct 20, 2014
97ee33c
BookH1withSumw2 pbms
archiron Oct 20, 2014
5a1bfab
BookH1withSumw2 pbms
archiron Oct 20, 2014
290b40a
reuse of ElectronWget
archiron Oct 20, 2014
f2ff3bc
ElectronWebGetter.h
archiron Oct 22, 2014
3fa32f9
new version MultiThreading
archiron Oct 27, 2014
13240a1
new version MultiThreading
archiron Oct 27, 2014
f079f4b
new version MultiThreading
archiron Oct 27, 2014
4885ae7
new MultiThreading version
archiron Oct 27, 2014
9d5d2f2
new MultiThreading version
archiron Oct 27, 2014
597bd0a
new MultiThreading version
archiron Oct 27, 2014
ac7785b
new MultiThreading version
archiron Oct 27, 2014
d8a89b3
MultiThreading
archiron Oct 27, 2014
ef0f243
MultiThreading with 1 DQMStore
archiron Oct 27, 2014
4ef4ec9
MultiThreading setcurrentFolder Removed
archiron Oct 27, 2014
e4ff6ff
MultiThreading setcurrentFolder Removed
archiron Oct 27, 2014
754d3e8
MultiThreading setcurrentFolder Removed
archiron Oct 27, 2014
f6fbfd1
MultiThreading setcurrentFolder Removed
archiron Oct 27, 2014
e1de7d3
MultiThreading
archiron Oct 27, 2014
0a6817f
last version
archiron Oct 27, 2014
9d8e87f
last version
archiron Oct 27, 2014
6158ee5
last version
archiron Oct 27, 2014
905f2d6
last version
archiron Oct 27, 2014
7027309
default efficiency to false
archiron Oct 30, 2014
cac2039
default efficiency to false
archiron Oct 30, 2014
9a809ac
default efficiency to false
archiron Oct 30, 2014
4e974ff
default efficiency to false
archiron Oct 30, 2014
3c1c7d2
remove efficiency from electronAnalyzer_cfi
archiron Oct 30, 2014
9580058
MultiThreading use
archiron Nov 18, 2014
fb23884
MultiThreading use
archiron Nov 18, 2014
144a582
MultiThreading use
archiron Nov 18, 2014
dd29a5e
MultiThreading use
archiron Nov 18, 2014
ccf6828
MultiThreading use
archiron Nov 18, 2014
05cc6e7
MultiThreading use
archiron Nov 18, 2014
0cb5c90
MultiThreading use
archiron Nov 18, 2014
9dc1b3b
MultiThreading use
archiron Nov 18, 2014
86b07f5
MultiThreading use
archiron Nov 18, 2014
360b6a6
analyze fake for MultiThreading
archiron Nov 18, 2014
715adb4
analyze fake for MultiThreading
archiron Nov 18, 2014
a5c85cd
analyze signal for MultiThreading
archiron Nov 18, 2014
60119a5
analyze Pt1000 for MultiThreading
archiron Nov 18, 2014
b5d0ba4
analyze signal for MultiThreading
archiron Nov 18, 2014
2be2605
finalize fake for MultiThreading
archiron Nov 18, 2014
0a51168
analyze fake for MultiThreading
archiron Nov 18, 2014
3ff4ece
finalize signal cfg for MultiThreading
archiron Nov 18, 2014
b476805
analyze Pt1000 cfg for MultiThreading
archiron Nov 18, 2014
8be83cc
new script version for analyze
archiron Nov 18, 2014
fa173cf
new script version for finalize
archiron Nov 18, 2014
bbc1687
new script version for store
archiron Nov 18, 2014
b5b2ce9
new script version for publishing web page
archiron Nov 18, 2014
17bf0a7
analyze signal cfg for MultiThreading
archiron Nov 18, 2014
0954228
Update ElectronGeneralAnalyzer.h
archiron Oct 31, 2014
2e8742a
Update ElectronGeneralAnalyzer.cc
archiron Oct 31, 2014
c63b197
Update ElectronTagProbeAnalyzer.h
archiron Oct 31, 2014
943871c
Update ElectronTagProbeAnalyzer.cc
archiron Oct 31, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
80 changes: 21 additions & 59 deletions DQMOffline/EGamma/interface/ElectronDqmAnalyzerBase.h
Expand Up @@ -11,7 +11,12 @@ class MonitorElement ;
#include <string>
#include <vector>

class ElectronDqmAnalyzerBase : public edm::EDAnalyzer
//DQM
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"
#include "DQMServices/Core/interface/MonitorElement.h"

class ElectronDqmAnalyzerBase : public DQMEDAnalyzer
{

protected:
Expand All @@ -20,125 +25,82 @@ class ElectronDqmAnalyzerBase : public edm::EDAnalyzer
virtual ~ElectronDqmAnalyzerBase() ;

// specific implementation of EDAnalyzer
void beginJob() ; // prepare DQM, open input field if declared, and call book() below
virtual void endRun( edm::Run const &, edm::EventSetup const & ) ; // call finialize() if finalStep==AtRunEnd
virtual void endLuminosityBlock( edm::LuminosityBlock const &, edm::EventSetup const & ) ; // call finalize() if finalStep==AtLumiEnd
virtual void endJob() ; // call finalize() if if finalStep==AtJobEnd
virtual void endRun( edm::Run const &, edm::EventSetup const & ) ;
virtual void endLuminosityBlock( edm::LuminosityBlock const &, edm::EventSetup const & ) ;
virtual void dqmBeginRun( edm::Run const & , edm::EventSetup const & ) ;
void bookHistograms( DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;

// interface to implement in derived classes
virtual void book() {}
virtual void analyze( const edm::Event & e, const edm::EventSetup & c ) {}
virtual void finalize() {}

// utility methods
bool finalStepDone() { return finalDone_ ; }
int verbosity() { return verbosity_ ; }
MonitorElement * get( const std::string & name ) ;
void remove( const std::string & name ) ;
void remove_other_dirs() ;

void setBookPrefix( const std::string & ) ;
void setBookIndex( short ) ;
void setBookEfficiencyFlag( const bool & ) ;
void setBookStatOverflowFlag ( const bool & ) ;

MonitorElement * bookH1
( const std::string & name, const std::string & title,
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
const std::string & titleX ="", const std::string & titleY ="Events",
Option_t * option = "E1 P" ) ;

MonitorElement * bookH1withSumw2
( const std::string & name, const std::string & title,
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
const std::string & titleX ="", const std::string & titleY ="Events",
Option_t * option = "E1 P" ) ;

MonitorElement * bookH2
( const std::string & name, const std::string & title,
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
int nchY, double lowY, double highY,
const std::string & titleX ="", const std::string & titleY ="",
Option_t * option = "COLZ" ) ;

MonitorElement * bookH2withSumw2
( const std::string & name, const std::string & title,
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
int nchY, double lowY, double highY,
const std::string & titleX ="", const std::string & titleY ="",
Option_t * option = "COLZ" ) ;

MonitorElement * bookP1
( const std::string & name, const std::string & title,
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
double lowY, double highY,
const std::string & titleX ="", const std::string & titleY ="",
Option_t * option = "E1 P" ) ;

MonitorElement * bookH1andDivide
( const std::string & name, MonitorElement * num, MonitorElement * denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="", const std::string & setEfficiencyFlag="" ) ;

MonitorElement * bookH2andDivide
( const std::string & name, MonitorElement * num, MonitorElement * denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="" ) ;

MonitorElement * cloneH1
( const std::string & name, MonitorElement * original,
( DQMStore::IBooker & iBooker, const std::string & name, MonitorElement * original,
const std::string & title ="" ) ;

MonitorElement * profileX
( MonitorElement * me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

MonitorElement * profileY
( MonitorElement * me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

MonitorElement * bookH1andDivide
( const std::string & name, const std::string & num, const std::string & denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="", const std::string & setEfficiencyFlag="" ) ;

MonitorElement * bookH2andDivide
( const std::string & name, const std::string & num, const std::string & denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="" ) ;

MonitorElement * cloneH1
( const std::string & name, const std::string & original,
( DQMStore::IBooker & iBooker, const std::string & name, const std::string & original,
const std::string & title ="" ) ;

MonitorElement * profileX
( const std::string & me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

MonitorElement * profileY
( const std::string & me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

private:

int verbosity_ ;
std::string bookPrefix_ ;
short bookIndex_ ;
bool bookEfficiencyFlag_ = false;
bool bookStatOverflowFlag_ = false;
bool histoNamesReady ;
std::vector<std::string> histoNames_ ;
std::string finalStep_ ;
std::string inputFile_ ;
std::string outputFile_ ;
std::string inputInternalPath_ ;
std::string outputInternalPath_ ;
DQMStore * store_ ;
bool finalDone_ ;

// utility methods
std::string newName( const std::string & name ) ;
const std::string * find( const std::string & name ) ;
} ;

#endif
Expand Down
157 changes: 157 additions & 0 deletions DQMOffline/EGamma/interface/ElectronDqmHarvesterBase.h
@@ -0,0 +1,157 @@

#ifndef ElectronDqmHarvesterBase_h
#define ElectronDqmHarvesterBase_h

class DQMStore ;
class MonitorElement ;

#include "FWCore/Framework/interface/EDAnalyzer.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include <Rtypes.h>
#include <string>
#include <vector>

//DQM
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "DQMServices/Core/interface/MonitorElement.h"

class ElectronDqmHarvesterBase : public DQMEDHarvester
{

protected:

explicit ElectronDqmHarvesterBase( const edm::ParameterSet & conf ) ;
virtual ~ElectronDqmHarvesterBase() ;

// specific implementation of EDAnalyzer
void beginJob() ; // prepare DQM, open input field if declared, and call book() below
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const&); //performed in the endLumi
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override; //performed in the endJob

// interface to implement in derived classes
virtual void finalize( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter ) {} ; // override ;, const edm::Event& e, const edm::EventSetup & c

// utility methods
bool finalStepDone() { return finalDone_ ; }
int verbosity() { return verbosity_ ; }
MonitorElement * get( DQMStore::IGetter & iGetter, const std::string & name ) ;
void remove( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter, const std::string & name ) ;

void setBookPrefix( const std::string & ) ;
void setBookIndex( short ) ;
void setBookEfficiencyFlag( const bool & ) ;
void setBookStatOverflowFlag ( const bool & ) ;

MonitorElement * bookH1
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
const std::string & titleX ="", const std::string & titleY ="Events",
Option_t * option = "E1 P" ) ;

MonitorElement * bookH1withSumw2
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
const std::string & titleX ="", const std::string & titleY ="Events",
Option_t * option = "E1 P" ) ;

MonitorElement * bookH2
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
int nchY, double lowY, double highY,
const std::string & titleX ="", const std::string & titleY ="",
Option_t * option = "COLZ" ) ;

MonitorElement * bookH2withSumw2
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
int nchY, double lowY, double highY,
const std::string & titleX ="", const std::string & titleY ="",
Option_t * option = "COLZ" ) ;

MonitorElement * bookP1
( DQMStore::IBooker & , const std::string & name, const std::string & title,
int nchX, double lowX, double highX,
double lowY, double highY,
const std::string & titleX ="", const std::string & titleY ="",
Option_t * option = "E1 P" ) ;

MonitorElement * bookH1andDivide
( DQMStore::IBooker & iBooker, DQMStore::IGetter &,
const std::string & name, MonitorElement * num, MonitorElement * denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="" ) ;

MonitorElement * bookH2andDivide
( DQMStore::IBooker & iBooker, DQMStore::IGetter &,
const std::string & name, MonitorElement * num, MonitorElement * denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="" ) ;

MonitorElement * cloneH1
( DQMStore::IBooker & iBooker, DQMStore::IGetter &,
const std::string & name, MonitorElement * original,
const std::string & title ="" ) ;

MonitorElement * profileX
( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter, MonitorElement * me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

MonitorElement * profileY
( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter, MonitorElement * me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

MonitorElement * bookH1andDivide
( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter,
const std::string & name, const std::string & num, const std::string & denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="" ) ;

MonitorElement * bookH2andDivide
( DQMStore::IBooker & iBooker, DQMStore::IGetter &,
const std::string & name, const std::string & num, const std::string & denom,
const std::string & titleX, const std::string & titleY,
const std::string & title ="" ) ;

MonitorElement * cloneH1
( DQMStore::IBooker & iBooker, DQMStore::IGetter &,
const std::string & name, const std::string & original,
const std::string & title ="" ) ;

MonitorElement * profileX
( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter, const std::string & me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

MonitorElement * profileY
( DQMStore::IBooker & iBooker, DQMStore::IGetter & iGetter, const std::string & me2d,
const std::string & title ="", const std::string & titleX ="", const std::string & titleY ="",
Double_t minimum = -1111, Double_t maximum = -1111 ) ;

private:

int verbosity_ ;
std::string bookPrefix_ ;
short bookIndex_ ;
bool bookEfficiencyFlag_ = false;
bool bookStatOverflowFlag_ = false;
bool histoNamesReady ;
std::vector<std::string> histoNames_ ;
std::string finalStep_ ;
std::string inputFile_ ;
std::string outputFile_ ;
std::string inputInternalPath_ ;
std::string outputInternalPath_ ;
bool finalDone_ ;

// utility methods
std::string newName( const std::string & name ) ;
const std::string * find( DQMStore::IGetter & iGetter, const std::string & name ) ;
} ;

#endif