diff --git a/DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h b/DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h index 340639573a5d3..653774f7573b1 100644 --- a/DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h +++ b/DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h @@ -52,20 +52,13 @@ class SiPixelClusterModule { typedef edmNew::DetSet::const_iterator ClusterIterator; /// Book histograms - void book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, int type=0, bool twoD=true, bool reducedSet=false, bool isUpgrade=false); + void book(const edm::ParameterSet& iConfig, const edm::EventSetup& iSetup, DQMStore::IBooker & iBooker, int type=0, bool twoD=true, bool reducedSet=false, bool isUpgrade=false); /// Fill histograms int fill(const edmNew::DetSetVector & input, const TrackerGeometry* tracker, - MonitorElement* layer1, - MonitorElement* layer2, - MonitorElement* layer3, - MonitorElement* layer4, - MonitorElement* disk1pz, - MonitorElement* disk2pz, - MonitorElement* disk3pz, - MonitorElement* disk1mz, - MonitorElement* disk2mz, - MonitorElement* disk3mz, + std::vector& layers, + std::vector& diskspz, + std::vector& disksmz, bool modon=true, bool ladon=false, bool layon=false, diff --git a/DQM/SiPixelMonitorCluster/interface/SiPixelClusterSource.h b/DQM/SiPixelMonitorCluster/interface/SiPixelClusterSource.h index d9add76b2acbb..7a641d734d652 100644 --- a/DQM/SiPixelMonitorCluster/interface/SiPixelClusterSource.h +++ b/DQM/SiPixelMonitorCluster/interface/SiPixelClusterSource.h @@ -69,7 +69,7 @@ virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override; virtual void buildStructure(edm::EventSetup const&); - virtual void bookMEs(DQMStore::IBooker &); + virtual void bookMEs(DQMStore::IBooker &, const edm::EventSetup& iSetup); std::string topFolderName_; @@ -97,16 +97,12 @@ int bigEventSize; bool isUpgrade; - MonitorElement* meClPosLayer1; - MonitorElement* meClPosLayer2; - MonitorElement* meClPosLayer3; - MonitorElement* meClPosLayer4; - MonitorElement* meClPosDisk1pz; - MonitorElement* meClPosDisk2pz; - MonitorElement* meClPosDisk3pz; - MonitorElement* meClPosDisk1mz; - MonitorElement* meClPosDisk2mz; - MonitorElement* meClPosDisk3mz; + std::vector meClPosLayer; + std::vector meClPosDiskpz; + std::vector meClPosDiskmz; + + int noOfLayers; + int noOfDisks; //define Token(-s) edm::EDGetTokenT > srcToken_; diff --git a/DQM/SiPixelMonitorCluster/src/SiPixelClusterModule.cc b/DQM/SiPixelMonitorCluster/src/SiPixelClusterModule.cc index 79ef54e8befa2..83f371860f658 100644 --- a/DQM/SiPixelMonitorCluster/src/SiPixelClusterModule.cc +++ b/DQM/SiPixelMonitorCluster/src/SiPixelClusterModule.cc @@ -36,6 +36,7 @@ #include "DataFormats/SiPixelDetId/interface/PixelEndcapNameUpgrade.h" #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" // // Constructors // @@ -63,17 +64,17 @@ SiPixelClusterModule::~SiPixelClusterModule() {} // // Book histograms // -void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, int type, bool twoD, bool reducedSet, bool isUpgrade) { +void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, const edm::EventSetup& iSetup, DQMStore::IBooker & iBooker, int type, bool twoD, bool reducedSet, bool isUpgrade) { + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); bool isHalfModule = false; if(barrel){ - if (!isUpgrade) { - isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule(); - } else if (isUpgrade) { - isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); - } + isHalfModule = PixelBarrelName(DetId(id_),pTT,isUpgrade).isHalfModule(); } int nbinx = ncols_/2; int nbiny = nrows_/2; @@ -144,8 +145,7 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo } if(type==1 && barrel){ uint32_t DBladder; - if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName(); } - else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); } + DBladder = PixelBarrelName(DetId(id_),pTT,isUpgrade).ladderName(); char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder); hid = src.label() + "_" + sladder; if(isHalfModule) hid += "H"; @@ -202,8 +202,7 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo if(type==2 && barrel){ uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } + DBlayer = PixelBarrelName(DetId(id_),pTT,isUpgrade).layerName(); char slayer[80]; sprintf(slayer,"Layer_%i",DBlayer); hid = src.label() + "_" + slayer; // Number of clusters @@ -264,8 +263,7 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo } if(type==3 && barrel){ uint32_t DBmodule; - if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); } - else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); } + DBmodule = PixelBarrelName(DetId(id_),pTT,isUpgrade).moduleName(); char smodule[80]; sprintf(smodule,"Ring_%i",DBmodule); hid = src.label() + "_" + smodule; // Number of clusters @@ -327,8 +325,7 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo if(type==4 && endcap){ uint32_t blade; - if (!isUpgrade) { blade = PixelEndcapName(DetId(id_)).bladeName(); } - else { blade = PixelEndcapNameUpgrade(DetId(id_)).bladeName(); } + blade = PixelEndcapName(DetId(id_),pTT,isUpgrade).bladeName(); char sblade[80]; sprintf(sblade, "Blade_%02i",blade); hid = src.label() + "_" + sblade; @@ -370,8 +367,7 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo } if(type==5 && endcap){ uint32_t disk; - if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); } - else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } + disk = PixelEndcapName(DetId(id_),pTT,isUpgrade).diskName(); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); hid = src.label() + "_" + sdisk; @@ -415,13 +411,8 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo if(type==6 && endcap){ uint32_t panel; uint32_t module; - if (!isUpgrade) { - panel= PixelEndcapName(DetId(id_)).pannelName(); - module= PixelEndcapName(DetId(id_)).plaquetteName(); - } else { - panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName(); - module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName(); - } + panel= PixelEndcapName(DetId(id_),pTT,isUpgrade).pannelName(); + module= PixelEndcapName(DetId(id_),pTT,isUpgrade).plaquetteName(); char slab[80]; sprintf(slab, "Panel_%i_Ring_%i",panel, module); hid = src.label() + "_" + slab; @@ -478,7 +469,7 @@ void SiPixelClusterModule::book(const edm::ParameterSet& iConfig, DQMStore::IBoo // // Fill histograms // -int SiPixelClusterModule::fill(const edmNew::DetSetVector& input, const TrackerGeometry* tracker,MonitorElement* layer1,MonitorElement* layer2,MonitorElement* layer3,MonitorElement* layer4,MonitorElement* disk1pz,MonitorElement* disk2pz,MonitorElement* disk3pz,MonitorElement* disk1mz,MonitorElement* disk2mz,MonitorElement* disk3mz,bool modon, bool ladon, bool layon, bool phion, bool bladeon, bool diskon, bool ringon, bool twoD, bool reducedSet, bool smileyon, bool isUpgrade) { +int SiPixelClusterModule::fill(const edmNew::DetSetVector& input, const TrackerGeometry* tracker,std::vector& layers,std::vector& diskspz,std::vector& disksmz,bool modon, bool ladon, bool layon, bool phion, bool bladeon, bool diskon, bool ringon, bool twoD, bool reducedSet, bool smileyon, bool isUpgrade) { bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); @@ -513,59 +504,21 @@ int SiPixelClusterModule::fill(const edmNew::DetSetVector& input GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp ); if(barrel){ - uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } - switch(DBlayer){ - case 1: { - if(layer1) layer1->Fill(clustgp.z(),clustgp.phi()); - break; - } case 2: { - if(layer2) layer2->Fill(clustgp.z(),clustgp.phi()); - break; - } case 3: { - if(layer3) layer3->Fill(clustgp.z(),clustgp.phi()); - break; - } case 4: { - if (isUpgrade) { - if(layer4) layer4->Fill(clustgp.z(),clustgp.phi()); - break; - } - } - } + for (std::vector::iterator i = layers.begin(); i != layers.end(); i++) + { + (*i)->Fill(clustgp.z(),clustgp.phi()); + } }else if(endcap){ - uint32_t DBdisk; - if (!isUpgrade) { DBdisk = PixelEndcapName(DetId(id_)).diskName(); } - else if (isUpgrade) { DBdisk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } if(clustgp.z()>0){ - switch(DBdisk){ - case 1: { - if(disk1pz) disk1pz->Fill(clustgp.x(),clustgp.y()); - break; - } case 2: { - if(disk2pz) disk2pz->Fill(clustgp.x(),clustgp.y()); - break; - } case 3: { - if (isUpgrade) { - if(disk3pz) disk3pz->Fill(clustgp.x(),clustgp.y()); - break; - } - }} + for (std::vector::iterator i = diskspz.begin(); i != diskspz.end(); i++) + { + (*i)->Fill(clustgp.x(),clustgp.y()); + } }else{ - switch(DBdisk){ - case 1: { - if(disk1mz) disk1mz->Fill(clustgp.x(),clustgp.y()); - break; - } case 2: { - if(disk2mz) disk2mz->Fill(clustgp.x(),clustgp.y()); - break; - } case 3: { - if (isUpgrade) { - if(disk3mz) disk3mz->Fill(clustgp.x(),clustgp.y()); - break; - } - } - } + for (std::vector::iterator i = disksmz.begin(); i != disksmz.end(); i++) + { + (*i)->Fill(clustgp.x(),clustgp.y()); + } } } if(!reducedSet) diff --git a/DQM/SiPixelMonitorCluster/src/SiPixelClusterSource.cc b/DQM/SiPixelMonitorCluster/src/SiPixelClusterSource.cc index 3cfd4673b9c4b..d0b90becc6feb 100644 --- a/DQM/SiPixelMonitorCluster/src/SiPixelClusterSource.cc +++ b/DQM/SiPixelMonitorCluster/src/SiPixelClusterSource.cc @@ -36,6 +36,7 @@ #include "DataFormats/SiPixelDetId/interface/PixelBarrelNameUpgrade.h" #include "DataFormats/SiPixelDetId/interface/PixelEndcapName.h" #include "DataFormats/SiPixelDetId/interface/PixelEndcapNameUpgrade.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" // #include #include @@ -60,7 +61,9 @@ SiPixelClusterSource::SiPixelClusterSource(const edm::ParameterSet& iConfig) : diskOn( conf_.getUntrackedParameter("diskOn",false) ), smileyOn(conf_.getUntrackedParameter("smileyOn",false) ), bigEventSize( conf_.getUntrackedParameter("bigEventSize",100) ), - isUpgrade( conf_.getUntrackedParameter("isUpgrade",false) ) + isUpgrade( conf_.getUntrackedParameter("isUpgrade",false) ), + noOfLayers(0), + noOfDisks(0) { LogInfo ("PixelDQM") << "SiPixelClusterSource::SiPixelClusterSource: Got DQM BackEnd interface"<getEntries()>150000){ - meClPosLayer1->Reset(); - meClPosLayer2->Reset(); - meClPosLayer3->Reset(); - meClPosDisk1mz->Reset(); - meClPosDisk2mz->Reset(); - meClPosDisk1pz->Reset(); - meClPosDisk2pz->Reset(); + if(meClPosLayer.at(0) && meClPosLayer.at(0)->getEntries()>150000){ + for (int i = 0; i < noOfLayers; i++) + { + meClPosLayer.at(i)->Reset(); } - //}else if(modOn && isUpgrade){ - }else if(isUpgrade){ - if(meClPosLayer1 && meClPosLayer1->getEntries()>150000){ - meClPosLayer1->Reset(); - meClPosLayer2->Reset(); - meClPosLayer3->Reset(); - meClPosLayer4->Reset(); - meClPosDisk1pz->Reset(); - meClPosDisk2pz->Reset(); - meClPosDisk3pz->Reset(); - meClPosDisk1mz->Reset(); - meClPosDisk2mz->Reset(); - meClPosDisk3mz->Reset(); + for (int i = 0; i < noOfDisks; i++) + { + meClPosDiskpz.at(i)->Reset(); + meClPosDiskmz.at(i)->Reset(); } } @@ -179,9 +168,9 @@ void SiPixelClusterSource::analyze(const edm::Event& iEvent, const edm::EventSet for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) { int numberOfFpixClusters = (*struct_iter).second->fill(*input, tracker, - meClPosLayer1,meClPosLayer2,meClPosLayer3,meClPosLayer4, - meClPosDisk1pz, meClPosDisk2pz, meClPosDisk3pz, - meClPosDisk1mz, meClPosDisk2mz, meClPosDisk3mz, + meClPosLayer, + meClPosDiskpz, + meClPosDiskmz, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn, twoDimOn, reducedSet, smileyOn, isUpgrade); @@ -210,6 +199,10 @@ void SiPixelClusterSource::buildStructure(const edm::EventSetup& iSetup){ edm::ESHandle pDD; iSetup.get().get( pDD ); + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<dets().size() <<" detectors"<detTypes().size() <<" types"<(PixelSubdetector::PixelBarrel)) { if(isPIB) continue; LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl; + int layer = PixelBarrelName(DetId(id),pTT,isUpgrade).layerName(); + if (layer > noOfLayers) noOfLayers = layer; thePixelStructure.insert(pair (id,theModule)); - }else if ( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) && (!isUpgrade) ) { + }else if ( detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap ) ) { LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl; - PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id)).halfCylinder(); - int disk = PixelEndcapName(DetId(id)).diskName(); - int blade = PixelEndcapName(DetId(id)).bladeName(); - int panel = PixelEndcapName(DetId(id)).pannelName(); - int module = PixelEndcapName(DetId(id)).plaquetteName(); - char sside[80]; sprintf(sside, "HalfCylinder_%i",side); - char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); - char sblade[80]; sprintf(sblade, "Blade_%02i",blade); - char spanel[80]; sprintf(spanel, "Panel_%i",panel); - char smodule[80];sprintf(smodule,"Module_%i",module); - std::string side_str = sside; - std::string disk_str = sdisk; - bool mask = side_str.find("HalfCylinder_1")!=string::npos|| - side_str.find("HalfCylinder_2")!=string::npos|| - side_str.find("HalfCylinder_4")!=string::npos|| - disk_str.find("Disk_2")!=string::npos; - // clutch to take all of FPIX, but no BPIX: - mask = false; - if(isPIB && mask) continue; - thePixelStructure.insert(pair (id,theModule)); - } else if ( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) && (isUpgrade) ) { - LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl; - PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId(id)).halfCylinder(); - int disk = PixelEndcapNameUpgrade(DetId(id)).diskName(); - int blade = PixelEndcapNameUpgrade(DetId(id)).bladeName(); - int panel = PixelEndcapNameUpgrade(DetId(id)).pannelName(); - int module = PixelEndcapNameUpgrade(DetId(id)).plaquetteName(); + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id),pTT,isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId(id),pTT,isUpgrade).diskName(); + int blade = PixelEndcapName(DetId(id),pTT,isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId(id),pTT,isUpgrade).pannelName(); + int module = PixelEndcapName(DetId(id),pTT,isUpgrade).plaquetteName(); char sside[80]; sprintf(sside, "HalfCylinder_%i",side); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); char sblade[80]; sprintf(sblade, "Blade_%02i",blade); @@ -277,7 +250,7 @@ void SiPixelClusterSource::buildStructure(const edm::EventSetup& iSetup){ mask = false; if(isPIB && mask) continue; thePixelStructure.insert(pair (id,theModule)); - }//endif(Upgrade) + } } } } @@ -286,7 +259,7 @@ void SiPixelClusterSource::buildStructure(const edm::EventSetup& iSetup){ //------------------------------------------------------------------ // Book MEs //------------------------------------------------------------------ -void SiPixelClusterSource::bookMEs(DQMStore::IBooker & iBooker){ +void SiPixelClusterSource::bookMEs(DQMStore::IBooker & iBooker, const edm::EventSetup& iSetup){ // Get DQM interface iBooker.setCurrentFolder(topFolderName_); @@ -303,7 +276,7 @@ void SiPixelClusterSource::bookMEs(DQMStore::IBooker & iBooker){ /// Create folder tree and book histograms if(modOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,0,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,0,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,0,twoDimOn,reducedSet,isUpgrade); } else { if(!isPIB) throw cms::Exception("LogicError") @@ -312,49 +285,49 @@ void SiPixelClusterSource::bookMEs(DQMStore::IBooker & iBooker){ } if(ladOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,1,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,1,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,1,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n"; } } if(layOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,2,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,2,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,2,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n"; } } if(phiOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,3,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,3,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,3,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n"; } } if(bladeOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,4,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,4,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,4,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n"; } } if(diskOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,5,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,5,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,5,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n"; } } if(ringOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,6,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,6,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,6,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n"; } } if(smileyOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,7,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,7,twoDimOn,reducedSet,isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,7,twoDimOn,reducedSet,isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH BARREL-FOLDER\n"; } diff --git a/DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h b/DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h index 7511d624231f2..e9df776a5f70d 100644 --- a/DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h +++ b/DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h @@ -31,6 +31,17 @@ #include "DQMServices/Core/interface/DQMStore.h" #include +#include "FWCore/Framework/interface/ESHandle.h" +#include "Geometry/CommonTopologies/interface/PixelTopology.h" +#include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" +#include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" +#include "Geometry/TrackerGeometryBuilder/interface/GluedGeomDet.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" +#include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetType.h" + class SiPixelDigiModule { public: @@ -47,15 +58,15 @@ class SiPixelDigiModule { typedef edm::DetSet::const_iterator DigiIterator; /// Book histograms - void book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, int type=0, bool twoD=true, bool hiRes=false, bool reducedSet=false, bool additInfo=false, bool isUpgrade=false); + void book(const edm::ParameterSet& iConfig, const edm::EventSetup& iSetup, DQMStore::IBooker & iBooker, int type=0, bool twoD=true, bool hiRes=false, bool reducedSet=false, bool additInfo=false, bool isUpgrade=false); /// Fill histograms // int fill(const edm::DetSetVector & input, bool modon=true, // bool ladon=false, bool layon=false, bool phion=false, // bool bladeon=false, bool diskon=false, bool ringon=false, // bool twoD=true, bool reducedSet=false, bool twoDimModOn = true, bool twoDimOnlyLayDisk = false, // int &nDigisA, int &nDigisB); - int fill(const edm::DetSetVector & input, - MonitorElement* combBarrel, MonitorElement* chanBarrel, MonitorElement* chanBarrelL1,MonitorElement* chanBarrelL2, MonitorElement* chanBarrelL3, MonitorElement* chanBarrelL4, MonitorElement* combEndcap, + int fill(const edm::DetSetVector& input, const edm::EventSetup& iSetup, + MonitorElement* combBarrel, MonitorElement* chanBarrel, std::vector& chanBarrelL, MonitorElement* combEndcap, const bool modon, const bool ladon, const bool layon, const bool phion, const bool bladeon, const bool diskon, const bool ringon, const bool twoD, const bool reducedSet, const bool twoDimModOn, const bool twoDimOnlyLayDisk, diff --git a/DQM/SiPixelMonitorDigi/interface/SiPixelDigiSource.h b/DQM/SiPixelMonitorDigi/interface/SiPixelDigiSource.h index ac283c6ebc4b8..98773757e9e88 100644 --- a/DQM/SiPixelMonitorDigi/interface/SiPixelDigiSource.h +++ b/DQM/SiPixelMonitorDigi/interface/SiPixelDigiSource.h @@ -57,7 +57,7 @@ virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override; virtual void buildStructure(edm::EventSetup const&); - virtual void bookMEs(DQMStore::IBooker &); + virtual void bookMEs(DQMStore::IBooker &, const edm::EventSetup& iSetup); std::string topFolderName_; @@ -145,10 +145,7 @@ MonitorElement* meNDigisCOMBBarrel_; MonitorElement* meNDigisCOMBEndcap_; MonitorElement* meNDigisCHANBarrel_; - MonitorElement* meNDigisCHANBarrelL1_; - MonitorElement* meNDigisCHANBarrelL2_; - MonitorElement* meNDigisCHANBarrelL3_; - MonitorElement* meNDigisCHANBarrelL4_; + std::vector meNDigisCHANBarrelLs_; MonitorElement* meNDigisCHANBarrelCh1_; MonitorElement* meNDigisCHANBarrelCh2_; MonitorElement* meNDigisCHANBarrelCh3_; @@ -186,12 +183,8 @@ MonitorElement* meNDigisCHANBarrelCh35_; MonitorElement* meNDigisCHANBarrelCh36_; MonitorElement* meNDigisCHANEndcap_; - MonitorElement* meNDigisCHANEndcapDp1_; - MonitorElement* meNDigisCHANEndcapDp2_; - MonitorElement* meNDigisCHANEndcapDp3_; - MonitorElement* meNDigisCHANEndcapDm1_; - MonitorElement* meNDigisCHANEndcapDm2_; - MonitorElement* meNDigisCHANEndcapDm3_; + std::vector meNDigisCHANEndcapDps_; + std::vector meNDigisCHANEndcapDms_; int bigEventSize; bool isUpgrade; @@ -211,6 +204,8 @@ //define Token(-s) edm::EDGetTokenT > srcToken_; + int noOfLayers; + int noOfDisks; }; #endif diff --git a/DQM/SiPixelMonitorDigi/src/SiPixelDigiModule.cc b/DQM/SiPixelMonitorDigi/src/SiPixelDigiModule.cc index fc2b443baabd2..77d6838e4ab8d 100644 --- a/DQM/SiPixelMonitorDigi/src/SiPixelDigiModule.cc +++ b/DQM/SiPixelMonitorDigi/src/SiPixelDigiModule.cc @@ -19,6 +19,7 @@ #include "DataFormats/SiPixelDetId/interface/PixelEndcapNameUpgrade.h" #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" // // Constructors @@ -49,19 +50,18 @@ SiPixelDigiModule::~SiPixelDigiModule() {} // // Book histograms // -void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, int type, bool twoD, bool hiRes, bool reducedSet, bool additInfo, bool isUpgrade) { +void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, const edm::EventSetup& iSetup, DQMStore::IBooker & iBooker, int type, bool twoD, bool hiRes, bool reducedSet, bool additInfo, bool isUpgrade) { //isUpgrade = iConfig.getUntrackedParameter("isUpgrade"); + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); bool isHalfModule = false; if(barrel){ - if (!isUpgrade) { - isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule(); - } else if (isUpgrade) { - isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); - } + isHalfModule = PixelBarrelName(DetId(id_),pTT,isUpgrade).isHalfModule(); } std::string hid; @@ -118,8 +118,7 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker if(type==1 && barrel){ uint32_t DBladder; - if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName();} - else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName();} + DBladder = PixelBarrelName(DetId(id_),pTT,isUpgrade).ladderName(); char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder); hid = src.label() + "_" + sladder; if(isHalfModule) hid += "H"; @@ -150,8 +149,7 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker } if(type==2 && barrel){ uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } + DBlayer = PixelBarrelName(DetId(id_),pTT,isUpgrade).layerName(); char slayer[80]; sprintf(slayer,"Layer_%i",DBlayer); hid = src.label() + "_" + slayer; if(!additInfo){ @@ -200,8 +198,7 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker } if(type==3 && barrel){ uint32_t DBmodule; - if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); } - else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); } + DBmodule = PixelBarrelName(DetId(id_),pTT,isUpgrade).moduleName(); char smodule[80]; sprintf(smodule,"Ring_%i",DBmodule); hid = src.label() + "_" + smodule; // Number of digis @@ -241,8 +238,7 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker } if(type==4 && endcap){ uint32_t blade; - if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); } - else { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); } + blade= PixelEndcapName(DetId(id_),pTT,isUpgrade).bladeName(); char sblade[80]; sprintf(sblade, "Blade_%02i",blade); hid = src.label() + "_" + sblade; @@ -255,8 +251,7 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker } if(type==5 && endcap){ uint32_t disk; - if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); } - else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } + disk = PixelEndcapName(DetId(id_),pTT,isUpgrade).diskName(); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); hid = src.label() + "_" + sdisk; @@ -284,13 +279,8 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker if(type==6 && endcap){ uint32_t panel; uint32_t module; - if (!isUpgrade) { - panel= PixelEndcapName(DetId(id_)).pannelName(); - module= PixelEndcapName(DetId(id_)).plaquetteName(); - } else { - panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName(); - module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName(); - } + panel= PixelEndcapName(DetId(id_),pTT,isUpgrade).pannelName(); + module= PixelEndcapName(DetId(id_),pTT,isUpgrade).plaquetteName(); char slab[80]; sprintf(slab, "Panel_%i_Ring_%i",panel, module); hid = src.label() + "_" + slab; @@ -324,22 +314,23 @@ void SiPixelDigiModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker // // Fill histograms // -int SiPixelDigiModule::fill(const edm::DetSetVector& input, - MonitorElement* combBarrel, MonitorElement* chanBarrel, MonitorElement* chanBarrelL1, MonitorElement* chanBarrelL2, MonitorElement* chanBarrelL3, MonitorElement* chanBarrelL4, MonitorElement* combEndcap, +int SiPixelDigiModule::fill(const edm::DetSetVector& input, const edm::EventSetup& iSetup, + MonitorElement* combBarrel, MonitorElement* chanBarrel, std::vector& chanBarrelL, MonitorElement* combEndcap, bool modon, bool ladon, bool layon, bool phion, bool bladeon, bool diskon, bool ringon, bool twoD, bool reducedSet, bool twoDimModOn, bool twoDimOnlyLayDisk, int &nDigisA, int &nDigisB, bool isUpgrade) { + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); bool isHalfModule = false; uint32_t DBladder = 0; - if(barrel && !isUpgrade){ - isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule(); - DBladder = PixelBarrelName(DetId(id_)).ladderName(); - } else if (barrel && isUpgrade) { - isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); - DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); + if(barrel){ + isHalfModule = PixelBarrelName(DetId(id_),pTT,isUpgrade).isHalfModule(); + DBladder = PixelBarrelName(DetId(id_),pTT,isUpgrade).ladderName(); } edm::DetSetVector::const_iterator isearch = input.find(id_); // search digis of detid @@ -363,9 +354,9 @@ int SiPixelDigiModule::fill(const edm::DetSetVector& input, int DBmodule =0; if (!isUpgrade) { - PixelBarrelName::Shell DBshell = PixelBarrelName(DetId(id_)).shell(); - DBlayer = PixelBarrelName(DetId(id_)).layerName(); - DBmodule = PixelBarrelName(DetId(id_)).moduleName(); + PixelBarrelName::Shell DBshell = PixelBarrelName(DetId(id_),pTT,isUpgrade).shell(); + DBlayer = PixelBarrelName(DetId(id_),pTT,isUpgrade).layerName(); + DBmodule = PixelBarrelName(DetId(id_),pTT,isUpgrade).moduleName(); if(barrel){ if(isHalfModule){ if(DBshell==PixelBarrelName::pI||DBshell==PixelBarrelName::pO){ @@ -395,9 +386,8 @@ int SiPixelDigiModule::fill(const edm::DetSetVector& input, } } } else if (isUpgrade) { - //PixelBarrelNameUpgrade::Shell DBshell = PixelBarrelNameUpgrade(DetId(id_)).shell(); - DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); - DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); + DBlayer = PixelBarrelName(DetId(id_),pTT,isUpgrade).layerName(); + DBmodule = PixelBarrelName(DetId(id_),pTT,isUpgrade).moduleName(); if(barrel){ if(row<80){ numberOfDigis[0]++; nDigisA++; @@ -492,13 +482,8 @@ int SiPixelDigiModule::fill(const edm::DetSetVector& input, //ROC monitoring int DBpanel; int DBblade; - if (!isUpgrade) { - DBpanel= PixelEndcapName(DetId(id_)).pannelName(); - DBblade= PixelEndcapName(DetId(id_)).bladeName(); - } else { - DBpanel= PixelEndcapNameUpgrade(DetId(id_)).pannelName(); - DBblade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); - } + DBpanel= PixelEndcapName(DetId(id_),pTT,isUpgrade).pannelName(); + DBblade= PixelEndcapName(DetId(id_),pTT,isUpgrade).bladeName(); float offx = 0.; //This crazy offset takes into account the roc and module fpix configuration for (int i = DBpanel; i < DBmodule; ++i) {offx = offx + float(5+DBpanel-i);} @@ -529,10 +514,12 @@ int SiPixelDigiModule::fill(const edm::DetSetVector& input, if(barrel){ if(combBarrel) combBarrel->Fill((float)numberOfDigisMod); if(chanBarrel){ if(numberOfDigis[0]>0) chanBarrel->Fill((float)numberOfDigis[0]); if(numberOfDigis[1]>0) chanBarrel->Fill((float)numberOfDigis[1]); } - if(chanBarrelL1){ if(numberOfDigis[2]>0) chanBarrelL1->Fill((float)numberOfDigis[2]); } - if(chanBarrelL2){ if(numberOfDigis[3]>0) chanBarrelL2->Fill((float)numberOfDigis[3]); } - if(chanBarrelL3){ if(numberOfDigis[4]>0) chanBarrelL3->Fill((float)numberOfDigis[4]); } - if(chanBarrelL4){ if(numberOfDigis[5]>0) chanBarrelL4->Fill((float)numberOfDigis[5]); } + int j = 2; + for (std::vector::iterator i = chanBarrelL.begin(); i != chanBarrelL.end(); i++) + { + if(numberOfDigis[j]>0) (*i)->Fill((float)numberOfDigis[j]); + j++; + } }else if(endcap){ if(combEndcap) combEndcap->Fill((float)numberOfDigisMod); } diff --git a/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc b/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc index f5b7513af5a06..4606da95e19dc 100644 --- a/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc +++ b/DQM/SiPixelMonitorDigi/src/SiPixelDigiSource.cc @@ -63,7 +63,9 @@ SiPixelDigiSource::SiPixelDigiSource(const edm::ParameterSet& iConfig) : bladeOn( conf_.getUntrackedParameter("bladeOn",false) ), diskOn( conf_.getUntrackedParameter("diskOn",false) ), bigEventSize( conf_.getUntrackedParameter("bigEventSize",1000) ), - isUpgrade( conf_.getUntrackedParameter("isUpgrade",false) ) + isUpgrade( conf_.getUntrackedParameter("isUpgrade",false) ), + noOfLayers(0), + noOfDisks(0) { //set Token(-s) srcToken_ = consumes >(conf_.getParameter( "src" )); @@ -169,8 +171,8 @@ void SiPixelDigiSource::dqmBeginRun(const edm::Run& r, const edm::EventSetup& iS } } -void SiPixelDigiSource::bookHistograms(DQMStore::IBooker & iBooker, edm::Run const &, edm::EventSetup const &){ - bookMEs(iBooker); +void SiPixelDigiSource::bookHistograms(DQMStore::IBooker & iBooker, edm::Run const &, const edm::EventSetup & iSetup){ + bookMEs(iBooker, iSetup); } //------------------------------------------------------------------ @@ -178,6 +180,10 @@ void SiPixelDigiSource::bookHistograms(DQMStore::IBooker & iBooker, edm::Run con //------------------------------------------------------------------ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + eventNo++; // get input data @@ -215,8 +221,8 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& int NzeroROCs[2] = {0,-672}; int NloEffROCs[2] = {0,-672}; for (struct_iter = thePixelStructure.begin() ; struct_iter != thePixelStructure.end() ; struct_iter++) { - int numberOfDigisMod = (*struct_iter).second->fill(*input, - meNDigisCOMBBarrel_, meNDigisCHANBarrel_,meNDigisCHANBarrelL1_,meNDigisCHANBarrelL2_,meNDigisCHANBarrelL3_,meNDigisCHANBarrelL4_,meNDigisCOMBEndcap_, + int numberOfDigisMod = (*struct_iter).second->fill(*input, iSetup, + meNDigisCOMBBarrel_, meNDigisCHANBarrel_,meNDigisCHANBarrelLs_,meNDigisCOMBEndcap_, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn, twoDimOn, reducedSet, twoDimModOn, twoDimOnlyLayDisk, @@ -252,11 +258,11 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& } }else if(endcap && !isUpgrade){ // Endcap nFPIXDigis = nFPIXDigis + numberOfDigisMod; - PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first)).halfCylinder(); - int disk = PixelEndcapName(DetId((*struct_iter).first)).diskName(); - int blade = PixelEndcapName(DetId((*struct_iter).first)).bladeName(); - int panel = PixelEndcapName(DetId((*struct_iter).first)).pannelName(); - int module = PixelEndcapName(DetId((*struct_iter).first)).plaquetteName(); + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).diskName(); + int blade = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).pannelName(); + int module = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).plaquetteName(); int iter=0; int i=0; if(side==PixelEndcapName::mI){ if(disk==1){ @@ -358,14 +364,14 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& } //endif Barrel/(Endcap && !isUpgrade) else if (endcap && isUpgrade) { nFPIXDigis = nFPIXDigis + numberOfDigisMod; - PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).halfCylinder(); - int disk = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).diskName(); - int blade = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).bladeName(); - int panel = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).pannelName(); - int module = PixelEndcapNameUpgrade(DetId((*struct_iter).first)).plaquetteName(); + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).diskName(); + int blade = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).pannelName(); + int module = PixelEndcapName(DetId((*struct_iter).first),pTT,isUpgrade).plaquetteName(); int iter=0; int i=0; - if(side==PixelEndcapNameUpgrade::mI){ + if(side==PixelEndcapName::mI){ if(disk==1){ i=0; if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod; } @@ -382,7 +388,7 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& else if(panel==2){ if(module==1) nDM3P2M1+=numberOfDigisMod; } if(blade<12 && blade>0 && (panel==1 || panel==2)) iter = i+2*(blade-1)+(panel-1); } - }else if(side==PixelEndcapNameUpgrade::mO){ + }else if(side==PixelEndcapName::mO){ if(disk==1){ i=66; if(panel==1){ if(module==1) nDM1P1M1+=numberOfDigisMod; } @@ -399,7 +405,7 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& else if(panel==2){ if(module==1) nDM3P2M1+=numberOfDigisMod; } if(blade<18 && blade>0 && (panel==1 || panel==2)) iter = i+2*(blade-1)+(panel-1); } - }else if(side==PixelEndcapNameUpgrade::pI){ + }else if(side==PixelEndcapName::pI){ if(disk==1){ i=168; if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod; } @@ -416,7 +422,7 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& else if(panel==2){ if(module==1) nDP3P2M1+=numberOfDigisMod; } if(blade<12 && blade>0 && (panel==1 || panel==2)) iter = i+2*(blade-1)+(panel-1); } - }else if(side==PixelEndcapNameUpgrade::pO){ + }else if(side==PixelEndcapName::pO){ if(disk==1){ i=234; if(panel==1){ if(module==1) nDP1P1M1+=numberOfDigisMod; } @@ -464,20 +470,21 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& if(loOccROCsEndcap) loOccROCsEndcap->setBinContent(1+lumiSection/10, NloEffROCs[1]); } - if (!isUpgrade) { + if (noOfDisks == 2) { // if (!isUpgrade) if(meNDigisCHANEndcap_){ for(int j=0; j!=192; j++) if(numberOfDigis[j]>0) meNDigisCHANEndcap_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDm1_){ for(int j=0; j!=72; j++) if((j<24||j>47)&&numberOfDigis[j]>0) meNDigisCHANEndcapDm1_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDm2_){ for(int j=24; j!=96; j++) if((j<48||j>71)&&numberOfDigis[j]>0) meNDigisCHANEndcapDm2_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDp1_){ for(int j=96; j!=168; j++) if((j<120||j>143)&&numberOfDigis[j]>0) meNDigisCHANEndcapDp1_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDp2_){ for(int j=120; j!=192; j++) if((j<144||j>167)&&numberOfDigis[j]>0) meNDigisCHANEndcapDp2_->Fill((float)numberOfDigis[j]);} - } else if (isUpgrade) { + if(meNDigisCHANEndcapDms_.at(0)){ for(int j=0; j!=72; j++) if((j<24||j>47)&&numberOfDigis[j]>0) meNDigisCHANEndcapDms_.at(0)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDms_.at(1)){ for(int j=24; j!=96; j++) if((j<48||j>71)&&numberOfDigis[j]>0) meNDigisCHANEndcapDms_.at(1)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDps_.at(0)){ for(int j=96; j!=168; j++) if((j<120||j>143)&&numberOfDigis[j]>0) meNDigisCHANEndcapDps_.at(0)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDps_.at(1)){ for(int j=120; j!=192; j++) if((j<144||j>167)&&numberOfDigis[j]>0) meNDigisCHANEndcapDps_.at(1)->Fill((float)numberOfDigis[j]);} + } + else if (noOfDisks == 3) { // else if (isUpgrade) if(meNDigisCHANEndcap_){ for(int j=0; j!=336; j++) if(numberOfDigis[j]>0) meNDigisCHANEndcap_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDm1_){ for(int j=0; j!=100; j++) if((j<22||j>65)&&numberOfDigis[j]>0) meNDigisCHANEndcapDm1_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDm2_){ for(int j=22; j!=134; j++) if((j<44||j>99)&&numberOfDigis[j]>0) meNDigisCHANEndcapDm2_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDm3_){ for(int j=44; j!=168; j++) if((j<66||j>133)&&numberOfDigis[j]>0) meNDigisCHANEndcapDm3_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDp1_){ for(int j=168; j!=268; j++) if((j<190||j>233)&&numberOfDigis[j]>0) meNDigisCHANEndcapDp1_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDp2_){ for(int j=190; j!=302; j++) if((j<212||j>267)&&numberOfDigis[j]>0) meNDigisCHANEndcapDp2_->Fill((float)numberOfDigis[j]);} - if(meNDigisCHANEndcapDp3_){ for(int j=212; j!=336; j++) if((j<234||j>301)&&numberOfDigis[j]>0) meNDigisCHANEndcapDp3_->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDms_.at(0)){ for(int j=0; j!=100; j++) if((j<22||j>65)&&numberOfDigis[j]>0) meNDigisCHANEndcapDms_.at(0)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDms_.at(1)){ for(int j=22; j!=134; j++) if((j<44||j>99)&&numberOfDigis[j]>0) meNDigisCHANEndcapDms_.at(1)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDms_.at(2)){ for(int j=44; j!=168; j++) if((j<66||j>133)&&numberOfDigis[j]>0) meNDigisCHANEndcapDms_.at(2)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDps_.at(0)){ for(int j=168; j!=268; j++) if((j<190||j>233)&&numberOfDigis[j]>0) meNDigisCHANEndcapDps_.at(0)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDps_.at(1)){ for(int j=190; j!=302; j++) if((j<212||j>267)&&numberOfDigis[j]>0) meNDigisCHANEndcapDps_.at(1)->Fill((float)numberOfDigis[j]);} + if(meNDigisCHANEndcapDps_.at(2)){ for(int j=212; j!=336; j++) if((j<234||j>301)&&numberOfDigis[j]>0) meNDigisCHANEndcapDps_.at(2)->Fill((float)numberOfDigis[j]);} } if(meNDigisCHANBarrelCh1_){ for(int i=0; i!=32; i++) if(nDigisPerChan[i*36+0]>0) meNDigisCHANBarrelCh1_->Fill((float)nDigisPerChan[i*36+0]);} @@ -563,6 +570,10 @@ void SiPixelDigiSource::analyze(const edm::Event& iEvent, const edm::EventSetup& //------------------------------------------------------------------ void SiPixelDigiSource::buildStructure(const edm::EventSetup& iSetup){ + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + LogInfo ("PixelDQM") <<" SiPixelDigiSource::buildStructure" ; edm::ESHandle pDD; iSetup.get().get( pDD ); @@ -585,6 +596,8 @@ void SiPixelDigiSource::buildStructure(const edm::EventSetup& iSetup){ if(isPIB) continue; LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl; uint32_t id = detId(); + int layer = PixelBarrelName(DetId(id),pTT,isUpgrade).layerName(); + if (layer > noOfLayers) noOfLayers = layer; SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows); thePixelStructure.insert(pair (id,theModule)); @@ -593,11 +606,12 @@ void SiPixelDigiSource::buildStructure(const edm::EventSetup& iSetup){ uint32_t id = detId(); SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows); - PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id)).halfCylinder(); - int disk = PixelEndcapName(DetId(id)).diskName(); - int blade = PixelEndcapName(DetId(id)).bladeName(); - int panel = PixelEndcapName(DetId(id)).pannelName(); - int module = PixelEndcapName(DetId(id)).plaquetteName(); + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id),pTT,isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId(id),pTT,isUpgrade).diskName(); + if (disk > noOfDisks) noOfDisks = disk; + int blade = PixelEndcapName(DetId(id),pTT,isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId(id),pTT,isUpgrade).pannelName(); + int module = PixelEndcapName(DetId(id),pTT,isUpgrade).plaquetteName(); char sside[80]; sprintf(sside, "HalfCylinder_%i",side); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); @@ -620,11 +634,12 @@ void SiPixelDigiSource::buildStructure(const edm::EventSetup& iSetup){ uint32_t id = detId(); SiPixelDigiModule* theModule = new SiPixelDigiModule(id, ncols, nrows); - PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId(id)).halfCylinder(); - int disk = PixelEndcapNameUpgrade(DetId(id)).diskName(); - int blade = PixelEndcapNameUpgrade(DetId(id)).bladeName(); - int panel = PixelEndcapNameUpgrade(DetId(id)).pannelName(); - int module = PixelEndcapNameUpgrade(DetId(id)).plaquetteName(); + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id),pTT,isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId(id),pTT,isUpgrade).diskName(); + if (disk > noOfDisks) noOfDisks = disk; + int blade = PixelEndcapName(DetId(id),pTT,isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId(id),pTT,isUpgrade).pannelName(); + int module = PixelEndcapName(DetId(id),pTT,isUpgrade).plaquetteName(); char sside[80]; sprintf(sside, "HalfCylinder_%i",side); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); @@ -651,7 +666,7 @@ void SiPixelDigiSource::buildStructure(const edm::EventSetup& iSetup){ //------------------------------------------------------------------ // Book MEs //------------------------------------------------------------------ -void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ +void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker, const edm::EventSetup& iSetup){ // Get DQM interface iBooker.setCurrentFolder(topFolderName_); @@ -684,7 +699,7 @@ void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ /// Create folder tree and book histograms if(modOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,0,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,0,twoDimOn,hiRes, reducedSet, twoDimModOn, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,0,twoDimOn,hiRes, reducedSet, twoDimModOn, isUpgrade); } else { if(!isPIB) throw cms::Exception("LogicError") @@ -693,7 +708,7 @@ void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ } if(ladOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,1,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,1,twoDimOn,hiRes, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,1,twoDimOn,hiRes, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n"; } @@ -701,7 +716,7 @@ void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ } if(layOn || twoDimOnlyLayDisk){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,2,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,2,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,2,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n"; } @@ -709,28 +724,28 @@ void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ if(phiOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,3,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,3,twoDimOn,hiRes, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,3,twoDimOn,hiRes, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n"; } } if(bladeOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,4,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,4,twoDimOn,hiRes, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,4,twoDimOn,hiRes, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n"; } } if(diskOn || twoDimOnlyLayDisk){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,5,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,5,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,5,twoDimOn,hiRes, reducedSet, twoDimOnlyLayDisk, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n"; } } if(ringOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,6,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,6,twoDimOn,hiRes, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iSetup,iBooker,6,twoDimOn,hiRes, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n"; } @@ -741,18 +756,13 @@ void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ meNDigisCOMBBarrel_->setAxisTitle("Number of digis per module per event",1); meNDigisCHANBarrel_ = iBooker.book1D("ALLMODS_ndigisCHAN_Barrel","Number of Digis",100,0.,1000.); meNDigisCHANBarrel_->setAxisTitle("Number of digis per FED channel per event",1); - meNDigisCHANBarrelL1_ = iBooker.book1D("ALLMODS_ndigisCHAN_BarrelL1","Number of Digis L1",100,0.,1000.); - meNDigisCHANBarrelL1_->setAxisTitle("Number of digis per FED channel per event",1); - meNDigisCHANBarrelL2_ = iBooker.book1D("ALLMODS_ndigisCHAN_BarrelL2","Number of Digis L2",100,0.,1000.); - meNDigisCHANBarrelL2_->setAxisTitle("Number of digis per FED channel per event",1); - meNDigisCHANBarrelL3_ = iBooker.book1D("ALLMODS_ndigisCHAN_BarrelL3","Number of Digis L3",100,0.,1000.); - meNDigisCHANBarrelL3_->setAxisTitle("Number of digis per FED channel per event",1); - if (isUpgrade) { - meNDigisCHANBarrelL4_ = iBooker.book1D("ALLMODS_ndigisCHAN_BarrelL4","Number of Digis L4",100,0.,1000.); - meNDigisCHANBarrelL4_->setAxisTitle("Number of digis per FED channel per event",1); - } - else{ - meNDigisCHANBarrelL4_=0; + std::stringstream ss1, ss2; + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "ALLMODS_ndigisCHAN_BarrelL" << i; + ss2.str(std::string()); ss2 << "Number of Digis L" << i; + meNDigisCHANBarrelLs_.push_back(iBooker.book1D(ss1.str(),ss2.str(),100,0.,1000.)); + meNDigisCHANBarrelLs_.at(i-1)->setAxisTitle("Number of digis per FED channel per event",1); } meNDigisCHANBarrelCh1_ = iBooker.book1D("ALLMODS_ndigisCHAN_BarrelCh1","Number of Digis Ch1",100,0.,1000.); meNDigisCHANBarrelCh1_->setAxisTitle("Number of digis per FED channel per event",1); @@ -831,21 +841,19 @@ void SiPixelDigiSource::bookMEs(DQMStore::IBooker & iBooker){ meNDigisCOMBEndcap_->setAxisTitle("Number of digis per module per event",1); meNDigisCHANEndcap_ = iBooker.book1D("ALLMODS_ndigisCHAN_Endcap","Number of Digis",100,0.,1000.); meNDigisCHANEndcap_->setAxisTitle("Number of digis per FED channel per event",1); - meNDigisCHANEndcapDp1_ = iBooker.book1D("ALLMODS_ndigisCHAN_EndcapDp1","Number of Digis Disk p1",100,0.,1000.); - meNDigisCHANEndcapDp1_->setAxisTitle("Number of digis per FED channel per event",1); - meNDigisCHANEndcapDp2_ = iBooker.book1D("ALLMODS_ndigisCHAN_EndcapDp2","Number of Digis Disk p2",100,0.,1000.); - meNDigisCHANEndcapDp2_->setAxisTitle("Number of digis per FED channel per event",1); - if (isUpgrade) { - meNDigisCHANEndcapDp3_ = iBooker.book1D("ALLMODS_ndigisCHAN_EndcapDp3","Number of Digis Disk p3",100,0.,1000.); - meNDigisCHANEndcapDp3_->setAxisTitle("Number of digis per FED channel per event",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "ALLMODS_ndigisCHAN_EndcapDp" << i; + ss2.str(std::string()); ss2 << "Number of Digis Disk p" << i; + meNDigisCHANEndcapDps_.push_back(iBooker.book1D(ss1.str(),ss2.str(),100,0.,1000.)); + meNDigisCHANEndcapDps_.at(i-1)->setAxisTitle("Number of digis per FED channel per event",1); } - meNDigisCHANEndcapDm1_ = iBooker.book1D("ALLMODS_ndigisCHAN_EndcapDm1","Number of Digis Disk m1",100,0.,1000.); - meNDigisCHANEndcapDm1_->setAxisTitle("Number of digis per FED channel per event",1); - meNDigisCHANEndcapDm2_ = iBooker.book1D("ALLMODS_ndigisCHAN_EndcapDm2","Number of Digis Disk m2",100,0.,1000.); - meNDigisCHANEndcapDm2_->setAxisTitle("Number of digis per FED channel per event",1); - if (isUpgrade) { - meNDigisCHANEndcapDm3_ = iBooker.book1D("ALLMODS_ndigisCHAN_EndcapDm3","Number of Digis Disk m3",100,0.,1000.); - meNDigisCHANEndcapDm3_->setAxisTitle("Number of digis per FED channel per event",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "ALLMODS_ndigisCHAN_EndcapDm" << i; + ss2.str(std::string()); ss2 << "Number of Digis Disk m" << i; + meNDigisCHANEndcapDms_.push_back(iBooker.book1D(ss1.str(),ss2.str(),100,0.,1000.)); + meNDigisCHANEndcapDms_.at(i-1)->setAxisTitle("Number of digis per FED channel per event",1); } iBooker.cd(topFolderName_); } diff --git a/DQM/SiPixelMonitorRawData/src/SiPixelRawDataErrorSource.cc b/DQM/SiPixelMonitorRawData/src/SiPixelRawDataErrorSource.cc index 265babb80f7f4..0453a8c7b8a4c 100755 --- a/DQM/SiPixelMonitorRawData/src/SiPixelRawDataErrorSource.cc +++ b/DQM/SiPixelMonitorRawData/src/SiPixelRawDataErrorSource.cc @@ -154,8 +154,16 @@ void SiPixelRawDataErrorSource::analyze(const edm::Event& iEvent, const edm::Eve void SiPixelRawDataErrorSource::buildStructure(const edm::EventSetup& iSetup){ LogInfo ("PixelDQM") <<" SiPixelRawDataErrorSource::buildStructure" ; + + edm::ESHandle pDD; + edm::ESHandle tTopoHandle; + iSetup.get().get( pDD ); + iSetup.get().get(tTopoHandle); + + const TrackerTopology *pTT = tTopoHandle.product(); + LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<dets().size() <<" detectors"<dets().begin(); it != pDD->dets().end(); it++){ if( ((*it)->subDetector()==GeomDetEnumerators::PixelBarrel) || ((*it)->subDetector()==GeomDetEnumerators::PixelEndcap) ){ + DetId detId = (*it)->geographicalId(); const GeomDetUnit * geoUnit = pDD->idToDetUnit( detId ); const PixelGeomDetUnit * pixDet = dynamic_cast(geoUnit); @@ -177,16 +186,16 @@ void SiPixelRawDataErrorSource::buildStructure(const edm::EventSetup& iSetup){ SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id, ncols, nrows); thePixelStructure.insert(pair (id,theModule)); - } else if( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) && (!isUpgrade)) { + } else if( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) ) { LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl; uint32_t id = detId(); SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id, ncols, nrows); - PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id)).halfCylinder(); - int disk = PixelEndcapName(DetId(id)).diskName(); - int blade = PixelEndcapName(DetId(id)).bladeName(); - int panel = PixelEndcapName(DetId(id)).pannelName(); - int module = PixelEndcapName(DetId(id)).plaquetteName(); + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id), pTT, isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId(id), pTT, isUpgrade).diskName(); + int blade = PixelEndcapName(DetId(id), pTT, isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId(id), pTT, isUpgrade).pannelName(); + int module = PixelEndcapName(DetId(id), pTT, isUpgrade).plaquetteName(); char sside[80]; sprintf(sside, "HalfCylinder_%i",side); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); @@ -204,45 +213,24 @@ void SiPixelRawDataErrorSource::buildStructure(const edm::EventSetup& iSetup){ if(isPIB && mask) continue; thePixelStructure.insert(pair (id,theModule)); - } else if( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) && (isUpgrade)) { - LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl; - uint32_t id = detId(); - SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id, ncols, nrows); - - PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId(id)).halfCylinder(); - int disk = PixelEndcapNameUpgrade(DetId(id)).diskName(); - int blade = PixelEndcapNameUpgrade(DetId(id)).bladeName(); - int panel = PixelEndcapNameUpgrade(DetId(id)).pannelName(); - int module = PixelEndcapNameUpgrade(DetId(id)).plaquetteName(); - char sside[80]; sprintf(sside, "HalfCylinder_%i",side); - char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); - char sblade[80]; sprintf(sblade, "Blade_%02i",blade); - char spanel[80]; sprintf(spanel, "Panel_%i",panel); - char smodule[80];sprintf(smodule,"Module_%i",module); - std::string side_str = sside; - std::string disk_str = sdisk; - bool mask = side_str.find("HalfCylinder_1")!=string::npos|| - side_str.find("HalfCylinder_2")!=string::npos|| - side_str.find("HalfCylinder_4")!=string::npos|| - disk_str.find("Disk_2")!=string::npos; - // clutch to take all of FPIX, but no BPIX: - mask = false; - if(isPIB && mask) continue; - - thePixelStructure.insert(pair (id,theModule)); - }//endif(isUpgrade) - } - } + } + }//MAIN_IF + }//FOR_LOOP + LogDebug ("PixelDQM") << " ---> Adding Module for Additional Errors " << endl; pair fedIds (FEDNumbering::MINSiPixelFEDID, FEDNumbering::MAXSiPixelFEDID); + fedIds.first = 0; fedIds.second = 39; + for (int fedId = fedIds.first; fedId <= fedIds.second; fedId++) { + //std::cout<<"Adding FED module: "< (fedId); SiPixelRawDataErrorModule* theModule = new SiPixelRawDataErrorModule(id); theFEDStructure.insert(pair (id,theModule)); + } LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl; diff --git a/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitModule.h b/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitModule.h index c3187759c1b79..7fcdc82e829f6 100644 --- a/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitModule.h +++ b/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitModule.h @@ -29,6 +29,7 @@ detector segment (detID) #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" #include "DataFormats/Common/interface/DetSetVector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/EventSetup.h" #include class SiPixelRecHitModule { @@ -45,7 +46,7 @@ class SiPixelRecHitModule { // typedef edm::DetSet::const_iterator RecHitsIterator; /// Book histograms - void book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, int type=0, bool twoD=true, + void book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, const edm::EventSetup& iSetup, int type=0, bool twoD=true, bool reducedSet=false, bool isUpgrade=false); /// Fill histograms void fill(const float& rechit_x, const float& rechit_y, const int& sizeX, diff --git a/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitSource.h b/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitSource.h index f1e2e6df1fa08..022559ce95bfd 100644 --- a/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitSource.h +++ b/DQM/SiPixelMonitorRecHit/interface/SiPixelRecHitSource.h @@ -59,11 +59,11 @@ class SiPixelRecHitSource : public thread_unsafe::DQMEDAnalyzer { // typedef edm::DetSet::const_iterator RecHitIterator; virtual void analyze(const edm::Event&, const edm::EventSetup&); - virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override; + virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, const edm::EventSetup&) override; virtual void dqmBeginRun(const edm::Run&, edm::EventSetup const&) ; virtual void buildStructure(edm::EventSetup const&); - virtual void bookMEs(DQMStore::IBooker &); + virtual void bookMEs(DQMStore::IBooker &, const edm::EventSetup& iSetup); std::string topFolderName_; diff --git a/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitModule.cc b/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitModule.cc index c454ed627bdcb..c1a482a4cac1b 100644 --- a/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitModule.cc +++ b/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitModule.cc @@ -17,7 +17,19 @@ #include "DataFormats/SiPixelDetId/interface/PixelEndcapNameUpgrade.h" #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -// +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" + +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" + +#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/Event.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ESHandle.h" + + +#include "FWCore/Framework/interface/EventSetup.h" // Constructors // SiPixelRecHitModule::SiPixelRecHitModule() : id_(0) { } @@ -34,18 +46,25 @@ SiPixelRecHitModule::~SiPixelRecHitModule() {} // // Book histograms // -void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooker & iBooker, int type, +void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, const edm::EventSetup& iSetup, int type, bool twoD, bool reducedSet, bool isUpgrade) { + + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); bool isHalfModule = false; + + if(barrel){ - if (!isUpgrade) { - isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule(); - } else if (isUpgrade) { - isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); - } + //if (!isUpgrade) { + isHalfModule = PixelBarrelName(DetId(id_), pTT, isUpgrade).isHalfModule(); + //} else if (isUpgrade) { + // isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); + //} } std::string hid; @@ -97,8 +116,9 @@ void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooke if(type==1 && barrel){ uint32_t DBladder; - if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName(); } - else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); } + //if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName(); } + //else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); } + DBladder = PixelBarrelName(DetId(id_), pTT, isUpgrade).ladderName(); char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder); hid = src.label() + "_" + sladder; if(isHalfModule) hid += "H"; @@ -134,8 +154,9 @@ void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooke if(type==2 && barrel){ uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } + //if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } + //else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } + DBlayer = PixelBarrelName(DetId(id_), pTT, isUpgrade).layerName(); char slayer[80]; sprintf(slayer,"Layer_%i",DBlayer); hid = src.label() + "_" + slayer; @@ -170,8 +191,9 @@ void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooke if(type==3 && barrel){ uint32_t DBmodule; - if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); } - else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); } + //if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); } + //else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); } + DBmodule = PixelBarrelName(DetId(id_), pTT, isUpgrade).moduleName(); char smodule[80]; sprintf(smodule,"Ring_%i",DBmodule); hid = src.label() + "_" + smodule; @@ -205,8 +227,9 @@ void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooke if(type==4 && endcap){ uint32_t blade; - if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); } - else { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); } + //if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); } + //else { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); } + blade= PixelEndcapName(DetId(id_), pTT, isUpgrade).bladeName(); char sblade[80]; sprintf(sblade, "Blade_%02i",blade); hid = src.label() + "_" + sblade; @@ -228,8 +251,9 @@ void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooke } if(type==5 && endcap){ uint32_t disk; - if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); } - else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } + //if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); } + //else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } + disk = PixelEndcapName(DetId(id_), pTT, isUpgrade).diskName(); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); hid = src.label() + "_" + sdisk; @@ -253,13 +277,15 @@ void SiPixelRecHitModule::book(const edm::ParameterSet& iConfig,DQMStore::IBooke if(type==6 && endcap){ uint32_t panel; uint32_t module; - if (!isUpgrade) { + /*if (!isUpgrade) { panel= PixelEndcapName(DetId(id_)).pannelName(); module= PixelEndcapName(DetId(id_)).plaquetteName(); } else { panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName(); module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName(); - } + }*/ + panel= PixelEndcapName(DetId(id_), pTT, isUpgrade).pannelName(); + module= PixelEndcapName(DetId(id_), pTT, isUpgrade).plaquetteName(); char slab[80]; sprintf(slab, "Panel_%i_Ring_%i",panel, module); hid = src.label() + "_" + slab; diff --git a/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitSource.cc b/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitSource.cc index 0d340ac8989d1..441b4af4041a7 100644 --- a/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitSource.cc +++ b/DQM/SiPixelMonitorRecHit/src/SiPixelRecHitSource.cc @@ -101,8 +101,8 @@ void SiPixelRecHitSource::dqmBeginRun(const edm::Run& r, const edm::EventSetup& } } -void SiPixelRecHitSource::bookHistograms(DQMStore::IBooker & iBooker, edm::Run const &, edm::EventSetup const &){ - bookMEs(iBooker); +void SiPixelRecHitSource::bookHistograms(DQMStore::IBooker & iBooker, edm::Run const &, const edm::EventSetup& iSetup){ + bookMEs(iBooker, iSetup); } //------------------------------------------------------------------ @@ -173,8 +173,15 @@ void SiPixelRecHitSource::analyze(const edm::Event& iEvent, const edm::EventSetu void SiPixelRecHitSource::buildStructure(const edm::EventSetup& iSetup){ LogInfo ("PixelDQM") <<" SiPixelRecHitSource::buildStructure" ; + + edm::ESHandle pDD; + edm::ESHandle tTopoHandle; + iSetup.get().get( pDD ); + iSetup.get().get(tTopoHandle); + + const TrackerTopology *pTT = tTopoHandle.product(); LogVerbatim ("PixelDQM") << " *** Geometry node for TrackerGeom is "<<&(*pDD)<dets().size() <<" detectors"<(PixelSubdetector::PixelBarrel)) || (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap))){ + uint32_t id = detId(); SiPixelRecHitModule* theModule = new SiPixelRecHitModule(id); + if(detId.subdetId() == static_cast(PixelSubdetector::PixelBarrel)) { if(isPIB) continue; LogDebug ("PixelDQM") << " ---> Adding Barrel Module " << detId.rawId() << endl; thePixelStructure.insert(pair (id,theModule)); - } else if( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) && (!isUpgrade)) { - LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl; - PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id)).halfCylinder(); - int disk = PixelEndcapName(DetId(id)).diskName(); - int blade = PixelEndcapName(DetId(id)).bladeName(); - int panel = PixelEndcapName(DetId(id)).pannelName(); - int module = PixelEndcapName(DetId(id)).plaquetteName(); + } else if( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) ) { - char sside[80]; sprintf(sside, "HalfCylinder_%i",side); - char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); - char sblade[80]; sprintf(sblade, "Blade_%02i",blade); - char spanel[80]; sprintf(spanel, "Panel_%i",panel); - char smodule[80];sprintf(smodule,"Module_%i",module); - std::string side_str = sside; - std::string disk_str = sdisk; - bool mask = side_str.find("HalfCylinder_1")!=string::npos|| - side_str.find("HalfCylinder_2")!=string::npos|| - side_str.find("HalfCylinder_4")!=string::npos|| - disk_str.find("Disk_2")!=string::npos; - if(isPIB && mask) continue; - - thePixelStructure.insert(pair (id,theModule)); - } else if( (detId.subdetId() == static_cast(PixelSubdetector::PixelEndcap)) && (isUpgrade)) { LogDebug ("PixelDQM") << " ---> Adding Endcap Module " << detId.rawId() << endl; - PixelEndcapNameUpgrade::HalfCylinder side = PixelEndcapNameUpgrade(DetId(id)).halfCylinder(); - int disk = PixelEndcapNameUpgrade(DetId(id)).diskName(); - int blade = PixelEndcapNameUpgrade(DetId(id)).bladeName(); - int panel = PixelEndcapNameUpgrade(DetId(id)).pannelName(); - int module = PixelEndcapNameUpgrade(DetId(id)).plaquetteName(); + + PixelEndcapName::HalfCylinder side = PixelEndcapName(DetId(id), pTT, isUpgrade).halfCylinder(); + int disk = PixelEndcapName(DetId(id), pTT, isUpgrade).diskName(); + int blade = PixelEndcapName(DetId(id), pTT, isUpgrade).bladeName(); + int panel = PixelEndcapName(DetId(id), pTT, isUpgrade).pannelName(); + int module = PixelEndcapName(DetId(id), pTT, isUpgrade).plaquetteName(); char sside[80]; sprintf(sside, "HalfCylinder_%i",side); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); @@ -239,17 +228,18 @@ void SiPixelRecHitSource::buildStructure(const edm::EventSetup& iSetup){ if(isPIB && mask) continue; thePixelStructure.insert(pair (id,theModule)); - }//endif(isUpgrade) + } + } - } - } + } + }//FOR_LOOP LogInfo ("PixelDQM") << " *** Pixel Structure Size " << thePixelStructure.size() << endl; } //------------------------------------------------------------------ // Book MEs //------------------------------------------------------------------ -void SiPixelRecHitSource::bookMEs(DQMStore::IBooker & iBooker){ +void SiPixelRecHitSource::bookMEs(DQMStore::IBooker & iBooker, const edm::EventSetup& iSetup){ std::map::iterator struct_iter; @@ -260,7 +250,7 @@ void SiPixelRecHitSource::bookMEs(DQMStore::IBooker & iBooker){ /// Create folder tree and book histograms if(modOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,0,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,0,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 0, twoDimOn, reducedSet, isUpgrade); } else { if(!isPIB) throw cms::Exception("LogicError") << "[SiPixelDigiSource::bookMEs] Creation of DQM folder failed"; @@ -268,42 +258,42 @@ void SiPixelRecHitSource::bookMEs(DQMStore::IBooker & iBooker){ } if(ladOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,1,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,1,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 1, twoDimOn, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH LADDER-FOLDER\n"; } } if(layOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,2,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,2,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 2, twoDimOn, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH LAYER-FOLDER\n"; } } if(phiOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,3,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,3,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 3, twoDimOn, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH PHI-FOLDER\n"; } } if(bladeOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,4,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,4,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 4, twoDimOn, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH BLADE-FOLDER\n"; } } if(diskOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,5,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,5,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 5, twoDimOn, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH DISK-FOLDER\n"; } } if(ringOn){ if(theSiPixelFolder.setModuleFolder(iBooker,(*struct_iter).first,6,isUpgrade)){ - (*struct_iter).second->book( conf_,iBooker,6,twoDimOn, reducedSet, isUpgrade); + (*struct_iter).second->book( conf_,iBooker, iSetup, 6, twoDimOn, reducedSet, isUpgrade); } else { LogDebug ("PixelDQM") << "PROBLEM WITH RING-FOLDER\n"; } diff --git a/DQM/SiPixelMonitorTrack/interface/SiPixelHitEfficiencyModule.h b/DQM/SiPixelMonitorTrack/interface/SiPixelHitEfficiencyModule.h index a39f90fd7fdf6..05dce060ce95a 100644 --- a/DQM/SiPixelMonitorTrack/interface/SiPixelHitEfficiencyModule.h +++ b/DQM/SiPixelMonitorTrack/interface/SiPixelHitEfficiencyModule.h @@ -30,7 +30,7 @@ class SiPixelHitEfficiencyModule { SiPixelHitEfficiencyModule(const uint32_t); ~SiPixelHitEfficiencyModule(); - void book(const edm::ParameterSet&, DQMStore::IBooker &, int type=0, bool isUpgrade=false); + void book(const edm::ParameterSet&, edm::EventSetup const &, DQMStore::IBooker &, int type=0, bool isUpgrade=false); void fill(const LocalTrajectoryParameters& ltp, bool isHitValid, bool modon=true, bool ladon=true, bool layon=true, bool phion = true, bool bladeon=true, bool diskon=true, bool ringon=true); void computeEfficiencies(bool modon=true, bool ladon=true, bool layon=true, bool phion = true, bool bladeon=true, bool diskon=true, bool ringon=true); std::pair eff(double nValid, double nMissing); diff --git a/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h b/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h index bc2f5def70913..69055120526f2 100644 --- a/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h +++ b/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h @@ -30,7 +30,7 @@ class SiPixelTrackResidualModule { SiPixelTrackResidualModule(const uint32_t); ~SiPixelTrackResidualModule(); - void book(const edm::ParameterSet&, DQMStore::IBooker &, bool reducedSet=true, int type=0, bool isUpgrade=false); + void book(const edm::ParameterSet&, edm::EventSetup const&, DQMStore::IBooker &, bool reducedSet=true, int type=0, bool isUpgrade=false); void fill(const Measurement2DVector&, bool reducedSet=true, bool modon=true, bool ladon=true, bool layon=true, bool phion = true, bool bladeon=true, bool diskon=true, bool ringon=true); void fill(const SiPixelCluster &clust, bool onTrack, double corrCharge, bool reducedSet, bool modon, bool ladon, bool layon, bool phion, bool bladeon, bool diskon, bool ringon); void nfill(int onTrack, int offTrack, bool reducedSet, bool modon, bool ladon, bool layon, bool phion, bool bladeon, bool diskon, bool ringon); diff --git a/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualSource.h b/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualSource.h index 3f741404e60fc..a6d6e590236ed 100644 --- a/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualSource.h +++ b/DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualSource.h @@ -33,6 +33,7 @@ #include "Alignment/TrackerAlignment/interface/TrackerAlignableId.h" #include "Alignment/OfflineValidation/interface/TrackerValidationVariables.h" #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" +//#include "DataFormats/SiPixelDetId/interface/PixelBarrelNameWrapper.h" #include "DataFormats/SiPixelDetId/interface/PixelBarrelName.h" #include "DataFormats/SiPixelDetId/interface/PixelBarrelNameUpgrade.h" #include "DataFormats/SiPixelDetId/interface/PixelEndcapName.h" @@ -97,160 +98,78 @@ class SiPixelTrackResidualSource : public thread_unsafe::DQMEDAnalyzer { MonitorElement* meClChargeOnTrack_all; MonitorElement* meClChargeOnTrack_bpix; MonitorElement* meClChargeOnTrack_fpix; - MonitorElement* meClChargeOnTrack_layer1; - MonitorElement* meClChargeOnTrack_layer2; - MonitorElement* meClChargeOnTrack_layer3; - MonitorElement* meClChargeOnTrack_layer4; - MonitorElement* meClChargeOnTrack_diskp1; - MonitorElement* meClChargeOnTrack_diskp2; - MonitorElement* meClChargeOnTrack_diskp3; - MonitorElement* meClChargeOnTrack_diskm1; - MonitorElement* meClChargeOnTrack_diskm2; - MonitorElement* meClChargeOnTrack_diskm3; + std::vector meClChargeOnTrack_layers; + std::vector meClChargeOnTrack_diskps; + std::vector meClChargeOnTrack_diskms; MonitorElement* meClChargeNotOnTrack_all; MonitorElement* meClChargeNotOnTrack_bpix; MonitorElement* meClChargeNotOnTrack_fpix; - MonitorElement* meClChargeNotOnTrack_layer1; - MonitorElement* meClChargeNotOnTrack_layer2; - MonitorElement* meClChargeNotOnTrack_layer3; - MonitorElement* meClChargeNotOnTrack_layer4; - MonitorElement* meClChargeNotOnTrack_diskp1; - MonitorElement* meClChargeNotOnTrack_diskp2; - MonitorElement* meClChargeNotOnTrack_diskp3; - MonitorElement* meClChargeNotOnTrack_diskm1; - MonitorElement* meClChargeNotOnTrack_diskm2; - MonitorElement* meClChargeNotOnTrack_diskm3; + std::vector meClChargeNotOnTrack_layers; + std::vector meClChargeNotOnTrack_diskps; + std::vector meClChargeNotOnTrack_diskms; MonitorElement* meClSizeOnTrack_all; MonitorElement* meClSizeOnTrack_bpix; MonitorElement* meClSizeOnTrack_fpix; - MonitorElement* meClSizeOnTrack_layer1; - MonitorElement* meClSizeOnTrack_layer2; - MonitorElement* meClSizeOnTrack_layer3; - MonitorElement* meClSizeOnTrack_layer4; - MonitorElement* meClSizeOnTrack_diskp1; - MonitorElement* meClSizeOnTrack_diskp2; - MonitorElement* meClSizeOnTrack_diskp3; - MonitorElement* meClSizeOnTrack_diskm1; - MonitorElement* meClSizeOnTrack_diskm2; - MonitorElement* meClSizeOnTrack_diskm3; + std::vector meClSizeOnTrack_layers; + std::vector meClSizeOnTrack_diskps; + std::vector meClSizeOnTrack_diskms; MonitorElement* meClSizeNotOnTrack_all; MonitorElement* meClSizeNotOnTrack_bpix; MonitorElement* meClSizeNotOnTrack_fpix; - MonitorElement* meClSizeNotOnTrack_layer1; - MonitorElement* meClSizeNotOnTrack_layer2; - MonitorElement* meClSizeNotOnTrack_layer3; - MonitorElement* meClSizeNotOnTrack_layer4; - MonitorElement* meClSizeNotOnTrack_diskp1; - MonitorElement* meClSizeNotOnTrack_diskp2; - MonitorElement* meClSizeNotOnTrack_diskp3; - MonitorElement* meClSizeNotOnTrack_diskm1; - MonitorElement* meClSizeNotOnTrack_diskm2; - MonitorElement* meClSizeNotOnTrack_diskm3; + std::vector meClSizeNotOnTrack_layers; + std::vector meClSizeNotOnTrack_diskps; + std::vector meClSizeNotOnTrack_diskms; MonitorElement* meClSizeXOnTrack_all; MonitorElement* meClSizeXOnTrack_bpix; MonitorElement* meClSizeXOnTrack_fpix; - MonitorElement* meClSizeXOnTrack_layer1; - MonitorElement* meClSizeXOnTrack_layer2; - MonitorElement* meClSizeXOnTrack_layer3; - MonitorElement* meClSizeXOnTrack_layer4; - MonitorElement* meClSizeXOnTrack_diskp1; - MonitorElement* meClSizeXOnTrack_diskp2; - MonitorElement* meClSizeXOnTrack_diskp3; - MonitorElement* meClSizeXOnTrack_diskm1; - MonitorElement* meClSizeXOnTrack_diskm2; - MonitorElement* meClSizeXOnTrack_diskm3; + std::vector meClSizeXOnTrack_layers; + std::vector meClSizeXOnTrack_diskps; + std::vector meClSizeXOnTrack_diskms; MonitorElement* meClSizeXNotOnTrack_all; MonitorElement* meClSizeXNotOnTrack_bpix; MonitorElement* meClSizeXNotOnTrack_fpix; - MonitorElement* meClSizeXNotOnTrack_layer1; - MonitorElement* meClSizeXNotOnTrack_layer2; - MonitorElement* meClSizeXNotOnTrack_layer3; - MonitorElement* meClSizeXNotOnTrack_layer4; - MonitorElement* meClSizeXNotOnTrack_diskp1; - MonitorElement* meClSizeXNotOnTrack_diskp2; - MonitorElement* meClSizeXNotOnTrack_diskp3; - MonitorElement* meClSizeXNotOnTrack_diskm1; - MonitorElement* meClSizeXNotOnTrack_diskm2; - MonitorElement* meClSizeXNotOnTrack_diskm3; + std::vector meClSizeXNotOnTrack_layers; + std::vector meClSizeXNotOnTrack_diskps; + std::vector meClSizeXNotOnTrack_diskms; MonitorElement* meClSizeYOnTrack_all; MonitorElement* meClSizeYOnTrack_bpix; MonitorElement* meClSizeYOnTrack_fpix; - MonitorElement* meClSizeYOnTrack_layer1; - MonitorElement* meClSizeYOnTrack_layer2; - MonitorElement* meClSizeYOnTrack_layer3; - MonitorElement* meClSizeYOnTrack_layer4; - MonitorElement* meClSizeYOnTrack_diskp1; - MonitorElement* meClSizeYOnTrack_diskp2; - MonitorElement* meClSizeYOnTrack_diskp3; - MonitorElement* meClSizeYOnTrack_diskm1; - MonitorElement* meClSizeYOnTrack_diskm2; - MonitorElement* meClSizeYOnTrack_diskm3; + std::vector meClSizeYOnTrack_layers; + std::vector meClSizeYOnTrack_diskps; + std::vector meClSizeYOnTrack_diskms; MonitorElement* meClSizeYNotOnTrack_all; MonitorElement* meClSizeYNotOnTrack_bpix; MonitorElement* meClSizeYNotOnTrack_fpix; - MonitorElement* meClSizeYNotOnTrack_layer1; - MonitorElement* meClSizeYNotOnTrack_layer2; - MonitorElement* meClSizeYNotOnTrack_layer3; - MonitorElement* meClSizeYNotOnTrack_layer4; - MonitorElement* meClSizeYNotOnTrack_diskp1; - MonitorElement* meClSizeYNotOnTrack_diskp2; - MonitorElement* meClSizeYNotOnTrack_diskp3; - MonitorElement* meClSizeYNotOnTrack_diskm1; - MonitorElement* meClSizeYNotOnTrack_diskm2; - MonitorElement* meClSizeYNotOnTrack_diskm3; + std::vector meClSizeYNotOnTrack_layers; + std::vector meClSizeYNotOnTrack_diskps; + std::vector meClSizeYNotOnTrack_diskms; //new MonitorElement* meNClustersOnTrack_all; MonitorElement* meNClustersOnTrack_bpix; MonitorElement* meNClustersOnTrack_fpix; - MonitorElement* meNClustersOnTrack_layer1; - MonitorElement* meNClustersOnTrack_layer2; - MonitorElement* meNClustersOnTrack_layer3; - MonitorElement* meNClustersOnTrack_layer4; - MonitorElement* meNClustersOnTrack_diskp1; - MonitorElement* meNClustersOnTrack_diskp2; - MonitorElement* meNClustersOnTrack_diskp3; - MonitorElement* meNClustersOnTrack_diskm1; - MonitorElement* meNClustersOnTrack_diskm2; - MonitorElement* meNClustersOnTrack_diskm3; + std::vector meNClustersOnTrack_layers; + std::vector meNClustersOnTrack_diskps; + std::vector meNClustersOnTrack_diskms; MonitorElement* meNClustersNotOnTrack_all; MonitorElement* meNClustersNotOnTrack_bpix; MonitorElement* meNClustersNotOnTrack_fpix; - MonitorElement* meNClustersNotOnTrack_layer1; - MonitorElement* meNClustersNotOnTrack_layer2; - MonitorElement* meNClustersNotOnTrack_layer3; - MonitorElement* meNClustersNotOnTrack_layer4; - MonitorElement* meNClustersNotOnTrack_diskp1; - MonitorElement* meNClustersNotOnTrack_diskp2; - MonitorElement* meNClustersNotOnTrack_diskp3; - MonitorElement* meNClustersNotOnTrack_diskm1; - MonitorElement* meNClustersNotOnTrack_diskm2; - MonitorElement* meNClustersNotOnTrack_diskm3; + std::vector meNClustersNotOnTrack_layers; + std::vector meNClustersNotOnTrack_diskps; + std::vector meNClustersNotOnTrack_diskms; // - MonitorElement* meClPosLayer1OnTrack; - MonitorElement* meClPosLayer2OnTrack; - MonitorElement* meClPosLayer3OnTrack; - MonitorElement* meClPosLayer4OnTrack; - MonitorElement* meClPosLayer1NotOnTrack; - MonitorElement* meClPosLayer2NotOnTrack; - MonitorElement* meClPosLayer3NotOnTrack; - MonitorElement* meClPosLayer4NotOnTrack; - - MonitorElement* meClPosDisk1pzOnTrack; - MonitorElement* meClPosDisk2pzOnTrack; - MonitorElement* meClPosDisk3pzOnTrack; - MonitorElement* meClPosDisk1mzOnTrack; - MonitorElement* meClPosDisk2mzOnTrack; - MonitorElement* meClPosDisk3mzOnTrack; - MonitorElement* meClPosDisk1pzNotOnTrack; - MonitorElement* meClPosDisk2pzNotOnTrack; - MonitorElement* meClPosDisk3pzNotOnTrack; - MonitorElement* meClPosDisk1mzNotOnTrack; - MonitorElement* meClPosDisk2mzNotOnTrack; - MonitorElement* meClPosDisk3mzNotOnTrack; + std::vector meClPosLayersOnTrack; + std::vector meClPosLayersNotOnTrack; + std::vector meClPosDiskspzOnTrack; + std::vector meClPosDisksmzOnTrack; + std::vector meClPosDiskspzNotOnTrack; + std::vector meClPosDisksmzNotOnTrack; MonitorElement* meHitProbability; + + int noOfLayers; + int noOfDisks; }; #endif diff --git a/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencyModule.cc b/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencyModule.cc index 39b21c1a7d7f3..8fe9e2cc0d280 100644 --- a/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencyModule.cc +++ b/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencyModule.cc @@ -16,6 +16,7 @@ #include #include "DQMServices/Core/interface/DQMStore.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -31,6 +32,8 @@ #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" using namespace std; @@ -51,17 +54,17 @@ SiPixelHitEfficiencyModule::~SiPixelHitEfficiencyModule() { } -void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker,int type, bool isUpgrade) { +void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, edm::EventSetup const & iSetup, DQMStore::IBooker & iBooker,int type, bool isUpgrade) { + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); bool isHalfModule = false; if(barrel){ - if (!isUpgrade) { - isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule(); - } else if (isUpgrade) { - isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); - } + isHalfModule = PixelBarrelName(DetId(id_),pTT,isUpgrade).isHalfModule(); } edm::InputTag src = iConfig.getParameter("src"); @@ -114,8 +117,7 @@ void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==1 && barrel){ uint32_t DBladder; - if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName(); } - else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); } + DBladder = PixelBarrelName(DetId(id_),pTT,isUpgrade).ladderName(); char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder); hisID = src.label() + "_" + sladder; if(isHalfModule) hisID += "H"; @@ -180,8 +182,7 @@ void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==2 && barrel){ uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } + DBlayer = PixelBarrelName(DetId(id_),pTT,isUpgrade).layerName(); char slayer[80]; sprintf(slayer,"Layer_%i",DBlayer); hisID = src.label() + "_" + slayer; @@ -239,8 +240,7 @@ void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==3 && barrel){ uint32_t DBmodule; - if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); } - else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); } + DBmodule = PixelBarrelName(DetId(id_),pTT,isUpgrade).moduleName(); char smodule[80]; sprintf(smodule,"Ring_%i",DBmodule); hisID = src.label() + "_" + smodule; @@ -297,8 +297,7 @@ void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==4 && endcap){ uint32_t blade; - if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); } - else { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); } + blade= PixelEndcapName(DetId(id_),pTT,isUpgrade).bladeName(); char sblade[80]; sprintf(sblade, "Blade_%02i",blade); hisID = src.label() + "_" + sblade; @@ -356,8 +355,7 @@ void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==5 && endcap){ uint32_t disk; - if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); } - else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } + disk = PixelEndcapName(DetId(id_),pTT,isUpgrade).diskName(); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); hisID = src.label() + "_" + sdisk; @@ -417,13 +415,8 @@ void SiPixelHitEfficiencyModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==6 && endcap){ uint32_t panel; uint32_t module; - if (!isUpgrade) { - panel= PixelEndcapName(DetId(id_)).pannelName(); - module= PixelEndcapName(DetId(id_)).plaquetteName(); - } else { - panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName(); - module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName(); - } + panel= PixelEndcapName(DetId(id_),pTT,isUpgrade).pannelName(); + module= PixelEndcapName(DetId(id_),pTT,isUpgrade).plaquetteName(); char slab[80]; sprintf(slab, "Panel_%i_Ring_%i",panel, module); hisID = src.label() + "_" + slab; diff --git a/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencySource.cc b/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencySource.cc index e0c638dff7304..ffea7a2e8bb8d 100644 --- a/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencySource.cc +++ b/DQM/SiPixelMonitorTrack/src/SiPixelHitEfficiencySource.cc @@ -155,31 +155,31 @@ void SiPixelHitEfficiencySource::bookHistograms(DQMStore::IBooker & iBooker, edm pxd!=theSiPixelStructure.end(); pxd++) { if(modOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,0,isUpgrade)) (*pxd).second->book(pSet_,iBooker,0,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,0,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,0,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource Folder Creation Failed! "; } if(ladOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,1,isUpgrade)) (*pxd).second->book(pSet_,iBooker,1,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,1,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,1,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource ladder Folder Creation Failed! "; } if(layOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,2,isUpgrade)) (*pxd).second->book(pSet_,iBooker,2,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,2,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,2,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource layer Folder Creation Failed! "; } if(phiOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,3,isUpgrade)) (*pxd).second->book(pSet_,iBooker,3,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,3,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,3,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource phi Folder Creation Failed! "; } if(bladeOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,4,isUpgrade)) (*pxd).second->book(pSet_,iBooker,4,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,4,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,4,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource Blade Folder Creation Failed! "; } if(diskOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,5,isUpgrade)) (*pxd).second->book(pSet_,iBooker,5,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,5,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,5,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource Disk Folder Creation Failed! "; } if(ringOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,6,isUpgrade)) (*pxd).second->book(pSet_,iBooker,6,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,6,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,6,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelHitEfficiencySource Ring Folder Creation Failed! "; } } @@ -189,6 +189,10 @@ void SiPixelHitEfficiencySource::bookHistograms(DQMStore::IBooker & iBooker, edm void SiPixelHitEfficiencySource::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + edm::Handle vertexCollectionHandle; iEvent.getByToken( vertexCollectionToken_, vertexCollectionHandle ); if(!vertexCollectionHandle.isValid()) return; @@ -279,11 +283,7 @@ void SiPixelHitEfficiencySource::analyze(const edm::Event& iEvent, const edm::Ev if(testSubDetID==PixelSubdetector::PixelBarrel){ isBpixtrack = true; - if (!isUpgrade) { - hit_layer = PixelBarrelName(hit_detId).layerName(); - } else if (isUpgrade) { - hit_layer = PixelBarrelNameUpgrade(hit_detId).layerName(); - } + hit_layer = PixelBarrelName(hit_detId,pTT,isUpgrade).layerName(); hit_ladder = PXBDetId(hit_detId).ladder(); hit_mod = PXBDetId(hit_detId).module(); @@ -291,16 +291,15 @@ void SiPixelHitEfficiencySource::analyze(const edm::Event& iEvent, const edm::Ev if(hit_layer==1) L1hits++; if(hit_layer==2) L2hits++; if(hit_layer==3) L3hits++; - if(isUpgrade && hit_layer==4) L4hits++; + if(hit_layer==4) L4hits++; } if(testSubDetID==PixelSubdetector::PixelEndcap){ isFpixtrack = true; - if (!isUpgrade) { hit_disk = PixelEndcapName(hit_detId).diskName(); } - else if (isUpgrade) { hit_disk = PixelEndcapNameUpgrade(hit_detId).diskName(); } + hit_disk = PixelEndcapName(hit_detId,pTT,isUpgrade).diskName(); if(hit_disk==1) D1hits++; if(hit_disk==2) D2hits++; - if(isUpgrade && hit_disk==3) D3hits++; + if(hit_disk==3) D3hits++; } if(testSubDetID==StripSubdetector::TIB) nStripHits++; if(testSubDetID==StripSubdetector::TOB) nStripHits++; @@ -458,78 +457,43 @@ float y=predTrajState.globalPosition().y(); int disk=0; int layer=0; int panel=0; int module=0; bool isHalfModule=false; if(IntSubDetID==PixelSubdetector::PixelBarrel){ // it's a BPIX hit - if (!isUpgrade) { - layer = PixelBarrelName(hit_detId).layerName(); - isHalfModule = PixelBarrelName(hit_detId).isHalfModule(); - } else if (isUpgrade) { - layer = PixelBarrelNameUpgrade(hit_detId).layerName(); - isHalfModule = PixelBarrelNameUpgrade(hit_detId).isHalfModule(); - } + layer = PixelBarrelName(hit_detId,pTT,isUpgrade).layerName(); + isHalfModule = PixelBarrelName(hit_detId,pTT,isUpgrade).isHalfModule(); }else if(IntSubDetID==PixelSubdetector::PixelEndcap){ // it's an FPIX hit - if (!isUpgrade) { - disk = PixelEndcapName(hit_detId).diskName(); - panel = PixelEndcapName(hit_detId).pannelName(); - module = PixelEndcapName(hit_detId).plaquetteName(); - } else if (isUpgrade) { - disk = PixelEndcapNameUpgrade(hit_detId).diskName(); - panel = PixelEndcapNameUpgrade(hit_detId).pannelName(); - module = PixelEndcapNameUpgrade(hit_detId).plaquetteName(); - } + disk = PixelEndcapName(hit_detId,pTT,isUpgrade).diskName(); + panel = PixelEndcapName(hit_detId,pTT,isUpgrade).pannelName(); + module = PixelEndcapName(hit_detId,pTT,isUpgrade).plaquetteName(); } - if (!isUpgrade) { if(layer==1){ if(fabs(trackref->dxy(bestVtx->position()))>0.01 || fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L2hits>0&&L3hits>0) && !(L2hits>0&&D1hits>0) && !(D1hits>0&&D2hits>0)) continue; + if(!(L2hits>0&&L3hits>0&&L4hits>0) && !(L2hits>0&&D1hits>0&&D2hits) && !(D1hits>0&&D2hits>0&&D3hits>0)) continue; }else if(layer==2){ if(fabs(trackref->dxy(bestVtx->position()))>0.02 || fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L1hits>0&&L3hits>0) && !(L1hits>0&&D1hits>0)) continue; + if(!(L1hits>0&&L3hits>0&&L4hits>0) && !(L1hits>0&&L3hits>0&&D1hits>0) && !(L1hits>0&&D1hits>0&&D2hits>0)) continue; }else if(layer==3){ if(fabs(trackref->dxy(bestVtx->position()))>0.02 || fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L1hits>0&&L2hits>0)) continue; + if(!(L1hits>0&&L2hits>0&&L4hits>0) && !(L1hits>0&&L2hits>0&&D1hits>0)) continue; + }else if(layer==4){ + if(fabs(trackref->dxy(bestVtx->position()))>0.02 || + fabs(trackref->dz(bestVtx->position()))>0.1) continue; + if(!(L1hits>0&&L2hits>0&&L3hits>0)) continue; }else if(disk==1){ if(fabs(trackref->dxy(bestVtx->position()))>0.05 || fabs(trackref->dz(bestVtx->position()))>0.5) continue; - if(!(L1hits>0&&D2hits>0) && !(L2hits>0&&D2hits>0)) continue; + if(!(L1hits>0&&L2hits>0&&D2hits>0) && !(L1hits>0&&D2hits>0&&D3hits>0) && !(L2hits>0&&D2hits>0&&D3hits>0)) continue; }else if(disk==2){ if(fabs(trackref->dxy(bestVtx->position()))>0.05 || fabs(trackref->dz(bestVtx->position()))>0.5) continue; - if(!(L1hits>0&&D1hits>0)) continue; + if(!(L1hits>0&&L2hits>0&&D1hits>0) && !(L1hits>0&&D1hits>0&&D3hits>0) && !(L2hits>0&&D1hits>0&&D3hits>0)) continue; + }else if(disk==3){ + if(fabs(trackref->dxy(bestVtx->position()))>0.05 || + fabs(trackref->dz(bestVtx->position()))>0.5) continue; + if(!(L1hits>0&&D1hits>0&&D2hits>0) && !(L2hits>0&&D1hits>0&&D2hits>0)) continue; } - } else if (isUpgrade) { - if(layer==1){ - if(fabs(trackref->dxy(bestVtx->position()))>0.01 || - fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L2hits>0&&L3hits>0&&L4hits>0) && !(L2hits>0&&D1hits>0&&D2hits) && !(D1hits>0&&D2hits>0&&D3hits>0)) continue; - }else if(layer==2){ - if(fabs(trackref->dxy(bestVtx->position()))>0.02 || - fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L1hits>0&&L3hits>0&&L4hits>0) && !(L1hits>0&&L3hits>0&&D1hits>0) && !(L1hits>0&&D1hits>0&&D2hits>0)) continue; - }else if(layer==3){ - if(fabs(trackref->dxy(bestVtx->position()))>0.02 || - fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L1hits>0&&L2hits>0&&L4hits>0) && !(L1hits>0&&L2hits>0&&D1hits>0)) continue; - }else if(isUpgrade && layer==4){ - if(fabs(trackref->dxy(bestVtx->position()))>0.02 || - fabs(trackref->dz(bestVtx->position()))>0.1) continue; - if(!(L1hits>0&&L2hits>0&&L3hits>0)) continue; - }else if(disk==1){ - if(fabs(trackref->dxy(bestVtx->position()))>0.05 || - fabs(trackref->dz(bestVtx->position()))>0.5) continue; - if(!(L1hits>0&&L2hits>0&&D2hits>0) && !(L1hits>0&&D2hits>0&&D3hits>0) && !(L2hits>0&&D2hits>0&&D3hits>0)) continue; - }else if(disk==2){ - if(fabs(trackref->dxy(bestVtx->position()))>0.05 || - fabs(trackref->dz(bestVtx->position()))>0.5) continue; - if(!(L1hits>0&&L2hits>0&&D1hits>0) && !(L1hits>0&&D1hits>0&&D3hits>0) && !(L2hits>0&&D1hits>0&&D3hits>0)) continue; - }else if(disk==3){ - if(fabs(trackref->dxy(bestVtx->position()))>0.05 || - fabs(trackref->dz(bestVtx->position()))>0.5) continue; - if(!(L1hits>0&&D1hits>0&&D2hits>0) && !(L2hits>0&&D1hits>0&&D2hits>0)) continue; - } - }//endif(isUpgrade) //check whether hit is valid or missing using track algo flag bool isHitValid =hit->hit()->getType()==TrackingRecHit::valid; diff --git a/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualModule.cc b/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualModule.cc index 8a8e144dcb343..dc6d1348f5d60 100644 --- a/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualModule.cc +++ b/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualModule.cc @@ -15,11 +15,14 @@ #include #include "DQMServices/Core/interface/DQMStore.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/InputTag.h" #include "DQM/SiPixelCommon/interface/SiPixelHistogramId.h" #include "DQM/SiPixelMonitorTrack/interface/SiPixelTrackResidualModule.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" // Data Formats #include "DataFormats/SiPixelDetId/interface/PixelBarrelName.h" @@ -30,7 +33,8 @@ #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -using namespace std; +using namespace std; +using namespace edm; SiPixelTrackResidualModule::SiPixelTrackResidualModule() : id_(0) { @@ -48,17 +52,17 @@ SiPixelTrackResidualModule::~SiPixelTrackResidualModule() { } -void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore::IBooker & iBooker, bool reducedSet, int type, bool isUpgrade) { +void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, edm::EventSetup const& iSetup, DQMStore::IBooker & iBooker, bool reducedSet, int type, bool isUpgrade) { + + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); bool barrel = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId(id_).subdetId() == static_cast(PixelSubdetector::PixelEndcap); bool isHalfModule = false; if(barrel){ - if (!isUpgrade) { - isHalfModule = PixelBarrelName(DetId(id_)).isHalfModule(); - } else if (isUpgrade) { - isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule(); - } + isHalfModule = PixelBarrelName(DetId(id_),pTT,isUpgrade).isHalfModule(); } edm::InputTag src = iConfig.getParameter("src"); @@ -119,8 +123,7 @@ void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==1 && barrel){ uint32_t DBladder; - if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName(); } - else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); } + DBladder = PixelBarrelName(DetId(id_),pTT,isUpgrade).ladderName(); char sladder[80]; sprintf(sladder,"Ladder_%02i",DBladder); hisID = src.label() + "_" + sladder; if(isHalfModule) hisID += "H"; @@ -165,8 +168,7 @@ void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==2 && barrel){ uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); } + DBlayer = PixelBarrelName(DetId(id_),pTT,isUpgrade).layerName(); char slayer[80]; sprintf(slayer,"Layer_%i",DBlayer); hisID = src.label() + "_" + slayer; meResidualXLay_ = iBooker.book1D("residualX_"+hisID,"Hit-to-Track Residual in r-phi",100,-150,150); @@ -209,8 +211,7 @@ void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==3 && barrel){ uint32_t DBmodule; - if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); } - else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); } + DBmodule = PixelBarrelName(DetId(id_),pTT,isUpgrade).moduleName(); char smodule[80]; sprintf(smodule,"Ring_%i",DBmodule); hisID = src.label() + "_" + smodule; meResidualXPhi_ = iBooker.book1D("residualX_"+hisID,"Hit-to-Track Residual in r-phi",100,-150,150); @@ -253,8 +254,7 @@ void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==4 && endcap){ uint32_t blade; - if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); } - else { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); } + blade= PixelEndcapName(DetId(id_),pTT,isUpgrade).bladeName(); char sblade[80]; sprintf(sblade, "Blade_%02i",blade); hisID = src.label() + "_" + sblade; meResidualXBlade_ = iBooker.book1D("residualX_"+hisID,"Hit-to-Track Residual in r-phi",100,-150,150); @@ -297,8 +297,7 @@ void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==5 && endcap){ uint32_t disk; - if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); } - else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); } + disk = PixelEndcapName(DetId(id_),pTT,isUpgrade).diskName(); char sdisk[80]; sprintf(sdisk, "Disk_%i",disk); hisID = src.label() + "_" + sdisk; @@ -343,13 +342,8 @@ void SiPixelTrackResidualModule::book(const edm::ParameterSet& iConfig, DQMStore if(type==6 && endcap){ uint32_t panel; uint32_t module; - if (!isUpgrade) { - panel= PixelEndcapName(DetId(id_)).pannelName(); - module= PixelEndcapName(DetId(id_)).plaquetteName(); - } else { - panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName(); - module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName(); - } + panel= PixelEndcapName(DetId(id_),pTT,isUpgrade).pannelName(); + module= PixelEndcapName(DetId(id_),pTT,isUpgrade).plaquetteName(); char slab[80]; sprintf(slab, "Panel_%i_Ring_%i",panel, module); hisID = src.label() + "_" + slab; diff --git a/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualSource.cc b/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualSource.cc index f69eaa7162205..02107df9600f9 100644 --- a/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualSource.cc +++ b/DQM/SiPixelMonitorTrack/src/SiPixelTrackResidualSource.cc @@ -27,7 +27,10 @@ #include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" - +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +//#include "DataFormats/SiPixelDetId/interface/PixelBarrelNameWrapper.h" +#include "DataFormats/SiPixelDetId/interface/PixelBarrelName.h" +#include "DataFormats/SiPixelDetId/interface/PixelBarrelNameUpgrade.h" #include "DataFormats/TrackingRecHit/interface/TrackingRecHitFwd.h" #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" @@ -70,7 +73,9 @@ SiPixelTrackResidualSource::SiPixelTrackResidualSource(const edm::ParameterSet& ringOn( pSet.getUntrackedParameter("ringOn",false) ), bladeOn( pSet.getUntrackedParameter("bladeOn",false) ), diskOn( pSet.getUntrackedParameter("diskOn",false) ), - isUpgrade( pSet.getUntrackedParameter("isUpgrade",false) ) + isUpgrade( pSet.getUntrackedParameter("isUpgrade",false) ), + noOfLayers(0), + noOfDisks(0) { pSet_ = pSet; debug_ = pSet_.getUntrackedParameter("debug", false); @@ -118,13 +123,19 @@ void SiPixelTrackResidualSource::dqmBeginRun(const edm::Run& r, edm::EventSetup edm::ESHandle TG; iSetup.get().get(TG); if (debug_) LogVerbatim("PixelDQM") << "TrackerGeometry "<< &(*TG) <<" size is "<< TG->dets().size() << endl; - + edm::ESHandle tTopoHandle; + iSetup.get().get(tTopoHandle); + const TrackerTopology *pTT = tTopoHandle.product(); + // build theSiPixelStructure with the pixel barrel and endcap dets from TrackerGeometry for (TrackerGeometry::DetContainer::const_iterator pxb = TG->detsPXB().begin(); pxb!=TG->detsPXB().end(); pxb++) { if (dynamic_cast((*pxb))!=0) { SiPixelTrackResidualModule* module = new SiPixelTrackResidualModule((*pxb)->geographicalId().rawId()); theSiPixelStructure.insert(pair((*pxb)->geographicalId().rawId(), module)); + //int DBlayer = PixelBarrelNameWrapper(pSet_, DetId((*pxb)->geographicalId())).layerName(); + int DBlayer = PixelBarrelName(DetId((*pxb)->geographicalId()),pTT,isUpgrade).layerName(); + if (noOfLayers < DBlayer) noOfLayers = DBlayer; } } for (TrackerGeometry::DetContainer::const_iterator pxf = TG->detsPXF().begin(); @@ -132,6 +143,9 @@ void SiPixelTrackResidualSource::dqmBeginRun(const edm::Run& r, edm::EventSetup if (dynamic_cast((*pxf))!=0) { SiPixelTrackResidualModule* module = new SiPixelTrackResidualModule((*pxf)->geographicalId().rawId()); theSiPixelStructure.insert(pair((*pxf)->geographicalId().rawId(), module)); + int DBdisk; + DBdisk = PixelEndcapName(DetId((*pxf)->geographicalId()),pTT,isUpgrade).diskName(); + if (noOfDisks < DBdisk) noOfDisks = DBdisk; } } LogInfo("PixelDQM") << "SiPixelStructure size is " << theSiPixelStructure.size() << endl; @@ -145,39 +159,38 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm pxd!=theSiPixelStructure.end(); pxd++) { if(modOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,0,isUpgrade)) (*pxd).second->book(pSet_,iBooker,reducedSet,0,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,0,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,0,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Folder Creation Failed! "; } if(ladOn){ if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,1,isUpgrade)) { - (*pxd).second->book(pSet_,iBooker,reducedSet,1,isUpgrade); + (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,1,isUpgrade); } else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource ladder Folder Creation Failed! "; } if(layOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,2,isUpgrade)) (*pxd).second->book(pSet_,iBooker,reducedSet,2,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,2,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,2,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource layer Folder Creation Failed! "; } if(phiOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,3,isUpgrade)) (*pxd).second->book(pSet_,iBooker,reducedSet,3,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,3,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,3,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource phi Folder Creation Failed! "; } if(bladeOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,4,isUpgrade)) (*pxd).second->book(pSet_,iBooker,reducedSet,4,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,4,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,4,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Blade Folder Creation Failed! "; } if(diskOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,5,isUpgrade)) (*pxd).second->book(pSet_,iBooker,reducedSet,5,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,5,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,5,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Disk Folder Creation Failed! "; } if(ringOn){ - if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,6,isUpgrade)) (*pxd).second->book(pSet_,iBooker,reducedSet,6,isUpgrade); + if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,6,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,6,isUpgrade); else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Ring Folder Creation Failed! "; } } - // edm::InputTag tracksrc = pSet_.getParameter("trajectoryInput"); // edm::InputTag clustersrc = pSet_.getParameter("clustersrc"); @@ -215,37 +228,33 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm //charge //on track iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack"); + std::stringstream ss1, ss2; meClChargeOnTrack_all = iBooker.book1D("charge_" + clustersrc_.label(),"Charge (on track)",500,0.,500.); meClChargeOnTrack_all->setAxisTitle("Charge size (in ke)",1); meClChargeOnTrack_bpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Barrel","Charge (on track, barrel)",500,0.,500.); meClChargeOnTrack_bpix->setAxisTitle("Charge size (in ke)",1); meClChargeOnTrack_fpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Endcap","Charge (on track, endcap)",500,0.,500.); meClChargeOnTrack_fpix->setAxisTitle("Charge size (in ke)",1); - meClChargeOnTrack_layer1 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_1","Charge (on track, layer1)",500,0.,500.); - meClChargeOnTrack_layer1->setAxisTitle("Charge size (in ke)",1); - meClChargeOnTrack_layer2 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_2","Charge (on track, layer2)",500,0.,500.); - meClChargeOnTrack_layer2->setAxisTitle("Charge size (in ke)",1); - meClChargeOnTrack_layer3 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_3","Charge (on track, layer3)",500,0.,500.); - meClChargeOnTrack_layer3->setAxisTitle("Charge size (in ke)",1); - if (isUpgrade) { - meClChargeOnTrack_layer4 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_4","Charge (on track, layer4)",500,0.,500.); - meClChargeOnTrack_layer4->setAxisTitle("Charge size (in ke)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Charge (on track, layer" << i << ")"; + meClChargeOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClChargeOnTrack_layers.at(i-1)->setAxisTitle("Charge size (in ke)",1); } - meClChargeOnTrack_diskp1 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_p1","Charge (on track, diskp1)",500,0.,500.); - meClChargeOnTrack_diskp1->setAxisTitle("Charge size (in ke)",1); - meClChargeOnTrack_diskp2 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_p2","Charge (on track, diskp2)",500,0.,500.); - meClChargeOnTrack_diskp2->setAxisTitle("Charge size (in ke)",1); - if (isUpgrade) { - meClChargeOnTrack_diskp3 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_p3","Charge (on track, diskp3)",500,0.,500.); - meClChargeOnTrack_diskp3->setAxisTitle("Charge size (in ke)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "Charge (on track, diskp" << i << ")"; + meClChargeOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClChargeOnTrack_diskps.at(i-1)->setAxisTitle("Charge size (in ke)",1); } - meClChargeOnTrack_diskm1 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_m1","Charge (on track, diskm1)",500,0.,500.); - meClChargeOnTrack_diskm1->setAxisTitle("Charge size (in ke)",1); - meClChargeOnTrack_diskm2 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_m2","Charge (on track, diskm2)",500,0.,500.); - meClChargeOnTrack_diskm2->setAxisTitle("Charge size (in ke)",1); - if (isUpgrade) { - meClChargeOnTrack_diskm3 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_m3","Charge (on track, diskm3)",500,0.,500.); - meClChargeOnTrack_diskm3->setAxisTitle("Charge size (in ke)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "Charge (on track, diskm" << i << ")"; + meClChargeOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClChargeOnTrack_diskms.at(i-1)->setAxisTitle("Charge size (in ke)",1); } //off track iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack"); @@ -255,31 +264,26 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClChargeNotOnTrack_bpix->setAxisTitle("Charge size (in ke)",1); meClChargeNotOnTrack_fpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Endcap","Charge (off track, endcap)",500,0.,500.); meClChargeNotOnTrack_fpix->setAxisTitle("Charge size (in ke)",1); - meClChargeNotOnTrack_layer1 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_1","Charge (off track, layer1)",500,0.,500.); - meClChargeNotOnTrack_layer1->setAxisTitle("Charge size (in ke)",1); - meClChargeNotOnTrack_layer2 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_2","Charge (off track, layer2)",500,0.,500.); - meClChargeNotOnTrack_layer2->setAxisTitle("Charge size (in ke)",1); - meClChargeNotOnTrack_layer3 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_3","Charge (off track, layer3)",500,0.,500.); - meClChargeNotOnTrack_layer3->setAxisTitle("Charge size (in ke)",1); - if (isUpgrade) { - meClChargeNotOnTrack_layer4 = iBooker.book1D("charge_" + clustersrc_.label() + "_Layer_4","Charge (off track, layer4)",500,0.,500.); - meClChargeNotOnTrack_layer4->setAxisTitle("Charge size (in ke)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Charge (off track, layer" << i << ")"; + meClChargeNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClChargeNotOnTrack_layers.at(i-1)->setAxisTitle("Charge size (in ke)",1); } - meClChargeNotOnTrack_diskp1 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_p1","Charge (off track, diskp1)",500,0.,500.); - meClChargeNotOnTrack_diskp1->setAxisTitle("Charge size (in ke)",1); - meClChargeNotOnTrack_diskp2 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_p2","Charge (off track, diskp2)",500,0.,500.); - meClChargeNotOnTrack_diskp2->setAxisTitle("Charge size (in ke)",1); - if (isUpgrade) { - meClChargeNotOnTrack_diskp3 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_p3","Charge (off track, diskp3)",500,0.,500.); - meClChargeNotOnTrack_diskp3->setAxisTitle("Charge size (in ke)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "Charge (off track, diskp" << i << ")"; + meClChargeNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClChargeNotOnTrack_diskps.at(i-1)->setAxisTitle("Charge size (in ke)",1); } - meClChargeNotOnTrack_diskm1 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_m1","Charge (off track, diskm1)",500,0.,500.); - meClChargeNotOnTrack_diskm1->setAxisTitle("Charge size (in ke)",1); - meClChargeNotOnTrack_diskm2 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_m2","Charge (off track, diskm2)",500,0.,500.); - meClChargeNotOnTrack_diskm2->setAxisTitle("Charge size (in ke)",1); - if (isUpgrade) { - meClChargeNotOnTrack_diskm3 = iBooker.book1D("charge_" + clustersrc_.label() + "_Disk_m3","Charge (off track, diskm3)",500,0.,500.); - meClChargeNotOnTrack_diskm3->setAxisTitle("Charge size (in ke)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "Charge (off track, diskm" << i << ")"; + meClChargeNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClChargeNotOnTrack_diskms.at(i-1)->setAxisTitle("Charge size (in ke)",1); } //size @@ -291,31 +295,26 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClSizeOnTrack_bpix->setAxisTitle("Cluster size (in pixels)",1); meClSizeOnTrack_fpix = iBooker.book1D("size_" + clustersrc_.label() + "_Endcap","Size (on track, endcap)",100,0.,100.); meClSizeOnTrack_fpix->setAxisTitle("Cluster size (in pixels)",1); - meClSizeOnTrack_layer1 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_1","Size (on track, layer1)",100,0.,100.); - meClSizeOnTrack_layer1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeOnTrack_layer2 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_2","Size (on track, layer2)",100,0.,100.); - meClSizeOnTrack_layer2->setAxisTitle("Cluster size (in pixels)",1); - meClSizeOnTrack_layer3 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_3","Size (on track, layer3)",100,0.,100.); - meClSizeOnTrack_layer3->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeOnTrack_layer4 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_4","Size (on track, layer4)",100,0.,100.); - meClSizeOnTrack_layer4->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Size (on track, layer" << i << ")"; + meClSizeOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeOnTrack_diskp1 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_p1","Size (on track, diskp1)",100,0.,100.); - meClSizeOnTrack_diskp1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeOnTrack_diskp2 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_p2","Size (on track, diskp2)",100,0.,100.); - meClSizeOnTrack_diskp2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeOnTrack_diskp3 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_p3","Size (on track, diskp3)",100,0.,100.); - meClSizeOnTrack_diskp3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "Size (on track, diskp" << i << ")"; + meClSizeOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeOnTrack_diskm1 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_m1","Size (on track, diskm1)",100,0.,100.); - meClSizeOnTrack_diskm1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeOnTrack_diskm2 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_m2","Size (on track, diskm2)",100,0.,100.); - meClSizeOnTrack_diskm2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeOnTrack_diskm3 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_m3","Size (on track, diskm3)",100,0.,100.); - meClSizeOnTrack_diskm3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_m1" << i; + ss2.str(std::string()); ss2 << "Size (on track, diskm" << i << ")"; + meClSizeOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } meClSizeXOnTrack_all = iBooker.book1D("sizeX_" + clustersrc_.label(),"SizeX (on track)",100,0.,100.); meClSizeXOnTrack_all->setAxisTitle("Cluster sizeX (in pixels)",1); @@ -323,31 +322,26 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClSizeXOnTrack_bpix->setAxisTitle("Cluster sizeX (in pixels)",1); meClSizeXOnTrack_fpix = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Endcap","SizeX (on track, endcap)",100,0.,100.); meClSizeXOnTrack_fpix->setAxisTitle("Cluster sizeX (in pixels)",1); - meClSizeXOnTrack_layer1 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_1","SizeX (on track, layer1)",100,0.,100.); - meClSizeXOnTrack_layer1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXOnTrack_layer2 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_2","SizeX (on track, layer2)",100,0.,100.); - meClSizeXOnTrack_layer2->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXOnTrack_layer3 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_3","SizeX (on track, layer3)",100,0.,100.); - meClSizeXOnTrack_layer3->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeXOnTrack_layer4 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_4","SizeX (on track, layer4)",100,0.,100.); - meClSizeXOnTrack_layer4->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "SizeX (on track, layer" << i << ")"; + meClSizeXOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeXOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeXOnTrack_diskp1 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_p1","SizeX (on track, diskp1)",100,0.,100.); - meClSizeXOnTrack_diskp1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXOnTrack_diskp2 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_p2","SizeX (on track, diskp2)",100,0.,100.); - meClSizeXOnTrack_diskp2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeXOnTrack_diskp3 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_p3","SizeX (on track, diskp3)",100,0.,100.); - meClSizeXOnTrack_diskp3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "SizeX (on track, diskp" << i << ")"; + meClSizeXOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeXOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeXOnTrack_diskm1 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_m1","SizeX (on track, diskm1)",100,0.,100.); - meClSizeXOnTrack_diskm1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXOnTrack_diskm2 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_m2","SizeX (on track, diskm2)",100,0.,100.); - meClSizeXOnTrack_diskm2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeXOnTrack_diskm3 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_m3","SizeX (on track, diskm3)",100,0.,100.); - meClSizeXOnTrack_diskm3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "SizeX (on track, diskm" << i << ")"; + meClSizeXOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeXOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } meClSizeYOnTrack_all = iBooker.book1D("sizeY_" + clustersrc_.label(),"SizeY (on track)",100,0.,100.); meClSizeYOnTrack_all->setAxisTitle("Cluster sizeY (in pixels)",1); @@ -355,31 +349,26 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClSizeYOnTrack_bpix->setAxisTitle("Cluster sizeY (in pixels)",1); meClSizeYOnTrack_fpix = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Endcap","SizeY (on track, endcap)",100,0.,100.); meClSizeYOnTrack_fpix->setAxisTitle("Cluster sizeY (in pixels)",1); - meClSizeYOnTrack_layer1 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_1","SizeY (on track, layer1)",100,0.,100.); - meClSizeYOnTrack_layer1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYOnTrack_layer2 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_2","SizeY (on track, layer2)",100,0.,100.); - meClSizeYOnTrack_layer2->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYOnTrack_layer3 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_3","SizeY (on track, layer3)",100,0.,100.); - meClSizeYOnTrack_layer3->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeYOnTrack_layer4 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_4","SizeY (on track, layer4)",100,0.,100.); - meClSizeYOnTrack_layer4->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "SizeY (on track, layer" << i << ")"; + meClSizeYOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeYOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeYOnTrack_diskp1 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_p1","SizeY (on track, diskp1)",100,0.,100.); - meClSizeYOnTrack_diskp1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYOnTrack_diskp2 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_p2","SizeY (on track, diskp2)",100,0.,100.); - meClSizeYOnTrack_diskp2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeYOnTrack_diskp3 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_p3","SizeY (on track, diskp3)",100,0.,100.); - meClSizeYOnTrack_diskp3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "SizeY (on track, diskp" << i << ")"; + meClSizeYOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeYOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeYOnTrack_diskm1 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_m1","SizeY (on track, diskm1)",100,0.,100.); - meClSizeYOnTrack_diskm1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYOnTrack_diskm2 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_m2","SizeY (on track, diskm2)",100,0.,100.); - meClSizeYOnTrack_diskm2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeYOnTrack_diskm3 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_m3","SizeY (on track, diskm3)",100,0.,100.); - meClSizeYOnTrack_diskm3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "SizeY (on track, diskm" << i << ")"; + meClSizeYOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeYOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } //off track iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack"); @@ -389,31 +378,26 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClSizeNotOnTrack_bpix->setAxisTitle("Cluster size (in pixels)",1); meClSizeNotOnTrack_fpix = iBooker.book1D("size_" + clustersrc_.label() + "_Endcap","Size (off track, endcap)",100,0.,100.); meClSizeNotOnTrack_fpix->setAxisTitle("Cluster size (in pixels)",1); - meClSizeNotOnTrack_layer1 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_1","Size (off track, layer1)",100,0.,100.); - meClSizeNotOnTrack_layer1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeNotOnTrack_layer2 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_2","Size (off track, layer2)",100,0.,100.); - meClSizeNotOnTrack_layer2->setAxisTitle("Cluster size (in pixels)",1); - meClSizeNotOnTrack_layer3 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_3","Size (off track, layer3)",100,0.,100.); - meClSizeNotOnTrack_layer3->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeNotOnTrack_layer4 = iBooker.book1D("size_" + clustersrc_.label() + "_Layer_4","Size (off track, layer4)",100,0.,100.); - meClSizeNotOnTrack_layer4->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Size (off track, layer" << i << ")"; + meClSizeNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeNotOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeNotOnTrack_diskp1 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_p1","Size (off track, diskp1)",100,0.,100.); - meClSizeNotOnTrack_diskp1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeNotOnTrack_diskp2 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_p2","Size (off track, diskp2)",100,0.,100.); - meClSizeNotOnTrack_diskp2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeNotOnTrack_diskp3 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_p3","Size (off track, diskp3)",100,0.,100.); - meClSizeNotOnTrack_diskp3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "Size (off track, diskp" << i << ")"; + meClSizeNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeNotOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeNotOnTrack_diskm1 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_m1","Size (off track, diskm1)",100,0.,100.); - meClSizeNotOnTrack_diskm1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeNotOnTrack_diskm2 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_m2","Size (off track, diskm2)",100,0.,100.); - meClSizeNotOnTrack_diskm2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeNotOnTrack_diskm3 = iBooker.book1D("size_" + clustersrc_.label() + "_Disk_m3","Size (off track, diskm3)",100,0.,100.); - meClSizeNotOnTrack_diskm3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "Size (off track, diskm" << i << ")"; + meClSizeNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeNotOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } meClSizeXNotOnTrack_all = iBooker.book1D("sizeX_" + clustersrc_.label(),"SizeX (off track)",100,0.,100.); meClSizeXNotOnTrack_all->setAxisTitle("Cluster sizeX (in pixels)",1); @@ -421,31 +405,26 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClSizeXNotOnTrack_bpix->setAxisTitle("Cluster sizeX (in pixels)",1); meClSizeXNotOnTrack_fpix = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Endcap","SizeX (off track, endcap)",100,0.,100.); meClSizeXNotOnTrack_fpix->setAxisTitle("Cluster sizeX (in pixels)",1); - meClSizeXNotOnTrack_layer1 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_1","SizeX (off track, layer1)",100,0.,100.); - meClSizeXNotOnTrack_layer1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXNotOnTrack_layer2 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_2","SizeX (off track, layer2)",100,0.,100.); - meClSizeXNotOnTrack_layer2->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXNotOnTrack_layer3 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_3","SizeX (off track, layer3)",100,0.,100.); - meClSizeXNotOnTrack_layer3->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeXNotOnTrack_layer4 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Layer_4","SizeX (off track, layer4)",100,0.,100.); - meClSizeXNotOnTrack_layer4->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "SizeX (off track, layer" << i << ")"; + meClSizeXNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeXNotOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeXNotOnTrack_diskp1 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_p1","SizeX (off track, diskp1)",100,0.,100.); - meClSizeXNotOnTrack_diskp1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXNotOnTrack_diskp2 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_p2","SizeX (off track, diskp2)",100,0.,100.); - meClSizeXNotOnTrack_diskp2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeXNotOnTrack_diskp3 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_p3","SizeX (off track, diskp3)",100,0.,100.); - meClSizeXNotOnTrack_diskp3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "SizeX (off track, diskp" << i << ")"; + meClSizeXNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeXNotOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeXNotOnTrack_diskm1 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_m1","SizeX (off track, diskm1)",100,0.,100.); - meClSizeXNotOnTrack_diskm1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeXNotOnTrack_diskm2 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_m2","SizeX (off track, diskm2)",100,0.,100.); - meClSizeXNotOnTrack_diskm2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeXNotOnTrack_diskm3 = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Disk_m3","SizeX (off track, diskm3)",100,0.,100.); - meClSizeXNotOnTrack_diskm3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "SizeX (off track, diskm" << i << ")"; + meClSizeXNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeXNotOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } meClSizeYNotOnTrack_all = iBooker.book1D("sizeY_" + clustersrc_.label(),"SizeY (off track)",100,0.,100.); meClSizeYNotOnTrack_all->setAxisTitle("Cluster sizeY (in pixels)",1); @@ -453,73 +432,56 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meClSizeYNotOnTrack_bpix->setAxisTitle("Cluster sizeY (in pixels)",1); meClSizeYNotOnTrack_fpix = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Endcap","SizeY (off track, endcap)",100,0.,100.); meClSizeYNotOnTrack_fpix->setAxisTitle("Cluster sizeY (in pixels)",1); - meClSizeYNotOnTrack_layer1 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_1","SizeY (off track, layer1)",100,0.,100.); - meClSizeYNotOnTrack_layer1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYNotOnTrack_layer2 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_2","SizeY (off track, layer2)",100,0.,100.); - meClSizeYNotOnTrack_layer2->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYNotOnTrack_layer3 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_3","SizeY (off track, layer3)",100,0.,100.); - meClSizeYNotOnTrack_layer3->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeYNotOnTrack_layer4 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Layer_4","SizeY (off track, layer4)",100,0.,100.); - meClSizeYNotOnTrack_layer4->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "SizeY (off track, layer" << i << ")"; + meClSizeYNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeYNotOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeYNotOnTrack_diskp1 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_p1","SizeY (off track, diskp1)",100,0.,100.); - meClSizeYNotOnTrack_diskp1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYNotOnTrack_diskp2 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_p2","SizeY (off track, diskp2)",100,0.,100.); - meClSizeYNotOnTrack_diskp2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeYNotOnTrack_diskp3 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_p3","SizeY (off track, diskp3)",100,0.,100.); - meClSizeYNotOnTrack_diskp3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "SizeY (off track, diskp" << i << ")"; + meClSizeYNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeYNotOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } - meClSizeYNotOnTrack_diskm1 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_m1","SizeY (off track, diskm1)",100,0.,100.); - meClSizeYNotOnTrack_diskm1->setAxisTitle("Cluster size (in pixels)",1); - meClSizeYNotOnTrack_diskm2 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_m2","SizeY (off track, diskm2)",100,0.,100.); - meClSizeYNotOnTrack_diskm2->setAxisTitle("Cluster size (in pixels)",1); - if (isUpgrade) { - meClSizeYNotOnTrack_diskm3 = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Disk_m3","SizeY (off track, diskm3)",100,0.,100.); - meClSizeYNotOnTrack_diskm3->setAxisTitle("Cluster size (in pixels)",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "SizeY (off track, diskm" << i << ")"; + meClSizeYNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meClSizeYNotOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1); } //cluster global position //on track iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack"); //bpix - meClPosLayer1OnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_1","Clusters Layer1 (on track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer1OnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer1OnTrack->setAxisTitle("Global #phi",2); - meClPosLayer2OnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_2","Clusters Layer2 (on track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer2OnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer2OnTrack->setAxisTitle("Global #phi",2); - meClPosLayer3OnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_3","Clusters Layer3 (on track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer3OnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer3OnTrack->setAxisTitle("Global #phi",2); - if (isUpgrade) { - meClPosLayer4OnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_4","Clusters Layer4 (on track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer4OnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer4OnTrack->setAxisTitle("Global #phi",2); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Clusters Layer" << i << " (on track)"; + meClPosLayersOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),200,-30.,30.,128,-3.2,3.2)); + meClPosLayersOnTrack.at(i-1)->setAxisTitle("Global Z (cm)",1); + meClPosLayersOnTrack.at(i-1)->setAxisTitle("Global #phi",2); } //fpix - meClPosDisk1pzOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_pz_Disk_1","Clusters +Z Disk1 (on track)",80,-20.,20.,80,-20.,20.); - meClPosDisk1pzOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk1pzOnTrack->setAxisTitle("Global Y (cm)",2); - meClPosDisk2pzOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_pz_Disk_2","Clusters +Z Disk2 (on track)",80,-20.,20.,80,-20.,20.); - meClPosDisk2pzOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk2pzOnTrack->setAxisTitle("Global Y (cm)",2); - if (isUpgrade) { - meClPosDisk3pzOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_pz_Disk_3","Clusters +Z Disk3 (on track)",80,-20.,20.,80,-20.,20.); - meClPosDisk3pzOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk3pzOnTrack->setAxisTitle("Global Y (cm)",2); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_pz_Disk_" << i; + ss2.str(std::string()); ss2 << "Clusters +Z Disk" << i << " (on track)"; + meClPosDiskspzOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.)); + meClPosDiskspzOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1); + meClPosDiskspzOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2); } - meClPosDisk1mzOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_mz_Disk_1","Clusters -Z Disk1 (on track)",80,-20.,20.,80,-20.,20.); - meClPosDisk1mzOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk1mzOnTrack->setAxisTitle("Global Y (cm)",2); - meClPosDisk2mzOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_mz_Disk_2","Clusters -Z Disk2 (on track)",80,-20.,20.,80,-20.,20.); - meClPosDisk2mzOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk2mzOnTrack->setAxisTitle("Global Y (cm)",2); - if (isUpgrade) { - meClPosDisk3mzOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_mz_Disk_3","Clusters -Z Disk3 (on track)",80,-20.,20.,80,-20.,20.); - meClPosDisk3mzOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk3mzOnTrack->setAxisTitle("Global Y (cm)",2); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_mz_Disk_" << i; + ss2.str(std::string()); ss2 << "Clusters -Z Disk" << i << " (on track)"; + meClPosDisksmzOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.)); + meClPosDisksmzOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1); + meClPosDisksmzOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2); } meNClustersOnTrack_all = iBooker.book1D("nclusters_" + clustersrc_.label(),"Number of Clusters (on Track)",50,0.,50.); meNClustersOnTrack_all->setAxisTitle("Number of Clusters",1); @@ -527,72 +489,55 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meNClustersOnTrack_bpix->setAxisTitle("Number of Clusters",1); meNClustersOnTrack_fpix = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Endcap","Number of Clusters (on track, endcap)",50,0.,50.); meNClustersOnTrack_fpix->setAxisTitle("Number of Clusters",1); - meNClustersOnTrack_layer1 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_1","Number of Clusters (on track, layer1)",50,0.,50.); - meNClustersOnTrack_layer1->setAxisTitle("Number of Clusters",1); - meNClustersOnTrack_layer2 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_2","Number of Clusters (on track, layer2)",50,0.,50.); - meNClustersOnTrack_layer2->setAxisTitle("Number of Clusters",1); - meNClustersOnTrack_layer3 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_3","Number of Clusters (on track, layer3)",50,0.,50.); - meNClustersOnTrack_layer3->setAxisTitle("Number of Clusters",1); - if (isUpgrade) { - meNClustersOnTrack_layer4 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_4","Number of Clusters (on track, layer4)",50,0.,50.); - meNClustersOnTrack_layer4->setAxisTitle("Number of Clusters",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Number of Clusters (on track, layer" << i << ")"; + meNClustersOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meNClustersOnTrack_layers.at(i-1)->setAxisTitle("Number of Clusters",1); } - meNClustersOnTrack_diskp1 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_p1","Number of Clusters (on track, diskp1)",50,0.,50.); - meNClustersOnTrack_diskp1->setAxisTitle("Number of Clusters",1); - meNClustersOnTrack_diskp2 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_p2","Number of Clusters (on track, diskp2)",50,0.,50.); - meNClustersOnTrack_diskp2->setAxisTitle("Number of Clusters",1); - if (isUpgrade) { - meNClustersOnTrack_diskp3 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_p3","Number of Clusters (on track, diskp3)",50,0.,50.); - meNClustersOnTrack_diskp3->setAxisTitle("Number of Clusters",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "Number of Clusters (on track, diskp" << i << ")"; + meNClustersOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),50,0.,50.)); + meNClustersOnTrack_diskps.at(i-1)->setAxisTitle("Number of Clusters",1); } - meNClustersOnTrack_diskm1 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_m1","Number of Clusters (on track, diskm1)",50,0.,50.); - meNClustersOnTrack_diskm1->setAxisTitle("Number of Clusters",1); - meNClustersOnTrack_diskm2 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_m2","Number of Clusters (on track, diskm2)",50,0.,50.); - meNClustersOnTrack_diskm2->setAxisTitle("Number of Clusters",1); - if (isUpgrade) { - meNClustersOnTrack_diskm3 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_m3","Number of Clusters (on track, diskm3)",50,0.,50.); - meNClustersOnTrack_diskm3->setAxisTitle("Number of Clusters",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "Number of Clusters (on track, diskm" << i << ")"; + meNClustersOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meNClustersOnTrack_diskms.at(i-1)->setAxisTitle("Number of Clusters",1); } //not on track iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack"); //bpix - meClPosLayer1NotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_1","Clusters Layer1 (off track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer1NotOnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer1NotOnTrack->setAxisTitle("Global #phi",2); - meClPosLayer2NotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_2","Clusters Layer2 (off track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer2NotOnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer2NotOnTrack->setAxisTitle("Global #phi",2); - meClPosLayer3NotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_3","Clusters Layer3 (off track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer3NotOnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer3NotOnTrack->setAxisTitle("Global #phi",2); - if (isUpgrade) { - meClPosLayer4NotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_Layer_4","Clusters Layer4 (off track)",200,-30.,30.,128,-3.2,3.2); - meClPosLayer4NotOnTrack->setAxisTitle("Global Z (cm)",1); - meClPosLayer4NotOnTrack->setAxisTitle("Global #phi",2); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Clusters Layer" << i << " (off track)"; + meClPosLayersNotOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),200,-30.,30.,128,-3.2,3.2)); + meClPosLayersNotOnTrack.at(i-1)->setAxisTitle("Global Z (cm)",1); + meClPosLayersNotOnTrack.at(i-1)->setAxisTitle("Global #phi",2); } //fpix - meClPosDisk1pzNotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_pz_Disk_1","Clusters +Z Disk1 (off track)",80,-20.,20.,80,-20.,20.); - meClPosDisk1pzNotOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk1pzNotOnTrack->setAxisTitle("Global Y (cm)",2); - meClPosDisk2pzNotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_pz_Disk_2","Clusters +Z Disk2 (off track)",80,-20.,20.,80,-20.,20.); - meClPosDisk2pzNotOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk2pzNotOnTrack->setAxisTitle("Global Y (cm)",2); - if (isUpgrade) { - meClPosDisk3pzNotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_pz_Disk_3","Clusters +Z Disk3 (off track)",80,-20.,20.,80,-20.,20.); - meClPosDisk3pzNotOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk3pzNotOnTrack->setAxisTitle("Global Y (cm)",2); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_pz_Disk_" << i; + ss2.str(std::string()); ss2 << "Clusters +Z Disk" << i << " (off track)"; + meClPosDiskspzNotOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.)); + meClPosDiskspzNotOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1); + meClPosDiskspzNotOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2); } - meClPosDisk1mzNotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_mz_Disk_1","Clusters -Z Disk1 (off track)",80,-20.,20.,80,-20.,20.); - meClPosDisk1mzNotOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk1mzNotOnTrack->setAxisTitle("Global Y (cm)",2); - meClPosDisk2mzNotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_mz_Disk_2","Clusters -Z Disk2 (off track)",80,-20.,20.,80,-20.,20.); - meClPosDisk2mzNotOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk2mzNotOnTrack->setAxisTitle("Global Y (cm)",2); - if (isUpgrade) { - meClPosDisk3mzNotOnTrack = iBooker.book2D("position_" + clustersrc_.label() + "_mz_Disk_3","Clusters -Z Disk3 (off track)",80,-20.,20.,80,-20.,20.); - meClPosDisk3mzNotOnTrack->setAxisTitle("Global X (cm)",1); - meClPosDisk3mzNotOnTrack->setAxisTitle("Global Y (cm)",2); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_mz_Disk_" << i; + ss2.str(std::string()); ss2 << "Clusters -Z Disk" << i << " (off track)"; + meClPosDisksmzNotOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.)); + meClPosDisksmzNotOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1); + meClPosDisksmzNotOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2); } meNClustersNotOnTrack_all = iBooker.book1D("nclusters_" + clustersrc_.label(),"Number of Clusters (off Track)",50,0.,50.); meNClustersNotOnTrack_all->setAxisTitle("Number of Clusters",1); @@ -600,33 +545,28 @@ void SiPixelTrackResidualSource::bookHistograms(DQMStore::IBooker & iBooker, edm meNClustersNotOnTrack_bpix->setAxisTitle("Number of Clusters",1); meNClustersNotOnTrack_fpix = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Endcap","Number of Clusters (off track, endcap)",50,0.,50.); meNClustersNotOnTrack_fpix->setAxisTitle("Number of Clusters",1); - meNClustersNotOnTrack_layer1 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_1","Number of Clusters (off track, layer1)",50,0.,50.); - meNClustersNotOnTrack_layer1->setAxisTitle("Number of Clusters",1); - meNClustersNotOnTrack_layer2 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_2","Number of Clusters (off track, layer2)",50,0.,50.); - meNClustersNotOnTrack_layer2->setAxisTitle("Number of Clusters",1); - meNClustersNotOnTrack_layer3 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_3","Number of Clusters (off track, layer3)",50,0.,50.); - meNClustersNotOnTrack_layer3->setAxisTitle("Number of Clusters",1); - if (isUpgrade) { - meNClustersNotOnTrack_layer4 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Layer_4","Number of Clusters (off track, layer4)",50,0.,50.); - meNClustersNotOnTrack_layer4->setAxisTitle("Number of Clusters",1); + for (int i = 1; i <= noOfLayers; i++) + { + ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Layer_" << i; + ss2.str(std::string()); ss2 << "Number of Clusters (off track, layer" << i << ")"; + meNClustersNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meNClustersNotOnTrack_layers.at(i-1)->setAxisTitle("Number of Clusters",1); } - meNClustersNotOnTrack_diskp1 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_p1","Number of Clusters (off track, diskp1)",50,0.,50.); - meNClustersNotOnTrack_diskp1->setAxisTitle("Number of Clusters",1); - meNClustersNotOnTrack_diskp2 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_p2","Number of Clusters (off track, diskp2)",50,0.,50.); - meNClustersNotOnTrack_diskp2->setAxisTitle("Number of Clusters",1); - if (isUpgrade) { - meNClustersNotOnTrack_diskp3 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_p3","Number of Clusters (off track, diskp3)",50,0.,50.); - meNClustersNotOnTrack_diskp3->setAxisTitle("Number of Clusters",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_p" << i; + ss2.str(std::string()); ss2 << "Number of Clusters (off track, diskp" << i << ")"; + meNClustersNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meNClustersNotOnTrack_diskps.at(i-1)->setAxisTitle("Number of Clusters",1); } - meNClustersNotOnTrack_diskm1 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_m1","Number of Clusters (off track, diskm1)",50,0.,50.); - meNClustersNotOnTrack_diskm1->setAxisTitle("Number of Clusters",1); - meNClustersNotOnTrack_diskm2 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_m2","Number of Clusters (off track, diskm2)",50,0.,50.); - meNClustersNotOnTrack_diskm2->setAxisTitle("Number of Clusters",1); - if (isUpgrade) { - meNClustersNotOnTrack_diskm3 = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Disk_m3","Number of Clusters (off track, diskm3)",50,0.,50.); - meNClustersNotOnTrack_diskm3->setAxisTitle("Number of Clusters",1); + for (int i = 1; i <= noOfDisks; i++) + { + ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_m" << i; + ss2.str(std::string()); ss2 << "Number of Clusters (off track, diskm" << i << ")"; + meNClustersNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.)); + meNClustersNotOnTrack_diskms.at(i-1)->setAxisTitle("Number of Clusters",1); + } - //HitProbability //on track iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack"); @@ -654,8 +594,6 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev edm::ESHandle tTopoHandle; iSetup.get().get(tTopoHandle); const TrackerTopology* const tTopo = tTopoHandle.product(); - - // retrieve TrackerGeometry again and MagneticField for use in transforming // a TrackCandidate's P(ersistent)TrajectoryStateoOnDet (PTSoD) to a TrajectoryStateOnSurface (TSoS) @@ -994,7 +932,7 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev uint IntSubDetID = (hit_detId.subdetId()); if(IntSubDetID == 0 ) continue; // don't look at SiStrip hits! - + // get the enclosed persistent hit const TrackingRecHit *persistentHit = hit->hit(); // check if it's not null, and if it's a valid pixel hit @@ -1013,18 +951,20 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev // get the edm::Ref to the cluster edm::Ref, SiPixelCluster> const& clust = (*pixhit).cluster(); + // check if the ref is not null if (clust.isNonnull()) { - + //define tracker and pixel geometry and topology const TrackerGeometry& theTracker(*theTrackerGeometry); const PixelGeomDetUnit* theGeomDet = static_cast (theTracker.idToDet(hit_detId) ); + //test if PixelGeomDetUnit exists if(theGeomDet == 0) { if(debug_) std::cout << "NO THEGEOMDET\n"; continue; } - + const PixelTopology * topol = &(theGeomDet->specificTopology()); //fill histograms for clusters on tracks //correct SiPixelTrackResidualModule @@ -1034,14 +974,14 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev // calculate alpha and beta from cluster position LocalTrajectoryParameters ltp = tsos.localParameters(); LocalVector localDir = ltp.momentum()/ltp.momentum().mag(); - + float clust_alpha = atan2(localDir.z(), localDir.x()); float clust_beta = atan2(localDir.z(), localDir.y()); double corrCharge = clust->charge() * sqrt( 1.0 / ( 1.0/pow( tan(clust_alpha), 2 ) + 1.0/pow( tan(clust_beta ), 2 ) + 1.0 ) )/1000.; - + if (pxd!=theSiPixelStructure.end()) (*pxd).second->fill((*clust), true, corrCharge, reducedSet, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn); @@ -1052,7 +992,7 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev meClSizeXOnTrack_all->Fill((*clust).sizeX()); meClSizeYOnTrack_all->Fill((*clust).sizeY()); clusterSet.insert(*clust); - + //find cluster global position (rphi, z) // get cluster center of gravity (of charge) float xcenter = clust->x(); @@ -1061,7 +1001,7 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev LocalPoint clustlp = topol->localPosition( MeasurementPoint(xcenter, ycenter) ); // get the cluster position in global coordinates (cm) GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp ); - + //find location of hit (barrel or endcap, same for cluster) bool barrel = DetId((*hit).geographicalId()).subdetId() == static_cast(PixelSubdetector::PixelBarrel); bool endcap = DetId((*hit).geographicalId()).subdetId() == static_cast(PixelSubdetector::PixelEndcap); @@ -1072,49 +1012,16 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev meClSizeOnTrack_bpix->Fill((*clust).size()); meClSizeXOnTrack_bpix->Fill((*clust).sizeX()); meClSizeYOnTrack_bpix->Fill((*clust).sizeY()); - uint32_t DBlayer; - if (!isUpgrade) { DBlayer = PixelBarrelName(DetId((*hit).geographicalId())).layerName(); } - else { DBlayer = PixelBarrelNameUpgrade(DetId((*hit).geographicalId())).layerName(); } float phi = clustgp.phi(); float z = clustgp.z(); - switch(DBlayer){ - case 1: { - meClPosLayer1OnTrack->Fill(z,phi); - meClChargeOnTrack_layer1->Fill(corrCharge); - meClSizeOnTrack_layer1->Fill((*clust).size()); - meClSizeXOnTrack_layer1->Fill((*clust).sizeX()); - meClSizeYOnTrack_layer1->Fill((*clust).sizeY()); - break; - } - case 2: { - meClPosLayer2OnTrack->Fill(z,phi); - meClChargeOnTrack_layer2->Fill(corrCharge); - meClSizeOnTrack_layer2->Fill((*clust).size()); - meClSizeXOnTrack_layer2->Fill((*clust).sizeX()); - meClSizeYOnTrack_layer2->Fill((*clust).sizeY()); - break; - } - case 3: { - meClPosLayer3OnTrack->Fill(z,phi); - meClChargeOnTrack_layer3->Fill(corrCharge); - meClSizeOnTrack_layer3->Fill((*clust).size()); - meClSizeXOnTrack_layer3->Fill((*clust).sizeX()); - meClSizeYOnTrack_layer3->Fill((*clust).sizeY()); - break; - } - case 4: { - if (isUpgrade) { - meClPosLayer4OnTrack->Fill(z,phi); - meClChargeOnTrack_layer4->Fill(corrCharge); - meClSizeOnTrack_layer4->Fill((*clust).size()); - meClSizeXOnTrack_layer4->Fill((*clust).sizeX()); - meClSizeYOnTrack_layer4->Fill((*clust).sizeY()); + for (int i = 0; i < noOfLayers; i++) + { + meClPosLayersOnTrack.at(i)->Fill(z,phi); + meClChargeOnTrack_layers.at(i)->Fill(corrCharge); + meClSizeOnTrack_layers.at(i)->Fill((*clust).size()); + meClSizeXOnTrack_layers.at(i)->Fill((*clust).sizeX()); + meClSizeYOnTrack_layers.at(i)->Fill((*clust).sizeY()); } - break; - } - - } - } if(endcap) { endcaptrackclusters++; @@ -1123,57 +1030,28 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev meClSizeOnTrack_fpix->Fill((*clust).size()); meClSizeXOnTrack_fpix->Fill((*clust).sizeX()); meClSizeYOnTrack_fpix->Fill((*clust).sizeY()); - uint32_t DBdisk = 0; - if (!isUpgrade) { DBdisk = PixelEndcapName(DetId((*hit).geographicalId())).diskName(); } - else { DBdisk = PixelEndcapNameUpgrade(DetId((*hit).geographicalId())).diskName(); } float x = clustgp.x(); float y = clustgp.y(); float z = clustgp.z(); if(z>0){ - if(DBdisk==1) { - meClPosDisk1pzOnTrack->Fill(x,y); - meClChargeOnTrack_diskp1->Fill(corrCharge); - meClSizeOnTrack_diskp1->Fill((*clust).size()); - meClSizeXOnTrack_diskp1->Fill((*clust).sizeX()); - meClSizeYOnTrack_diskp1->Fill((*clust).sizeY()); - } - if(DBdisk==2) { - meClPosDisk2pzOnTrack->Fill(x,y); - meClChargeOnTrack_diskp2->Fill(corrCharge); - meClSizeOnTrack_diskp2->Fill((*clust).size()); - meClSizeXOnTrack_diskp2->Fill((*clust).sizeX()); - meClSizeYOnTrack_diskp2->Fill((*clust).sizeY()); - } - if(DBdisk==3 && isUpgrade) { - meClPosDisk3pzOnTrack->Fill(x,y); - meClChargeOnTrack_diskp3->Fill(corrCharge); - meClSizeOnTrack_diskp3->Fill((*clust).size()); - meClSizeXOnTrack_diskp3->Fill((*clust).sizeX()); - meClSizeYOnTrack_diskp3->Fill((*clust).sizeY()); - } + for (int i = 0; i < noOfDisks; i++) + { + meClPosDiskspzOnTrack.at(i)->Fill(x,y); + meClChargeOnTrack_diskps.at(i)->Fill(corrCharge); + meClSizeOnTrack_diskps.at(i)->Fill((*clust).size()); + meClSizeXOnTrack_diskps.at(i)->Fill((*clust).sizeX()); + meClSizeYOnTrack_diskps.at(i)->Fill((*clust).sizeY()); + } } else{ - if(DBdisk==1) { - meClPosDisk1mzOnTrack->Fill(x,y); - meClChargeOnTrack_diskm1->Fill(corrCharge); - meClSizeOnTrack_diskm1->Fill((*clust).size()); - meClSizeXOnTrack_diskm1->Fill((*clust).sizeX()); - meClSizeYOnTrack_diskm1->Fill((*clust).sizeY()); - } - if(DBdisk==2) { - meClPosDisk2mzOnTrack->Fill(x,y); - meClChargeOnTrack_diskm2->Fill(corrCharge); - meClSizeOnTrack_diskm2->Fill((*clust).size()); - meClSizeXOnTrack_diskm2->Fill((*clust).sizeX()); - meClSizeYOnTrack_diskm2->Fill((*clust).sizeY()); - } - if(DBdisk==3 && isUpgrade) { - meClPosDisk3mzOnTrack->Fill(x,y); - meClChargeOnTrack_diskm3->Fill(corrCharge); - meClSizeOnTrack_diskm3->Fill((*clust).size()); - meClSizeXOnTrack_diskm3->Fill((*clust).sizeX()); - meClSizeYOnTrack_diskm3->Fill((*clust).sizeY()); - } + for (int i = 0; i < noOfDisks; i++) + { + meClPosDisksmzOnTrack.at(i)->Fill(x,y); + meClChargeOnTrack_diskms.at(i)->Fill(corrCharge); + meClSizeOnTrack_diskms.at(i)->Fill((*clust).size()); + meClSizeXOnTrack_diskms.at(i)->Fill((*clust).sizeX()); + meClSizeYOnTrack_diskms.at(i)->Fill((*clust).sizeY()); + } } } @@ -1202,20 +1080,7 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev DetId detId = (*it)->geographicalId(); if(detId>=302055684 && detId<=352477708){ // make sure it's a Pixel module WITHOUT using dynamic_cast! int nofclOnTrack = 0, nofclOffTrack=0; - uint32_t DBlayer=10, DBdisk=10; float z=0.; - //set layer/disk - if(DetId(detId).subdetId() == 1) { // Barrel module - if (!isUpgrade) { - DBlayer = PixelBarrelName(DetId(detId)).layerName(); - } else if (isUpgrade) { - DBlayer = PixelBarrelNameUpgrade(DetId(detId)).layerName(); - } - } - if(DetId(detId).subdetId() == 2){ // Endcap module - if (!isUpgrade) { DBdisk = PixelEndcapName(DetId(detId )).diskName(); } - else if (isUpgrade) { DBdisk = PixelEndcapNameUpgrade(DetId(detId )).diskName(); } - } edmNew::DetSetVector::const_iterator isearch = clustColl.find(detId); if( isearch != clustColl.end() ) { // Not an empty iterator edmNew::DetSet::const_iterator di; @@ -1272,43 +1137,14 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev float phi = clustgp.phi(); //float r = clustgp.perp(); z = clustgp.z(); - switch(DBlayer){ - case 1: { - meClPosLayer1NotOnTrack->Fill(z,phi); - meClSizeNotOnTrack_layer1->Fill((*di).size()); - meClSizeXNotOnTrack_layer1->Fill((*di).sizeX()); - meClSizeYNotOnTrack_layer1->Fill((*di).sizeY()); - meClChargeNotOnTrack_layer1->Fill((*di).charge()/1000); - break; - } - case 2: { - meClPosLayer2NotOnTrack->Fill(z,phi); - meClSizeNotOnTrack_layer2->Fill((*di).size()); - meClSizeXNotOnTrack_layer2->Fill((*di).sizeX()); - meClSizeYNotOnTrack_layer2->Fill((*di).sizeY()); - meClChargeNotOnTrack_layer2->Fill((*di).charge()/1000); - break; - } - case 3: { - meClPosLayer3NotOnTrack->Fill(z,phi); - meClSizeNotOnTrack_layer3->Fill((*di).size()); - meClSizeXNotOnTrack_layer3->Fill((*di).sizeX()); - meClSizeYNotOnTrack_layer3->Fill((*di).sizeY()); - meClChargeNotOnTrack_layer3->Fill((*di).charge()/1000); - break; - } - case 4: { - if (isUpgrade) { - meClPosLayer4NotOnTrack->Fill(z,phi); - meClSizeNotOnTrack_layer4->Fill((*di).size()); - meClSizeXNotOnTrack_layer4->Fill((*di).sizeX()); - meClSizeYNotOnTrack_layer4->Fill((*di).sizeY()); - meClChargeNotOnTrack_layer4->Fill((*di).charge()/1000); - } - break; - } - - } + for (int i = 0; i < noOfLayers; i++) + { + meClPosLayersNotOnTrack.at(i)->Fill(z,phi); + meClSizeNotOnTrack_layers.at(i)->Fill((*di).size()); + meClSizeXNotOnTrack_layers.at(i)->Fill((*di).sizeX()); + meClSizeYNotOnTrack_layers.at(i)->Fill((*di).sizeY()); + meClChargeNotOnTrack_layers.at(i)->Fill((*di).charge()/1000); + } } //endcap if(DetId(detId).subdetId() == 2) { @@ -1322,57 +1158,31 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev float y = clustgp.y(); z = clustgp.z(); if(z>0){ - if(DBdisk==1) { - meClPosDisk1pzNotOnTrack->Fill(x,y); - meClSizeNotOnTrack_diskp1->Fill((*di).size()); - meClSizeXNotOnTrack_diskp1->Fill((*di).sizeX()); - meClSizeYNotOnTrack_diskp1->Fill((*di).sizeY()); - meClChargeNotOnTrack_diskp1->Fill((*di).charge()/1000); - } - if(DBdisk==2) { - meClPosDisk2pzNotOnTrack->Fill(x,y); - meClSizeNotOnTrack_diskp2->Fill((*di).size()); - meClSizeXNotOnTrack_diskp2->Fill((*di).sizeX()); - meClSizeYNotOnTrack_diskp2->Fill((*di).sizeY()); - meClChargeNotOnTrack_diskp2->Fill((*di).charge()/1000); - } - if(DBdisk==3 && isUpgrade) { - meClPosDisk3pzNotOnTrack->Fill(x,y); - meClSizeNotOnTrack_diskp3->Fill((*di).size()); - meClSizeXNotOnTrack_diskp3->Fill((*di).sizeX()); - meClSizeYNotOnTrack_diskp3->Fill((*di).sizeY()); - meClChargeNotOnTrack_diskp3->Fill((*di).charge()/1000); - } + for (int i = 0; i < noOfDisks; i++) + { + meClPosDiskspzNotOnTrack.at(i)->Fill(x,y); + meClSizeNotOnTrack_diskps.at(i)->Fill((*di).size()); + meClSizeXNotOnTrack_diskps.at(i)->Fill((*di).sizeX()); + meClSizeYNotOnTrack_diskps.at(i)->Fill((*di).sizeY()); + meClChargeNotOnTrack_diskps.at(i)->Fill((*di).charge()/1000); + } } else{ - if(DBdisk==1) { - meClPosDisk1mzNotOnTrack->Fill(x,y); - meClSizeNotOnTrack_diskm1->Fill((*di).size()); - meClSizeXNotOnTrack_diskm1->Fill((*di).sizeX()); - meClSizeYNotOnTrack_diskm1->Fill((*di).sizeY()); - meClChargeNotOnTrack_diskm1->Fill((*di).charge()/1000); - } - if(DBdisk==2) { - meClPosDisk2mzNotOnTrack->Fill(x,y); - meClSizeNotOnTrack_diskm2->Fill((*di).size()); - meClSizeXNotOnTrack_diskm2->Fill((*di).sizeX()); - meClSizeYNotOnTrack_diskm2->Fill((*di).sizeY()); - meClChargeNotOnTrack_diskm2->Fill((*di).charge()/1000); - } - if(DBdisk==3 && isUpgrade) { - meClPosDisk3mzNotOnTrack->Fill(x,y); - meClSizeNotOnTrack_diskm3->Fill((*di).size()); - meClSizeXNotOnTrack_diskm3->Fill((*di).sizeX()); - meClSizeYNotOnTrack_diskm3->Fill((*di).sizeY()); - meClChargeNotOnTrack_diskm3->Fill((*di).charge()/1000); - } + for (int i = 0; i < noOfDisks; i++) + { + meClPosDisksmzNotOnTrack.at(i)->Fill(x,y); + meClSizeNotOnTrack_diskms.at(i)->Fill((*di).size()); + meClSizeXNotOnTrack_diskms.at(i)->Fill((*di).sizeX()); + meClSizeYNotOnTrack_diskms.at(i)->Fill((*di).sizeY()); + meClChargeNotOnTrack_diskms.at(i)->Fill((*di).charge()/1000); + } } } }// end "if cluster off track" else { nofclOnTrack++; - if(z == 0 && DBdisk != 10){ + if(z == 0){ //find cluster global position (rphi, z) get cluster //define tracker and pixel geometry and topology const TrackerGeometry& theTracker(*theTrackerGeometry); @@ -1405,24 +1215,11 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev if(nofclOnTrack!=0) meNClustersOnTrack_bpix->Fill(nofclOnTrack); if(nofclOffTrack!=0) meNClustersNotOnTrack_bpix->Fill(nofclOffTrack); //DBlayer = PixelBarrelName(DetId(detId)).layerName(); - switch(DBlayer){ - case 1: { - if(nofclOnTrack!=0) meNClustersOnTrack_layer1->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_layer1->Fill(nofclOffTrack); break; - } - case 2: { - if(nofclOnTrack!=0) meNClustersOnTrack_layer2->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_layer2->Fill(nofclOffTrack); break; - } - case 3: { - if(nofclOnTrack!=0) meNClustersOnTrack_layer3->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_layer3->Fill(nofclOffTrack); break; - } - case 4: { - if(nofclOnTrack!=0 && isUpgrade) meNClustersOnTrack_layer4->Fill(nofclOnTrack); - if(nofclOffTrack!=0 && isUpgrade) meNClustersNotOnTrack_layer4->Fill(nofclOffTrack); break; - } - } + for (int i = 0; i < noOfLayers; i++) + { + if(nofclOnTrack!=0) meNClustersOnTrack_layers.at(i)->Fill(nofclOnTrack); + if(nofclOffTrack!=0) meNClustersNotOnTrack_layers.at(i)->Fill(nofclOffTrack); + } }//end barrel //endcap if(DetId(detId).subdetId() == 2) { @@ -1431,39 +1228,24 @@ void SiPixelTrackResidualSource::analyze(const edm::Event& iEvent, const edm::Ev if(nofclOnTrack!=0) meNClustersOnTrack_fpix->Fill(nofclOnTrack); if(nofclOffTrack!=0) meNClustersNotOnTrack_fpix->Fill(nofclOffTrack); if(z>0){ - if(DBdisk==1) { - if(nofclOnTrack!=0) meNClustersOnTrack_diskp1->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_diskp1->Fill(nofclOffTrack); - } - if(DBdisk==2) { - if(nofclOnTrack!=0) meNClustersOnTrack_diskp2->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_diskp2->Fill(nofclOffTrack); - } - if(DBdisk==3) { - if(nofclOnTrack!=0 && isUpgrade) meNClustersOnTrack_diskp3->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_diskp3->Fill(nofclOffTrack); - } + for (int i = 0; i < noOfDisks; i++) + { + if(nofclOnTrack!=0) meNClustersOnTrack_diskps.at(i)->Fill(nofclOnTrack); + if(nofclOffTrack!=0) meNClustersNotOnTrack_diskps.at(i)->Fill(nofclOffTrack); + } } if(z<0){ - if(DBdisk==1) { - if(nofclOnTrack!=0) meNClustersOnTrack_diskm1->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_diskm1->Fill(nofclOffTrack); - } - if(DBdisk==2) { - if(nofclOnTrack!=0) meNClustersOnTrack_diskm2->Fill(nofclOnTrack); - if(nofclOffTrack!=0) meNClustersNotOnTrack_diskm2->Fill(nofclOffTrack); - } - if(DBdisk==3) { - if(nofclOnTrack!=0 && isUpgrade) meNClustersOnTrack_diskm3->Fill(nofclOnTrack); - if(nofclOffTrack!=0 && isUpgrade) meNClustersNotOnTrack_diskm3->Fill(nofclOffTrack); - } + for (int i = 0; i < noOfDisks; i++) + { + if(nofclOnTrack!=0) meNClustersOnTrack_diskms.at(i)->Fill(nofclOnTrack); + if(nofclOffTrack!=0) meNClustersNotOnTrack_diskms.at(i)->Fill(nofclOffTrack); + } } } }//end if it's a Pixel module }//end for loop over tracker detector geometry modules - if(trackclusters>0) (meNofClustersOnTrack_)->Fill(0,trackclusters); if(barreltrackclusters>0)(meNofClustersOnTrack_)->Fill(1,barreltrackclusters); if(endcaptrackclusters>0)(meNofClustersOnTrack_)->Fill(2,endcaptrackclusters);