CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch1/src/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerData.h

Go to the documentation of this file.
00001 #ifndef GenPurposeSkimmerData_H
00002 #define GenPurposeSkimmerData_H
00003 
00004 // system include files
00005 #include <memory>
00006 
00007 // user include files
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "FWCore/Framework/interface/EDAnalyzer.h"
00010 
00011 #include "FWCore/Framework/interface/Event.h"
00012 #include "FWCore/Framework/interface/MakerMacros.h"
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00015 
00016 // other files
00017 // root + maths
00018 #include "TFile.h"
00019 #include "TBranch.h"
00020 #include "TTree.h"
00021 #include "TVector.h"
00022 #include "TString.h"
00023 #include "TMath.h"
00024 //
00025 #include "HLTrigger/HLTcore/interface/TriggerSummaryAnalyzerAOD.h"
00026 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00027 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
00028 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00029 #include "DataFormats/EgammaCandidates/interface/Electron.h"
00030 #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
00031 //
00032 #include "DataFormats/Common/interface/TriggerResults.h"
00033 #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h"
00034 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00035 #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h"
00036 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
00037 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
00038 #include "DataFormats/HLTReco/interface/TriggerObject.h"
00039 
00040 //
00041 #include "DataFormats/Common/interface/ValueMap.h"
00042 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
00043 #include "DataFormats/TrackReco/interface/Track.h"
00044 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00045 #include "DataFormats/METReco/interface/CaloMET.h"
00046 #include "DataFormats/METReco/interface/CaloMETFwd.h"
00047 #include "DataFormats/METReco/interface/PFMET.h"
00048 #include "DataFormats/METReco/interface/PFMETFwd.h"
00049 #include "DataFormats/METReco/interface/GenMET.h"
00050 #include "DataFormats/METReco/interface/GenMETFwd.h"
00051 
00052 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
00053 #include "RecoEgamma/ElectronIdentification/interface/ElectronIDAlgo.h"
00054 //
00055 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
00056 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00057 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
00058 #include "DataFormats/Common/interface/ValueMap.h"
00059 
00060 #include "DataFormats/PatCandidates/interface/Electron.h"
00061 #include "DataFormats/PatCandidates/interface/MET.h"
00062 #include "DataFormats/Math/interface/deltaR.h"
00063 //
00064 // class decleration
00065 //
00066 
00067 class GenPurposeSkimmerData : public edm::EDAnalyzer {
00068    public:
00069       explicit GenPurposeSkimmerData(const edm::ParameterSet&);
00070       ~GenPurposeSkimmerData();
00071 
00072 
00073    private:
00074       virtual void beginJob() ;
00075       virtual void analyze(const edm::Event&, const edm::EventSetup&);
00076       virtual void endJob() ;
00077 
00078       // ----------member data ---------------------------
00079 
00080   
00081   std::string outputFile_;
00082   int tree_fills_;
00083 
00084   edm::InputTag ElectronCollection_;
00085   edm::InputTag MCCollection_;
00086   edm::InputTag MetCollectionTag_;
00087   edm::InputTag mcMetCollectionTag_;
00088   edm::InputTag tcMetCollectionTag_;
00089   edm::InputTag pfMetCollectionTag_;
00090   edm::InputTag t1MetCollectionTag_;
00091   edm::InputTag t1MetCollectionTagTwiki_;
00092   edm::InputTag genMetCollectionTag_;
00093   //
00094   edm::InputTag HLTCollectionE29_;
00095   edm::InputTag HLTCollectionE31_;
00096   edm::InputTag HLTTriggerResultsE29_;
00097   edm::InputTag HLTTriggerResultsE31_;
00098   edm::InputTag HLTFilterType_[25];
00099   //  std::string HLTPath_[25];
00100   edm::InputTag ctfTracksTag_;
00101   edm::InputTag corHybridsc_, multi5x5sc_;
00102 
00103   TTree * probe_tree;
00104   TFile * histofile;
00105   //
00106 
00107 
00108   //probe SC variables
00109   double probe_sc_eta_for_tree[4];
00110   double probe_sc_phi_for_tree[4];
00111   double probe_sc_et_for_tree[4];
00112   int probe_sc_pass_fiducial_cut[4]; 
00113   int probe_sc_pass_et_cut[4]; 
00114   
00115   //probe electron variables
00116   double probe_ele_eta_for_tree[4];
00117   double probe_ele_phi_for_tree[4];
00118   double probe_ele_et_for_tree[4];
00119   double probe_ele_Xvertex_for_tree[4];
00120   double probe_ele_Yvertex_for_tree[4];
00121   double probe_ele_Zvertex_for_tree[4];
00122   double probe_ele_tip[4];
00123   int probe_charge_for_tree[4];
00124   int probe_index_for_tree[4];
00125   
00126   //efficiency cuts
00127   int probe_ele_pass_fiducial_cut[4]; 
00128   int probe_ele_pass_et_cut[4]; 
00129   int probe_pass_recoEle_cut[4]; 
00130   int probe_pass_iso_cut[4]; 
00131   //
00132   double probe_isolation_value[4]; 
00133   double probe_iso_user[4]; 
00134   //
00135   double probe_ecal_isolation_value[4];
00136   double probe_ecal_iso_user[4];
00137 
00138   double probe_hcal_isolation_value[4];
00139   double probe_hcal_iso_user[4];
00140   //
00141   int probe_classification_index_for_tree[4]; 
00142   int probe_pass_tip_cut[4];
00143   //
00144   int probe_pass_id_robust_loose[4];
00145   int probe_pass_id_robust_tight[4];
00146   int probe_pass_id_loose[4];
00147   int probe_pass_id_tight[4];
00148   double probe_ele_hoe[4];
00149   double probe_ele_shh[4];
00150   double probe_ele_sihih[4];
00151   double probe_ele_dhi[4];
00152   double probe_ele_dfi[4];
00153   double probe_ele_eop[4];
00154   double probe_ele_pin[4];
00155   double probe_ele_pout[4];
00156   double probe_ele_e5x5[4];
00157   double probe_ele_e2x5[4];
00158   double probe_ele_e1x5[4];
00159 
00160   //
00161   int probe_pass_trigger_cut[4][25];   
00162   double probe_hlt_matched_dr[4];
00163   //
00164   double MCMatch_Deta_;
00165   double MCMatch_Dphi_;
00166   int probe_mc_matched[4];
00167   double probe_mc_matched_deta[4];
00168   double probe_mc_matched_dphi[4];
00169   double probe_mc_matched_denergy[4];
00170   int probe_mc_matched_mother[4];
00171   
00172  //event variables
00173   int numberOfHLTFilterObjects[25];
00174 
00175   int event_HLTPath[25];
00176   
00177   double BarrelMaxEta;
00178   double EndcapMinEta;
00179   double EndcapMaxEta;
00180 
00181   double ProbeSCMinEt;
00182   double ProbeRecoEleSCMaxDE; 
00183 
00184   double ProbeHLTObjMaxDR;
00185   double RecoEleSeedBCMaxDE;
00186   double GsfTrackMinInnerPt;
00187 
00188   int elec_number_in_event;      
00189   int elec_1_duplicate_removal;
00190 
00191   double    event_MET, event_MET_sig; 
00192   //  double    event_MET_eta;
00193   double    event_MET_phi;
00194   double    event_tcMET, event_tcMET_sig, event_tcMET_phi;
00195   double    event_pfMET, event_pfMET_sig; 
00196   //  double    event_pfMET_eta;
00197   double    event_pfMET_phi;
00198   //double    event_genMET, event_genMET_sig; 
00199   //  double    event_genMET_eta; 
00200   //double    event_genMET_phi;
00201   //
00202   double event_t1MET, event_t1MET_phi, event_t1MET_sig;
00203   double event_mcMET, event_mcMET_phi, event_mcMET_sig;
00204   //
00205   //
00206   //
00207   double sc_hybrid_et[5], sc_hybrid_eta[5], sc_hybrid_phi[5];
00208   double sc_multi5x5_et[5], sc_multi5x5_eta[5], sc_multi5x5_phi[5];
00209   //
00210   double ctf_track_pt[20], ctf_track_eta[20], ctf_track_phi[20];
00211   double ctf_track_vx[20], ctf_track_vy[20], ctf_track_vz[20];
00212   double ctf_track_tip[20],  ctf_track_tip_bs[20];
00213   //
00214   double muon_pt[4], muon_eta[4], muon_phi[4];
00215   double muon_vx[4], muon_vy[4], muon_vz[4];
00216   double muon_tip[4],  muon_tip_bs[4];
00217 };
00218 
00219 
00220 #endif
00221