CMS 3D CMS Logo

Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes

muonisolation::NominalEfficiencyThresholds Class Reference

#include <NominalEfficiencyThresholds.h>

List of all members.

Classes

struct  EfficiencyBin
 compare to efficiencies More...
class  EtaBounds
struct  locless
 compare two locations More...
struct  ThresholdLocation
 threshold location More...

Public Member Functions

std::vector< double > bins () const
void dump ()
 NominalEfficiencyThresholds (const std::string &infile)
 NominalEfficiencyThresholds ()
float thresholdValueForEfficiency (ThresholdLocation location, float eff_thr) const
 ~NominalEfficiencyThresholds ()

Private Types

typedef std::map
< ThresholdLocation,
ThresholdConstituents, locless
MapType
typedef std::pair
< EfficiencyBin, float > 
ThresholdConstituent
typedef std::map
< EfficiencyBin, float,
EfficiencyBin
ThresholdConstituents

Private Member Functions

void add (ThresholdLocation location, ThresholdConstituent threshold)

Private Attributes

EtaBounds etabounds
MapType thresholds

Detailed Description

Definition at line 10 of file NominalEfficiencyThresholds.h.


Member Typedef Documentation

Definition at line 58 of file NominalEfficiencyThresholds.h.

Definition at line 56 of file NominalEfficiencyThresholds.h.

Definition at line 57 of file NominalEfficiencyThresholds.h.


Constructor & Destructor Documentation

muonisolation::NominalEfficiencyThresholds::NominalEfficiencyThresholds ( ) [inline]

Definition at line 12 of file NominalEfficiencyThresholds.h.

{ }
muonisolation::NominalEfficiencyThresholds::NominalEfficiencyThresholds ( const std::string &  infile)
muonisolation::NominalEfficiencyThresholds::~NominalEfficiencyThresholds ( ) [inline]

Definition at line 14 of file NominalEfficiencyThresholds.h.

{ }

Member Function Documentation

void NominalEfficiencyThresholds::add ( ThresholdLocation  location,
ThresholdConstituent  threshold 
) [private]

Definition at line 100 of file NominalEfficiencyThresholds.cc.

{
  MapType::iterator ploc = thresholds.find(location);
  if ( ploc == thresholds.end() ) {
    ThresholdConstituents mt;
    mt.insert(threshold);
    thresholds[location] = mt;
  } else {
//    cout << "insert element ("<<threshold.first.eff<<","
//                            <<threshold.first.eff_previous<<") to map "<<endl;
    (*ploc).second.insert(threshold);
//    cout << "new size is:"<< (*ploc).second.size() <<endl;
  }
}
vector< double > NominalEfficiencyThresholds::bins ( ) const

Definition at line 43 of file NominalEfficiencyThresholds.cc.

References i, and query::result.

{
  vector<double> result;
  for (unsigned int i=1; i <=EtaBounds::NumberOfTowers; i++) result.push_back(etabounds(i));
  return result;  
}
void NominalEfficiencyThresholds::dump ( void  )

Definition at line 116 of file NominalEfficiencyThresholds.cc.

References gather_cfg::cout.

{
  MapType::iterator ploc;
  for (ploc = thresholds.begin(); ploc != thresholds.end(); ploc++) {
    cout << "eta: "<< (*ploc).first.eta
         << " icone: "<< (*ploc).first.cone<<endl;
    ThresholdConstituents::iterator it;
    for (it = (*ploc).second.begin(); it != (*ploc).second.end(); it++) {
      cout << " eff: "         << (*it).first.eff
           << " eff_previous: "<< (*it).first.eff_previous
           << " cut value: "   << (*it).second <<endl;
    }
  }
}
float NominalEfficiencyThresholds::thresholdValueForEfficiency ( ThresholdLocation  location,
float  eff_thr 
) const

Definition at line 131 of file NominalEfficiencyThresholds.cc.

References muonisolation::NominalEfficiencyThresholds::ThresholdLocation::cone, gather_cfg::cout, epsilon, and muonisolation::NominalEfficiencyThresholds::ThresholdLocation::eta.

Referenced by muonisolation::IsolatorByNominalEfficiency::result().

{
  MapType::const_iterator ploc = thresholds.find(location);
  if ( ploc == thresholds.end() ) {
    cout << "NominalEfficiencyThresholds: Problem:can't find location in the map :( "
       << location.eta << " " << location.cone << " " << eff_thr
       <<endl;
    return -1;
  }

  const float epsilon=1.e-6;
  EfficiencyBin eb = {eff_thr,eff_thr-epsilon};
  ThresholdConstituents::const_iterator it = (*ploc).second.find(eb);
  if (it == (*ploc).second.end()) {
    cout << "NominalEfficiencyThresholds: Problem:can't find threshold in the map :("<<endl;
    return -1;
  }

  return (*it).second;
}

Member Data Documentation

Definition at line 63 of file NominalEfficiencyThresholds.h.

Definition at line 61 of file NominalEfficiencyThresholds.h.