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 Member Functions | Private Attributes | Static Private Attributes
SusyPostProcessor Class Reference

#include <SusyPostProcessor.h>

Inheritance diagram for SusyPostProcessor:
DQMEDHarvester edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 SusyPostProcessor (const edm::ParameterSet &pSet)
 
 ~SusyPostProcessor ()
 
- Public Member Functions inherited from DQMEDHarvester
virtual void analyze (edm::Event const &, edm::EventSetup const &) final
 
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDHarvester (void)
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void endJob () final
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
virtual void endRun (edm::Run const &, edm::EventSetup const &)
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 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 (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

virtual void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &)
 
void QuantilePlots (MonitorElement *&, double, DQMStore::IBooker &)
 

Private Attributes

double _quantile
 
std::vector< std::string > Dirs
 
std::vector< MonitorElement * > histoVector
 
edm::ParameterSet iConfig
 
MonitorElementMEx
 
MonitorElementMEy
 
std::string SUSYFolder
 

Static Private Attributes

static const char * messageLoggerCatregory = "SusyDQMPostProcessor"
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 22 of file SusyPostProcessor.h.

Constructor & Destructor Documentation

SusyPostProcessor::SusyPostProcessor ( const edm::ParameterSet pSet)
explicit

Definition at line 12 of file SusyPostProcessor.cc.

References edm::ParameterSet::getParameter().

13 {
14  iConfig = pSet;
15 
16  SUSYFolder = iConfig.getParameter<string>("folderName");
17  _quantile = iConfig.getParameter<double>("quantile");
18 
19 }
edm::ParameterSet iConfig
T getParameter(std::string const &) const
std::string SUSYFolder
SusyPostProcessor::~SusyPostProcessor ( )

Definition at line 21 of file SusyPostProcessor.cc.

21  {
22 }

Member Function Documentation

void SusyPostProcessor::dqmEndJob ( DQMStore::IBooker ibook_,
DQMStore::IGetter iget_ 
)
privatevirtual

Implements DQMEDHarvester.

Definition at line 57 of file SusyPostProcessor.cc.

References DQMStore::IGetter::dirExists(), TrackerOfflineValidation_Dqm_cff::dirName, MonitorElement::DQM_KIND_TH1F, spr::find(), newFWLiteAna::found, DQMStore::IGetter::get(), DQMStore::IGetter::getContents(), DQMStore::IGetter::getSubdirs(), MonitorElement::getTH1F(), i, DQMStore::IGetter::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

58 {
59  // MET
60  //----------------------------------------------------------------------------
61  iget_.setCurrentFolder("JetMET/MET");
62 
63  Dirs = iget_.getSubdirs();
64 
65  std::vector<std::string> metFolders;
66 
67  metFolders.push_back("Uncleaned/");
68  metFolders.push_back("Cleaned/");
69 
70  //Need our own copy for thread safety
71  TF1 mygaus("mygaus","gaus");
72 
73  for (int i=0; i<int(Dirs.size()); i++) {
74 
75  std::string prefix = "dummy";
76 
77  if (size_t(Dirs[i].find("met")) != string::npos) prefix = "met";
78  if (size_t(Dirs[i].find("pfMet")) != string::npos) prefix = "pfMET";
79 
80  for (std::vector<std::string>::const_iterator ic=metFolders.begin();
81  ic!=metFolders.end(); ic++) {
82 
83  std::string dirName = Dirs[i] +"/" + *ic;
84 
85  MEx = iget_.get(dirName + "/"+"MEx");
86  MEy = iget_.get(dirName + "/"+"MEy");
87 
89  if (MEx->getTH1F()->GetEntries() > 50) MEx->getTH1F()->Fit(&mygaus, "q");
90  }
91 
93  if (MEy->getTH1F()->GetEntries() > 50) MEy->getTH1F()->Fit(&mygaus, "q");
94  }
95  }
96  }
97 
98 
99  // SUSY
100  //----------------------------------------------------------------------------
102  Dirs = iget_.getSubdirs();
103  for (int i=0; i<int(Dirs.size()); i++)
104  {
105  size_t found = Dirs[i].find("Alpha");
106  if (found!=string::npos) continue;
107  if(!iget_.dirExists(Dirs[i])){
108  edm::LogError(messageLoggerCatregory)<< "Directory "<<Dirs[i]<<" doesn't exist!!";
109  continue;
110  }
111  vector<MonitorElement*> histoVector = iget_.getContents(Dirs[i]);
112  for (int i=0; i<int(histoVector.size()); i++) {
113  QuantilePlots(histoVector[i],_quantile,ibook_);
114  }
115  }
116 }
std::vector< MonitorElement * > getContents(Args &&...args)
Definition: DQMStore.h:197
int i
Definition: DBlmapReader.cc:9
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:304
std::vector< MonitorElement * > histoVector
MonitorElement * MEy
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
static const char * messageLoggerCatregory
MonitorElement * MEx
Kind kind(void) const
Get the type of the monitor element.
bool dirExists(const std::string &path)
Definition: DQMStore.cc:334
void QuantilePlots(MonitorElement *&, double, DQMStore::IBooker &)
std::string SUSYFolder
TH1F * getTH1F(void) const
std::vector< std::string > getSubdirs(void)
Definition: DQMStore.cc:322
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:346
std::vector< std::string > Dirs
void SusyPostProcessor::QuantilePlots ( MonitorElement *&  ME,
double  q_value,
DQMStore::IBooker ibooker_ 
)
private

Definition at line 26 of file SusyPostProcessor.cc.

References DQMStore::IBooker::book1D(), MonitorElement::Fill(), MonitorElement::getPathname(), MonitorElement::getTH1(), timingPdfMaker::mean, mergeVDriftHistosByStation::name, lumiQueryAPI::q, RMS, and DQMStore::IBooker::setCurrentFolder().

27 {
28  if(ME->getTH1()->GetEntries()>0.)
29  {
30  Quantile q(static_cast<const TH1*>(ME->getTH1()));
31  Float_t mean=q[q_value].first;
32  Float_t RMS=q[q_value].second;
33 
34  Float_t xLow=-5.5;
35  Float_t xUp=9.5;
36  Int_t NBin=15;
37 
38  if(mean>0.)
39  {
40  Float_t DBin=RMS*TMath::Sqrt(12.)/2.;
41  xLow=mean-int(mean/DBin+2)*DBin;
42  xUp=int(0.2*mean/DBin)*DBin+mean+5*DBin;
43  NBin=(xUp-xLow)/DBin;
44  }
45 
46  ibooker_.setCurrentFolder(ME->getPathname());
47  TString name=ME->getTH1()->GetName();
48  name+="_quant";
49  ME=ibooker_.book1D(name,"",NBin, xLow, xUp);
50  ME->Fill(mean-RMS);
51  ME->Fill(mean+RMS);
52  }
53 }
void Fill(long long x)
const std::string & getPathname(void) const
get pathname of parent folder
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
TH1 * getTH1(void) const
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:276

Member Data Documentation

double SusyPostProcessor::_quantile
private

Definition at line 38 of file SusyPostProcessor.h.

std::vector<std::string> SusyPostProcessor::Dirs
private

Definition at line 41 of file SusyPostProcessor.h.

std::vector<MonitorElement*> SusyPostProcessor::histoVector
private

Definition at line 40 of file SusyPostProcessor.h.

edm::ParameterSet SusyPostProcessor::iConfig
private

Definition at line 31 of file SusyPostProcessor.h.

const char * SusyPostProcessor::messageLoggerCatregory = "SusyDQMPostProcessor"
staticprivate

Definition at line 35 of file SusyPostProcessor.h.

MonitorElement* SusyPostProcessor::MEx
private

Definition at line 43 of file SusyPostProcessor.h.

MonitorElement* SusyPostProcessor::MEy
private

Definition at line 44 of file SusyPostProcessor.h.

std::string SusyPostProcessor::SUSYFolder
private

Definition at line 37 of file SusyPostProcessor.h.