Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:28

0001 #ifndef L1Trigger_L1TGEM_ME0TriggerPseudoBuilder_h
0002 #define L1Trigger_L1TGEM_ME0TriggerPseudoBuilder_h
0003 
0004 /** \class ME0TriggerPseudoBuilder
0005  *
0006  * Builds ME0 trigger objects from ME0 segment
0007  *
0008  * \author Tao Huang (TAMU)
0009  *
0010  */
0011 
0012 #include "DataFormats/GEMDigi/interface/ME0TriggerDigiCollection.h"
0013 #include "DataFormats/GEMRecHit/interface/ME0SegmentCollection.h"
0014 #include "DataFormats/GEMRecHit/interface/ME0Segment.h"
0015 #include "DataFormats/GEMRecHit/interface/ME0RecHit.h"
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017 
0018 class ME0Geometry;
0019 
0020 class ME0TriggerPseudoBuilder {
0021 public:
0022   /** Configure the algorithm via constructor.
0023    *  Receives ParameterSet percolated down from
0024    *  EDProducer which owns this Builder.
0025    */
0026   explicit ME0TriggerPseudoBuilder(const edm::ParameterSet&);
0027 
0028   ~ME0TriggerPseudoBuilder();
0029 
0030   /** Build Triggers from ME0 segment in each chamber and fill them into output collections. */
0031   void build(const ME0SegmentCollection* me0segments, ME0TriggerDigiCollection& oc_trig);
0032 
0033   /** set geometry for the matching needs */
0034   void setME0Geometry(const ME0Geometry* g) { me0_g = g; }
0035 
0036   /* print all ME0 segments in the event */
0037   void dumpAllME0Segments(const ME0SegmentCollection& segments) const;
0038 
0039   /** Max values of trigger labels for all ME0s;
0040    *  used to construct TMB processors.
0041    */
0042   enum class trig_me0s { MAX_ENDCAPS = 2, MAX_CHAMBERS = 18 };
0043 
0044 private:
0045   static const int min_endcap;
0046   static const int max_endcap;
0047   static const int min_chamber;
0048   static const int max_chamber;
0049   static const unsigned int ME0KeyLayer;
0050   static const int ME0TriggerCentralBX;
0051 
0052   const ME0Geometry* me0_g;
0053 
0054   int info_;
0055 
0056   double dphiresolution_;  //unit: trigger pad
0057 
0058   ME0TriggerDigi segmentConversion(const ME0Segment segment);
0059 
0060   edm::ParameterSet config_;
0061 };
0062 
0063 #endif