ATLAS Offline Software
InDetProjFlags.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // //
7 // Common flags for Inner Detector projections //
8 // //
9 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
10 // Initial version: November 2007 //
11 // //
13 
14 //NB: This header file is intended to be seen by other systems (so
15 // they can use the flag types as signal parameters) - thus don't add
16 // extra includes/functionality here!
17 
18 #ifndef INDETPROJECTIONFLAGS_H
19 #define INDETPROJECTIONFLAGS_H
20 
21 #include <QFlags>
22 
24 public:
25 
26  //Projected data in which parts of the detector:
27  enum DetTypeFlag {
28  NoDet = 0x000000,
29  SCT_brlpos = 0x000001,
30  SCT_brlneg = 0x000002,
31  SCT_ecpos = 0x000004,
32  SCT_ecneg = 0x000008,
33  SCT_all = 0x00000F,
34  Pixel_brlpos = 0x000010,
35  Pixel_brlneg = 0x000020,
36  Pixel_ecpos = 0x000040,
37  Pixel_ecneg = 0x000080,
38  Pixel_all = 0x0000F0,
39  TRT_brlpos = 0x000100,
40  TRT_brlneg = 0x000200,
41  TRT_ecpos = 0x000400,
42  TRT_ecneg = 0x000800,
43  TRT_all = 0x000F00
44  };
45  Q_DECLARE_FLAGS(DetTypeFlags, DetTypeFlag)
46 
47  //Project to which surfaces:
49  NoProjections = 0x000000,
50  BarrelPositive = 0x000001,
51  BarrelNegative = 0x000002,
52  BarrelCentral = 0x000004,
53  EndCapOuterPositive = 0x000010,
54  EndCapOuterNegative = 0x000020,
55  EndCapInnerPositive = 0x000040,
56  EndCapInnerNegative = 0x000080,
57  //TRT only:
61  //Convenience:
62  Barrel_All = 0x000007,
63  Barrel_AllPos = 0x000005,
64  Barrel_AllNeg = 0x000006,
65  EndCap_All = 0x0007F0,
66  EndCap_AllPos = 0x000550,
67  EndCap_AllNeg = 0x0006A0
68  };
69  Q_DECLARE_FLAGS(InDetProjPartsFlags, InDetProjPartsFlag)
70 
71  //To null out parts of the flags, if the corresponding detector parts are not used:
72  static void projectionPartsGivenUsedDetectors( InDetProjPartsFlags& proj_pixel,
73  InDetProjPartsFlags& proj_sct,
74  InDetProjPartsFlags& proj_trt,
75  const DetTypeFlags& useddets );
76 
77 private:
80 };
81 
82 Q_DECLARE_OPERATORS_FOR_FLAGS(InDetProjFlags::DetTypeFlags)
83 Q_DECLARE_OPERATORS_FOR_FLAGS(InDetProjFlags::InDetProjPartsFlags)
84 
85 #endif
InDetProjFlags::EndCap_AllNeg
@ EndCap_AllNeg
Definition: InDetProjFlags.h:67
InDetProjFlags::EndCapOuterNegative
@ EndCapOuterNegative
Definition: InDetProjFlags.h:54
InDetProjFlags::SCT_all
@ SCT_all
Definition: InDetProjFlags.h:33
InDetProjFlags::Pixel_ecpos
@ Pixel_ecpos
Definition: InDetProjFlags.h:36
InDetProjFlags::DetTypeFlag
DetTypeFlag
Definition: InDetProjFlags.h:27
InDetProjFlags::BarrelPositive
@ BarrelPositive
Definition: InDetProjFlags.h:50
InDetProjFlags::InDetProjFlags
InDetProjFlags()
InDetProjFlags::TRT_ecpos
@ TRT_ecpos
Definition: InDetProjFlags.h:41
InDetProjFlags::projectionPartsGivenUsedDetectors
static void projectionPartsGivenUsedDetectors(InDetProjPartsFlags &proj_pixel, InDetProjPartsFlags &proj_sct, InDetProjPartsFlags &proj_trt, const DetTypeFlags &useddets)
Definition: InDetProjFlags.cxx:17
InDetProjFlags::Pixel_brlpos
@ Pixel_brlpos
Definition: InDetProjFlags.h:34
InDetProjFlags::Barrel_AllNeg
@ Barrel_AllNeg
Definition: InDetProjFlags.h:64
InDetProjFlags::InDetProjPartsFlag
InDetProjPartsFlag
Definition: InDetProjFlags.h:48
InDetProjFlags::TRT_EndCapZToRCentral
@ TRT_EndCapZToRCentral
Definition: InDetProjFlags.h:60
InDetProjFlags::SCT_brlpos
@ SCT_brlpos
Definition: InDetProjFlags.h:29
InDetProjFlags::Barrel_AllPos
@ Barrel_AllPos
Definition: InDetProjFlags.h:63
InDetProjFlags::SCT_ecpos
@ SCT_ecpos
Definition: InDetProjFlags.h:31
InDetProjFlags::EndCapInnerPositive
@ EndCapInnerPositive
Definition: InDetProjFlags.h:55
InDetProjFlags::SCT_ecneg
@ SCT_ecneg
Definition: InDetProjFlags.h:32
InDetProjFlags::EndCapInnerNegative
@ EndCapInnerNegative
Definition: InDetProjFlags.h:56
InDetProjFlags::BarrelCentral
@ BarrelCentral
Definition: InDetProjFlags.h:52
InDetProjFlags::EndCap_AllPos
@ EndCap_AllPos
Definition: InDetProjFlags.h:66
InDetProjFlags::Pixel_ecneg
@ Pixel_ecneg
Definition: InDetProjFlags.h:37
InDetProjFlags
Definition: InDetProjFlags.h:23
InDetProjFlags::TRT_all
@ TRT_all
Definition: InDetProjFlags.h:43
InDetProjFlags::Pixel_all
@ Pixel_all
Definition: InDetProjFlags.h:38
InDetProjFlags::Barrel_All
@ Barrel_All
Definition: InDetProjFlags.h:62
InDetProjFlags::TRT_brlpos
@ TRT_brlpos
Definition: InDetProjFlags.h:39
InDetProjFlags::NoDet
@ NoDet
Definition: InDetProjFlags.h:28
InDetProjFlags::Pixel_brlneg
@ Pixel_brlneg
Definition: InDetProjFlags.h:35
InDetProjFlags::~InDetProjFlags
~InDetProjFlags()
InDetProjFlags::EndCap_All
@ EndCap_All
Definition: InDetProjFlags.h:65
InDetProjFlags::TRT_brlneg
@ TRT_brlneg
Definition: InDetProjFlags.h:40
InDetProjFlags::TRT_ecneg
@ TRT_ecneg
Definition: InDetProjFlags.h:42
InDetProjFlags::NoProjections
@ NoProjections
Definition: InDetProjFlags.h:49
InDetProjFlags::TRT_EndCapZToRPositive
@ TRT_EndCapZToRPositive
Definition: InDetProjFlags.h:58
InDetProjFlags::BarrelNegative
@ BarrelNegative
Definition: InDetProjFlags.h:51
InDetProjFlags::EndCapOuterPositive
@ EndCapOuterPositive
Definition: InDetProjFlags.h:53
InDetProjFlags::SCT_brlneg
@ SCT_brlneg
Definition: InDetProjFlags.h:30
InDetProjFlags::TRT_EndCapZToRNegative
@ TRT_EndCapZToRNegative
Definition: InDetProjFlags.h:59