FEDRA emulsion software from the OPERA Collaboration
EdbSegCouple.h
Go to the documentation of this file.
1 #ifndef ROOT_EdbSegCouple
2 #define ROOT_EdbSegCouple
3 
5 // //
6 // EdbSegCouple //
7 // //
8 // service class for couples handling //
9 // //
11 #include "EdbSegP.h"
12 
13 //______________________________________________________________________________
14 class EdbSegCouple : public TObject {
15 
16  private:
17  Int_t eID1, eID2;
18  Float_t eCHI2; // final chi2 calculation based on the linked track
19  Float_t eCHI2P; // fast chi2 estimation used for couples selection
20  Int_t eN1, eN2; // n1,n2 - is rating of the segment (starting from 1)
21  Int_t eN1tot, eN2tot; // total number of entries for the segment
22 
23  public:
27  bool eIsOwner;
28 
29  private:
30  static int egSortFlag;
31 
32  public:
34  EdbSegCouple(const EdbSegCouple &sc );
35  EdbSegCouple( int id1, int id2 )
36  { Set0();eID1=id1;eID2=id2; eCHI2=0; eCHI2P=0; eN1=0; eN2=0; }
37  ~EdbSegCouple();
38 
39  void Set0();
40  void SetN1(int n1) {eN1=n1;}
41  void SetN2(int n2) {eN2=n2;}
42  void SetN1tot(int n) {eN1tot=n;}
43  void SetN2tot(int n) {eN2tot=n;}
44  void SetCHI2(float chi2) {eCHI2=chi2;}
45  void SetCHI2P(float chi2) {eCHI2P=chi2;}
46 
47  void Print();
48 
49  static void SetSortFlag(int s=0);
50  static int SortFlag() {return egSortFlag;}
51 
52  int ID1() const {return eID1;}
53  int ID2() const {return eID2;}
54  int N1() const {return eN1;}
55  int N2() const {return eN2;}
56  int N1tot() const {return eN1tot;}
57  int N2tot() const {return eN2tot;}
58  float CHI2() const {return eCHI2;}
59  float CHI2P() const {return eCHI2P;}
60 
61  //ULong_t Hash() const { return fValue; }
62  Bool_t IsEqual(const TObject *obj) const
63  { return
64  (ID1()==((EdbSegCouple*)obj)->ID1())&&
65  (ID2()==((EdbSegCouple*)obj)->ID2()); }
66  Bool_t IsSortable() const { return kTRUE; }
67  Int_t Compare(const TObject *obj) const;
68 
69  ClassDef(EdbSegCouple,1) // couple of segments
70 };
71 #endif /* ROOT_EdbSegCouple */
Definition: EdbSegCouple.h:14
void SetN1(int n1)
Definition: EdbSegCouple.h:40
~EdbSegCouple()
Definition: EdbSegCouple.cxx:36
EdbSegCouple()
0: chi2p only; 1: N1()*10000+N2()*10000000 + CHI2()/100
void SetN2(int n2)
Definition: EdbSegCouple.h:41
Bool_t IsSortable() const
Definition: EdbSegCouple.h:66
EdbSegP * eS
Definition: EdbSegCouple.h:24
static int SortFlag()
Definition: EdbSegCouple.h:50
void SetN1tot(int n)
Definition: EdbSegCouple.h:42
Int_t eN1tot
Definition: EdbSegCouple.h:21
EdbSegP * eS2
pointers - useful when all segments are in memory
Definition: EdbSegCouple.h:26
Int_t eN2
Definition: EdbSegCouple.h:20
Int_t eN2tot
Definition: EdbSegCouple.h:21
EdbSegCouple(int id1, int id2)
Definition: EdbSegCouple.h:35
void Print()
Definition: EdbSegCouple.cxx:67
void Set0()
Definition: EdbSegCouple.cxx:44
void SetN2tot(int n)
Definition: EdbSegCouple.h:43
void SetCHI2P(float chi2)
Definition: EdbSegCouple.h:45
Int_t eID1
Definition: EdbSegCouple.h:17
Bool_t IsEqual(const TObject *obj) const
Definition: EdbSegCouple.h:62
int N2tot() const
Definition: EdbSegCouple.h:57
int ID2() const
Definition: EdbSegCouple.h:53
Int_t Compare(const TObject *obj) const
Definition: EdbSegCouple.cxx:73
void SetCHI2(float chi2)
Definition: EdbSegCouple.h:44
static int egSortFlag
Definition: EdbSegCouple.h:30
Float_t eCHI2P
Definition: EdbSegCouple.h:19
float CHI2P() const
Definition: EdbSegCouple.h:59
int N1() const
Definition: EdbSegCouple.h:54
bool eIsOwner
Definition: EdbSegCouple.h:27
static void SetSortFlag(int s=0)
Definition: EdbSegCouple.cxx:61
Int_t eID2
Definition: EdbSegCouple.h:17
Int_t eN1
Definition: EdbSegCouple.h:20
int N1tot() const
Definition: EdbSegCouple.h:56
Float_t eCHI2
Definition: EdbSegCouple.h:18
int ID1() const
Definition: EdbSegCouple.h:52
EdbSegP * eS1
the result of the fit
Definition: EdbSegCouple.h:25
int N2() const
Definition: EdbSegCouple.h:55
float CHI2() const
Definition: EdbSegCouple.h:58
Definition: EdbSegP.h:18
Float_t chi2
Definition: testBGReduction_By_ANN.C:14
EdbSegP * s
Definition: tlg2pattern.C:32