CMS 3D CMS Logo

HcalNoiseInfoProducer.h
Go to the documentation of this file.
1 #ifndef _RECOMET_METPRODUCER_HCALNOISEINFOPRODUCER_H_
2 #define _RECOMET_METPRODUCER_HCALNOISEINFOPRODUCER_H_
3 
4 //
5 // HcalNoiseInfoProducer.h
6 //
7 // description: Definition of the producer for the HCAL noise information.
8 // Uses various algorithms to process digis, rechits, and calotowers
9 // and produce a vector of HcalNoiseRBXs.
10 // To minimize the time used to sort the data into HPD/RBX space, we fill
11 // an rbxarray of size 72, and then pick which rbxs are interesting at
12 // the end.
13 //
14 // author: J.P. Chou, Brown
15 //
16 
17 // system include files
18 #include <memory>
19 
20 // user include files
27 
31 
39 
41 
42 namespace reco {
43 
44  //
45  // class declaration
46  //
47 
49  public:
51  ~HcalNoiseInfoProducer() override;
52 
53  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
54 
55  private:
56 
57  //
58  // methods inherited from EDProducer
59  // produce(...) fills an HcalNoiseRBXArray with information from various places, and then
60  // picks which rbxs are interesting, storing them to the EDM.
61  //
62 
63  void produce(edm::Event&, const edm::EventSetup&) override;
64 
65  //
66  // more internal methods
67  // fills an HcalNoiseRBXArray with various data
68  // filldigis() depends on fillrechits() being called first
69  //
75 
76  // other helper functions
78 
79 
80  //
81  // parameters
82  //
83 
84  bool fillDigis_; // fill digi information into HcalNoiseRBXs
85  bool fillRecHits_; // fill rechit information into HcalNoiseRBXs and HcalNoiseSummary
86  bool fillCaloTowers_; // fill calotower information into HcalNoiseRBXs and HcalNoiseSummary
87  bool fillTracks_; // fill track information into HcalNoiseSummary
88  bool fillLaserMonitor_; // fill laser monitor information into HcalNoiseSummary
89 
90  // These provide the requirements for writing an RBX to the event
91  int maxProblemRBXs_; // maximum number of problematic RBXs to be written to the event record
92 
93  // parameters for calculating summary variables
94  int maxCaloTowerIEta_; // maximum caloTower ieta
95  double maxTrackEta_; // maximum eta of the track
96  double minTrackPt_; // minimum track Pt
97  double maxNHF_;
99 
101 
102  std::string digiCollName_; // name of the digi collection
103  std::string recHitCollName_; // name of the rechit collection
104  std::string caloTowerCollName_; // name of the caloTower collection
105  std::string trackCollName_; // name of the track collection
106  std::string jetCollName_; // name of the jet collection
107 
115 
116  double totalCalibCharge; // placeholder to calculate total charge in calibration channels
117  double totalLasmonCharge; // placeholder to calculate total charge in laser monitor channels
118 
119  double minRecHitE_, minLowHitE_, minHighHitE_, minR45HitE_; // parameters used to determine noise status
120  HcalNoiseAlgo algo_; // algorithms to determine if an RBX is noisy
121 
123 
124  // Variables to store info regarding HBHE calibration digis
125  double calibdigiHBHEthreshold_; // minimum charge calib digi in order to be counted by noise algorithm
126  std::vector<int> calibdigiHBHEtimeslices_; // time slices to use when computing calibration charge
127  // Variables to store info regarding HF calibration digis
129  std::vector<int> calibdigiHFtimeslices_;
130 
131 
133  std::vector<std::pair<double, double> > TS4TS5UpperCut_;
134  std::vector<std::pair<double, double> > TS4TS5LowerCut_;
135 
138 
139  std::vector<int> laserMonCBoxList_;
140  std::vector<int> laserMonIPhiList_;
141  std::vector<int> laserMonIEtaList_;
142 
145 
146  std::vector<float> adc2fC;
147  std::vector<float> adc2fCHF;
148  };
149 
150 } // end of namespace
151 
152 #endif
edm::EDGetTokenT< QIE10DigiCollection > lasermondigi_token_
std::vector< int > calibdigiHFtimeslices_
std::vector< int > HcalRecHitFlagsToBeExcluded_
void fillrechits(edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< std::pair< double, double > > TS4TS5LowerCut_
void fillcalotwrs(edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &) const
edm::EDGetTokenT< reco::PFJetCollection > jet_token_
void filljetinfo(edm::Event &, const edm::EventSetup &, HcalNoiseSummary &) const
edm::EDGetTokenT< HcalCalibDigiCollection > hcalcalibdigi_token_
edm::EDGetTokenT< HBHEDigiCollection > hbhedigi_token_
std::vector< std::pair< double, double > > TS4TS5UpperCut_
edm::EDGetTokenT< reco::TrackCollection > track_token_
edm::EDGetTokenT< HBHERecHitCollection > hbherechit_token_
void filldigis(edm::Event &, const edm::EventSetup &, HcalNoiseRBXArray &, HcalNoiseSummary &)
fixed size matrix
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
std::vector< int > calibdigiHBHEtimeslices_
const HcalTopology * theHcalTopology_
void filltracks(edm::Event &, const edm::EventSetup &, HcalNoiseSummary &) const
HcalNoiseInfoProducer(const edm::ParameterSet &)
void fillOtherSummaryVariables(HcalNoiseSummary &summary, const CommonHcalNoiseRBXData &data) const
edm::EDGetTokenT< CaloTowerCollection > calotower_token_