34 cout <<
">>> Z Mass constructor" << endl;
36 h_mZ_ = fs->
make<TH1F>(
"ZMass",
"Z mass (GeV/c^{2})", 100, 0, 200);
37 h_mZMC_ = fs->
make<TH1F>(
"ZMCMass",
"Z MC mass (GeV/c^{2})", 100, 0, 200);
41 cout <<
">>> Z Mass analyze" << endl;
46 for (
unsigned int i = 0;
i < z->
size(); ++
i) {
50 for (
unsigned int i = 0;
i < gen->
size(); ++
i) {
52 if ((genCand.
pdgId() == 23) && (genCand.
status() == 2))
54 if ((genCand.
pdgId() == 23) && (genCand.
status() == 3)) {
61 cout <<
">>> daughter MC 0 PDG Id " << dauGen0->
pdgId() <<
", status " << dauGen0->
status() <<
", charge " 62 << dauGen0->
charge() << endl;
63 cout <<
">>> daughter MC 1 PDG Id " << dauGen1->
pdgId() <<
", status " << dauGen1->
status() <<
", charge " 64 << dauGen1->
charge() << endl;
65 cout <<
">>> daughter MC 2 PDG Id " << dauGen2->
pdgId() <<
", status " << dauGen2->
status() <<
", charge " 66 << dauGen2->
charge() << endl;
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
T * make(const Args &...args) const
make new ROOT object
edm::EDGetTokenT< reco::CandidateView > genToken_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
virtual int status() const =0
status word
#define DEFINE_FWK_MODULE(type)
virtual int pdgId() const =0
PDG identifier.
edm::EDGetTokenT< reco::CandidateView > zToken_
def gen(fragment, howMuch)
Production test section ####.
ZMassHistogrammer(const edm::ParameterSet &pset)
virtual double mass() const =0
mass
virtual int charge() const =0
electric charge
virtual size_type numberOfDaughters() const =0
number of daughters