/ElectroWeakAnalysis/WENu/interface/GenPurposeSkimmerAcceptance.h

https://github.com/aivanov-cern/cmssw · C Header · 229 lines · 161 code · 32 blank · 36 comment · 0 complexity · 0f7b29829664ef7c9fcdef5a90486967 MD5 · raw file

  1. #ifndef GenPurposeSkimmerAcceptance_H
  2. #define GenPurposeSkimmerAcceptance_H
  3. // system include files
  4. #include <memory>
  5. // user include files
  6. #include "FWCore/Framework/interface/Frameworkfwd.h"
  7. #include "FWCore/Framework/interface/EDAnalyzer.h"
  8. #include "FWCore/Framework/interface/Event.h"
  9. #include "FWCore/Framework/interface/MakerMacros.h"
  10. #include "FWCore/ParameterSet/interface/ParameterSet.h"
  11. #include "FWCore/MessageLogger/interface/MessageLogger.h"
  12. // other files
  13. // root + maths
  14. #include "TFile.h"
  15. #include "TBranch.h"
  16. #include "TTree.h"
  17. #include "TVector.h"
  18. #include "TString.h"
  19. #include "TMath.h"
  20. //
  21. #include "HLTrigger/HLTcore/interface/TriggerSummaryAnalyzerAOD.h"
  22. #include "DataFormats/HLTReco/interface/TriggerEvent.h"
  23. #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
  24. #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
  25. #include "DataFormats/EgammaCandidates/interface/Electron.h"
  26. #include "DataFormats/EgammaCandidates/interface/ElectronFwd.h"
  27. //
  28. #include "DataFormats/Common/interface/TriggerResults.h"
  29. #include "FWCore/Common/interface/TriggerNames.h"
  30. #include "DataFormats/HLTReco/interface/TriggerEventWithRefs.h"
  31. #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
  32. #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h"
  33. #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
  34. #include "DataFormats/HLTReco/interface/TriggerEvent.h"
  35. #include "DataFormats/HLTReco/interface/TriggerObject.h"
  36. //
  37. #include "DataFormats/Common/interface/ValueMap.h"
  38. #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
  39. #include "DataFormats/TrackReco/interface/Track.h"
  40. #include "DataFormats/TrackReco/interface/TrackFwd.h"
  41. #include "DataFormats/METReco/interface/CaloMET.h"
  42. #include "DataFormats/METReco/interface/CaloMETFwd.h"
  43. #include "DataFormats/METReco/interface/PFMET.h"
  44. #include "DataFormats/METReco/interface/PFMETFwd.h"
  45. #include "DataFormats/METReco/interface/GenMET.h"
  46. #include "DataFormats/METReco/interface/GenMETFwd.h"
  47. #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
  48. #include "RecoEgamma/ElectronIdentification/interface/ElectronIDAlgo.h"
  49. //
  50. #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
  51. #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
  52. #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
  53. #include "DataFormats/Common/interface/ValueMap.h"
  54. #include "DataFormats/PatCandidates/interface/Electron.h"
  55. #include "DataFormats/PatCandidates/interface/MET.h"
  56. #include "DataFormats/Math/interface/deltaR.h"
  57. //
  58. // class decleration
  59. //
  60. class GenPurposeSkimmerAcceptance : public edm::EDAnalyzer {
  61. public:
  62. explicit GenPurposeSkimmerAcceptance(const edm::ParameterSet&);
  63. ~GenPurposeSkimmerAcceptance();
  64. private:
  65. virtual void beginJob(const edm::EventSetup&) ;
  66. virtual void analyze(const edm::Event&, const edm::EventSetup&);
  67. virtual void endJob() ;
  68. // ----------member data ---------------------------
  69. std::string outputFile_;
  70. int tree_fills_;
  71. edm::InputTag ElectronCollection_;
  72. edm::InputTag MCCollection_;
  73. edm::InputTag MetCollectionTag_;
  74. edm::InputTag tcMetCollectionTag_;
  75. edm::InputTag pfMetCollectionTag_;
  76. edm::InputTag t1MetCollectionTag_;
  77. edm::InputTag t1MetCollectionTagTwiki_;
  78. edm::InputTag genMetCollectionTag_;
  79. //
  80. edm::InputTag HLTCollectionE29_;
  81. edm::InputTag HLTCollectionE31_;
  82. edm::InputTag HLTTriggerResultsE29_;
  83. edm::InputTag HLTTriggerResultsE31_;
  84. edm::InputTag HLTFilterType_[25];
  85. std::string HLTPath_[25];
  86. TTree * probe_tree;
  87. TFile * histofile;
  88. //
  89. //probe SC variables
  90. double probe_sc_eta_for_tree[4];
  91. double probe_sc_phi_for_tree[4];
  92. double probe_sc_et_for_tree[4];
  93. int probe_sc_pass_fiducial_cut[4];
  94. int probe_sc_pass_et_cut[4];
  95. //probe electron variables
  96. double probe_ele_eta_for_tree[4];
  97. double probe_ele_phi_for_tree[4];
  98. double probe_ele_et_for_tree[4];
  99. double probe_ele_Xvertex_for_tree[4];
  100. double probe_ele_Yvertex_for_tree[4];
  101. double probe_ele_Zvertex_for_tree[4];
  102. double probe_ele_tip[4];
  103. int probe_charge_for_tree[4];
  104. int probe_index_for_tree[4];
  105. //efficiency cuts
  106. int probe_ele_pass_fiducial_cut[4];
  107. int probe_ele_pass_et_cut[4];
  108. int probe_pass_recoEle_cut[4];
  109. int probe_pass_iso_cut[4];
  110. //
  111. double probe_isolation_value[4];
  112. double probe_iso_user[4];
  113. //
  114. double probe_ecal_isolation_value[4];
  115. double probe_ecal_iso_user[4];
  116. double probe_hcal_isolation_value[4];
  117. double probe_hcal_iso_user[4];
  118. //
  119. int probe_classification_index_for_tree[4];
  120. int probe_pass_tip_cut[4];
  121. //
  122. int probe_pass_id_robust_loose[4];
  123. int probe_pass_id_robust_tight[4];
  124. int probe_pass_id_loose[4];
  125. int probe_pass_id_tight[4];
  126. double probe_ele_hoe[4];
  127. double probe_ele_shh[4];
  128. double probe_ele_sihih[4];
  129. double probe_ele_dhi[4];
  130. double probe_ele_dfi[4];
  131. double probe_ele_eop[4];
  132. double probe_ele_pin[4];
  133. double probe_ele_pout[4];
  134. double probe_ele_e5x5[4];
  135. double probe_ele_e2x5[4];
  136. double probe_ele_e1x5[4];
  137. //
  138. int probe_pass_trigger_cut[4][25];
  139. double probe_hlt_matched_dr[4];
  140. //
  141. double MCMatch_Deta_;
  142. double MCMatch_Dphi_;
  143. int probe_mc_matched[4];
  144. double probe_mc_matched_deta[4];
  145. double probe_mc_matched_dphi[4];
  146. double probe_mc_matched_denergy[4];
  147. int probe_mc_matched_mother[4];
  148. //event variables
  149. int numberOfHLTFilterObjects[25];
  150. int event_HLTPath[25];
  151. double BarrelMaxEta;
  152. double EndcapMinEta;
  153. double EndcapMaxEta;
  154. double ProbeSCMinEt;
  155. double ProbeRecoEleSCMaxDE;
  156. double ProbeHLTObjMaxDR;
  157. double RecoEleSeedBCMaxDE;
  158. double GsfTrackMinInnerPt;
  159. int elec_number_in_event;
  160. int elec_1_duplicate_removal;
  161. double event_MET, event_MET_sig;
  162. // double event_MET_eta;
  163. double event_MET_phi;
  164. double event_tcMET, event_tcMET_sig, event_tcMET_phi;
  165. double event_pfMET, event_pfMET_sig;
  166. // double event_pfMET_eta;
  167. double event_pfMET_phi;
  168. double event_genMET, event_genMET_sig;
  169. // double event_genMET_eta;
  170. double event_genMET_phi;
  171. //
  172. double event_t1MET, event_t1MET_phi, event_t1MET_sig;
  173. double event_twikiT1MET, event_twikiT1MET_phi, event_twikiT1MET_sig;
  174. //
  175. //
  176. // acceptance and t&p specific
  177. double mc_ele_eta[10];
  178. double mc_ele_phi[10];
  179. double mc_ele_et[10];
  180. double mc_ele_vertex_x[10];
  181. double mc_ele_vertex_y[10];
  182. double mc_ele_vertex_z[10];
  183. int mc_ele_mother[10];
  184. int mc_ele_charge[10];
  185. int mc_ele_status[10];
  186. //
  187. // for the sc collections
  188. // double sc0_eta[8], sc0_phi[8], sc0_et[8];
  189. double sc1_eta[8], sc1_phi[8], sc1_et[8];
  190. double sc2_eta[8], sc2_phi[8], sc2_et[8];
  191. double sc3_eta[8], sc3_phi[8], sc3_et[8];
  192. double sc4_eta[8], sc4_phi[8], sc4_et[8];
  193. double sc5_eta[8], sc5_phi[8], sc5_et[8];
  194. // double sc6_eta[8], sc6_phi[8], sc6_et[8];
  195. // double sc7_eta[8], sc7_phi[8], sc7_et[8];
  196. };
  197. #endif