1 |
#ifndef MCAnalyzer_h
|
2 |
#define MCAnalyzer_h
|
3 |
|
4 |
// system include files
|
5 |
#include <memory>
|
6 |
#include <string>
|
7 |
#include <iostream>
|
8 |
|
9 |
// user include files
|
10 |
#include "FWCore/Framework/interface/Frameworkfwd.h"
|
11 |
#include "FWCore/Framework/interface/EDAnalyzer.h"
|
12 |
#include "FWCore/Framework/interface/Event.h"
|
13 |
//#include "FWCore/Framework/interface/Handle.h"
|
14 |
#include "FWCore/Framework/interface/MakerMacros.h"
|
15 |
#include "FWCore/ParameterSet/interface/ParameterSet.h"
|
16 |
#include "FWCore/Framework/interface/ESHandle.h"
|
17 |
|
18 |
#include "DataFormats/JetReco/interface/GenJet.h"
|
19 |
#include "DataFormats/JetReco/interface/GenJetCollection.h"
|
20 |
#include "DataFormats/HepMCCandidate/interface/GenParticle.h"
|
21 |
#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
|
22 |
|
23 |
#include "SimDataFormats/Track/interface/SimTrack.h"
|
24 |
#include "SimDataFormats/Track/interface/SimTrackContainer.h"
|
25 |
#include "SimDataFormats/Vertex/interface/SimVertex.h"
|
26 |
#include "SimDataFormats/Vertex/interface/SimVertexContainer.h"
|
27 |
#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruthFinder.h"
|
28 |
#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruth.h"
|
29 |
#include "RecoEgamma/EgammaMCTools/interface/ElectronMCTruth.h"
|
30 |
//#include "DataFormats/EgammaCandidates/interface/ConvertedPhoton.h"
|
31 |
|
32 |
#include "../interface/ParticleTreeDrawer.h"
|
33 |
#include "../interface/TRootSignalEvent.h"
|
34 |
#include "../interface/TRootTopTop.h"
|
35 |
#include "../interface/TRootParticle.h"
|
36 |
#include "../interface/TRootMCPhoton.h"
|
37 |
#include "../interface/TRootJet.h"
|
38 |
|
39 |
#include "TClonesArray.h"
|
40 |
|
41 |
|
42 |
|
43 |
class MCAnalyzer{
|
44 |
|
45 |
public:
|
46 |
MCAnalyzer();
|
47 |
MCAnalyzer(const edm::ParameterSet& config, const edm::ParameterSet& producersNames);
|
48 |
~MCAnalyzer();
|
49 |
void SetVerbosity(int verbosity) {verbosity_ = verbosity; };
|
50 |
void DrawMCTree(const edm::Event& iEvent, const edm::EventSetup& iSetup, const edm::ParameterSet& config, const edm::ParameterSet& producersNames);
|
51 |
void ProcessMCParticle(const edm::Event& iEvent, TClonesArray* rootMCParticles);
|
52 |
//void ProcessMCJets(const edm::Event& iEvent, TClonesArray* rootMCJets);
|
53 |
void ProcessConvertedPhoton(const edm::Event& iEvent, TClonesArray* rootMCPhotons);
|
54 |
void ProcessMuMuGammaEvent(const edm::Event& iEvent, TRootSignalEvent* rootSignalEvent);
|
55 |
void ProcessTopTopEvent(const edm::Event& iEvent, TClonesArray* rootMCTopTop);
|
56 |
|
57 |
private:
|
58 |
|
59 |
int verbosity_;
|
60 |
|
61 |
bool doPhotonMC_;
|
62 |
double photonMC_etaMax_;
|
63 |
double photonMC_ptMin_;
|
64 |
bool doElectronMC_;
|
65 |
double electronMC_etaMax_;
|
66 |
double electronMC_ptMin_;
|
67 |
bool doMuonMC_;
|
68 |
double muonMC_etaMax_;
|
69 |
double muonMC_ptMin_;
|
70 |
bool doUnstablePartsMC_;
|
71 |
|
72 |
std::string signalGenerator_;
|
73 |
edm::InputTag genParticlesProducer_;
|
74 |
edm::InputTag genJetsProducer_;
|
75 |
};
|
76 |
|
77 |
#endif
|