ATLAS Offline Software
Loading...
Searching...
No Matches
PixelDetectorDC1DC2.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7#include "Identifier/Identifier.h"
9#include "GeoModelKernel/GeoDefinitions.h"
10#include "GaudiKernel/SystemOfUnits.h"
11#include "RDBAccessSvc/IRDBRecord.h" //IRDBRecord used in code in the header
13#include "RDBAccessSvc/IRDBAccessSvc.h" //for IRDBRecordset_ptr typedef
14#include "GeoModelKernel/GeoVPhysVol.h"
15#include <string>
16#include <vector>
17
18
20class StoreGateSvc;
21class PixelID;
22
23namespace InDetDD {
25 class SiDetectorDesign;
26 class SiCommonItems;
27}
28
29
30
31namespace PixelGeoDC2 {
32
34//
35// This is the base class for all the pieces of the Pixel detector.
36//
37//
38#ifndef GEOVPIXELFACTORY_H
39#define GEOVPIXELFACTORY_H
40
41
42
58
59
60#endif
61
62
63#ifndef GEOPIXELBARREL_H
64#define GEOPIXELBARREL_H
65
66
67
69 public:
71 virtual GeoVPhysVol* Build() override;
72};
73
74#endif
75#ifndef GEOPIXELCABLE_H
76#define GEOPIXELCABLE_H
77
78
80 public:
85 virtual GeoVPhysVol* Build() override;
86 double Thickness() const;
87 double Length();
88 void SetModuleNumber(int moduleNumber) {m_moduleNumber = moduleNumber;}
90 private:
91 //
92 // ModuleNumber is going from 0 to Numberofmodules/2+1 for symmetry...
93 // 0 is the central module, 6 is the one to the left/right
95};
96
97#endif
98#ifndef GEOPIXELCHIP_H
99#define GEOPIXELCHIP_H
100
101//#include "GeoVPixelFactory.h"
102
104 public:
106 virtual GeoVPhysVol* Build() override;
107};
108
109#endif
110
111#ifndef GEOPIXELDISK_H
112#define GEOPIXELDISK_H
113
114
116 public:
119 GeoPixelDisk (const GeoPixelDisk&) = delete;
121 virtual ~GeoPixelDisk() = default;
122 virtual GeoVPhysVol* Build() override;
123 double Thickness();
124 double RMax();
125 double RMin();
126 private:
127 GeoIntrusivePtr<GeoLogVol> m_theDisk{};
128 int getPhiId();
129};
130
131#endif
132
133#ifndef GEOPIXELDISKSUPPORTS_H
134#define GEOPIXELDISKSUPPORTS_H
135
136
138 public:
141 virtual GeoVPhysVol* Build() override;
142 int NCylinders(){return m_rmin.size();}
143 void SetCylinder(int n) {m_nframe = n;}
144 double ZPos() {return m_zpos[m_nframe];}
145 private:
146 std::vector<double> m_rmin,m_rmax,m_halflength,m_zpos;
147 std::vector<std::string> m_material;
148 int m_nframe{0};
149
150};
151
152#endif
153
154#ifndef GEOPIXELECCABLE_H
155#define GEOPIXELECCABLE_H
156
157
159 public:
164 virtual GeoVPhysVol* Build() override;
165 virtual ~GeoPixelECCable() = default;
166 private:
167 GeoIntrusivePtr<GeoLogVol> m_theECCable;
168};
169
170#endif
171
172#ifndef GEOPIXELENDCAP_H
173#define GEOPIXELENDCAP_H
174
175
177 public:
179 virtual GeoVPhysVol* Build() override;
180};
181
182#endif
183
184#ifndef GEOPIXELENVELOPE_H
185#define GEOPIXELENVELOPE_H
186
187
189 public:
191 virtual GeoVPhysVol* Build() override;
192};
193
194#endif
195
196#ifndef GEOPIXELHYBRID_H
197#define GEOPIXELHYBRID_H
198
199
201 public:
203 virtual GeoVPhysVol* Build() override;
204};
205
206#endif
207
208#ifndef GEOPIXELLADDER_H
209#define GEOPIXELLADDER_H
210
212
214 public:
217 GeoPixelSiCrystal& theSensor);
220 virtual ~GeoPixelLadder() = default;
221 virtual GeoVPhysVol* Build() override;
222 double Thickness();
223 private:
224 GeoIntrusivePtr<GeoLogVol> m_theLadder ;
226};
227
228#endif
229
230#ifndef GEOPIXELLADDERSTRUCT_H
231#define GEOPIXELLADDERSTRUCT_H
232
233
234
236 public:
238 virtual GeoVPhysVol* Build() override;
239};
240
241#endif
242
243#ifndef GEOPIXELLAYER_H
244#define GEOPIXELLAYER_h
245
246
248 public:
250 virtual GeoVPhysVol* Build() override;
251};
252
253#endif
254
255#ifndef GEOPIXELMODULE_H
256#define GEOPIXELMODULE_H
257
259
261 public:
264 GeoPixelSiCrystal &theSensor);
267 virtual ~GeoPixelModule() = default;
268 virtual GeoVPhysVol* Build() override;
269 double Thickness();
270 double Width();
271 double Length();
273 private:
274 GeoIntrusivePtr<GeoLogVol> m_theModule;
277};
278
279#endif
280
281#ifndef GEOPIXELSERVICES_H
282#define GEOPIXELSERVICES_H
283
285 public:
288 const std::string&);
289 virtual GeoVPhysVol* Build() override;
290 int NCylinders(){return m_rmin.size();}
291 void SetCylinder(int n) {m_nframe = n;}
292 double ZPos() {return m_zpos[m_nframe];}
293 void initialize(const std::string&);
294 private:
295 std::vector<double> m_rmin,m_rmax,m_halflength,m_zpos;
296 std::vector<std::string> m_material;
297 std::string m_zone;
298 int m_nframe{0};
299
300
301};
302
303#endif
304
305#ifndef GEOPIXELSICRYSTAL_H
306#define GEOPIXELSICRYSTAL_H
307
308
309
311 public:
314 bool isBLayer);
315 virtual GeoVPhysVol* Build() override;
316 inline Identifier getID();
317 private:
321};
322//
323// Add this method to store the ID in the factory. This is used by the
324// module factory to pass it to the alignment class.
325//
327#endif
328
329#ifndef GEOPIXELSUBDISK_H
330#define GEOPIXELSUBDISK_H
331
333
335 public:
338 GeoPixelSiCrystal &theSensor);
339 virtual ~GeoPixelSubDisk()= default;
342 virtual GeoVPhysVol* Build() override;
343 double Thickness();
344 double RMax();
345 double RMin();
346 private:
348 GeoIntrusivePtr<GeoLogVol> m_theSubDisk;
349};
350
351#endif
352
353#ifndef GEOPIXELTUBECABLES_H
354#define GEOPIXELTUBECABLES_H
355
356
358 public:
361 virtual ~GeoPixelTubeCables() = default;
364 virtual GeoVPhysVol* Build() override;
365 double Thickness();
366 private:
367 GeoIntrusivePtr<GeoLogVol> m_theBox;
368};
369
370#endif
371
372
373#ifndef PixelGeometryManager_H
374#define PixelGeometryManager_H
375
377
378
379 public:
380
382 virtual ~PixelGeometryManager();
383
384 //
385 // GET THE OTHER MANAGERS FROM STOREGATE
386 // -------------------------------------
387
388 // Get the material manager:
390
391 // PixelDetectorManager
393
394 //
395 // VERSION TAG
396 // -----------
397 virtual std::string versionTag() const = 0;
398
399 //
400 // DESIGN AND ELEMENT NAMES
401 // ------------------------
402 virtual void SetDetElementName(std::string)=0;
403 virtual std::string GetDetElementName()=0;
404 virtual void SetDesignName(std::string)=0;
405 virtual std::string GetDesignName()=0;
406
407 virtual void SetBarrelModuleName(std::string)=0;
408 virtual std::string GetBarrelModuleName()=0;
409 virtual void SetEndcapModuleName(std::string)=0;
410 virtual std::string GetEndcapModuleName()=0;
411 virtual void SetLayer0ModuleName(std::string)=0;
412 virtual std::string GetLayer0ModuleName()=0;
413
414 //
415 // BUILDING DEFINITIONS
416 // --------------------
417
418 // Do I want the services?
419 virtual void SetServices(bool isservice)=0;
420 virtual bool DoServices()=0;
421
422 // Make elements compatible with G3 digits
423 virtual void SetG3CompatibleDigits(bool flag)=0;
424 virtual bool G3CompatibleDigits() const=0;
425
426 // Initial layout (2nd layer missing)
427 virtual void SetInitialLayout(bool flag)=0;
428 virtual bool InitialLayout() const=0;
429
430 // DC1 Geometry. 300 um long pixels and 200 um thick sensor in B layer.
431 virtual void SetDC1Geometry(bool flag)=0;
432 virtual bool DC1Geometry() const=0;
433
434 // Control whether callbacks get registered
435 virtual void SetAlignable(bool flag)=0;
436 virtual bool Alignable() const=0;
437
438 //
439 // BUILDER HELPERS
440 // ----------------
441
442 virtual void SetEta(int eta)=0;
443 virtual void SetPhi(int phi)=0;
444 virtual int Eta()=0;
445 virtual int Phi()=0;
446
447 // What am I building?
448 virtual bool isBarrel()=0;
449 virtual bool isEndcap()=0;
450 virtual void SetBarrel()=0;
451 virtual void SetEndcap()=0;
452
453 // The layer/disk barrel/endcap can be changed by these function.
454 virtual void SetCurrentLD(int i)=0;
455 virtual int GetLD()=0;
456
457 // Which layers/disks are present?
458 virtual bool isLDPresent()=0;
459
460 // The side
461 virtual void SetPos()=0;
462 virtual void SetNeg()=0;
463 virtual int GetSide()=0;
464
465 //
466 // DETECTOR PARAMTERS
467 // ------------------
468
469
470 // Version Number, for the Barrel/EndCap
471 virtual int PixelBarrelMajorVersion()=0;
472 virtual int PixelBarrelMinorVersion()=0;
473 virtual int PixelEndcapMajorVersion()=0;
474 virtual int PixelEndcapMinorVersion()=0;
475
476 // Si Board
477 virtual double PixelBoardWidth()=0;
478 virtual double PixelBoardLength()=0;
479 virtual double PixelBoardThickness()=0;
480 virtual double PixelBoardActiveLen()=0;
481
482 // Hybrid
483 virtual double PixelHybridWidth()=0;
484 virtual double PixelHybridLength()=0;
485 virtual double PixelHybridThickness()=0;
486
487 // Fe Chips (PBRN)
488 virtual double PixelChipWidth()=0;
489 virtual double PixelChipLength()=0;
490 virtual double PixelChipGap()=0;
491 virtual double PixelChipThickness()=0;
492
493 // Disk Carbon Structure
494 virtual double PixelECCarbonRMin(std::string)=0;
495 virtual double PixelECCarbonRMax(std::string)=0;
496 virtual double PixelECCarbonThickness(std::string)=0;
497 virtual std::string PixelECCarbonMaterial(std::string)=0;
498
499 // Services
500 virtual double* PixelServiceR(std::string, int )=0;
501 virtual double* PixelServiceZ(std::string, int )=0;
502 virtual std::string PixelServiceMaterial(std::string, int )=0;
503 virtual int PixelServiceLD(std::string, int )=0;
504 virtual int PixelServiceNFrame(std::string)=0;
505
506 // Atlas Global volume (from ATLS)
507 virtual double GetATLSRadius()=0;
508 virtual double GetATLSRmin()=0;
509 virtual double GetATLSLength()=0;
510
511 // Pixel container (from PXBG)
512 virtual double PixelRMin()=0;
513 virtual double PixelRMax()=0;
514 virtual double PixelHalfLength()=0;
515 virtual int PixelBarrelNLayer()=0;
516
517 // Pixel Barrel (from PXBO)
518 virtual double PixelBarrelRMin()=0;
519 virtual double PixelBarrelRMax()=0;
520 virtual double PixelBarrelHalfLength()=0;
521
522 // Pixel Layers Geomtry (PXBI)
523 virtual double PixelLayerRadius()=0;
524 virtual double PixelLadderHalfLength()=0;
525 virtual double PixelLadderWidth()=0;
526 virtual double PixelLadderThickness()=0;
527 virtual double PixelLadderTilt()=0;
528 virtual int NPixelSectors()=0;
529 virtual double PixelBalcony()=0;
530 virtual int PixelNModule()=0;
531 virtual double PixelModuleDrDistance()=0;
532 virtual double PixelModuleAngle()=0;
533 virtual double PixelModulePosition(int)=0;
534 virtual double PixelModuleShiftFlag(int)=0;
535 virtual double PixelModuleAngleSign(int)=0;
536
537 // Barrel LAYER CABLES (PBAC)
538 virtual double PixelCableWidth()=0;
539 virtual double PixelCableThickness()=0;
540 virtual double PixelCableZMax()=0;
541 virtual double PixelCableZMin()=0;
542 virtual double PixelCableDeltaZ()=0;
543
544 // Pixel Endcap PXEG
545 virtual int PixelEndcapNDisk()=0;
546
547 // Pixel Endcap Container PEVO
548 virtual double PixelEndcapRMin()=0;
549 virtual double PixelEndcapRMax()=0;
550 virtual double PixelEndcapZMin()=0;
551 virtual double PixelEndcapZMax()=0;
553
554 // Pixel Disks PXEI
555 virtual double PixelDiskPosition()=0;
556 virtual double PixelECSiDz1()=0;
557 virtual double PixelECSiDz2()=0;
558 virtual double PixelDiskRMin()=0;
559 virtual int PixelECNSectors1()=0;
560 virtual int PixelECNSectors2()=0;
561
562 // Endcap CABLES (PEAC)
563 virtual double PixelECCablesRMin()=0;
564 virtual double PixelECCablesRMax()=0;
565 virtual double PixelECCablesThickness()=0;
566 virtual double PixelECCablesDistance()=0;
567
568 // Design Parameter
569 //
570 virtual double DesignRPActiveArea()=0;
571 virtual double DesignZActiveArea()=0;
572
573 virtual int DesignCircuitsPerColumn()=0;
574 virtual int DesignCircuitsPerRow()=0;
575
576 virtual int DesignCellColumnsPerCircuit(bool isBLayer)=0;
577 virtual int DesignCellRowsPerCircuit(bool isBLayer)=0;
578 virtual int DesignDiodeColumnsPerCircuit(bool isBLayer)=0;
579 virtual int DesignDiodeRowsPerCircuit(bool isBLayer)=0;
580
581 virtual double DesignPitchRP(bool isBLayer)=0;
582 virtual double DesignGapRP()=0;
583 virtual double DesignPitchZ(bool isBLayer)=0;
584 virtual double DesignGapZ()=0;
585
586 // Ganged Pixels
587 virtual int NumberOfEmptyRows()=0;
588 virtual int EmptyRows(int index)=0;
589 virtual int EmptyRowConnections(int index)=0;
590
591 //
592 // conditions stuff (probably it shouldnt be here)
593 virtual double Voltage(bool isBLayer)=0;
594 virtual double Temperature(bool isBLayer)=0;
595
596 // CommonItems for Det Elements
598 virtual const InDetDD::SiCommonItems * commonItems() const=0;
600
601 // ID helper
602 virtual const PixelID * getIdHelper()=0;
603
604};
605#endif
606
607
608#ifndef OraclePixelGeoManager_H
609#define OraclePixelGeoManager_H
610
612 private:
613 //
614 // NovaObjects: PixbGeo
615 //
628
629 //
630 // NovaObjects: PixeGeo
631 //
635 //
636 // NovaObjects: Pixbdig
637 //
642
643 // eta, phi, layer/disk, side (EC)
648
650
651 // flag to build also the services
653
654 // flag to make elements compatible with G3 digits
656
657 // flag to indicate initial layout (2nd layer and disk missing)
659
660 // flag to force B-layer to have 300um pixels and be 200um thick
662
663 // control whether callbacks get registered
665
666 // Class holding items that only one instance is needed for all detector elements.
668
669 // the det descr manager...
671
672 //the material manager
674
675 // The Transient Detector Store Service
677
678 // The name of the collections in the det store
681
682 // The design of the pixel modules.
686
687 // version tag
688 std::string m_versionTag;
689
690 private:
691
692 double CalculateThickness(double,const std::string&);
693
694 public:
695
697
698
699 //
700 // GET THE OTHER MANAGERS FROM STOREGATE
701 // -------------------------------------
702
703 // Get the material manager:
704 virtual StoredMaterialManager* getMaterialManager() override;
705
706 // PixelDetectorManager
708
709 //
710 // VERSION TAG
711 // -----------
712 virtual std::string versionTag() const override {return m_versionTag;}
713
714 //
715 // DESIGN AND ELEMENT NAMES
716 // ------------------------
717 virtual void SetDetElementName(std::string) override;
718 virtual std::string GetDetElementName() override;
719 virtual void SetDesignName(std::string) override;
720 virtual std::string GetDesignName() override;
721
722 virtual void SetBarrelModuleName(std::string) override;
723 virtual std::string GetBarrelModuleName() override;
724 virtual void SetEndcapModuleName(std::string) override;
725 virtual std::string GetEndcapModuleName() override;
726 virtual void SetLayer0ModuleName(std::string) override;
727 virtual std::string GetLayer0ModuleName() override;
728
729 //
730 // BUILDING DEFINITIONS
731 // --------------------
732
733 // Do I want the services?
734 virtual void SetServices(bool isservice) override {m_services = isservice;}
735 virtual bool DoServices() override;
736
737 // Make elements compatible with G3 digits
738 virtual void SetG3CompatibleDigits(bool flag) override {m_g3CompatibleDigits = flag;}
739 virtual bool G3CompatibleDigits() const override;
740
741 // Initial layout (2nd layer missing)
742 virtual void SetInitialLayout(bool flag) override {m_initialLayout = flag;}
743 virtual bool InitialLayout() const override;
744
745 // DC1 Geometry. 300 um long pixels and 200 um thick sensor in B layer.
746 virtual void SetDC1Geometry(bool flag) override {m_dc1Geometry = flag;}
747 virtual bool DC1Geometry() const override;
748
749 // Control whether callbacks get registered
750 virtual void SetAlignable(bool flag) override {m_alignable = flag;}
751 virtual bool Alignable() const override;
752
753 //
754 // BUILDER HELPERS
755 // ----------------
756
757 virtual void SetEta(int eta) override {m_eta = eta;}
758 virtual void SetPhi(int phi) override {m_phi = phi;}
759 virtual int Eta() override {return m_eta;}
760 virtual int Phi() override {return m_phi;}
761
762 // What am I building?
763 virtual bool isBarrel() override;
764 virtual bool isEndcap() override;
765 virtual void SetBarrel() override;
766 virtual void SetEndcap() override;
767
768 // The layer/disk barrel/endcap can be changed by these function.
769 virtual void SetCurrentLD(int i) override;
770 virtual int GetLD() override {return m_currentLD;}
771
772 // Which layers/disks are present?
773 virtual bool isLDPresent() override;
774
775 // The side
776 virtual void SetPos() override {m_side = 1;}
777 virtual void SetNeg() override {m_side = -1;}
778 virtual int GetSide() override {return m_side;}
779
780 //
781 // DETECTOR PARAMTERS
782 // ------------------
783
784
785 // Version Number, for the Barrel/EndCap
786 inline virtual int PixelBarrelMajorVersion() override;
787 inline virtual int PixelBarrelMinorVersion() override;
788 inline virtual int PixelEndcapMajorVersion() override;
789 inline virtual int PixelEndcapMinorVersion() override;
790
791 // Si Board
792 virtual double PixelBoardWidth() override;
793 virtual double PixelBoardLength() override;
794 virtual double PixelBoardThickness() override;
795 virtual double PixelBoardActiveLen() override;
796
797 // Hybrid
798 virtual double PixelHybridWidth() override;
799 virtual double PixelHybridLength() override;
800 virtual double PixelHybridThickness() override;
801
802 // Fe Chips (PBRN)
803 virtual double PixelChipWidth() override;
804 virtual double PixelChipLength() override;
805 virtual double PixelChipGap() override;
806 virtual double PixelChipThickness() override;
807
808 // Disk Carbon Structure
809 virtual double PixelECCarbonRMin(std::string) override;
810 virtual double PixelECCarbonRMax(std::string) override;
811 virtual double PixelECCarbonThickness(std::string) override;
812 virtual std::string PixelECCarbonMaterial(std::string) override;
813
814 // Services
815 virtual double* PixelServiceR(std::string, int ) override;
816 virtual double* PixelServiceZ(std::string, int ) override;
817 virtual std::string PixelServiceMaterial(std::string, int ) override;
818 virtual int PixelServiceLD(std::string, int ) override;
819 virtual int PixelServiceNFrame(std::string) override;
820
821 // Atlas Global volume (from ATLS)
822 inline virtual double GetATLSRadius() override;
823 inline virtual double GetATLSRmin() override;
824 inline virtual double GetATLSLength() override;
825
826 // Pixel container (from PXBG)
827 inline virtual double PixelRMin() override;
828 inline virtual double PixelRMax() override;
829 inline virtual double PixelHalfLength() override;
830 inline virtual int PixelBarrelNLayer() override;
831
832 // Pixel Barrel (from PXBO)
833 inline virtual double PixelBarrelRMin() override;
834 inline virtual double PixelBarrelRMax() override;
835 inline virtual double PixelBarrelHalfLength() override;
836
837 // Pixel Layers Geomtry (PXBI)
838 inline virtual double PixelLayerRadius() override;
839 inline virtual double PixelLadderHalfLength() override;
840 inline virtual double PixelLadderWidth() override;
841 virtual double PixelLadderThickness() override;
842 inline virtual double PixelLadderTilt() override;
843 inline virtual int NPixelSectors() override;
844 inline virtual double PixelBalcony() override;
845 inline virtual int PixelNModule() override;
846 inline virtual double PixelModuleDrDistance() override;
847 inline virtual double PixelModuleAngle() override;
848 inline virtual double PixelModulePosition(int) override;
849 inline virtual double PixelModuleShiftFlag(int) override;
850 inline virtual double PixelModuleAngleSign(int) override;
851
852 // Barrel LAYER CABLES (PBAC)
853 inline virtual double PixelCableWidth() override;
854 inline virtual double PixelCableThickness() override;
855 inline virtual double PixelCableZMax() override;
856 inline virtual double PixelCableZMin() override;
857 inline virtual double PixelCableDeltaZ() override;
858
859 // Pixel Endcap PXEG
860 inline int PixelEndcapNDisk() override;
861
862 // Pixel Endcap Container PEVO
863 inline virtual double PixelEndcapRMin() override;
864 inline virtual double PixelEndcapRMax() override;
865 inline virtual double PixelEndcapZMin() override;
866 inline virtual double PixelEndcapZMax() override;
867 inline virtual int PixelEndcapNSupportFrames() override;
868
869 // Pixel Disks PXEI
870 inline virtual double PixelDiskPosition() override;
871 inline virtual double PixelECSiDz1() override;
872 inline virtual double PixelECSiDz2() override;
873 inline virtual double PixelDiskRMin() override;
874 inline virtual int PixelECNSectors1() override;
875 inline virtual int PixelECNSectors2() override;
876
877 // Endcap CABLES (PEAC)
878 inline virtual double PixelECCablesRMin() override;
879 inline virtual double PixelECCablesRMax() override;
880 virtual double PixelECCablesThickness() override;
881 inline virtual double PixelECCablesDistance() override;
882
883 // Design Parameter
884 //
885 inline virtual double DesignRPActiveArea() override;
886 inline virtual double DesignZActiveArea() override;
887
888 inline virtual int DesignCircuitsPerColumn() override;
889 inline virtual int DesignCircuitsPerRow() override;
890
891 virtual int DesignCellColumnsPerCircuit(bool isBLayer) override;
892 virtual int DesignCellRowsPerCircuit(bool isBLayer) override;
893 virtual int DesignDiodeColumnsPerCircuit(bool isBLayer) override;
894 virtual int DesignDiodeRowsPerCircuit(bool isBLayer) override;
895
896 inline virtual double DesignPitchRP(bool isBLayer) override;
897 inline virtual double DesignGapRP() override;
898 inline virtual double DesignPitchZ(bool isBLayer) override;
899 inline virtual double DesignGapZ() override;
900
901 // Ganged Pixels
902 virtual int NumberOfEmptyRows() override;
903 virtual int EmptyRows(int index) override;
904 virtual int EmptyRowConnections(int index) override;
905
906 //
907 // conditions stuff (probably it shouldnt be here)
908 virtual double Voltage(bool isBLayer) override;
909 virtual double Temperature(bool isBLayer) override;
910
911 // CommonItems for Det Elements
912 virtual InDetDD::SiCommonItems * commonItems() override;
913 virtual const InDetDD::SiCommonItems * commonItems() const override;
914 virtual void setCommonItems(InDetDD::SiCommonItems * commonItems) override;
915
916 // ID helper
917 const PixelID * getIdHelper() override;
918
919};
920
921//
922// INLINE METHODS:
923//
924
925// ATLS
927{
928 return (*m_atls)[0]->getDouble("RMAX")*Gaudi::Units::cm;
929 }
930
932{
933 return (*m_atls)[0]->getDouble("RMIN")*Gaudi::Units::cm;
934}
936{
937 return (*m_atls)[0]->getDouble("ZMAX")*Gaudi::Units::cm;
938}
939
940//
941// Version of the Geometry
942//
943
944// PXPA
945int OraclePixGeoManager::PixelBarrelMajorVersion() { return static_cast<int>((*m_PixelBarrelGeneral)[0]->getDouble("VERSION"));}
947 { return static_cast<int>(((*m_PixelBarrelGeneral)[0]->getDouble("VERSION") - PixelBarrelMajorVersion())*10 + 0.5);}
948int OraclePixGeoManager::PixelEndcapMajorVersion() { return static_cast<int>((*m_PixelEndcapGeneral)[0]->getDouble("VERSION"));}
950 { return static_cast<int>(((*m_PixelEndcapGeneral)[0]->getDouble("VERSION") - PixelEndcapMajorVersion())*10 + 0.5);}
951
952// PXBG
953double OraclePixGeoManager::PixelRMin() {return (*m_PixelCommon)[0]->getDouble("RMIN")*Gaudi::Units::cm;}
954double OraclePixGeoManager::PixelRMax() {return (*m_PixelCommon)[0]->getDouble("RMAX")*Gaudi::Units::cm;}
955double OraclePixGeoManager::PixelHalfLength() {return (*m_PixelCommon)[0]->getDouble("HALFLENGTH")*Gaudi::Units::cm;}
957
958// m_PixelBarrelGeneral
959double OraclePixGeoManager::PixelBarrelRMin() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMIN")*Gaudi::Units::cm;}
960double OraclePixGeoManager::PixelBarrelRMax() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMAX")*Gaudi::Units::cm;}
961double OraclePixGeoManager::PixelBarrelHalfLength() {return (*m_PixelBarrelGeneral)[0]->getDouble("HALFLENGTH")*Gaudi::Units::cm;}
962
963// PXBI
965{
966 return (*m_PixelLayer)[m_currentLD]->getDouble("RLAYER")*Gaudi::Units::cm;
967}
968
970{
971 return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*Gaudi::Units::cm;
972}
973
975{
976 return (*m_PixelStave)[0]->getDouble("SUPPORTWIDTH")*Gaudi::Units::cm;
977}
978
980{
981 return (*m_PixelLayer)[m_currentLD]->getDouble("STAVETILT")*Gaudi::Units::deg;
982}
984{
985 return (*m_PixelLayer)[m_currentLD]->getInt("NSECTORS");
986}
987
989{
990 return (*m_pxbi)[m_currentLD]->getDouble("DXELEB")*Gaudi::Units::cm;
991}
992
994{
995 return (*m_PixelStave)[0]->getInt("NMODULE");
996}
997
999{
1000 return (*m_PixelStave)[0]->getDouble("MODULETILT")*Gaudi::Units::deg;
1001}
1002
1004{
1005 return (*m_PixelStave)[0]->getDouble("CENTRMODULESHIFT")*Gaudi::Units::cm;
1006}
1007
1009{
1010 return (*m_PixelStave)[0]->getDouble("MODULEDZ")*Gaudi::Units::cm*im;
1011}
1012
1013// OBSOLETE!!! TO MOVE INTO THE NEW FACTORY
1015{
1016 if(im == 0) return 1.;
1017 return 0.;
1018}
1019
1020// OBSOLETE!!! TO MOVE INTO THE NEW FACTORY
1022{
1023 if(im < 6) return 1.;
1024 if(im > 6) return -1.;
1025 return 0.;
1026}
1027
1028
1029// PBAC
1031 return (*m_PixelStave)[0]->getDouble("CABLEWIDTH")*Gaudi::Units::cm;
1032}
1033
1035 return (*m_PixelStave)[0]->getDouble("CABLETHICK")*Gaudi::Units::cm;
1036}
1037
1039 return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*Gaudi::Units::cm;
1040}
1041
1043 return (*m_PixelStave)[0]->getDouble("CABLEZMIN")*Gaudi::Units::cm;
1044}
1045
1047 return (*m_PixelStave)[0]->getDouble("MODULEDZ")*Gaudi::Units::cm;
1048}
1049
1050
1051// EndCap PXEG Mistake in table name.
1053
1054// Endcap container PEVO
1055double OraclePixGeoManager::PixelEndcapRMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMIN")*Gaudi::Units::cm;}
1056
1057double OraclePixGeoManager::PixelEndcapRMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMAX")*Gaudi::Units::cm;}
1058
1059double OraclePixGeoManager::PixelEndcapZMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMIN")*Gaudi::Units::cm;}
1060
1061double OraclePixGeoManager::PixelEndcapZMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")*Gaudi::Units::cm;}
1062
1063int OraclePixGeoManager::PixelEndcapNSupportFrames() {return (int) (*m_PixelEndcapGeneral)[0]->getDouble("NFRAME");}
1064
1065// Endcap Inner (PXEI)
1066double OraclePixGeoManager::PixelDiskPosition() {return (*m_PixelDisk)[m_currentLD]->getDouble("ZDISK")*Gaudi::Units::cm;}
1067
1068double OraclePixGeoManager::PixelDiskRMin() {return (*m_PixelDisk)[m_currentLD]->getDouble("RIDISK")*Gaudi::Units::cm;}
1069
1070double OraclePixGeoManager::PixelECSiDz1() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*Gaudi::Units::cm;}
1071
1072double OraclePixGeoManager::PixelECSiDz2() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*Gaudi::Units::cm;}
1073
1075
1077
1078// Endcap Cables PEAC
1080 return (*m_PixelDisk)[m_currentLD]->getDouble("RMINCABLE")*Gaudi::Units::cm;
1081}
1082
1084 return (*m_PixelDisk)[m_currentLD]->getDouble("RMAXCABLE")*Gaudi::Units::cm;
1085}
1086
1087
1089 return (*m_PixelDisk)[m_currentLD]->getDouble("ZCABLE")*Gaudi::Units::cm;
1090}
1091//
1092// Design
1093//
1094
1096 return (*m_pxbi)[0]->getDouble("DYACTIVE")*Gaudi::Units::cm;
1097}
1099 return (*m_pxbi)[0]->getDouble("DZELEB")*Gaudi::Units::cm;
1100}
1101
1103 if(isBLayer) return (*m_pxbd)[0]->getDouble("PITCHRP")*Gaudi::Units::cm;
1104 else return (*m_pxbd)[1]->getDouble("PITCHRP")*Gaudi::Units::cm;
1105}
1106
1108 double pitchZ;
1109 if(isBLayer) {
1110 if (m_dc1Geometry) { // Override NOVA
1111 pitchZ = 300 * Gaudi::Units::micrometer;
1112 } else {
1113 pitchZ = (*m_pxbd)[0]->getDouble("PITCHZ") * Gaudi::Units::cm;
1114 }
1115 } else {
1116 pitchZ = (*m_pxbd)[1]->getDouble("PITCHZ") * Gaudi::Units::cm;
1117 }
1118 return pitchZ;
1119}
1120
1122 return (*m_pdch)[0]->getDouble("GAPRP")*Gaudi::Units::cm;
1123}
1124
1126 return (*m_pdch)[0]->getDouble("GAPZ")*Gaudi::Units::cm;
1127}
1128
1129
1131 //
1132 // This should be (*m_pdch)[0]->getDouble("NRPCHIP"), but in the current
1133 // design we prefer to have one chip in the rphi direction
1134 // and define the connections for the pixels in the gap
1135 return 1;
1136}
1138 return (*m_pdch)[0]->getInt("NZCHIP");
1139}
1140
1141
1142
1143#endif
1144
1145}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Definition of the abstract IRDBAccessSvc interface.
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition of the abstract IRDBRecord interface.
Definition of the abstract IRDBRecordset interface.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Helper class to concentrate common items, such as the pointer to the IdHelper, the lorentzAngle tool ...
Base class for the detector design classes for Pixel and SCT.
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
void SetModuleNumber(int moduleNumber)
virtual GeoVPhysVol * Build() override
GeoPixelCable(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
virtual GeoVPhysVol * Build() override
GeoPixelDiskSupports(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
std::vector< std::string > m_material
virtual ~GeoPixelDisk()=default
virtual GeoVPhysVol * Build() override
GeoPixelDisk(const GeoPixelDisk &)=delete
GeoIntrusivePtr< GeoLogVol > m_theDisk
GeoPixelDisk(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoPixelDisk & operator=(const GeoPixelDisk &)=delete
GeoPixelECCable(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoPixelECCable & operator=(const GeoPixelECCable &)=delete
GeoPixelECCable(const GeoPixelECCable &)=delete
virtual GeoVPhysVol * Build() override
GeoIntrusivePtr< GeoLogVol > m_theECCable
virtual ~GeoPixelECCable()=default
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoIntrusivePtr< GeoLogVol > m_theLadder
GeoPixelLadder(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
virtual ~GeoPixelLadder()=default
virtual GeoVPhysVol * Build() override
GeoPixelLadder & operator=(const GeoPixelLadder &)=delete
GeoPixelLadder(const GeoPixelLadder &)=delete
virtual GeoVPhysVol * Build() override
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
GeoIntrusivePtr< GeoLogVol > m_theModule
virtual GeoVPhysVol * Build() override
GeoPixelModule & operator=(const GeoPixelModule &)=delete
virtual ~GeoPixelModule()=default
GeoPixelModule(const GeoPixelModule &)=delete
GeoPixelModule(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
std::vector< std::string > m_material
void initialize(const std::string &)
GeoPixelServices(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, const std::string &)
virtual GeoVPhysVol * Build() override
virtual GeoVPhysVol * Build() override
GeoPixelSiCrystal(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, bool isBLayer)
const InDetDD::SiDetectorDesign * m_design
virtual GeoVPhysVol * Build() override
GeoIntrusivePtr< GeoLogVol > m_theSubDisk
GeoPixelSubDisk(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoPixelSiCrystal &theSensor)
GeoPixelSubDisk(const GeoPixelSubDisk &)=delete
virtual ~GeoPixelSubDisk()=default
GeoPixelSubDisk & operator=(const GeoPixelSubDisk &)=delete
GeoIntrusivePtr< GeoLogVol > m_theBox
GeoPixelTubeCables & operator=(const GeoPixelTubeCables &)=delete
virtual GeoVPhysVol * Build() override
GeoPixelTubeCables(const GeoPixelTubeCables &)=delete
GeoPixelTubeCables(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
virtual ~GeoPixelTubeCables()=default
StoredMaterialManager * m_mat_mgr
PixelGeometryManager * m_gmt_mgr
GeoVPixelFactory(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr)
InDetDD::PixelDetectorManager * m_DDmgr
virtual GeoVPhysVol * Build()=0
virtual double DesignPitchZ(bool isBLayer) override
virtual double Voltage(bool isBLayer) override
virtual double PixelLadderThickness() override
virtual int PixelServiceNFrame(std::string) override
virtual double DesignRPActiveArea() override
virtual void SetEndcapModuleName(std::string) override
virtual int DesignDiodeColumnsPerCircuit(bool isBLayer) override
const PixelID * getIdHelper() override
virtual int PixelEndcapMajorVersion() override
virtual double PixelEndcapZMax() override
virtual void SetCurrentLD(int i) override
virtual double PixelChipWidth() override
virtual double PixelEndcapRMin() override
virtual double PixelCableZMax() override
virtual double GetATLSRmin() override
virtual double PixelECCablesRMin() override
virtual void SetLayer0ModuleName(std::string) override
virtual int DesignCircuitsPerColumn() override
virtual double PixelChipLength() override
virtual double PixelCableWidth() override
virtual void SetPhi(int phi) override
virtual int PixelEndcapNSupportFrames() override
virtual std::string GetDetElementName() override
virtual double PixelECSiDz1() override
virtual double GetATLSRadius() override
virtual double PixelHybridThickness() override
virtual double DesignPitchRP(bool isBLayer) override
virtual int DesignCellColumnsPerCircuit(bool isBLayer) override
virtual double PixelDiskRMin() override
virtual double PixelBoardThickness() override
virtual double PixelChipThickness() override
virtual double DesignGapRP() override
virtual double PixelLadderWidth() override
virtual double PixelBoardWidth() override
virtual void setCommonItems(InDetDD::SiCommonItems *commonItems) override
virtual int DesignCircuitsPerRow() override
virtual std::string GetLayer0ModuleName() override
virtual StoredMaterialManager * getMaterialManager() override
virtual double PixelBoardLength() override
virtual int EmptyRowConnections(int index) override
virtual int PixelBarrelMajorVersion() override
virtual double PixelRMax() override
virtual std::string versionTag() const override
virtual bool DC1Geometry() const override
virtual std::string PixelServiceMaterial(std::string, int) override
virtual double PixelECCarbonRMax(std::string) override
virtual double PixelRMin() override
virtual std::string GetEndcapModuleName() override
virtual int PixelBarrelNLayer() override
virtual void SetEta(int eta) override
virtual double PixelHalfLength() override
virtual double PixelECCarbonRMin(std::string) override
virtual double PixelCableDeltaZ() override
virtual std::string GetBarrelModuleName() override
virtual void SetDC1Geometry(bool flag) override
virtual double PixelBalcony() override
virtual int DesignCellRowsPerCircuit(bool isBLayer) override
double CalculateThickness(double, const std::string &)
virtual int PixelServiceLD(std::string, int) override
virtual bool InitialLayout() const override
virtual void SetDesignName(std::string) override
virtual double PixelCableThickness() override
virtual double PixelECSiDz2() override
virtual double PixelLayerRadius() override
virtual double PixelECCablesDistance() override
virtual double GetATLSLength() override
virtual double PixelModuleDrDistance() override
virtual double PixelHybridLength() override
virtual void SetInitialLayout(bool flag) override
virtual double * PixelServiceZ(std::string, int) override
InDetDD::PixelDetectorManager * m_pDDmgr
virtual bool G3CompatibleDigits() const override
virtual double PixelCableZMin() override
virtual double PixelModuleShiftFlag(int) override
virtual double DesignGapZ() override
InDetDD::SiCommonItems * m_commonItems
virtual int PixelBarrelMinorVersion() override
virtual double PixelBarrelHalfLength() override
virtual double PixelECCarbonThickness(std::string) override
virtual double PixelModuleAngle() override
virtual double PixelBarrelRMax() override
virtual double PixelDiskPosition() override
virtual double * PixelServiceR(std::string, int) override
virtual void SetG3CompatibleDigits(bool flag) override
virtual double PixelECCablesThickness() override
virtual void SetAlignable(bool flag) override
virtual double PixelModuleAngleSign(int) override
virtual double PixelBoardActiveLen() override
virtual double PixelBarrelRMin() override
virtual InDetDD::SiCommonItems * commonItems() override
virtual double PixelLadderTilt() override
virtual int EmptyRows(int index) override
virtual double Temperature(bool isBLayer) override
virtual double PixelECCablesRMax() override
virtual void SetServices(bool isservice) override
virtual double PixelHybridWidth() override
virtual void SetDetElementName(std::string) override
virtual std::string PixelECCarbonMaterial(std::string) override
virtual int PixelEndcapMinorVersion() override
virtual std::string GetDesignName() override
virtual InDetDD::PixelDetectorManager * GetPixelDDManager() override
virtual double PixelEndcapZMin() override
virtual int DesignDiodeRowsPerCircuit(bool isBLayer) override
virtual void SetBarrelModuleName(std::string) override
virtual double PixelLadderHalfLength() override
virtual double PixelEndcapRMax() override
virtual double PixelModulePosition(int) override
virtual double DesignZActiveArea() override
virtual bool Alignable() const override
virtual double PixelLadderThickness()=0
virtual double PixelECCarbonRMin(std::string)=0
virtual double PixelHybridWidth()=0
virtual InDetDD::PixelDetectorManager * GetPixelDDManager()=0
virtual int PixelEndcapNSupportFrames()=0
virtual double DesignPitchZ(bool isBLayer)=0
virtual double PixelChipLength()=0
virtual void SetPhi(int phi)=0
virtual void SetInitialLayout(bool flag)=0
virtual int PixelBarrelMajorVersion()=0
virtual double PixelBarrelRMax()=0
virtual double PixelHybridThickness()=0
virtual double PixelECCarbonThickness(std::string)=0
virtual double PixelCableThickness()=0
virtual double PixelBoardWidth()=0
virtual double PixelBoardActiveLen()=0
virtual double PixelModuleAngle()=0
virtual std::string GetDesignName()=0
virtual void SetServices(bool isservice)=0
virtual void setCommonItems(InDetDD::SiCommonItems *commonItems)=0
virtual double PixelEndcapZMax()=0
virtual double PixelBoardLength()=0
virtual std::string PixelServiceMaterial(std::string, int)=0
virtual void SetEndcapModuleName(std::string)=0
virtual int PixelEndcapMinorVersion()=0
virtual double PixelChipWidth()=0
virtual double PixelHybridLength()=0
virtual void SetDC1Geometry(bool flag)=0
virtual double PixelChipThickness()=0
virtual double PixelECCablesRMin()=0
virtual int DesignCellColumnsPerCircuit(bool isBLayer)=0
virtual int PixelEndcapMajorVersion()=0
virtual double PixelModuleDrDistance()=0
virtual int DesignDiodeRowsPerCircuit(bool isBLayer)=0
virtual double * PixelServiceZ(std::string, int)=0
virtual int PixelServiceLD(std::string, int)=0
virtual double PixelCableWidth()=0
virtual double PixelModuleAngleSign(int)=0
virtual bool InitialLayout() const =0
virtual void SetDesignName(std::string)=0
virtual bool G3CompatibleDigits() const =0
virtual void SetBarrelModuleName(std::string)=0
virtual double PixelECCablesThickness()=0
virtual double PixelCableDeltaZ()=0
virtual double GetATLSLength()=0
virtual int DesignDiodeColumnsPerCircuit(bool isBLayer)=0
virtual double PixelDiskPosition()=0
virtual bool DC1Geometry() const =0
virtual void SetDetElementName(std::string)=0
virtual double PixelECCablesDistance()=0
virtual int EmptyRows(int index)=0
virtual std::string versionTag() const =0
virtual double PixelCableZMin()=0
virtual void SetAlignable(bool flag)=0
virtual double PixelLadderHalfLength()=0
virtual std::string GetDetElementName()=0
virtual double PixelBarrelHalfLength()=0
virtual int PixelBarrelMinorVersion()=0
virtual double DesignRPActiveArea()=0
virtual double PixelBarrelRMin()=0
virtual double PixelLadderWidth()=0
virtual int DesignCircuitsPerColumn()=0
virtual double PixelDiskRMin()=0
virtual int EmptyRowConnections(int index)=0
virtual InDetDD::SiCommonItems * commonItems()=0
virtual int DesignCellRowsPerCircuit(bool isBLayer)=0
virtual std::string PixelECCarbonMaterial(std::string)=0
virtual std::string GetEndcapModuleName()=0
virtual double PixelEndcapZMin()=0
virtual double Temperature(bool isBLayer)=0
virtual double PixelModulePosition(int)=0
virtual double PixelEndcapRMax()=0
virtual void SetG3CompatibleDigits(bool flag)=0
virtual const PixelID * getIdHelper()=0
virtual double PixelBoardThickness()=0
virtual double Voltage(bool isBLayer)=0
virtual int PixelServiceNFrame(std::string)=0
virtual double GetATLSRadius()=0
virtual void SetLayer0ModuleName(std::string)=0
virtual double PixelEndcapRMin()=0
virtual double PixelCableZMax()=0
virtual double PixelECCarbonRMax(std::string)=0
virtual void SetEta(int eta)=0
virtual double PixelECCablesRMax()=0
virtual double DesignZActiveArea()=0
virtual bool Alignable() const =0
virtual double PixelLadderTilt()=0
virtual double DesignPitchRP(bool isBLayer)=0
virtual std::string GetLayer0ModuleName()=0
virtual StoredMaterialManager * getMaterialManager()=0
virtual double PixelModuleShiftFlag(int)=0
virtual void SetCurrentLD(int i)=0
virtual double * PixelServiceR(std::string, int)=0
virtual const InDetDD::SiCommonItems * commonItems() const =0
virtual double PixelHalfLength()=0
virtual double PixelLayerRadius()=0
virtual std::string GetBarrelModuleName()=0
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
The Athena Transient Store API.
This class holds one or more material managers and makes them storeable, under StoreGate.
Message Stream Member.
Definition index.py:1