CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTTTrigCalibration.h
Go to the documentation of this file.
1 #ifndef CalibMuon_DTTTrigCalibration_H
2 #define CalibMuon_DTTTrigCalibration_H
3 
17 
18 #include <string>
19 #include <map>
20 
21 
22 namespace edm {
23  class ParameterSet;
24  class Event;
25  class EventSetup;
26 }
27 
28 class TFile;
29 class TH1F;
30 class DTTimeBoxFitter;
31 class DTTTrigBaseSync;
32 class DTTtrig;
33 
35 public:
38 
40  virtual ~DTTTrigCalibration();
41 
42  // Operations
43 
45  void analyze(const edm::Event & event, const edm::EventSetup& eventSetup);
46 
48  void endJob();
49 
50 
51 protected:
52 
53 private:
54  // Generate the time box name
55  std::string getTBoxName(const DTSuperLayerId& slId) const;
56  // Generate the time box name
57  std::string getOccupancyName(const DTLayerId& slId) const;
58 
59  // Print computed ttrig
60  void dumpTTrigMap(const DTTtrig* tTrig) const;
61 
62  // Plot computed ttrig
63  void plotTTrig(const DTTtrig* tTrig) const;
64 
65  // Debug flag
66  bool debug;
67 
68  // The label used to retrieve digis from the event
70 
71  // The TDC time-window
73  //The maximum number of digis per layer
75 
76  // The file which will contain the time boxes
77  TFile *theFile;
78 
79  // Map of the histograms by SL
80  std::map<DTSuperLayerId, TH1F*> theHistoMap;
81  std::map<DTLayerId, TH1F*> theOccupancyMap;
82 
83  // Switch for t0 subtraction
85  // Switch for checking of noisy channels
87  //card to switch on/off the DB writing
89  // the kfactor to be uploaded in the ttrig DB
90  double kFactor;
91 
92  // The fitter
94  // The module for t0 subtraction
95  DTTTrigBaseSync *theSync;//FIXME: should be const
96 
97 };
98 #endif
99 
DTTTrigCalibration(const edm::ParameterSet &pset)
Constructor.
std::map< DTSuperLayerId, TH1F * > theHistoMap
virtual ~DTTTrigCalibration()
Destructor.
std::string getTBoxName(const DTSuperLayerId &slId) const
DTTTrigBaseSync * theSync
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup)
Fill the time boxes.
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void plotTTrig(const DTTtrig *tTrig) const
std::string getOccupancyName(const DTLayerId &slId) const
void endJob()
Fit the time box rising edge and write the resulting ttrig to the DB.
std::map< DTLayerId, TH1F * > theOccupancyMap
void dumpTTrigMap(const DTTtrig *tTrig) const
DTTimeBoxFitter * theFitter