73 BarrelOccupancy =
dbe -> book2D(
"Occupancy_for_Barrel",
"Barrel Occupancy Wheel vs Sector", 12, 0.5, 12.5, 5, -2.5, 2.5);
74 EndcapPositiveOccupancy =
dbe -> book2D(
"Occupancy_for_EndcapPositive",
"Endcap Positive Occupancy Disk vs Sector", 6, 0.5, 6.5, 4, 0.5, 4.5);
75 EndcapNegativeOccupancy =
dbe -> book2D(
"Occupancy_for_EndcapNegative",
"Endcap Negative Occupancy Disk vs Sector", 6, 0.5, 6.5, 4, 0.5, 4.5);
78 RPCEvents =
dbe -> book1D(
"RPCEvents",
"RPC Events Barrel+EndCap", 1, 0.5, 1.5);
80 std::stringstream binLabel;
81 for (
int i = 1;
i<13;
i++){
87 binLabel<<
"Wheel"<<i-3;
98 binLabel<<
"Disk+"<<
i ; ;
101 binLabel<<
"Disk-"<<
i ;
116 for (TrackingGeometry::DetContainer::const_iterator it=
rpcGeo->dets().begin();it<
rpcGeo->dets().end();it++){
117 if(dynamic_cast< RPCChamber* >( *it ) != 0 ){
119 std::vector< const RPCRoll*> roles = (ch->
rolls());
120 for(std::vector<const RPCRoll*>::const_iterator r = roles.begin();r != roles.end(); ++
r){
122 int region=rpcId.
region();
126 std::string nameRoll = rpcsrv.
name();
137 std::pair<int,int> regionRing(region,ring);
138 std::map<std::pair<int,int>, std::map<std::string,MonitorElement*> >::iterator meRingItr =
meWheelDisk.find(regionRing);
169 std::map<int,int> bxMap;
171 if(rpcdigis->begin()!=rpcdigis->end())
RPCEvents -> Fill(1);
176 RPCDetId detId=(*collectionItr).first;
184 std::string nameRoll = RPCname.
name();
186 std::stringstream os;
194 if(meMap.size()==0)
continue;
196 int region=detId.
region();
198 std::string ringType;
208 std::pair<int,int> regionRing(region,ring);
209 std::map<std::string, MonitorElement*> meRingMap=
meWheelDisk[regionRing];
210 if(meRingMap.size()==0)
continue;
212 std::vector<std::pair <int,int> > duplicatedDigi;
213 std::vector<int> bxs;
216 typedef std::pair<RPCRecHitCollection::const_iterator, RPCRecHitCollection::const_iterator> rangeRecHits;
217 rangeRecHits recHitCollection = rpcHits->get(detId);
223 for (digiItr =(*collectionItr ).second.first;digiItr != (*collectionItr ).second.second; ++digiItr){
224 int strip= (*digiItr).strip();
225 int bx=(*digiItr).bx();
228 std::vector<std::pair <int,int> >::const_iterator itrDuplDigi =
find(duplicatedDigi.begin(),duplicatedDigi.end(),std::make_pair(strip, bx));
229 if(itrDuplDigi!=duplicatedDigi.end() && duplicatedDigi.size()!=0)
continue;
231 duplicatedDigi.push_back(std::make_pair(strip, bx));
235 std::vector<int>::const_iterator existingBX =
find(bxs.begin(),bxs.end(),bx);
236 if(existingBX==bxs.end())bxs.push_back(bx);
239 std::map<int,int>::const_iterator bxItr = bxMap.find((*digiItr).bx());
240 if (bxItr == bxMap.end()|| bxMap.size()==0 )bxMap[(*digiItr).bx()]=1;
241 else bxMap[(*digiItr).bx()]++;
245 os<<
"1DOccupancy_"<<ringType<<
"_"<<
ring;
246 std::string meId = os.str();
247 if( meRingMap[meId]){
248 meRingMap[meId]->Fill(detId.
sector());
253 os<<
"BxDistribution_"<<ringType<<
"_"<<ring<<
"_Sector_"<<detId.
sector();
255 meMap[os.str()]->Fill(bx);
258 os<<
"BxDistribution_"<<ringType<<
"_"<<
ring;
259 if(meRingMap[os.str()])
260 meRingMap[os.str()]->Fill(bx);
264 else if(detId.
region()==1)
266 else if(detId.
region()==-1)
270 os<<
"Occupancy_"<<ringType<<
"_"<<ring<<
"_Sector_"<<detId.
sector();
272 if(detId.
region() ==0) meMap[os.str()]->Fill(strip, nr);
273 else meMap[os.str()]->Fill(strip + 32*(detId.
roll()-1), RPCname.
segment()+ ((detId.
ring() -2)*6));
277 os<<
"Occupancy_"<<nameRoll;
278 if(meMap[os.str()]) meMap[os.str()]->Fill(strip);
281 os<<
"Occupancy_Roll_vs_Sector_"<<ringType<<
"_"<<
ring;
282 if (meRingMap[os.str()]) {
283 meRingMap[os.str()]->Fill(detId.
sector(), nr, 1);
287 os<<
"Occupancy_Ring_vs_Segment_"<<ringType<<
"_"<<
ring;
288 if (meRingMap[os.str()]) {
289 meRingMap[os.str()]->Fill( RPCname.
segment(), (detId.
ring()-1)*3-detId.
roll()+1, 1);
294 os<<
"BXN_"<<nameRoll;
295 if(meMap[os.str()]) meMap[os.str()]->Fill(bx);
300 os<<
"BXN_vs_strip_"<<nameRoll;
301 if(meMap[os.str()]) meMap[os.str()]->Fill(strip,bx);
307 os<<
"BXWithData_"<<nameRoll;
308 if(meMap[os.str()]) meMap[os.str()]->Fill(bxs.size());
312 os<<
"BXWithData_"<<ringType<<
"_"<<ring<<
"_Sector_"<<detId.
sector();
314 meMap[os.str()]->Fill(bxs.size());
316 if(numberOfDigi>50) numberOfDigi=50;
319 os<<
"Multiplicity_"<<nameRoll;
320 if(meMap[os.str()]) meMap[os.str()]->Fill(numberOfDigi);
327 if(recHitCollection.first!=recHitCollection.second ){
331 int numbOfClusters=0;
333 for (it = recHitCollection.first; it != recHitCollection.second ; it++) {
340 int mult=it->clusterSize();
341 int firstStrip=it->firstClusterStrip();
347 }
else if (detId.
region() == -1) {
350 }
else if (detId.
region() == 1) {
357 os<<
"ClusterSize_"<<ringType<<
"_"<<
ring;
358 if(meRingMap[os.str()])
359 meRingMap[os.str()] -> Fill(mult);
362 int centralStrip=firstStrip;
364 centralStrip+= mult/2;
366 float x = gRandom->Uniform(2);
367 centralStrip+=(x<1)? (mult/2)-1 : (mult/2);
371 os<<
"ClusterSize_vs_Strip_"<<nameRoll;
374 meMap[os.str()]->Fill(firstStrip+
index,mult);
379 os<<
"ClusterSize_"<<nameRoll;
381 meMap[os.str()]->Fill(mult);
387 if(numberOfHits>20) numberOfHits=20;
389 os<<
"NumberOfClusters_"<<nameRoll;
391 meMap[os.str()]->Fill(numbOfClusters);
395 os<<
"RecHitCounter_"<<nameRoll;
397 meMap[os.str()]->Fill(numberOfHits);
402 else if (detId.
region()==1)
404 else if(detId.
region()==-1)
411 for (std::map<int, int>::const_iterator myItr= bxMap.begin();
412 myItr!=bxMap.end(); myItr++){
422 if ( ! e.
getByLabel(
"scalersRawToDigi", dcsStatus) ){
435 for (DcsStatusCollection::const_iterator dcsStatusItr = dcsStatus->begin();
436 dcsStatusItr != dcsStatus->end(); ++dcsStatusItr) {
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * NumberOfClusters_for_Barrel
std::string globalFolder_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
virtual void endJob(void)
MonitorElement * NumberOfDigis_for_EndcapNegative
edm::InputTag RPCRecHitLabel_
std::map< std::string, MonitorElement * > bookRegionRing(int region, int ring)
Booking of MonitoringElemnt at Wheel/Disk level.
MonitorElement * ClusterSize_for_EndcapNegative
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
MonitorElement * SameBxDigisMeEndcapPositive_
MonitorElement * ClusterSize_for_BarrelandEndcaps
RPCMonitorDigi(const edm::ParameterSet &)
Data Format.
std::map< uint32_t, std::map< std::string, MonitorElement * > > meCollection
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
void makeDcsInfo(const edm::Event &)
MonitorElement * EndcapNegativeOccupancy
MonitorElement * RPCEvents
MonitorElement * NumberOfDigis_for_Barrel
C::const_iterator const_iterator
constant access iterator type
edm::InputTag RPCDigiLabel_
virtual std::string name()
void beginRun(const edm::Run &r, const edm::EventSetup &c)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
const std::vector< const RPCRoll * > & rolls() const
Return the Rolls.
MonitorElement * ClusterSize_for_EndcapPositive
MonitorElement * ClusterSize_for_Barrel
MonitorElement * NumberOfClusters_for_EndcapNegative
std::map< std::pair< int, int >, std::map< std::string, MonitorElement * > > meWheelDisk
std::map< std::string, MonitorElement * > bookDetUnitME(RPCDetId &, const edm::EventSetup &)
Booking of MonitoringElemnt for one RPCDetId (= roll)
edm::ESHandle< RPCGeometry > rpcGeo
MonitorElement * NumberOfDigis_for_EndcapPositive
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * SameBxDigisMeBarrel_
MonitorElement * SameBxDigisMeEndcapNegative_
MonitorElement * NumberOfClusters_for_EndcapPositive
MonitorElement * EndcapPositiveOccupancy
int detId2RollNr(const RPCDetId &_id)
std::vector< DigiType >::const_iterator const_iterator
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
MonitorElement * BarrelOccupancy
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
void setCurrentFolder(const std::string &fullpath)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.