00001 00002 //------------------------------------------------- 00003 // 00004 // \class L1PromptAnalysis 00009 // $Date: 2010/02/11 00:12:52 $ 00010 // $Revision: 1.5 $ 00011 // 00012 // I. Mikulec HEPHY Vienna 00013 // 00014 //-------------------------------------------------- 00015 #ifndef L1_PROMPT_ANALYSIS_H 00016 #define L1_PROMPT_ANALYSIS_H 00017 00018 //--------------- 00019 // C++ Headers -- 00020 //--------------- 00021 00022 #include <memory> 00023 #include <string> 00024 00025 //---------------------- 00026 // Base Class Headers -- 00027 //---------------------- 00028 #include "FWCore/Framework/interface/EDAnalyzer.h" 00029 00030 #include "FWCore/Framework/interface/Frameworkfwd.h" 00031 #include "FWCore/Framework/interface/MakerMacros.h" 00032 #include "FWCore/Framework/interface/Event.h" 00033 #include "DataFormats/Common/interface/Handle.h" 00034 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00035 00036 00037 //------------------------------------ 00038 // Collaborating Class Declarations -- 00039 //------------------------------------ 00040 00041 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h" 00042 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h" 00043 #include "FWCore/Utilities/interface/InputTag.h" 00044 00045 class TFile; 00046 class TTree; 00047 00048 // --------------------- 00049 // -- Class Interface -- 00050 // --------------------- 00051 00052 const int MAXGEN = 20; 00053 const int MAXRPC = 12; 00054 const int MAXDTBX = 12; 00055 const int MAXCSC = 12; 00056 const int MAXGMT = 12; 00057 const int MAXGT = 12; 00058 const int MAXRCTREG = 400; 00059 const int MAXDTPH = 50; 00060 const int MAXDTTH = 50; 00061 const int MAXDTTR = 50; 00062 00063 class L1PromptAnalysis : public edm::EDAnalyzer { 00064 00065 00066 public: 00067 00068 // constructor 00069 explicit L1PromptAnalysis(const edm::ParameterSet&); 00070 virtual ~L1PromptAnalysis(); 00071 00072 // fill tree 00073 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00074 void book(); 00075 00076 virtual void beginJob(); 00077 virtual void endJob(); 00078 00079 private: 00080 00081 //GENERAL block 00082 int runn; 00083 int eventn; 00084 int lumi; 00085 int bx; 00086 boost::uint64_t orbitn; 00087 boost::uint64_t timest; 00088 00089 // Generator info 00090 float weight; 00091 float pthat; 00092 00093 // simulation block 00094 int ngen; 00095 float pxgen[MAXGEN]; 00096 float pygen[MAXGEN]; 00097 float pzgen[MAXGEN]; 00098 float ptgen[MAXGEN]; 00099 float etagen[MAXGEN]; 00100 float phigen[MAXGEN]; 00101 int chagen[MAXGEN]; 00102 float vxgen[MAXGEN]; 00103 float vygen[MAXGEN]; 00104 float vzgen[MAXGEN]; 00105 int pargen[MAXGEN]; 00106 00107 // GMT data 00108 int bxgmt; 00109 00110 //DTBX Trigger block 00111 int ndt; 00112 int bxd[MAXDTBX]; 00113 float ptd[MAXDTBX]; 00114 int chad[MAXDTBX]; 00115 float etad[MAXDTBX]; 00116 int etafined[MAXDTBX]; 00117 float phid[MAXDTBX]; 00118 int quald[MAXDTBX]; 00119 int dwd[MAXDTBX]; 00120 int chd[MAXDTBX]; 00121 00122 //CSC Trigger block 00123 int ncsc; 00124 int bxc[MAXCSC]; 00125 float ptc[MAXCSC]; 00126 int chac[MAXCSC]; 00127 float etac[MAXCSC]; 00128 float phic[MAXCSC]; 00129 int qualc[MAXCSC]; 00130 int dwc[MAXCSC]; 00131 00132 //RPCb Trigger 00133 int nrpcb ; 00134 int bxrb[MAXRPC]; 00135 float ptrb[MAXRPC]; 00136 int charb[MAXRPC]; 00137 float etarb[MAXRPC]; 00138 float phirb[MAXRPC]; 00139 int qualrb[MAXRPC]; 00140 int dwrb[MAXRPC]; 00141 00142 //RPCf Trigger 00143 int nrpcf ; 00144 int bxrf[MAXRPC]; 00145 float ptrf[MAXRPC]; 00146 int charf[MAXRPC]; 00147 float etarf[MAXRPC]; 00148 float phirf[MAXRPC]; 00149 int qualrf[MAXRPC]; 00150 int dwrf[MAXRPC]; 00151 00152 //Global Muon Trigger 00153 int ngmt; 00154 int bxg[MAXGMT]; 00155 float ptg[MAXGMT]; 00156 int chag[MAXGMT]; 00157 float etag[MAXGMT]; 00158 float phig[MAXGMT]; 00159 int qualg[MAXGMT]; 00160 int detg[MAXGMT]; 00161 int rankg[MAXGMT]; 00162 int isolg[MAXGMT]; 00163 int mipg[MAXGMT]; 00164 int dwg[MAXGMT]; 00165 int idxRPCb[MAXGMT]; 00166 int idxRPCf[MAXGMT]; 00167 int idxDTBX[MAXGMT]; 00168 int idxCSC[MAXGMT]; 00169 00170 // GT info 00171 boost::uint64_t gttw1[3]; 00172 boost::uint64_t gttw2[3]; 00173 boost::uint64_t gttt[3]; 00174 00175 00176 //PSB info 00177 int nele; 00178 int bxel[MAXGT]; 00179 float rankel[MAXGT]; 00180 float phiel[MAXGT]; 00181 float etael[MAXGT]; 00182 00183 int njet; 00184 int bxjet[MAXGT]; 00185 float rankjet[MAXGT]; 00186 float phijet[MAXGT]; 00187 float etajet[MAXGT]; 00188 00189 //GCT 00190 edm::InputTag gctCenJetsSource_ ; 00191 edm::InputTag gctForJetsSource_ ; 00192 edm::InputTag gctTauJetsSource_ ; 00193 edm::InputTag gctEnergySumsSource_; 00194 edm::InputTag gctIsoEmSource_ ; 00195 edm::InputTag gctNonIsoEmSource_ ; 00196 00197 int gctIsoEmSize; 00198 float gctIsoEmEta[4]; 00199 float gctIsoEmPhi[4]; 00200 float gctIsoEmRnk[4]; 00201 int gctNonIsoEmSize; 00202 float gctNonIsoEmEta[4]; 00203 float gctNonIsoEmPhi[4]; 00204 float gctNonIsoEmRnk[4]; 00205 int gctCJetSize; 00206 float gctCJetEta[4]; 00207 float gctCJetPhi[4]; 00208 float gctCJetRnk[4]; 00209 int gctFJetSize; 00210 float gctFJetEta[4]; 00211 float gctFJetPhi[4]; 00212 float gctFJetRnk[4]; 00213 int gctTJetSize; 00214 float gctTJetEta[4]; 00215 float gctTJetPhi[4]; 00216 float gctTJetRnk[4]; 00217 float gctEtMiss; 00218 float gctEtMissPhi; 00219 float gctEtHad; 00220 float gctEtTot; 00221 int gctHFRingEtSumSize; 00222 float gctHFRingEtSumEta[4]; 00223 float gctHFBitCountsSize; 00224 float gctHFBitCountsEta[4]; 00225 // RCT 00226 00227 edm::InputTag rctSource_; 00228 int rctRegSize; 00229 float rctRegEta[MAXRCTREG]; 00230 float rctRegPhi[MAXRCTREG]; 00231 float rctRegRnk[MAXRCTREG]; 00232 int rctRegVeto[MAXRCTREG]; 00233 int rctRegBx[MAXRCTREG]; 00234 int rctRegOverFlow[MAXRCTREG]; 00235 int rctRegMip[MAXRCTREG]; 00236 int rctRegFGrain[MAXRCTREG]; 00237 int rctEmSize; 00238 int rctIsIsoEm[MAXRCTREG]; 00239 float rctEmEta[MAXRCTREG]; 00240 float rctEmPhi[MAXRCTREG]; 00241 float rctEmRnk[MAXRCTREG]; 00242 int rctEmBx[MAXRCTREG]; 00243 00244 // DTTF 00245 edm::InputTag dttfSource_; 00246 00247 int dttf_phSize; 00248 int dttf_phBx[MAXDTPH]; 00249 int dttf_phWh[MAXDTPH]; 00250 int dttf_phSe[MAXDTPH]; 00251 int dttf_phSt[MAXDTPH]; 00252 float dttf_phAng[MAXDTPH]; 00253 float dttf_phBandAng[MAXDTPH]; 00254 int dttf_phCode[MAXDTPH]; 00255 float dttf_phX[MAXDTPH]; 00256 float dttf_phY[MAXDTPH]; 00257 00258 int dttf_thSize; 00259 int dttf_thBx[MAXDTTH]; 00260 int dttf_thWh[MAXDTTH]; 00261 int dttf_thSe[MAXDTTH]; 00262 int dttf_thSt[MAXDTTH]; 00263 float dttf_thX[MAXDTTH]; 00264 float dttf_thY[MAXDTTH]; 00265 float dttf_thTheta[MAXDTTH][7]; 00266 int dttf_thCode[MAXDTTH][7]; 00267 00268 int dttf_trSize; 00269 int dttf_trBx[MAXDTTR]; 00270 int dttf_trTag[MAXDTTR]; 00271 int dttf_trQual[MAXDTTR]; 00272 int dttf_trPtPck[MAXDTTR]; 00273 float dttf_trPtVal[MAXDTTR]; 00274 int dttf_trPhiPck[MAXDTTR]; 00275 float dttf_trPhiVal[MAXDTTR]; 00276 int dttf_trPhiGlob[MAXDTTR]; 00277 int dttf_trChPck[MAXDTTR]; 00278 int dttf_trWh[MAXDTTR]; 00279 int dttf_trSc[MAXDTTR]; 00281 00282 00283 TFile* m_file; 00284 TTree* m_tree; 00285 00286 edm::InputTag m_GMTInputTag; 00287 edm::InputTag m_GTEvmInputTag; 00288 edm::InputTag m_GTInputTag; 00289 edm::InputTag m_GeneratorInputTag; 00290 edm::InputTag m_SimulationInputTag; 00291 00292 bool m_PhysVal; 00293 bool verbose_; 00294 std::string m_outfilename; 00295 00296 }; 00297 00298 00299 #endif