151 main_titles[6 ] =
"Tracker p_{T} within veto cone";
175 axis_titles[13] =
"#Sigma p_{T} / N_{Tracks} (GeV)";
176 axis_titles[14] =
"(1.5) X #Sigma E_{T}^{EM} + #Sigma E_{T}^{Had}";
183 names[4 ] =
"nTracks";
185 names[6 ] =
"trackerVetoPt";
186 names[7 ] =
"emVetoEt";
187 names[8 ] =
"hadVetoEt";
188 names[9 ] =
"hoVetoEt";
189 names[10] =
"muonPt";
190 names[11] =
"muonEta";
191 names[12] =
"muonPhi";
193 names[14] =
"weightedEt";
251 edm::LogInfo(
"Tutorial") <<
"Number of Muons: " << muonsHandle->size();
261 if (
muon->combinedMuon().isNull())
continue;
275 theData[0] = muon->isolationR03().sumPt;
276 theData[1] = muon->isolationR03().emEt;
277 theData[2] = muon->isolationR03().hadEt;
278 theData[3] = muon->isolationR03().hoEt;
280 theData[4] = muon->isolationR03().nTracks;
281 theData[5] = muon->isolationR03().nJets;
282 theData[6] = muon->isolationR03().trackerVetoPt;
283 theData[7] = muon->isolationR03().emVetoEt;
284 theData[8] = muon->isolationR03().hadVetoEt;
285 theData[9] = muon->isolationR03().hoVetoEt;
304 edm::LogInfo(
"Tutorial") <<
"\n#########################################\n\n"
305 <<
"Lets get started! "
306 <<
"\n\n#########################################\n";
326 edm::LogInfo(
"Tutorial") <<
"\n#########################################\n\n"
327 <<
"Total Number of Events: " <<
nEvents
328 <<
"\nTotal Number of Muons: " <<
nIncMuons
329 <<
"\n\n#########################################\n"
330 <<
"\nInitializing Histograms...\n";
332 edm::LogInfo(
"Tutorial") <<
"\nIntializing Finished. Filling...\n";
336 edm::LogInfo(
"Tutorial") <<
"\nSaved. Peace, homie, I'm out.\n";
349 for(
int var = 0; var <
NUM_VARS; var++){
366 h_1D[var]->setAxisTitle(
"Fraction of Muons",
YAXIS);
376 for(
int var1 = 0; var1 <
NUM_VARS; var1++){
377 for(
int var2 = 0; var2 <
NUM_VARS; var2++){
378 if(var1 == var2)
continue;
432 p_2D[4][9]->setAxisRange(0.5,15.5,
XAXIS);
442 const double first_bin_width = (r > 1.0) ?
443 (max -
min)*(1-r)/(1-
pow(r,nbins)) :
447 bin_edges[1] = min + first_bin_width;
449 bin_edges[
n] = bin_edges[
n-1] + (bin_edges[
n-1] - bin_edges[
n-2])*r;
455 for(
int var=0; var<
NUM_VARS; var++){
461 if (entries==0)
continue;
462 int n_max = int(
param[var][0])+1;
463 for(
int n=1;
n<=n_max; ++
n){
484 for(
int var=0; var<
NUM_VARS; var++){
489 overFlowBin = (int)
param[var][0] + 1;
496 for(
int var1=0; var1<
NUM_VARS; ++var1){
497 for(
int var2=0; var2<
NUM_VARS; ++var2){
498 if(var1 == var2)
continue;
void RecordData(MuonIterator muon)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< int > isContinuous
TH1 * GetTH1FromMonitorElement(MonitorElement *me)
std::vector< std::vector< MonitorElement * > > p_2D
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
std::vector< std::string > names
void cd(void)
go to top directory (ie. root)
#define DEFINE_FWK_MODULE(type)
edm::View< reco::Muon >::const_iterator MuonIterator
std::vector< std::string > main_titles
TH2 * GetTH2FromMonitorElement(MonitorElement *me)
MuIsoValidation(const edm::ParameterSet &)
std::vector< MonitorElement * > h_1D
TProfile * GetTProfileFromMonitorElement(MonitorElement *me)
MonitorElement * h_nMuons
virtual void analyze(const edm::Event &, const edm::EventSetup &)
const T & max(const T &a, const T &b)
std::vector< MonitorElement * > cd_plots
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
static const int NUM_VARS
std::vector< std::vector< double > > param
TProfile * getTProfile(void) const
void MakeLogBinsForProfile(Double_t *bin_edges, const double min, const double max)
std::vector< std::string > axis_titles
TH2F * getTH2F(void) const
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Power< A, B >::type pow(const A &a, const B &b)
void setCurrentFolder(const std::string &fullpath)