1 |
#ifndef MinBiasAnalyzer_h
|
2 |
#define MinBiasAnalyzer_h
|
3 |
|
4 |
// -*- C++ -*-
|
5 |
//
|
6 |
// Package: MinBiasAnalyzer
|
7 |
// Class: MinBiasAnalyzer
|
8 |
//
|
9 |
/**\class MinBiasAnalyzer MinBiasAnalyzer.cc ParticleFlowAnalysis/MinBiasAnalyzer/src/MinBiasAnalyzer.cc
|
10 |
|
11 |
Description: <one line class summary>
|
12 |
|
13 |
Implementation:
|
14 |
<Notes on implementation>
|
15 |
*/
|
16 |
//
|
17 |
// Original Author: Gregory Heath
|
18 |
// Created: Tue May 5 11:54:25 CEST 2009
|
19 |
// $Id: MinBiasAnalyzer.h,v 1.1 2010/03/09 11:26:03 heath Exp $
|
20 |
//
|
21 |
//
|
22 |
|
23 |
|
24 |
// system include files
|
25 |
#include <memory>
|
26 |
|
27 |
// user include files
|
28 |
#include "FWCore/Framework/interface/Frameworkfwd.h"
|
29 |
#include "FWCore/Framework/interface/EDAnalyzer.h"
|
30 |
|
31 |
#include "FWCore/Framework/interface/Event.h"
|
32 |
#include "FWCore/Framework/interface/MakerMacros.h"
|
33 |
|
34 |
#include "FWCore/ParameterSet/interface/ParameterSet.h"
|
35 |
|
36 |
#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
|
37 |
#include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
|
38 |
|
39 |
#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
|
40 |
|
41 |
#include "TH1D.h"
|
42 |
#include "TH2D.h"
|
43 |
#include "TH3D.h"
|
44 |
#include <map>
|
45 |
#include <string>
|
46 |
//
|
47 |
// class declaration
|
48 |
//
|
49 |
|
50 |
class MinBiasAnalyzer : public edm::EDAnalyzer {
|
51 |
public:
|
52 |
explicit MinBiasAnalyzer(const edm::ParameterSet&);
|
53 |
~MinBiasAnalyzer();
|
54 |
|
55 |
|
56 |
private:
|
57 |
virtual void beginJob() ;
|
58 |
virtual void analyze(const edm::Event&, const edm::EventSetup&);
|
59 |
virtual void endJob() ;
|
60 |
|
61 |
// Define a type consisting of a candidate and some extra info
|
62 |
// Just an integer flag in the first instance
|
63 |
enum flagTypes{NULL_FLAG, TRACK_ONLY, ISO_HCAL_CLUSTER, ISO_ECAL_CLUSTER, ISO_EHCAL_CLUSTER, HCAL_CLUSTER, ECAL_CLUSTER, EHCAL_CLUSTER,
|
64 |
MULTIPLE_TRACKS, MULTIPLE_CLUSTERS, OTHER_BLOCKS, BAD_BLOCKS, NO_ELEMENTS, NUMBER_OF_FLAGS};
|
65 |
typedef std::pair< reco::PFCandidate, unsigned > flaggedCandidate;
|
66 |
typedef std::vector< flaggedCandidate > flaggedCandidateList;
|
67 |
flaggedCandidateList barrelHadrons(const reco::PFCandidateCollection* pfCands);
|
68 |
|
69 |
void findTriggerWeight(const edm::Event& iEvent);
|
70 |
int pIdCode(int pdgId, int q);
|
71 |
|
72 |
// ----------member data ---------------------------
|
73 |
edm::InputTag pfCandidateTag_;
|
74 |
edm::InputTag gpCandidateTag_;
|
75 |
edm::InputTag triggerResultsTag_;
|
76 |
std::vector<std::string> gpTypeList_;
|
77 |
std::map<std::string, edm::InputTag> gpBarrelSelectionTag_;
|
78 |
std::map<std::string, edm::InputTag> gpBarrelPFlowMatchTag_;
|
79 |
|
80 |
std::map<std::string,TH1D*> histocontainer_;
|
81 |
std::map<std::string,TH2D*> hist2container_;
|
82 |
std::map<std::string,TH3D*> hist3container_;
|
83 |
|
84 |
std::map<int, int> pdgIdsFound_;
|
85 |
std::vector< std::pair<double, double> > ptCutsForHist_;
|
86 |
|
87 |
// trigger stuff
|
88 |
double triggerWeight_;
|
89 |
|
90 |
std::map<std::string, int> triggerNamesWithPrescale_;
|
91 |
|
92 |
HLTConfigProvider hltConfig_;
|
93 |
|
94 |
};
|
95 |
|
96 |
#endif
|