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 
15 
16 #include <string>
17 #include <map>
18 
19 
20 namespace edm {
21  class ParameterSet;
22  class Event;
23  class EventSetup;
24 }
25 
26 class TFile;
27 class TH1F;
28 class DTTimeBoxFitter;
29 class DTTTrigBaseSync;
30 class DTTtrig;
31 
33 public:
36 
38  virtual ~DTTTrigCalibration();
39 
40  // Operations
41 
43  void analyze(const edm::Event & event, const edm::EventSetup& eventSetup);
44 
46  void endJob();
47 
48 
49 protected:
50 
51 private:
52  // Generate the time box name
53  std::string getTBoxName(const DTSuperLayerId& slId) const;
54  // Generate the time box name
55  std::string getOccupancyName(const DTLayerId& slId) const;
56 
57  // Print computed ttrig
58  void dumpTTrigMap(const DTTtrig* tTrig) const;
59 
60  // Plot computed ttrig
61  void plotTTrig(const DTTtrig* tTrig) const;
62 
63  // Debug flag
64  bool debug;
65 
66  // The label used to retrieve digis from the event
68 
69  // The TDC time-window
71  //The maximum number of digis per layer
73 
74  // The file which will contain the time boxes
75  TFile *theFile;
76 
77  // Map of the histograms by SL
78  std::map<DTSuperLayerId, TH1F*> theHistoMap;
79  std::map<DTLayerId, TH1F*> theOccupancyMap;
80 
81  // Switch for t0 subtraction
83  // Switch for checking of noisy channels
85  //card to switch on/off the DB writing
87  // the kfactor to be uploaded in the ttrig DB
88  double kFactor;
89 
90  // The fitter
92  // The module for t0 subtraction
93  DTTTrigBaseSync *theSync;//FIXME: should be const
94 
95 };
96 #endif
97 
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