Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-04-28 22:23:59

0001 #ifndef L1Trigger_TrackFindingTMTT_InputData_h
0002 #define L1Trigger_TrackFindingTMTT_InputData_h
0003 
0004 #include "FWCore/Utilities/interface/EDGetToken.h"
0005 #include "L1Trigger/TrackFindingTMTT/interface/TP.h"
0006 #include "L1Trigger/TrackFindingTMTT/interface/TrackerModule.h"
0007 #include "L1Trigger/TrackFindingTMTT/interface/Stub.h"
0008 #include "FWCore/Framework/interface/Frameworkfwd.h"
0009 #include <list>
0010 
0011 namespace tmtt {
0012 
0013   class Settings;
0014   class StubWindowSuggest;
0015   class DegradeBend;
0016 
0017   //=== Unpacks stub & tracking particle (truth) data into user-friendlier format in Stub & TP classes.
0018   //=== Also makes B-field available to Settings class.
0019 
0020   class InputData {
0021   public:
0022     InputData(const edm::Event& iEvent,
0023               const edm::EventSetup& iSetup,
0024               const Settings* settings,
0025               StubWindowSuggest* stubWindowSuggest,
0026               const DegradeBend* degradeBend,
0027               const TrackerGeometry* trackerGeometry,
0028               const TrackerTopology* trackerTopology,
0029               const std::list<TrackerModule>& listTrackerModule,
0030               const edm::EDGetTokenT<TrackingParticleCollection> tpToken,
0031               const edm::EDGetTokenT<TTStubDetSetVec> stubToken,
0032               const edm::EDGetTokenT<TTStubAssMap> stubTruthToken,
0033               const edm::EDGetTokenT<TTClusterAssMap> clusterTruthToken,
0034               const edm::EDGetTokenT<reco::GenJetCollection> genJetToken);
0035 
0036     // Info about each tracker module
0037     const std::list<TrackerModule>& trackerModules() const { return trackerModules_; };
0038 
0039     // Get tracking particles
0040     const std::list<TP>& getTPs() const { return vTPs_; }
0041     // Get stubs that would be output by the front-end readout electronics
0042     const std::list<Stub*>& stubs() const { return vStubs_; }
0043     // Ditto but const
0044     const std::list<const Stub*>& stubsConst() const { return vStubsConst_; }
0045 
0046     //--- of minor importance ...
0047 
0048     // Get number of stubs prior to applying tighted front-end readout electronics cuts specified in section StubCuts of Analyze_Defaults_cfi.py. (Only used to measure the efficiency of these cuts).
0049     const std::list<Stub>& allStubs() const { return vAllStubs_; }
0050 
0051   private:
0052     bool enableMCtruth_;  // Notes if job will use MC truth info.
0053 
0054     std::list<TrackerModule> trackerModules_;  // Info about each tracker module.
0055 
0056     std::list<TP> vTPs_;                  // tracking particles
0057     std::list<Stub*> vStubs_;             // stubs that would be output by the front-end readout electronics.
0058     std::list<const Stub*> vStubsConst_;  // ditto but const
0059 
0060     //--- Used for a few minor studies ...
0061 
0062     // all stubs, even those that would fail any tightened front-end readout electronic cuts specified in section StubCuts of Analyze_Defaults_cfi.py. (Only used to measure the efficiency of these cuts).
0063     std::list<Stub> vAllStubs_;
0064 
0065     // Recommends optimal FE stub window sizes.
0066     StubWindowSuggest* stubWindowSuggest_;
0067     // Degrades bend to allow for FE stub bend encoding.
0068     const DegradeBend* degradeBend_;
0069   };
0070 
0071 }  // namespace tmtt
0072 #endif