CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Private Attributes
SiPixelRecHitSource Class Reference

#include <SiPixelRecHitSource.h>

Inheritance diagram for SiPixelRecHitSource:
one::DQMEDAnalyzer< T > one::dqmimplementation::DQMBaseClass< T... >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, const edm::EventSetup &) override
 
virtual void bookMEs (DQMStore::IBooker &, const edm::EventSetup &iSetup)
 
virtual void buildStructure (edm::EventSetup const &)
 
void dqmBeginRun (const edm::Run &, edm::EventSetup const &) override
 
 SiPixelRecHitSource (const edm::ParameterSet &conf)
 
 ~SiPixelRecHitSource () override
 
- Public Member Functions inherited from one::DQMEDAnalyzer< T >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Public Attributes

std::string topFolderName_
 

Private Attributes

bool bladeOn
 
edm::ParameterSet conf_
 
bool diskOn
 
int eventNo
 
bool firstRun
 
bool isPIB
 
bool isUpgrade
 
bool ladOn
 
bool layOn
 
bool modOn
 
bool phiOn
 
std::map< uint32_t, int > rechit_count
 
bool reducedSet
 
bool ringOn
 
bool saveFile
 
bool slowDown
 
edm::EDGetTokenT< SiPixelRecHitCollectionsrc_
 
std::map< uint32_t, SiPixelRecHitModule * > thePixelStructure
 
bool twoDimOn
 

Detailed Description

Description: header file for Pixel Monitor Rec Hits

Usage: see description

Definition at line 54 of file SiPixelRecHitSource.h.

Constructor & Destructor Documentation

SiPixelRecHitSource::SiPixelRecHitSource ( const edm::ParameterSet conf)
explicit

Definition at line 51 of file SiPixelRecHitSource.cc.

References conf_, firstRun, edm::ParameterSet::getParameter(), AlCaHLTBitMon_QueryRunRegistry::string, and topFolderName_.

51  :
52  conf_(iConfig),
53  src_( consumes<SiPixelRecHitCollection>( conf_.getParameter<edm::InputTag>( "src" ))),
54  saveFile( conf_.getUntrackedParameter<bool>("saveFile",false) ),
55  isPIB( conf_.getUntrackedParameter<bool>("isPIB",false) ),
56  slowDown( conf_.getUntrackedParameter<bool>("slowDown",false) ),
57  modOn( conf_.getUntrackedParameter<bool>("modOn",true) ),
58  twoDimOn( conf_.getUntrackedParameter<bool>("twoDimOn",true) ),
59  reducedSet( conf_.getUntrackedParameter<bool>("reducedSet",false) ),
60  ladOn( conf_.getUntrackedParameter<bool>("ladOn",false) ),
61  layOn( conf_.getUntrackedParameter<bool>("layOn",false) ),
62  phiOn( conf_.getUntrackedParameter<bool>("phiOn",false) ),
63  ringOn( conf_.getUntrackedParameter<bool>("ringOn",false) ),
64  bladeOn( conf_.getUntrackedParameter<bool>("bladeOn",false) ),
65  diskOn( conf_.getUntrackedParameter<bool>("diskOn",false) ),
66  isUpgrade( conf_.getUntrackedParameter<bool>("isUpgrade",false) )
67 {
68  firstRun = true;
69  LogInfo ("PixelDQM") << "SiPixelRecHitSource::SiPixelRecHitSource: Got DQM BackEnd interface"<<endl;
70  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
71 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet conf_
edm::EDGetTokenT< SiPixelRecHitCollection > src_
SiPixelRecHitSource::~SiPixelRecHitSource ( )
override

Definition at line 74 of file SiPixelRecHitSource.cc.

References thePixelStructure.

75 {
76  // do anything here that needs to be done at desctruction time
77  // (e.g. close files, deallocate resources etc.)
78  LogInfo ("PixelDQM") << "SiPixelRecHitSource::~SiPixelRecHitSource: Destructor"<<endl;
79  std::map<uint32_t,SiPixelRecHitModule*>::iterator struct_iter;
80  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++){
81  delete struct_iter->second;
82  struct_iter->second = nullptr;
83  }
84 }
std::map< uint32_t, SiPixelRecHitModule * > thePixelStructure

Member Function Documentation

void SiPixelRecHitSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 112 of file SiPixelRecHitSource.cc.

References edmNew::DetSet< T >::begin(), bladeOn, diskOn, edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::end(), eventNo, edmNew::DetSetVector< T >::find(), edm::Event::getByToken(), ladOn, layOn, match(), modOn, phiOn, rechit_count, reducedSet, ringOn, RecoTauValidation_cfi::sizeX, RecoTauValidation_cfi::sizeY, slowDown, mathSSE::sqrt(), src_, thePixelStructure, twoDimOn, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

113 {
114  eventNo++;
115  //cout << eventNo << endl;
116  // get input data
118  iEvent.getByToken( src_, recHitColl );
119 
120  std::map<uint32_t,SiPixelRecHitModule*>::iterator struct_iter;
121  for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) {
122  uint32_t TheID = (*struct_iter).first;
123 
125 
126  // if( pixelrechitRangeIteratorBegin == pixelrechitRangeIteratorEnd) {cout << "oops" << endl;}
127  float rechit_x = 0;
128  float rechit_y = 0;
129  int rechit_count = 0;
130 
131  if (match != recHitColl->end()) {
132  SiPixelRecHitCollection::DetSet pixelrechitRange = *match;
133  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
134  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
135  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
136 
137  for ( ; pixeliter != pixelrechitRangeIteratorEnd; pixeliter++)
138  {
139 
140 
141  rechit_count++;
142  //cout << TheID << endl;
143  SiPixelRecHit::ClusterRef const& clust = pixeliter->cluster();
144  int sizeX = (*clust).sizeX();
145  //cout << sizeX << endl;
146  int sizeY = (*clust).sizeY();
147  //cout << sizeY << endl;
148  LocalPoint lp = pixeliter->localPosition();
149  rechit_x = lp.x();
150  rechit_y = lp.y();
151 
152  LocalError lerr = pixeliter->localPositionError();
153  float lerr_x = sqrt(lerr.xx());
154  float lerr_y = sqrt(lerr.yy());
155  //std::cout << "errors " << lerr_x << " " << lerr_y << std::endl;
156  (*struct_iter).second->fill(rechit_x, rechit_y, sizeX, sizeY, lerr_x, lerr_y,
159 
160  }
161  }
162  if(rechit_count > 0) (*struct_iter).second->nfill(rechit_count, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn);
163 
164  }
165 
166  // slow down...
167  if(slowDown) usleep(10000);
168 
169 }
float xx() const
Definition: LocalError.h:24
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
T y() const
Definition: PV3DBase.h:63
std::map< uint32_t, int > rechit_count
std::map< uint32_t, SiPixelRecHitModule * > thePixelStructure
float yy() const
Definition: LocalError.h:26
T sqrt(T t)
Definition: SSEVec.h:18
edm::EDGetTokenT< SiPixelRecHitCollection > src_
const_iterator find(id_type i, bool update=false) const
iterator end()
Definition: DetSetNew.h:70
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
T x() const
Definition: PV3DBase.h:62
iterator begin()
Definition: DetSetNew.h:67
void SiPixelRecHitSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
const edm::EventSetup iSetup 
)
override

Definition at line 105 of file SiPixelRecHitSource.cc.

References bookMEs().

105  {
106  bookMEs(iBooker, iSetup);
107 }
virtual void bookMEs(DQMStore::IBooker &, const edm::EventSetup &iSetup)
void SiPixelRecHitSource::bookMEs ( DQMStore::IBooker iBooker,
const edm::EventSetup iSetup 
)
virtual

Create folder tree and book histograms

Definition at line 244 of file SiPixelRecHitSource.cc.

References bladeOn, conf_, DEFINE_FWK_MODULE, diskOn, Exception, isPIB, isUpgrade, ladOn, layOn, LogDebug, modOn, phiOn, reducedSet, ringOn, SiPixelFolderOrganizer::setModuleFolder(), thePixelStructure, and twoDimOn.

Referenced by bookHistograms().

244  {
245 
246  std::map<uint32_t,SiPixelRecHitModule*>::iterator struct_iter;
247 
248  SiPixelFolderOrganizer theSiPixelFolder(false);
249 
250  for(struct_iter = thePixelStructure.begin(); struct_iter != thePixelStructure.end(); struct_iter++){
251 
253  if(modOn){
254  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,0,isUpgrade)){
255  (*struct_iter).second->book( conf_,iBooker, iSetup, 0, twoDimOn, reducedSet, isUpgrade);
256  } else {
257  if(!isPIB) throw cms::Exception("LogicError")
258  << "[SiPixelDigiSource::bookMEs] Creation of DQM folder failed";
259  }
260  }
261  if(ladOn){
262  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,1,isUpgrade)){
263  (*struct_iter).second->book( conf_,iBooker, iSetup, 1, twoDimOn, reducedSet, isUpgrade);
264  } else {
265  LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n";
266  }
267  }
268  if(layOn){
269  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,2,isUpgrade)){
270  (*struct_iter).second->book( conf_,iBooker, iSetup, 2, twoDimOn, reducedSet, isUpgrade);
271  } else {
272  LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n";
273  }
274  }
275  if(phiOn){
276  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,3,isUpgrade)){
277  (*struct_iter).second->book( conf_,iBooker, iSetup, 3, twoDimOn, reducedSet, isUpgrade);
278  } else {
279  LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n";
280  }
281  }
282  if(bladeOn){
283  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,4,isUpgrade)){
284  (*struct_iter).second->book( conf_,iBooker, iSetup, 4, twoDimOn, reducedSet, isUpgrade);
285  } else {
286  LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n";
287  }
288  }
289  if(diskOn){
290  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,5,isUpgrade)){
291  (*struct_iter).second->book( conf_,iBooker, iSetup, 5, twoDimOn, reducedSet, isUpgrade);
292  } else {
293  LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n";
294  }
295  }
296  if(ringOn){
297  if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,6,isUpgrade)){
298  (*struct_iter).second->book( conf_,iBooker, iSetup, 6, twoDimOn, reducedSet, isUpgrade);
299  } else {
300  LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n";
301  }
302  }
303 
304  }
305 
306 }
#define LogDebug(id)
edm::ParameterSet conf_
std::map< uint32_t, SiPixelRecHitModule * > thePixelStructure
void SiPixelRecHitSource::buildStructure ( edm::EventSetup const &  )
virtual

Definition at line 174 of file SiPixelRecHitSource.cc.

References PixelEndcapName::bladeName(), TrackerGeometry::dets(), TrackerGeometry::detTypes(), PixelEndcapName::diskName(), edm::EventSetup::get(), PixelEndcapName::halfCylinder(), isPIB, isUpgrade, LogDebug, RecoTauDiscriminantConfiguration::mask, PixelEndcapName::pannelName(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, PixelEndcapName::plaquetteName(), edm::ESHandle< T >::product(), DetId::rawId(), AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), and thePixelStructure.

Referenced by dqmBeginRun().

174  {
175 
176  LogInfo ("PixelDQM") <<" SiPixelRecHitSource::buildStructure" ;
177 
178 
180  edm::ESHandle<TrackerTopology> tTopoHandle;
181 
182  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
183  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
184 
185  const TrackerTopology *pTT = tTopoHandle.product();
186 
187  LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<<std::endl;
188  LogVerbatim ("PixelDQM") << " *** I have " << pDD->dets().size() <<" detectors"<<std::endl;
189  LogVerbatim ("PixelDQM") << " *** I have " << pDD->detTypes().size() <<" types"<<std::endl;
190 
191  for(TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++){
192 
193  if(dynamic_cast<PixelGeomDetUnit const *>((*it))!=nullptr){
194 
195  DetId detId = (*it)->geographicalId();
196 
197  if((detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) ||
198  (detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap))){
199 
200  uint32_t id = detId();
201 
202  if(detId.subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel)) {
203  if(isPIB) continue;
204  LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl;
205  SiPixelRecHitModule* theModule = new SiPixelRecHitModule(id);
206  thePixelStructure.insert(pair<uint32_t,SiPixelRecHitModule*> (id,theModule));
207 
208  } else if( (detId.subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap)) ) {
209 
210  LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl;
211 
213  int disk = PixelEndcapName(DetId(id), pTT, isUpgrade).diskName();
214  int blade = PixelEndcapName(DetId(id), pTT, isUpgrade).bladeName();
215  int panel = PixelEndcapName(DetId(id), pTT, isUpgrade).pannelName();
217 
218  char sside[80]; sprintf(sside, "HalfCylinder_%i",side);
219  char sdisk[80]; sprintf(sdisk, "Disk_%i",disk);
220  char sblade[80]; sprintf(sblade, "Blade_%02i",blade);
221  char spanel[80]; sprintf(spanel, "Panel_%i",panel);
222  char smodule[80];sprintf(smodule,"Module_%i",module);
223  std::string side_str = sside;
224  std::string disk_str = sdisk;
225  bool mask = side_str.find("HalfCylinder_1")!=string::npos||
226  side_str.find("HalfCylinder_2")!=string::npos||
227  side_str.find("HalfCylinder_4")!=string::npos||
228  disk_str.find("Disk_2")!=string::npos;
229  if(isPIB && mask) continue;
230 
231  SiPixelRecHitModule* theModule = new SiPixelRecHitModule(id);
232  thePixelStructure.insert(pair<uint32_t,SiPixelRecHitModule*> (id,theModule));
233  }
234 
235  }
236  }
237  }//FOR_LOOP
238 
239  LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl;
240 }
#define LogDebug(id)
int plaquetteName() const
plaquetteId (in pannel)
const DetTypeContainer & detTypes() const override
Return a vector of all det types.
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
std::map< uint32_t, SiPixelRecHitModule * > thePixelStructure
int bladeName() const
blade id
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
Definition: DetId.h:18
int pannelName() const
pannel id
int diskName() const
disk id
HalfCylinder halfCylinder() const
T const * product() const
Definition: ESHandle.h:86
Definition: vlib.h:208
void SiPixelRecHitSource::dqmBeginRun ( const edm::Run ,
edm::EventSetup const &   
)
override

Definition at line 87 of file SiPixelRecHitSource.cc.

References bladeOn, buildStructure(), diskOn, eventNo, firstRun, ladOn, layOn, modOn, phiOn, ringOn, and twoDimOn.

87  {
88 
89  LogInfo ("PixelDQM") << " SiPixelRecHitSource::beginJob - Initialisation ... " << std::endl;
90  LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/"
91  << layOn << "/" << phiOn << std::endl;
92  LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/"
93  << ringOn << std::endl;
94  LogInfo ("PixelDQM") << "2DIM IS " << twoDimOn << "\n";
95 
96  if(firstRun){
97  eventNo = 0;
98  // Build map
99  buildStructure(iSetup);
100  // Book Monitoring Elements
101  firstRun = false;
102  }
103 }
virtual void buildStructure(edm::EventSetup const &)

Member Data Documentation

bool SiPixelRecHitSource::bladeOn
private

Definition at line 86 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

edm::ParameterSet SiPixelRecHitSource::conf_
private

Definition at line 71 of file SiPixelRecHitSource.h.

Referenced by bookMEs(), and SiPixelRecHitSource().

bool SiPixelRecHitSource::diskOn
private

Definition at line 86 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

int SiPixelRecHitSource::eventNo
private

Definition at line 77 of file SiPixelRecHitSource.h.

Referenced by analyze(), and dqmBeginRun().

bool SiPixelRecHitSource::firstRun
private

Definition at line 88 of file SiPixelRecHitSource.h.

Referenced by dqmBeginRun(), and SiPixelRecHitSource().

bool SiPixelRecHitSource::isPIB
private

Definition at line 75 of file SiPixelRecHitSource.h.

Referenced by bookMEs(), and buildStructure().

bool SiPixelRecHitSource::isUpgrade
private

Definition at line 89 of file SiPixelRecHitSource.h.

Referenced by bookMEs(), and buildStructure().

bool SiPixelRecHitSource::ladOn
private

Definition at line 84 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

bool SiPixelRecHitSource::layOn
private

Definition at line 84 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

bool SiPixelRecHitSource::modOn
private

Definition at line 80 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

bool SiPixelRecHitSource::phiOn
private

Definition at line 84 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

std::map<uint32_t,int> SiPixelRecHitSource::rechit_count
private

Definition at line 79 of file SiPixelRecHitSource.h.

Referenced by analyze().

bool SiPixelRecHitSource::reducedSet
private

Definition at line 82 of file SiPixelRecHitSource.h.

Referenced by analyze(), and bookMEs().

bool SiPixelRecHitSource::ringOn
private

Definition at line 86 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().

bool SiPixelRecHitSource::saveFile
private

Definition at line 74 of file SiPixelRecHitSource.h.

bool SiPixelRecHitSource::slowDown
private

Definition at line 76 of file SiPixelRecHitSource.h.

Referenced by analyze().

edm::EDGetTokenT<SiPixelRecHitCollection> SiPixelRecHitSource::src_
private

Definition at line 72 of file SiPixelRecHitSource.h.

Referenced by analyze().

std::map<uint32_t,SiPixelRecHitModule*> SiPixelRecHitSource::thePixelStructure
private

Definition at line 78 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), buildStructure(), and ~SiPixelRecHitSource().

std::string SiPixelRecHitSource::topFolderName_

Definition at line 68 of file SiPixelRecHitSource.h.

Referenced by SiPixelRecHitSource().

bool SiPixelRecHitSource::twoDimOn
private

Definition at line 81 of file SiPixelRecHitSource.h.

Referenced by analyze(), bookMEs(), and dqmBeginRun().