CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg > Class Template Reference

#include <Comparison.h>

Public Member Functions

void book ()
 
void book (ofstream &)
 
 Comparison (const edm::ParameterSet &)
 
std::map< unsigned int,
unsigned int > 
operator() (const Ref &, const Rec &)
 
void summarize ()
 
 ~Comparison ()
 

Private Attributes

Alg alg_
 
unsigned int failed_
 
unsigned int found_
 
std::vector< TH1F * > hDR_
 
std::vector< TH1F * > hEta_
 
std::vector< TH1F * > hPt_
 
double maxDR_
 
double maxEtaRec_
 
double maxEtaRef_
 
double maxPtRec_
 
double maxPtRef_
 
double minEtaRec_
 
double minEtaRef_
 
double minPtRec_
 
double minPtRef_
 
unsigned int missed_
 
RecQualifier recQualifier_
 
RefQualifier refQualifier_
 

Detailed Description

template<typename Ref, typename RefQualifier, typename Rec, typename RecQualifier, typename Alg>
class Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >

Definition at line 22 of file Comparison.h.

Constructor & Destructor Documentation

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::Comparison ( const edm::ParameterSet cfg)

Definition at line 56 of file Comparison.h.

References Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::book(), mergeVDriftHistosByStation::file, edm::ParameterSet::getParameter(), estimatePileup::hist, and dbtoconf::out.

56  :
57  maxDR_( cfg.getParameter<double>( "maxDR" ) ),
58  minPtRef_ ( cfg.getParameter<double>( "minPtRef" ) ),
59  maxPtRef_ ( cfg.getParameter<double>( "maxPtRef" ) ),
60  minPtRec_ ( cfg.getParameter<double>( "minPtRec" ) ),
61  maxPtRec_ ( cfg.getParameter<double>( "maxPtRec" ) ),
62  minEtaRef_( cfg.getParameter<double>( "minEtaRef" ) ),
63  maxEtaRef_( cfg.getParameter<double>( "maxEtaRef" ) ),
64  minEtaRec_( cfg.getParameter<double>( "minEtaRec" ) ),
65  maxEtaRec_( cfg.getParameter<double>( "maxEtaRec" ) ),
66  refQualifier_( cfg ), recQualifier_( cfg ),
67  found_( 0 ), missed_( 0 ), failed_( 0 )
68 {
69  std::string hist=cfg.getParameter<std::string>("hist");
70  if( hist.empty() )
71  book();
72  else{
73  ofstream file(hist.c_str(), std::ios::out);
74  book(file);
75  }
76 }
T getParameter(std::string const &) const
double minPtRec_
Definition: Comparison.h:36
double maxPtRef_
Definition: Comparison.h:35
double maxPtRec_
Definition: Comparison.h:36
double maxEtaRef_
Definition: Comparison.h:37
double maxEtaRec_
Definition: Comparison.h:38
unsigned int failed_
Definition: Comparison.h:52
double minPtRef_
Definition: Comparison.h:35
RefQualifier refQualifier_
Definition: Comparison.h:47
double minEtaRec_
Definition: Comparison.h:38
unsigned int found_
Definition: Comparison.h:50
void book()
Definition: Comparison.h:144
RecQualifier recQualifier_
Definition: Comparison.h:48
double minEtaRef_
Definition: Comparison.h:37
tuple out
Definition: dbtoconf.py:99
double maxDR_
Definition: Comparison.h:34
unsigned int missed_
Definition: Comparison.h:51
template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::~Comparison ( )
inline

Definition at line 26 of file Comparison.h.

26 {};

Member Function Documentation

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
void Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::book ( )

Definition at line 144 of file Comparison.h.

References edm::errors::Configuration, edm::hlt::Exception, TFileDirectory::make(), match(), and NameScheme::name().

Referenced by Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::Comparison().

145 {
147  if( !fs )
148  throw edm::Exception( edm::errors::Configuration, "TFile Service is not registered in cfg file" );
149 
150  NameScheme match("match");
151  static const unsigned int MAXHIST=2;
152  for(unsigned int idx=0; idx<MAXHIST; ++idx){
153  hDR_ .push_back( fs->make<TH1F>( match.name( "deltaR", idx), match.name("dR"), 100, 0., 1.) );
154  hPt_ .push_back( fs->make<TH1F>( match.name( "effPt", idx), match.name("pt"), 30, 0., 300.) );
155  hEta_.push_back( fs->make<TH1F>( match.name( "effEta", idx), match.name("eta"), 30,-3., 3.) );
156  }
157 }
std::vector< TH1F * > hPt_
Definition: Comparison.h:43
std::vector< TH1F * > hDR_
Definition: Comparison.h:42
std::vector< TH1F * > hEta_
Definition: Comparison.h:44
T * make() const
make new ROOT object
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
void Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::book ( ofstream &  file)

Definition at line 160 of file Comparison.h.

References edm::errors::Configuration, edm::hlt::Exception, TFileDirectory::make(), match(), and NameScheme::name().

161 {
163  if( !fs )
164  throw edm::Exception( edm::errors::Configuration, "TFile Service is not registered in cfg file" );
165 
166  NameScheme match("match");
167  static const unsigned int MAXHIST=2;
168  for(unsigned int idx=0; idx<MAXHIST; ++idx){
169  hDR_ .push_back( fs->make<TH1F>( match.name(file, "deltaR", idx), match.name("dR"), 100, 0., 1.) );
170  hPt_ .push_back( fs->make<TH1F>( match.name(file, "effPt", idx), match.name("pt"), 30, 0., 300.) );
171  hEta_.push_back( fs->make<TH1F>( match.name(file, "effEta", idx), match.name("eta"), 30,-3., 3.) );
172  }
173 }
std::vector< TH1F * > hPt_
Definition: Comparison.h:43
std::vector< TH1F * > hDR_
Definition: Comparison.h:42
std::vector< TH1F * > hEta_
Definition: Comparison.h:44
T * make() const
make new ROOT object
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
std::map< unsigned int, unsigned int > Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::operator() ( const Ref &  refs,
const Rec &  recs 
)

Definition at line 80 of file Comparison.h.

References eta(), HcalObjRepresent::Fill(), match(), and findQualityFiles::size.

81 {
82  int refIdx=0;
83  std::map<unsigned int, unsigned int> matches;
84  for(typename Ref::const_iterator ref=refs.begin();
85  ref!=refs.end(); ++ref, ++refIdx ){
86  if( !(minEtaRef_<ref->eta() && ref->eta()<maxEtaRef_) )
87  // retrict to visible range in eta
88  continue;
89 
90  if( !(minPtRef_ <ref->pt() && ref->pt() <maxPtRef_ ) )
91  // restrict to visible range in pt
92  continue;
93 
94  if( !refQualifier_( *ref ) )
95  // restrtict to properly qualified reference object
96  continue;
97 
98  int jetIdx=0;
99  int match=-1;
100  double dist=-1.;
101  for(typename Rec::const_iterator rec = recs.begin();
102  rec!=recs.end(); ++rec, ++jetIdx ){
103  if( !(minEtaRec_<rec->eta() && rec->eta()<maxEtaRec_) )
104  // retrict to visible range in eta
105  continue;
106 
107  if( !(minPtRec_ <rec->pt() && rec->pt() <maxPtRec_ ) )
108  // restrict to visible range in pt
109  continue;
110 
111  if( !recQualifier_( *rec ) )
112  // restrtict to properly qualified CaloJet
113  continue;
114 
115  double dR = alg_(*ref, *rec);
116  if( dist<0 || dR<dist ){
117  dist = dR;
118  match = jetIdx;
119  }
120  }
121  if( match<0 ) ++failed_;
122  if( match>=0 ){
123  if(hDR_ .size()>0) hDR_ [0]->Fill( dist );
124  if(hPt_ .size()>0) hPt_ [0]->Fill( ref->pt() );
125  if(hEta_.size()>0) hEta_[0]->Fill( ref->eta() );
126  }
127  if( 0<dist && dist<maxDR_ ){
128  ++found_;
129  if( match>=0 ){
130  if(hDR_ .size()>1) hDR_ [1]->Fill( dist );
131  if(hPt_ .size()>1) hPt_ [1]->Fill( ref->pt() );
132  if(hEta_.size()>1) hEta_[1]->Fill( ref->eta() );
133  }
134  if( !matches.insert(std::pair<int, int>(refIdx, match)).second )
135  edm::LogWarning ( "MapMismatch" )
136  << "Match could not be inserted in map; entry already exited?!";
137  }
138  else ++missed_;
139  }
140  return matches;
141 }
double maxPtRef_
Definition: Comparison.h:35
std::vector< TH1F * > hPt_
Definition: Comparison.h:43
double maxPtRec_
Definition: Comparison.h:36
double maxEtaRef_
Definition: Comparison.h:37
double maxEtaRec_
Definition: Comparison.h:38
unsigned int failed_
Definition: Comparison.h:52
RefQualifier refQualifier_
Definition: Comparison.h:47
T eta() const
unsigned int found_
Definition: Comparison.h:50
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
RecQualifier recQualifier_
Definition: Comparison.h:48
std::vector< TH1F * > hDR_
Definition: Comparison.h:42
std::vector< TH1F * > hEta_
Definition: Comparison.h:44
double maxDR_
Definition: Comparison.h:34
unsigned int missed_
Definition: Comparison.h:51
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:6
tuple size
Write out results.
template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
void Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::summarize ( )

Definition at line 176 of file Comparison.h.

References cond::ecalcond::all.

177 {
178  unsigned int all=found_+missed_+failed_;
179  if(all>0){
180  edm::LogInfo("MatchSummary") << "=============================================";
181  edm::LogInfo("MatchSummary") << "Reference :";
182  edm::LogInfo("MatchSummary") << "CaloJet :";
183  edm::LogInfo("MatchSummary") << "fraction of found jets: " << 100*found_ /all << "%";
184  edm::LogInfo("MatchSummary") << "fraction of missed jets: " << 100*missed_/all << "%";
185  edm::LogInfo("MatchSummary") << "fraction of failed jets: " << 100*failed_/all << "%";
186  }
187  else{
188  edm::LogWarning ( "MatchOrBalanceFault" )
189  << "No missed, failed nor counts found";
190  }
191 }
unsigned int failed_
Definition: Comparison.h:52
unsigned int found_
Definition: Comparison.h:50
unsigned int missed_
Definition: Comparison.h:51

Member Data Documentation

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
Alg Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::alg_
private

Definition at line 46 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
unsigned int Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::failed_
private

Definition at line 52 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
unsigned int Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::found_
private

Definition at line 50 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
std::vector<TH1F*> Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::hDR_
private

Definition at line 42 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
std::vector<TH1F*> Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::hEta_
private

Definition at line 44 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
std::vector<TH1F*> Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::hPt_
private

Definition at line 43 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::maxDR_
private

Definition at line 34 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::maxEtaRec_
private

Definition at line 38 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::maxEtaRef_
private

Definition at line 37 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::maxPtRec_
private

Definition at line 36 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::maxPtRef_
private

Definition at line 35 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::minEtaRec_
private

Definition at line 38 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::minEtaRef_
private

Definition at line 37 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::minPtRec_
private

Definition at line 36 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
double Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::minPtRef_
private

Definition at line 35 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
unsigned int Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::missed_
private

Definition at line 51 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
RecQualifier Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::recQualifier_
private

Definition at line 48 of file Comparison.h.

template<typename Ref , typename RefQualifier , typename Rec , typename RecQualifier , typename Alg >
RefQualifier Comparison< Ref, RefQualifier, Rec, RecQualifier, Alg >::refQualifier_
private

Definition at line 47 of file Comparison.h.