CMS 3D CMS Logo

DTPreCalibrationTask.cc
Go to the documentation of this file.
2 
3 
4 // Framework
13 
14 // Geometry
19 
20 // Digis
24 
25 
26 #include "TH2F.h"
27 #include "TFile.h"
28 
29 using namespace edm;
30 using namespace std;
31 
32 
33 
35 
36  LogTrace("DTPreCalibSummary") <<"[DTPrecalibrationTask]: Constructor"<<endl;
37 
38  // Label to retrieve DT digis from the event
39  digiLabel = consumes<DTDigiCollection>(ps.getUntrackedParameter<string>("digiLabel"));
40 
41  // parameter for Time Boxes booking
42  minTriggerWidth = ps.getUntrackedParameter<int>("minTriggerWidth",2000);
43  maxTriggerWidth = ps.getUntrackedParameter<int>("maxTriggerWidth",6000);
44 
45  // get the histo folder name
46  folderName = ps.getUntrackedParameter<string>("folderName");
47 
48 }
49 
50 
52 
53 
55  edm::Run const &, edm::EventSetup const &) {
56 
57  for(int wheel=-2; wheel<=2; wheel++){
58  for(int sector=1; sector<=14; sector++){
59  LogTrace("DTPreCalibSummary") <<"[DTPrecalibrationTask]: Book histos for wheel "<<wheel<<", sector "<<sector<<endl;
60  iBooker.setCurrentFolder(folderName+"/TimeBoxes");
61  bookTimeBoxes(iBooker, wheel, sector);
62  iBooker.setCurrentFolder(folderName+"/OccupancyHistos");
63  if(sector<13) bookOccupancyPlot(iBooker, wheel, sector);
64  }
65  }
66 
67 }
68 
69 
71 
72  // Get the digis from the event
74  event.getByToken(digiLabel, dtdigis);
75 
76  // LOOP OVER ALL THE DIGIS OF THE EVENT
78  for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); ++dtLayerId_It){
79  for (DTDigiCollection::const_iterator digiIt = ((*dtLayerId_It).second).first;
80  digiIt!=((*dtLayerId_It).second).second; ++digiIt){
81 
82  //Fill the Time Boxes
83  int tdcTime = (*digiIt).countsTDC();
84  TimeBoxes[make_pair((*dtLayerId_It).first.superlayerId().chamberId().wheel(),
85  (*dtLayerId_It).first.superlayerId().chamberId().sector())]->Fill(tdcTime);
86 
87  //Fill the occupancy plot
88  const DTLayerId dtLId = (*dtLayerId_It).first;
89  int yBin = (dtLId.station()-1)*12+dtLId.layer()+4*(dtLId.superlayer()-1);
90  if(dtLId.station()==4 && dtLId.superlayer()==3)
91  yBin = (dtLId.station()-1)*12+dtLId.layer()+4*(dtLId.superlayer()-2);
92  if((*dtLayerId_It).first.superlayerId().chamberId().sector()<13)
93  OccupancyHistos[make_pair((*dtLayerId_It).first.superlayerId().chamberId().wheel(),
94  (*dtLayerId_It).first.superlayerId().chamberId().sector())]->Fill((*digiIt).wire(),yBin);
95  else{
96  if(dtLId.superlayer()!=3) yBin = 44 + dtLId.layer();
97  else yBin = 48 + dtLId.layer();
98  if((*dtLayerId_It).first.superlayerId().chamberId().sector()==13)
99  OccupancyHistos[make_pair((*dtLayerId_It).first.superlayerId().chamberId().wheel(),4)]->Fill((*digiIt).wire(),yBin);
100  if((*dtLayerId_It).first.superlayerId().chamberId().sector()==14)
101  OccupancyHistos[make_pair((*dtLayerId_It).first.superlayerId().chamberId().wheel(),10)]->Fill((*digiIt).wire(),yBin);
102  }
103 
104  }
105  }
106 
107 }
108 
110 
111  stringstream wh; wh << wheel;
112  stringstream sec; sec << sector;
113 
114  // book the time boxes
115  TimeBoxes[make_pair(wheel, sector)]= iBooker.book1D("TimeBox_W"+wh.str()+"_Sec"+sec.str(), "Time Box W"+wh.str()+"_Sec"+sec.str(),(maxTriggerWidth-minTriggerWidth)/50, minTriggerWidth, maxTriggerWidth);
116  TimeBoxes[make_pair(wheel, sector)]->setAxisTitle("TDC counts");
117 
118 }
119 
120 
121 
123 
124  stringstream wh; wh << wheel;
125  stringstream sec; sec << sector;
126 
127  // book the occpancy plot
128  if(sector==4 || sector==10)
129  OccupancyHistos[make_pair(wheel, sector)]= iBooker.book2D("Occupancy_W"+wh.str()+"_Sec"+sec.str(), "Occupancy W"+wh.str()+"_Sec"+sec.str(),100,1,100,52,1,53);
130  else
131  OccupancyHistos[make_pair(wheel, sector)]= iBooker.book2D("Occupancy_W"+wh.str()+"_Sec"+sec.str(), "Occupancy W"+wh.str()+"_Sec"+sec.str(),100,1,100,44,1,45);
132  OccupancyHistos[make_pair(wheel, sector)]->setAxisTitle("wire number", 1);
133  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(1,"M1L1",2);
134  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(2,"M1L2",2);
135  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(3,"M1L3",2);
136  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(4,"M1L4",2);
137  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(5,"M1L5",2);
138  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(6,"M1L6",2);
139  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(7,"M1L7",2);
140  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(8,"M1L8",2);
141  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(9,"M1L9",2);
142  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(10,"M1L10",2);
143  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(11,"M1L11",2);
144  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(12,"M1L12",2);
145  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(13,"M2L1",2);
146  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(14,"M2L2",2);
147  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(15,"M2L3",2);
148  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(16,"M2L4",2);
149  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(17,"M2L5",2);
150  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(18,"M2L6",2);
151  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(19,"M2L7",2);
152  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(20,"M2L8",2);
153  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(21,"M2L9",2);
154  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(22,"M2L10",2);
155  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(23,"M2L11",2);
156  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(24,"M2L12",2);
157  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(25,"M3L1",2);
158  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(26,"M3L2",2);
159  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(27,"M3L3",2);
160  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(28,"M3L4",2);
161  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(29,"M3L5",2);
162  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(30,"M3L6",2);
163  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(31,"M3L7",2);
164  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(32,"M3L8",2);
165  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(33,"M3L9",2);
166  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(34,"M3L10",2);
167  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(35,"M3L11",2);
168  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(36,"M3L12",2);
169  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(37,"M4L1",2);
170  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(38,"M4L2",2);
171  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(39,"M4L3",2);
172  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(40,"M4L4",2);
173  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(41,"M4L5",2);
174  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(42,"M4L6",2);
175  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(43,"M4L7",2);
176  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(44,"M4L8",2);
177  if(sector==4){
178  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(45,"M4Sec13L1",2);
179  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(46,"M4Sec13L2",2);
180  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(47,"M4Sec13L3",2);
181  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(48,"M4Sec13L4",2);
182  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(49,"M4Sec13L5",2);
183  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(50,"M4Sec13L6",2);
184  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(51,"M4Sec13L7",2);
185  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(52,"M4Sec13L8",2);
186  }
187  if(sector==10){
188  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(45,"M4Sec14L1",2);
189  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(46,"M4Sec14L2",2);
190  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(47,"M4Sec14L3",2);
191  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(48,"M4Sec14L4",2);
192  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(49,"M4Sec14L5",2);
193  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(50,"M4Sec14L6",2);
194  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(51,"M4Sec14L7",2);
195  OccupancyHistos[make_pair(wheel, sector)]->setBinLabel(52,"M4Sec14L8",2);
196  }
197 
198 }
void bookTimeBoxes(DQMStore::IBooker &, int wheel, int sector)
Book histos.
T getUntrackedParameter(std::string const &, T const &) const
DTPreCalibrationTask(const edm::ParameterSet &ps)
Constructor.
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
int layer() const
Return the layer number.
Definition: DTLayerId.h:53
void bookOccupancyPlot(DQMStore::IBooker &, int wheel, int sector)
U second(std::pair< T, U > const &p)
virtual ~DTPreCalibrationTask()
Destructor.
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
#define LogTrace(id)
int superlayer() const
Return the superlayer number (deprecated method name)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::vector< DTDigi >::const_iterator const_iterator
HLT enums.
int station() const
Return the station number.
Definition: DTChamberId.h:51
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
yBin
Definition: cuy.py:891
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: event.py:1
Definition: Run.h:42