CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFBlockLink.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFAlgo_PFBlockLink_h
2 #define RecoParticleFlow_PFAlgo_PFBlockLink_h
3 
4 #include <vector>
6 
11 class PFBlockLink {
12 
13  public:
14 
16  enum Type {
17  NONE=0,
23  PS2andECAL = 0xC,
24  TRACKandPS1 = 0x3,
25  TRACKandPS2 = 0x5,
26  PS1andPS2 = 0x6,
28  ECALandGSF = 0x28,
29  HCALandGSF = 0x30,
30  TRACKandGSF = 0x21,
31  GSFandBREM =0x60,
32  GSFandGSF = 0x20,
33  ECALandBREM = 0x48,
34  HCALandBREM = 0x50,
35  PS1andGSF = 0x22,
36  PS2andGSF = 0x24,
37  PS1andBREM = 0x42,
38  PS2andBREM = 0x44,
39  HFEMandHFHAD = 0x180
40  };
41 
45  type_(NONE),
46  test_(reco::PFBlock::LINKTEST_RECHIT),
47  dist_(0),
48  element1_( 0 ),
49  element2_( 0 ) {}
50 
54  double dist,
55  unsigned elem1,
56  unsigned elem2)
57  :
58  type_(type),
59  test_(test),
60  dist_(dist),
61  element1_(elem1),
62  element2_(elem2) {}
63 
64 
66  unsigned neighbour(unsigned elem) const {
67  if( elem == element1_ ) return element2_;
68  else if(elem == element2_ ) return element1_;
69  else return elem;
70  }
71 
73  Type type() const {return type_;}
74 
77  reco::PFBlock::LinkTest test() const {return test_;}
78 
80  double dist() const {return dist_;}
81 
83  unsigned element1() const {return element1_;}
84 
86  unsigned element2() const {return element2_;}
87 
88 
90  friend std::ostream& operator<<(std::ostream& out, const PFBlockLink& l);
91 
92  private:
95 
98 
100  double dist_;
101 
103  unsigned element1_;
104 
106  unsigned element2_;
107 
108 };
109 
110 #endif
type
Definition: HCALResponse.h:22
tuple out
Definition: dbtoconf.py:99