48 using namespace isodeposit;
57 virtual 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->size() > 0 ) {
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->size() > 0 ) {
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->size() > 0 ) {
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_
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
const reco::GenParticle * genLepton() const
bool isNonnull() const
Checks for non-null.
virtual float mass() const =0
mass
virtual float pt() const
transverse momentum
virtual void analyze(const edm::Event &event, const edm::EventSetup &setup) override
const reco::GenParticle * genParticle(size_t idx=0) const
virtual float eta() const =0
momentum pseudorapidity
#define DEFINE_FWK_MODULE(type)
T * make(const Args &...args) const
make new ROOT object
virtual void endJob() override
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
virtual size_type numberOfDaughters() const =0
number of daughters
virtual float pt() const =0
transverse momentum
edm::ValueMap< float > IsolationCollection
virtual float eta() const
momentum pseudorapidity
tuple zMuSa
zMUSa vector of PSet is specific for zMuSa category
EDGetTokenT< CandidateView > zMuSaToken_
Abs< T >::type abs(const T &t)
TH2D * h_mu_pt_eta_no_FSR_
EDGetTokenT< GenParticleMatch > zMuMuMatchMapToken_
EDGetTokenT< GenParticleMatch > zMuTkMatchMapToken_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
virtual int pdgId() const =0
PDG identifier.
EDGetTokenT< GenParticleMatch > zMuSaMatchMapToken_
EDGetTokenT< CandidateView > zMuTkToken_
Analysis-level muon class.
virtual const Candidate * mother(size_type=0) const
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
tuple zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
virtual const CandidateBaseRef & masterClone() const =0