48 using namespace isodeposit;
57 void endJob()
override;
70 bool FSR_mu,
FSR_tk, FSR_mu0, FSR_mu1;
73 int zmmcounter , zmscounter,
zmtcounter,numOfEvent,numofGamma;
91 h_gamma_pt_eta_= fs->
make<TH2D>(
"h_gamma_pt_eta",
"pt vs eta of gamma",100,20,100,100,-2.0,2.0);
92 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 );
93 h_mu_pt_eta_no_FSR_= 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);
108 if (!zMuMu->
empty() ) {
110 for(
unsigned int i = 0;
i < zMuMu->
size(); ++
i) {
121 double zmass= zMuMuCand.
mass();
122 double pt0 = mu0.
pt();
123 double pt1 = mu1.
pt();
124 double eta0 = mu0.
eta();
125 double eta1 = mu1.
eta();
126 if(pt0>20 && pt1 > 20 &&
abs(eta0)<2 &&
abs(eta1)<2 && zmass > 20 && zmass < 200){
140 if( num_dau_muon0 > 1 ){
141 for(
int j = 0; j < num_dau_muon0; ++j){
154 if( num_dau_muon1 > 1 ){
155 for(
int j = 0; j < num_dau_muon1; ++j){
174 if (!zMuSa->
empty() ) {
176 for(
unsigned int i = 0;
i < zMuSa->
size(); ++
i) {
187 double zmass= zMuSaCand.
mass();
188 double pt0 = mu0.
pt();
189 double pt1 = mu1.
pt();
190 double eta0 = mu0.
eta();
191 double eta1 = mu1.
eta();
192 if(pt0>20 && pt1 > 20 &&
abs(eta0)<2 &&
abs(eta1)<2 && zmass > 20 && zmass < 200){
205 if( num_dau_muon0 > 1 ){
206 for(
int j = 0; j < num_dau_muon0; ++j){
219 if( num_dau_muon1 > 1 ){
220 for(
int j = 0; j < num_dau_muon1; ++j){
241 if (!zMuTk->
empty() ) {
243 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();
258 double eta1 = mu1.
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){
286 if( num_dau_muon1 > 1 ){
287 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
def analyze(function, filename, filter=None)
#define DEFINE_FWK_MODULE(type)
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
def setup(process, global_tag, zero_tesla=False)
double pt() const final
transverse momentum
T * make(const Args &...args) const
make new ROOT object
RefToBase< value_type > refAt(size_type i) const
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
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_
EDGetTokenT< GenParticleMatch > zMuSaMatchMapToken_
virtual const CandidateBaseRef & masterClone() const =0
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) ...