CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
PixelBarrelName Class Reference

#include <PixelBarrelName.h>

Inheritance diagram for PixelBarrelName:
PixelModuleName

Public Types

enum  Shell { mO = 1, mI = 2, pO = 3, pI = 4 }
 
- Public Types inherited from PixelModuleName
enum  ModuleType {
  v1x2, v1x5, v1x8, v2x3,
  v2x4, v2x5, v2x8
}
 

Public Member Functions

int convertLadderNumber (int oldLadder)
 
PXBDetId getDetId ()
 return the DetId More...
 
DetId getDetId (const TrackerTopology *tt)
 
bool isHalfModule () const
 full or half module More...
 
int ladderName () const
 ladder id (index in phi) More...
 
int layerName () const
 layer id More...
 
int moduleName () const
 module id (index in z) More...
 
PixelModuleName::ModuleType moduleType () const override
 module Type More...
 
std::string name () const override
 from base class More...
 
bool operator== (const PixelModuleName &) const override
 check equality of modules from datamemebers More...
 
 PixelBarrelName (const DetId &, const TrackerTopology *tt, bool phase=false)
 ctor from DetId More...
 
 PixelBarrelName (const DetId &, bool phase=false)
 
 PixelBarrelName (Shell shell=mO, int layer=0, int module=0, int ladder=0, bool phase=false)
 ctor for defined name with dummy parameters More...
 
 PixelBarrelName (std::string name, bool phase=false)
 ctor from name string More...
 
int sectorName () const
 sector id More...
 
Shell shell () const
 
 ~PixelBarrelName () override
 
- Public Member Functions inherited from PixelModuleName
virtual bool isBarrel () const
 true for barrel modules More...
 
 PixelModuleName (bool isBarrel)
 
virtual ~PixelModuleName ()
 

Private Attributes

bool phase1
 
int theLadder
 
int theLayer
 
int theModule
 
Shell thePart
 

Additional Inherited Members

- Static Public Member Functions inherited from PixelModuleName
static bool isBarrel (uint32_t rawDetId)
 

Detailed Description

Module name (as in PixelDatabase) in barrel

Definition at line 16 of file PixelBarrelName.h.

Member Enumeration Documentation

◆ Shell

Enumerator
mO 
mI 
pO 
pI 

Definition at line 18 of file PixelBarrelName.h.

Constructor & Destructor Documentation

◆ PixelBarrelName() [1/4]

PixelBarrelName::PixelBarrelName ( const DetId id,
const TrackerTopology tt,
bool  phase = false 
)

ctor from DetId

Definition at line 22 of file PixelBarrelName.cc.

References funct::abs(), convertLadderNumber(), PVValHelper::ladder, mI, mO, pI, pO, theLadder, theLayer, theModule, and thePart.

24  theLayer = tt->pxbLayer(id);
25  int oldModule = tt->pxbModule(id); // CMSSW convention
26  int oldLadder = tt->pxbLadder(id); // CMSSW convention
27 
28  int ladder = convertLadderNumber(oldLadder); // convert to online convention
29  int module = oldModule - 4; // convert
30  if (module <= 0)
31  module--;
32 
33  //
34  // part
35  //
36  if (module < 0 && ladder < 0)
37  thePart = mO;
38  else if (module > 0 && ladder < 0)
39  thePart = pO;
40  else if (module < 0 && ladder > 0)
41  thePart = mI;
42  else if (module > 0 && ladder > 0)
43  thePart = pI;
44 
45  //
46  // ladder
47  //
48  theLadder = abs(ladder);
49 
50  //
51  // module
52  //
53  theModule = abs(module);
54 }
int convertLadderNumber(int oldLadder)
PixelModuleName(bool isBarrel)
Definition: TTTypes.h:54
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ PixelBarrelName() [2/4]

PixelBarrelName::PixelBarrelName ( const DetId id,
bool  phase = false 
)

Definition at line 57 of file PixelBarrelName.cc.

References funct::abs(), PXBDetId::ladder(), PXBDetId::layer(), mI, mO, PXBDetId::module(), phase1, pI, pO, theLadder, theLayer, theModule, and thePart.

59  // uint32_t rawId = id.rawId();
60  PXBDetId cmssw_numbering(id);
61 
62  theLayer = cmssw_numbering.layer();
63 
64  int oldModule = cmssw_numbering.module() - 4;
65  if (oldModule <= 0)
66  oldModule--;
67  int oldLadder = cmssw_numbering.ladder();
68 
69  if (phase1) { // phase 1
70 
71  if (theLayer == 1) {
72  if (oldLadder <= 3)
73  oldLadder = 4 - oldLadder; // +1, ..., +3
74  else if (oldLadder >= 4 && oldLadder <= 9)
75  oldLadder = 3 - oldLadder; // -1, ..., -6
76  else if (oldLadder >= 10)
77  oldLadder = 16 - oldLadder; // +6, ..., +4
78  } else if (theLayer == 2) {
79  if (oldLadder <= 7)
80  oldLadder = 8 - oldLadder;
81  else if (oldLadder >= 8 && oldLadder <= 21)
82  oldLadder = 7 - oldLadder;
83  else if (oldLadder >= 22)
84  oldLadder = 36 - oldLadder;
85  } else if (theLayer == 3) {
86  if (oldLadder <= 11)
87  oldLadder = 12 - oldLadder;
88  else if (oldLadder >= 12 && oldLadder <= 33)
89  oldLadder = 11 - oldLadder;
90  else if (oldLadder >= 34)
91  oldLadder = 56 - oldLadder;
92  } else if (theLayer == 4) {
93  if (oldLadder <= 16)
94  oldLadder = 17 - oldLadder;
95  else if (oldLadder >= 17 && oldLadder <= 48)
96  oldLadder = 16 - oldLadder;
97  else if (oldLadder >= 49)
98  oldLadder = 81 - oldLadder;
99  }
100 
101  } else { // phase 0
102 
103  if (theLayer == 1) {
104  if (oldLadder <= 5)
105  oldLadder = 6 - oldLadder;
106  else if (oldLadder >= 6 && oldLadder <= 15)
107  oldLadder = 5 - oldLadder;
108  else if (oldLadder >= 16)
109  oldLadder = 26 - oldLadder;
110  } else if (theLayer == 2) {
111  if (oldLadder <= 8)
112  oldLadder = 9 - oldLadder;
113  else if (oldLadder >= 9 && oldLadder <= 24)
114  oldLadder = 8 - oldLadder;
115  else if (oldLadder >= 25)
116  oldLadder = 41 - oldLadder;
117  } else if (theLayer == 3) {
118  if (oldLadder <= 11)
119  oldLadder = 12 - oldLadder;
120  else if (oldLadder >= 12 && oldLadder <= 33)
121  oldLadder = 11 - oldLadder;
122  else if (oldLadder >= 34)
123  oldLadder = 56 - oldLadder;
124  }
125  } // end phase 0/1
126 
127  //
128  // part
129  //
130  if (oldModule < 0 && oldLadder < 0)
131  thePart = mO;
132  else if (oldModule > 0 && oldLadder < 0)
133  thePart = pO;
134  else if (oldModule < 0 && oldLadder > 0)
135  thePart = mI;
136  else if (oldModule > 0 && oldLadder > 0)
137  thePart = pI;
138 
139  //
140  // ladder
141  //
142  theLadder = abs(oldLadder);
143 
144  //
145  // module
146  //
147  theModule = abs(oldModule);
148 }
PixelModuleName(bool isBarrel)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ PixelBarrelName() [3/4]

PixelBarrelName::PixelBarrelName ( Shell  shell = mO,
int  layer = 0,
int  module = 0,
int  ladder = 0,
bool  phase = false 
)
inline

◆ PixelBarrelName() [4/4]

PixelBarrelName::PixelBarrelName ( std::string  name,
bool  phase = false 
)

ctor from name string

Definition at line 194 of file PixelBarrelName.cc.

References mI, mO, name(), phase1, pI, pO, theLadder, theLayer, theModule, and thePart.

196  // parse the name string
197  // first, check to make sure this is an BPix name, should start with "BPix_"
198  // also check to make sure the needed parts are present
199  if ((name.substr(0, 5) != "BPix_") || (name.find("_B") == string::npos) || (name.find("_LYR") == string::npos) ||
200  (name.find("_LDR") == string::npos) || (name.find("_MOD") == string::npos)) {
201  edm::LogError("BadNameString|SiPixel")
202  << "Bad name string in PixelBarrelName::PixelBarrelName(std::string): " << name;
203  return;
204  }
205 
206  // strip off ROC part if it's there
207  if (name.find("_ROC") != string::npos)
208  name = name.substr(0, name.find("_ROC"));
209 
210  // find shell
211  string shellString = name.substr(name.find("_B") + 2, name.find("_SEC") - name.find("_B") - 2);
212  if (shellString == "mO")
213  thePart = mO;
214  else if (shellString == "mI")
215  thePart = mI;
216  else if (shellString == "pO")
217  thePart = pO;
218  else if (shellString == "pI")
219  thePart = pI;
220  else {
221  edm::LogError("BadNameString|SiPixel")
222  << "Unable to determine shell in PixelBarrelName::PixelBarrelName(std::string): " << name;
223  }
224 
225  // find the layer
226  string layerString = name.substr(name.find("_LYR") + 4, name.find("_LDR") - name.find("_LYR") - 4);
227  if (layerString == "1")
228  theLayer = 1;
229  else if (layerString == "2")
230  theLayer = 2;
231  else if (layerString == "3")
232  theLayer = 3;
233  else if (phase1 && layerString == "4")
234  theLayer = 4;
235  else {
236  edm::LogError("BadNameString|SiPixel")
237  << "Unable to determine layer in PixelBarrelName::PixelBarrelName(std::string): " << name;
238  }
239 
240  // find the ladder
241  string ladderString = name.substr(name.find("_LDR") + 4, name.find("_MOD") - name.find("_LDR") - 4);
242 
243  if (phase1) { // phase 1 ladders
244  // do we want to kee the "F" for phase1?
245  if (ladderString.substr(ladderString.size() - 1, 1) == "F") {
246  int ladderNum = atoi(ladderString.substr(0, ladderString.size() - 1).c_str());
247  if (theLayer == 1 && ladderNum >= 1 && ladderNum <= 6)
248  theLadder = ladderNum;
249  else if (theLayer == 2 && ladderNum >= 1 && ladderNum <= 14)
250  theLadder = ladderNum;
251  else if (theLayer == 3 && ladderNum >= 1 && ladderNum <= 22)
252  theLadder = ladderNum;
253  else if (theLayer == 4 && ladderNum >= 1 && ladderNum <= 32)
254  theLadder = ladderNum;
255  else {
256  edm::LogError("BadNameString|SiPixel")
257  << "Unable to determine ladder in PixelBarrelNameUpgrade::PixelBarrelName(std::string): " << name;
258  }
259  } // full ladders
260  else {
261  edm::LogError("BadNameString|SiPixel")
262  << "Unable to determine ladder in PixelBarrelNameUpgrade::PixelBarrelName(std::string): " << name;
263  }
264 
265  } else { // phase 0 ladders
266 
267  if (ladderString == "1H")
268  theLadder = 1;
269  else if (ladderString == "10H" && theLayer == 1)
270  theLadder = 10;
271  else if (ladderString == "16H" && theLayer == 2)
272  theLadder = 16;
273  else if (ladderString == "22H" && theLayer == 3)
274  theLadder = 22;
275  else if (ladderString.substr(ladderString.size() - 1, 1) == "F") {
276  int ladderNum = atoi(ladderString.substr(0, ladderString.size() - 1).c_str());
277  if (theLayer == 1 && ladderNum > 1 && ladderNum < 10)
278  theLadder = ladderNum;
279  else if (theLayer == 2 && ladderNum > 1 && ladderNum < 16)
280  theLadder = ladderNum;
281  else if (theLayer == 3 && ladderNum > 1 && ladderNum < 22)
282  theLadder = ladderNum;
283  else {
284  edm::LogError("BadNameString|SiPixel")
285  << "Unable to determine ladder in PixelBarrelName::PixelBarrelName(std::string): " << name;
286  }
287  } // full ladders
288  else {
289  edm::LogError("BadNameString|SiPixel")
290  << "Unable to determine ladder in PixelBarrelName::PixelBarrelName(std::string): " << name;
291  }
292  } // phase0/1
293 
294  // find the module
295  string moduleString = name.substr(name.find("_MOD") + 4, name.size() - name.find("_MOD") - 4);
296  if (moduleString == "1")
297  theModule = 1;
298  else if (moduleString == "2")
299  theModule = 2;
300  else if (moduleString == "3")
301  theModule = 3;
302  else if (moduleString == "4")
303  theModule = 4;
304  else {
305  edm::LogError("BadNameString|SiPixel")
306  << "Unable to determine module in PixelBarrelName::PixelBarrelName(std::string): " << name;
307  }
308 
309 } // PixelBarrelName::PixelBarrelName(std::string name)
PixelModuleName(bool isBarrel)
Log< level::Error, false > LogError
std::string name() const override
from base class

◆ ~PixelBarrelName()

PixelBarrelName::~PixelBarrelName ( )
inlineoverride

Definition at line 33 of file PixelBarrelName.h.

33 {}

Member Function Documentation

◆ convertLadderNumber()

int PixelBarrelName::convertLadderNumber ( int  oldLadder)
inline

Definition at line 151 of file PixelBarrelName.cc.

References PVValHelper::ladder, phase1, and theLayer.

Referenced by PixelBarrelName().

151  {
152  int ladder = -1;
153  int ind = 0;
154  if (phase1)
155  ind = 1;
156 
157  if (theLayer == 1) {
158  if (oldLadder <= lL[ind][0])
159  ladder = (lL[ind][0] + 1) - oldLadder;
160  else if (oldLadder >= (lL[ind][0] + 1) && oldLadder <= lL[ind][1])
161  ladder = lL[ind][0] - oldLadder;
162  else if (oldLadder >= (lL[ind][1] + 1))
163  ladder = lL[ind][2] - oldLadder;
164 
165  } else if (theLayer == 2) {
166  if (oldLadder <= lL[ind][3])
167  ladder = (lL[ind][3] + 1) - oldLadder;
168  else if (oldLadder >= (lL[ind][3] + 1) && oldLadder <= lL[ind][4])
169  ladder = lL[ind][3] - oldLadder;
170  else if (oldLadder >= (lL[ind][4] + 1))
171  ladder = lL[ind][5] - oldLadder;
172 
173  } else if (theLayer == 3) {
174  if (oldLadder <= lL[ind][6])
175  ladder = (lL[ind][6] + 1) - oldLadder;
176  else if (oldLadder >= (lL[ind][6] + 1) && oldLadder <= lL[ind][7])
177  ladder = lL[ind][6] - oldLadder;
178  else if (oldLadder >= (lL[ind][7] + 1))
179  ladder = lL[ind][8] - oldLadder;
180 
181  } else if (theLayer == 4) {
182  if (oldLadder <= lL[ind][9])
183  ladder = (lL[ind][9] + 1) - oldLadder;
184  else if (oldLadder >= (lL[ind][9] + 1) && oldLadder <= lL[ind][10])
185  ladder = lL[ind][9] - oldLadder;
186  else if (oldLadder >= (lL[ind][10] + 1))
187  ladder = lL[ind][11] - oldLadder;
188  }
189 
190  return ladder;
191 }

◆ getDetId() [1/2]

PXBDetId PixelBarrelName::getDetId ( void  )

return the DetId

Definition at line 807 of file PixelBarrelName.cc.

References PVValHelper::ladder, ladderName(), nano_mu_digi_cff::layer, layerName(), mO, moduleName(), SurfaceOrientation::outer, phase1, pI, pO, and thePart.

Referenced by SiPixelLorentzAnglePCLHarvester::beginRun(), SiPixelLorentzAnglePCLHarvesterMCS::beginRun(), SiPixelLorentzAnglePCLWorker::dqmBeginRun(), and SiPixelBadModuleByHandBuilder::getNewObject().

807  {
808  uint32_t layer = 0;
809  uint32_t ladder = 0;
810  uint32_t module = 0;
811 
812  layer = layerName();
813  uint32_t tmpLadder = ladderName();
814  uint32_t tmpModule = moduleName();
815 
816  // translate the ladder number from the naming convention to the cmssw convention
817  bool outer = false;
818  Shell shell = thePart;
819  outer = (shell == mO) || (shell == pO);
820 
821  if (phase1) { // phase 1
822 
823  if (outer) { // outer
824  if (layer == 1)
825  ladder = tmpLadder + 3;
826  else if (layer == 2)
827  ladder = tmpLadder + 7;
828  else if (layer == 3)
829  ladder = tmpLadder + 11;
830  else if (layer == 4)
831  ladder = tmpLadder + 16;
832  } else { // inner
833  if (layer == 1) {
834  if (tmpLadder <= 3)
835  ladder = 4 - tmpLadder;
836  else if (tmpLadder <= 6)
837  ladder = 16 - tmpLadder;
838  } else if (layer == 2) {
839  if (tmpLadder <= 7)
840  ladder = 8 - tmpLadder;
841  else if (tmpLadder <= 14)
842  ladder = 36 - tmpLadder;
843  } else if (layer == 3) {
844  if (tmpLadder <= 11)
845  ladder = 12 - tmpLadder;
846  else if (tmpLadder <= 22)
847  ladder = 56 - tmpLadder;
848  } else if (layer == 4) {
849  if (tmpLadder <= 16)
850  ladder = 17 - tmpLadder;
851  else if (tmpLadder <= 32)
852  ladder = 81 - tmpLadder;
853  } // layer
854  } // inner
855 
856  } else { // phase 0
857  if (outer) { // outer
858  if (layer == 1)
859  ladder = tmpLadder + 5;
860  else if (layer == 2)
861  ladder = tmpLadder + 8;
862  else if (layer == 3)
863  ladder = tmpLadder + 11;
864  } else { // inner
865  if (layer == 1) { // layer 1
866  if (tmpLadder <= 5)
867  ladder = 6 - tmpLadder;
868  else if (tmpLadder <= 10)
869  ladder = 26 - tmpLadder;
870  } else if (layer == 2) { // layer 2
871  if (tmpLadder <= 8)
872  ladder = 9 - tmpLadder;
873  else if (tmpLadder <= 16)
874  ladder = 41 - tmpLadder;
875  } else if (layer == 3) { // layer 3
876  if (tmpLadder <= 11)
877  ladder = 12 - tmpLadder;
878  else if (tmpLadder <= 22)
879  ladder = 56 - tmpLadder;
880  } // end layer
881  } // inner
882 
883  } // phase
884 
885  // translate the module number from naming convention to cmssw convention
886  // numbering starts at positive z
887  if (shell == pO || shell == pI)
888  module = tmpModule + 4;
889  else // negative z side
890  module = 5 - tmpModule;
891 
892  return PXBDetId(layer, ladder, module);
893 }
int moduleName() const
module id (index in z)
int layerName() const
layer id
int ladderName() const
ladder id (index in phi)
Definition: shell.py:1

◆ getDetId() [2/2]

DetId PixelBarrelName::getDetId ( const TrackerTopology tt)

Definition at line 745 of file PixelBarrelName.cc.

References l1ctLayer2EG_cff::id, PVValHelper::ladder, ladderName(), nano_mu_digi_cff::layer, layerName(), mO, moduleName(), SurfaceOrientation::outer, phase1, pI, pO, and thePart.

745  {
746  uint32_t layer = 0;
747  uint32_t ladder = 0;
748  uint32_t module = 0;
749 
750  layer = layerName();
751  int tmpLadder = ladderName();
752  uint32_t tmpModule = moduleName();
753 
754  // translate the ladder number from the naming convention to the cmssw convention
755  bool outer = false;
756  Shell shell = thePart;
757  int ind = 0;
758  if (phase1)
759  ind = 1;
760  outer = (shell == mO) || (shell == pO);
761  if (outer) {
762  if (layer == 1)
763  ladder = tmpLadder + lL[ind][0];
764  else if (layer == 2)
765  ladder = tmpLadder + lL[ind][3];
766  else if (layer == 3)
767  ladder = tmpLadder + lL[ind][6];
768  else if (layer == 4)
769  ladder = tmpLadder + lL[ind][9];
770  } // outer
771  else { // inner
772  if (layer == 1) {
773  if (tmpLadder <= lL[ind][0])
774  ladder = (lL[ind][0] + 1) - tmpLadder;
775  else
776  ladder = lL[ind][2] - tmpLadder;
777  } else if (layer == 2) {
778  if (tmpLadder <= lL[ind][3])
779  ladder = (lL[ind][3] + 1) - tmpLadder;
780  else
781  ladder = lL[ind][5] - tmpLadder;
782  } else if (layer == 3) {
783  if (tmpLadder <= lL[ind][6])
784  ladder = (lL[ind][6] + 1) - tmpLadder;
785  else
786  ladder = lL[ind][8] - tmpLadder;
787  } else if (layer == 4) {
788  if (tmpLadder <= lL[ind][9])
789  ladder = (lL[ind][9] + 1) - tmpLadder;
790  else
791  ladder = lL[ind][11] - tmpLadder;
792  } // layer
793  } // inner
794 
795  // translate the module number from naming convention to cmssw convention
796  // numbering starts at positive z
797  if (shell == pO || shell == pI)
798  module = tmpModule + 4;
799  else // negative z side
800  module = 5 - tmpModule;
801 
802  DetId id = tt->pxbDetId(layer, ladder, module);
803  return id;
804 }
int moduleName() const
module id (index in z)
Definition: TTTypes.h:54
Definition: DetId.h:17
int layerName() const
layer id
int ladderName() const
ladder id (index in phi)
Definition: shell.py:1

◆ isHalfModule()

bool PixelBarrelName::isHalfModule ( ) const

full or half module

Definition at line 702 of file PixelBarrelName.cc.

References phase1, theLadder, and theLayer.

Referenced by SiPixelHitEfficiencySource::analyze(), SiPixelTrackResidualModule::book(), SiPixelHitEfficiencyModule::book(), SiPixelDigiModule::book(), SiPixelClusterModule::book(), SiPixelRecHitModule::book(), SiPixelDigiModule::fill(), SiPixelInformationExtractor::findNoisyPixels(), SiPixelTrackResidualSource::getrococcupancy(), SiPixelClusterSource::getrococcupancy(), SiPixelCoordinates::half(), SiPixelTopoFinder::half(), moduleType(), and name().

702  {
703  bool halfModule = false;
704 
705  if (!phase1) {
706  if (theLadder == 1)
707  halfModule = true;
708  if (theLayer == 1 && theLadder == 10)
709  halfModule = true;
710  if (theLayer == 2 && theLadder == 16)
711  halfModule = true;
712  if (theLayer == 3 && theLadder == 22)
713  halfModule = true;
714  }
715  return halfModule;
716 }

◆ ladderName()

int PixelBarrelName::ladderName ( ) const
inline

◆ layerName()

int PixelBarrelName::layerName ( ) const
inline

◆ moduleName()

int PixelBarrelName::moduleName ( ) const
inline

◆ moduleType()

PixelModuleName::ModuleType PixelBarrelName::moduleType ( ) const
overridevirtual

module Type

Implements PixelModuleName.

Definition at line 718 of file PixelBarrelName.cc.

References isHalfModule(), PixelModuleName::v1x8, and PixelModuleName::v2x8.

◆ name()

string PixelBarrelName::name ( ) const
overridevirtual

from base class

Implements PixelModuleName.

Definition at line 731 of file PixelBarrelName.cc.

References isHalfModule(), sectorName(), theLadder, theLayer, theModule, and thePart.

Referenced by config.CFG::__str__(), SiPixelDetSummary::add(), NearbyPixelClustersAnalyzer::bookModuleHistograms(), validation.Sample::digest(), SiPixelInformationExtractor::findNoisyPixels(), VIDSelectorBase.VIDSelectorBase::initialize(), PixelBarrelName(), sipixelobjects::PixelFEDLink::printForMap(), SiPixelPhase1Analyzer::SaveDetectorVertices(), and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().

731  {
732  std::ostringstream stm;
733 
734  stm << "BPix_B" << thePart << "_SEC" << sectorName() << "_LYR" << theLayer << "_LDR" << theLadder;
735  if (isHalfModule())
736  stm << "H";
737  else
738  stm << "F";
739  stm << "_MOD" << theModule;
740 
741  return stm.str();
742 }
bool isHalfModule() const
full or half module
int sectorName() const
sector id

◆ operator==()

bool PixelBarrelName::operator== ( const PixelModuleName o) const
overridevirtual

check equality of modules from datamemebers

Implements PixelModuleName.

Definition at line 722 of file PixelBarrelName.cc.

References EcalTangentSkim_cfg::o, trackingPlots::other, theLadder, theLayer, theModule, and thePart.

722  {
723  if (o.isBarrel()) {
724  const PixelBarrelName* other = dynamic_cast<const PixelBarrelName*>(&o);
725  return (other && thePart == other->thePart && theLayer == other->theLayer && theModule == other->theModule &&
726  theLadder == other->theLadder);
727  } else
728  return false;
729 }

◆ sectorName()

int PixelBarrelName::sectorName ( ) const

sector id

Definition at line 311 of file PixelBarrelName.cc.

References phase1, nano_mu_digi_cff::sector, theLadder, theLayer, and theModule.

Referenced by name(), and SiPixelCoordinates::sector().

311  {
312  int sector = 0;
313 
314  if (theLayer == 1) {
315  if (phase1) { // phase 1
316  // Layer 1 for phase1 is special, modules on a ladder are shared in different sectors
317  // Ladder Module Sector
318  // 1 2,3,4 1
319  // 1 1 2
320  // 2 3,4 2
321  // 2 1,2 3
322  // 3 4 3
323  // 3 1,2,3 4
324  // 4 2,3,4 5
325  // 4 1 6
326  // 5 3,4 6
327  // 5 1,2 7
328  // 6 4 7
329  // 6 1,2,3 8
330 
331  switch (theLadder) {
332  case 1: { // ladder 1
333  if (theModule >= 2) {
334  sector = 1;
335  break;
336  } // mods 2,3,4
337  else {
338  sector = 2;
339  break;
340  } // mods 1
341  }
342  case 2: { // ladder 2
343  if (theModule >= 3) {
344  sector = 2;
345  break;
346  } // mods 3,4
347  else {
348  sector = 3;
349  break;
350  } // mods 1,2
351  }
352  case 3: { // ladder 3
353  if (theModule >= 4) {
354  sector = 3;
355  break;
356  } else {
357  sector = 4;
358  break;
359  }
360  sector = 3;
361  break;
362  }
363  case 4: { // ladder 4
364  if (theModule >= 2) {
365  sector = 5;
366  break;
367  } else {
368  sector = 6;
369  break;
370  }
371  sector = 6;
372  break;
373  }
374  case 5: { // ladder 5
375  if (theModule >= 3) {
376  sector = 6;
377  break;
378  } else {
379  sector = 7;
380  break;
381  }
382  sector = 7;
383  break;
384  }
385  case 6: { // ladder 6
386  if (theModule >= 4) {
387  sector = 7;
388  break;
389  } // mods 4
390  else {
391  sector = 8;
392  break;
393  } // mods 1,2,3
394  sector = 8;
395  break;
396  }
397  default:;
398  };
399 
400  } else { // phase 0
401  switch (theLadder) {
402  case 1:
403  case 2: {
404  sector = 1;
405  break;
406  }
407  case 3: {
408  sector = 2;
409  break;
410  }
411  case 4: {
412  sector = 3;
413  break;
414  }
415  case 5: {
416  sector = 4;
417  break;
418  }
419  case 6: {
420  sector = 5;
421  break;
422  }
423  case 7: {
424  sector = 6;
425  break;
426  }
427  case 8: {
428  sector = 7;
429  break;
430  }
431  case 9:
432  case 10: {
433  sector = 8;
434  break;
435  }
436  default:;
437  };
438  } // phase0/1
439 
440  } else if (theLayer == 2) {
441  if (phase1) { // phase 1
442  switch (theLadder) {
443  case 1:
444  case 2: {
445  sector = 1;
446  break;
447  }
448  case 3:
449  case 4: {
450  sector = 2;
451  break;
452  }
453  case 5: {
454  sector = 3;
455  break;
456  }
457  case 6:
458  case 7: {
459  sector = 4;
460  break;
461  }
462  case 8:
463  case 9: {
464  sector = 5;
465  break;
466  }
467  case 10: {
468  sector = 6;
469  break;
470  }
471  case 11:
472  case 12: {
473  sector = 7;
474  break;
475  }
476  case 13:
477  case 14: {
478  sector = 8;
479  break;
480  }
481  default:;
482  };
483 
484  } else { // phase 0
485  switch (theLadder) {
486  case 1:
487  case 2: {
488  sector = 1;
489  break;
490  }
491  case 3:
492  case 4: {
493  sector = 2;
494  break;
495  }
496  case 5:
497  case 6: {
498  sector = 3;
499  break;
500  }
501  case 7:
502  case 8: {
503  sector = 4;
504  break;
505  }
506  case 9:
507  case 10: {
508  sector = 5;
509  break;
510  }
511  case 11:
512  case 12: {
513  sector = 6;
514  break;
515  }
516  case 13:
517  case 14: {
518  sector = 7;
519  break;
520  }
521  case 15:
522  case 16: {
523  sector = 8;
524  break;
525  }
526  default:;
527  };
528  } // enad phase0/1
529 
530  } else if (theLayer == 3) {
531  if (phase1) { // phase 1
532  switch (theLadder) {
533  case 1:
534  case 2: {
535  sector = 1;
536  break;
537  }
538  case 3:
539  case 4:
540  case 5: {
541  sector = 2;
542  break;
543  }
544  case 6:
545  case 7:
546  case 8: {
547  sector = 3;
548  break;
549  }
550  case 9:
551  case 10:
552  case 11: {
553  sector = 4;
554  break;
555  }
556  case 12:
557  case 13:
558  case 14: {
559  sector = 5;
560  break;
561  }
562  case 15:
563  case 16:
564  case 17: {
565  sector = 6;
566  break;
567  }
568  case 18:
569  case 19:
570  case 20: {
571  sector = 7;
572  break;
573  }
574  case 21:
575  case 22: {
576  sector = 8;
577  break;
578  }
579  default:;
580  };
581 
582  } else { // phase 0
583  switch (theLadder) {
584  case 1:
585  case 2:
586  case 3: {
587  sector = 1;
588  break;
589  }
590  case 4:
591  case 5:
592  case 6: {
593  sector = 2;
594  break;
595  }
596  case 7:
597  case 8:
598  case 9: {
599  sector = 3;
600  break;
601  }
602  case 10:
603  case 11: {
604  sector = 4;
605  break;
606  }
607  case 12:
608  case 13: {
609  sector = 5;
610  break;
611  }
612  case 14:
613  case 15:
614  case 16: {
615  sector = 6;
616  break;
617  }
618  case 17:
619  case 18:
620  case 19: {
621  sector = 7;
622  break;
623  }
624  case 20:
625  case 21:
626  case 22: {
627  sector = 8;
628  break;
629  }
630  default:;
631  };
632  } // end phase 0/1
633 
634  } else if (theLayer == 4) {
635  if (phase1) { // phase 1
636  switch (theLadder) {
637  case 1:
638  case 2:
639  case 3:
640  case 4: {
641  sector = 1;
642  break;
643  }
644  case 5:
645  case 6:
646  case 7:
647  case 8: {
648  sector = 2;
649  break;
650  }
651  case 9:
652  case 10:
653  case 11:
654  case 12: {
655  sector = 3;
656  break;
657  }
658  case 13:
659  case 14:
660  case 15:
661  case 16: {
662  sector = 4;
663  break;
664  }
665  case 17:
666  case 18:
667  case 19:
668  case 20: {
669  sector = 5;
670  break;
671  }
672  case 21:
673  case 22:
674  case 23:
675  case 24: {
676  sector = 6;
677  break;
678  }
679  case 25:
680  case 26:
681  case 27:
682  case 28: {
683  sector = 7;
684  break;
685  }
686  case 29:
687  case 30:
688  case 31:
689  case 32: {
690  sector = 8;
691  break;
692  }
693  default:;
694  };
695  } // end phase1
696 
697  } // layer
698 
699  return sector;
700 }

◆ shell()

Shell PixelBarrelName::shell ( ) const
inline

Member Data Documentation

◆ phase1

bool PixelBarrelName::phase1
private

◆ theLadder

int PixelBarrelName::theLadder
private

◆ theLayer

int PixelBarrelName::theLayer
private

◆ theModule

int PixelBarrelName::theModule
private

Definition at line 69 of file PixelBarrelName.h.

Referenced by moduleName(), name(), operator==(), PixelBarrelName(), and sectorName().

◆ thePart

Shell PixelBarrelName::thePart
private

Definition at line 68 of file PixelBarrelName.h.

Referenced by getDetId(), name(), operator==(), PixelBarrelName(), and shell().