48 using namespace isodeposit;
58 void endJob()
override;
71 bool FSR_mu,
FSR_tk, FSR_mu0, FSR_mu1;
74 int zmmcounter, zmscounter,
zmtcounter, numOfEvent, numofGamma;
92 h_gamma_pt_eta_ = fs->
make<TH2D>(
"h_gamma_pt_eta",
"pt vs eta of gamma", 100, 20, 100, 100, -2.0, 2.0);
93 h_mu_pt_eta_FSR_ = fs->
make<TH2D>(
"h_mu_pt_eta_FSR",
"pt vs eta of muon with FSR", 100, 20, 100, 100, -2.0, 2.0);
95 fs->
make<TH2D>(
"h_mu_pt_eta_no_FSR",
"pt vs eta of of muon withot FSR", 100, 20, 100, 100, -2.0, 2.0);
110 if (!zMuMu->
empty()) {
112 for (
unsigned int i = 0;
i < zMuMu->
size(); ++
i) {
122 double zmass = zMuMuCand.
mass();
123 double pt0 = mu0.
pt();
124 double pt1 = mu1.
pt();
125 double eta0 = mu0.
eta();
127 if (pt0 > 20 && pt1 > 20 &&
abs(eta0) < 2 &&
abs(eta1) < 2 && zmass > 20 && zmass < 200) {
141 if (num_dau_muon0 > 1) {
142 for (
int j = 0;
j < num_dau_muon0; ++
j) {
156 if (num_dau_muon1 > 1) {
157 for (
int j = 0;
j < num_dau_muon1; ++
j) {
177 if (!zMuSa->
empty()) {
179 for (
unsigned int i = 0;
i < zMuSa->
size(); ++
i) {
189 double zmass = zMuSaCand.
mass();
190 double pt0 = mu0.
pt();
191 double pt1 = mu1.
pt();
192 double eta0 = mu0.
eta();
194 if (pt0 > 20 && pt1 > 20 &&
abs(eta0) < 2 &&
abs(eta1) < 2 && zmass > 20 && zmass < 200) {
207 if (num_dau_muon0 > 1) {
208 for (
int j = 0;
j < num_dau_muon0; ++
j) {
222 if (num_dau_muon1 > 1) {
223 for (
int j = 0;
j < num_dau_muon1; ++
j) {
243 if (!zMuTk->
empty()) {
245 for (
unsigned int i = 0;
i < zMuTk->
size(); ++
i) {
254 double zmass = zMuTkCand.
mass();
255 double pt0 = mu0.
pt();
256 double pt1 = mu1.
pt();
257 double eta0 = mu0.
eta();
259 if (pt0 > 20 && pt1 > 20 &&
abs(eta0) < 2 &&
abs(eta1) < 2 && zmass > 20 && zmass < 200) {
272 if (num_dau_muon0 > 1) {
273 for (
int j = 0;
j < num_dau_muon0; ++
j) {
287 if (num_dau_muon1 > 1) {
288 for (
int j = 0;
j < num_dau_muon1; ++
j) {
309 cout <<
" ============= Summary ==========" << endl;
311 cout <<
" 1)Numero di ZMuMu matched dopo i tagli cinematici = " <<
zmmcounter << endl;
312 cout <<
" 2)Numero di ZMuSa matched dopo i tagli cinematici = " <<
zmscounter << endl;
313 cout <<
" 3)Numero di ZMuTk matched dopo i tagli cinematici = " <<
zmtcounter << endl;
gamma_radiative_analyzer(const edm::ParameterSet &pset)
EDGetTokenT< CandidateView > zMuMuToken_
const reco::GenParticle * genLepton() const
bool isNonnull() const
Checks for non-null.
double eta() const final
momentum pseudorapidity
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
const reco::GenParticle * genParticle(size_t idx=0) const
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double pt() const final
transverse momentum
T * make(const Args &...args) const
make new ROOT object
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
RefToBase< value_type > refAt(size_type i) const
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
#define DEFINE_FWK_MODULE(type)
edm::ValueMap< float > IsolationCollection
virtual int pdgId() const =0
PDG identifier.
EDGetTokenT< CandidateView > zMuSaToken_
Abs< T >::type abs(const T &t)
TH2D * h_mu_pt_eta_no_FSR_
EDGetTokenT< GenParticleMatch > zMuMuMatchMapToken_
EDGetTokenT< GenParticleMatch > zMuTkMatchMapToken_
zMuSa
zMUSa vector of PSet is specific for zMuSa category
EDGetTokenT< GenParticleMatch > zMuSaMatchMapToken_
virtual const CandidateBaseRef & masterClone() const =0
zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
virtual double eta() const =0
momentum pseudorapidity
virtual double pt() const =0
transverse momentum
virtual double mass() const =0
mass
EDGetTokenT< CandidateView > zMuTkToken_
virtual size_type numberOfDaughters() const =0
number of daughters
Analysis-level muon class.
const Candidate * mother(size_type=0) const override
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...