CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/L1TriggerOffline/L1Analyzer/interface/L1PromptAnalysis.h

Go to the documentation of this file.
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