Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-09-30 01:18:19

0001 
0002 //-------------------------------------------------
0003 //
0004 //   \class L1MuGMTTree
0005 /**
0006  *   Description:  Build GMT Tree
0007 */
0008 //
0009 //
0010 //   I. Mikulec            HEPHY Vienna
0011 //
0012 //--------------------------------------------------
0013 #ifndef L1MU_GMT_DUMP_H
0014 #define L1MU_GMT_DUMP_H
0015 
0016 //---------------
0017 // C++ Headers --
0018 //---------------
0019 
0020 #include <memory>
0021 #include <string>
0022 
0023 //----------------------
0024 // Base Class Headers --
0025 //----------------------
0026 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0027 
0028 #include "FWCore/Framework/interface/Frameworkfwd.h"
0029 #include "FWCore/Framework/interface/MakerMacros.h"
0030 #include "FWCore/Framework/interface/Event.h"
0031 #include "DataFormats/Common/interface/Handle.h"
0032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0033 
0034 //------------------------------------
0035 // Collaborating Class Declarations --
0036 //------------------------------------
0037 
0038 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0039 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0040 #include "FWCore/Utilities/interface/InputTag.h"
0041 
0042 class TFile;
0043 class TTree;
0044 
0045 //              ---------------------
0046 //              -- Class Interface --
0047 //              ---------------------
0048 
0049 const int MAXGEN = 20;
0050 const int MAXRPC = 12;
0051 const int MAXDTBX = 12;
0052 const int MAXCSC = 12;
0053 const int MAXGMT = 12;
0054 const int MAXGT = 12;
0055 
0056 class L1MuGMTTree : public edm::one::EDAnalyzer<> {
0057 public:
0058   // constructor
0059   explicit L1MuGMTTree(const edm::ParameterSet&);
0060   ~L1MuGMTTree() override;
0061 
0062   // fill tree
0063   void analyze(const edm::Event&, const edm::EventSetup&) override;
0064   void book();
0065 
0066   void beginJob() override;
0067   void endJob() override;
0068 
0069 private:
0070   //GENERAL block
0071   int runn;
0072   int eventn;
0073   int lumi;
0074   int bx;
0075   uint64_t orbitn;
0076   uint64_t timest;
0077 
0078   // Generator info
0079   float weight;
0080   float pthat;
0081 
0082   // simulation block
0083   int ngen;
0084   float pxgen[MAXGEN];
0085   float pygen[MAXGEN];
0086   float pzgen[MAXGEN];
0087   float ptgen[MAXGEN];
0088   float etagen[MAXGEN];
0089   float phigen[MAXGEN];
0090   int chagen[MAXGEN];
0091   float vxgen[MAXGEN];
0092   float vygen[MAXGEN];
0093   float vzgen[MAXGEN];
0094   int pargen[MAXGEN];
0095 
0096   // GMT data
0097   int bxgmt;
0098 
0099   //DTBX Trigger block
0100   int ndt;
0101   int bxd[MAXDTBX];
0102   float ptd[MAXDTBX];
0103   int chad[MAXDTBX];
0104   float etad[MAXDTBX];
0105   int etafined[MAXDTBX];
0106   float phid[MAXDTBX];
0107   int quald[MAXDTBX];
0108   int dwd[MAXDTBX];
0109   int chd[MAXDTBX];
0110 
0111   //CSC Trigger block
0112   int ncsc;
0113   int bxc[MAXCSC];
0114   float ptc[MAXCSC];
0115   int chac[MAXCSC];
0116   float etac[MAXCSC];
0117   float phic[MAXCSC];
0118   int qualc[MAXCSC];
0119   int dwc[MAXCSC];
0120 
0121   //RPCb Trigger
0122   int nrpcb;
0123   int bxrb[MAXRPC];
0124   float ptrb[MAXRPC];
0125   int charb[MAXRPC];
0126   float etarb[MAXRPC];
0127   float phirb[MAXRPC];
0128   int qualrb[MAXRPC];
0129   int dwrb[MAXRPC];
0130 
0131   //RPCf Trigger
0132   int nrpcf;
0133   int bxrf[MAXRPC];
0134   float ptrf[MAXRPC];
0135   int charf[MAXRPC];
0136   float etarf[MAXRPC];
0137   float phirf[MAXRPC];
0138   int qualrf[MAXRPC];
0139   int dwrf[MAXRPC];
0140 
0141   //Global Muon Trigger
0142   int ngmt;
0143   int bxg[MAXGMT];
0144   float ptg[MAXGMT];
0145   int chag[MAXGMT];
0146   float etag[MAXGMT];
0147   float phig[MAXGMT];
0148   int qualg[MAXGMT];
0149   int detg[MAXGMT];
0150   int rankg[MAXGMT];
0151   int isolg[MAXGMT];
0152   int mipg[MAXGMT];
0153   int dwg[MAXGMT];
0154   int idxRPCb[MAXGMT];
0155   int idxRPCf[MAXGMT];
0156   int idxDTBX[MAXGMT];
0157   int idxCSC[MAXGMT];
0158 
0159   // GT info
0160   uint64_t gttw1[3];
0161   uint64_t gttw2[3];
0162   uint64_t gttt[3];
0163 
0164   //PSB info
0165   int nele;
0166   int bxel[MAXGT];
0167   float rankel[MAXGT];
0168   float phiel[MAXGT];
0169   float etael[MAXGT];
0170 
0171   int njet;
0172   int bxjet[MAXGT];
0173   float rankjet[MAXGT];
0174   float phijet[MAXGT];
0175   float etajet[MAXGT];
0176 
0177   TFile* m_file;
0178   TTree* m_tree;
0179 
0180   edm::InputTag m_GMTInputTag;
0181   edm::InputTag m_GTEvmInputTag;
0182   edm::InputTag m_GTInputTag;
0183   edm::InputTag m_GeneratorInputTag;
0184   edm::InputTag m_SimulationInputTag;
0185 
0186   bool m_PhysVal;
0187 
0188   std::string m_outfilename;
0189 };
0190 
0191 #endif