FEDRA emulsion software from the OPERA Collaboration
EdbSegCouple Class Reference

#include <EdbSegCouple.h>

Inheritance diagram for EdbSegCouple:
Collaboration diagram for EdbSegCouple:

Public Member Functions

float CHI2 () const
 
float CHI2P () const
 
Int_t Compare (const TObject *obj) const
 
 EdbSegCouple ()
 
 EdbSegCouple (const EdbSegCouple &sc)
 
 EdbSegCouple (int id1, int id2)
 
int ID1 () const
 
int ID2 () const
 
Bool_t IsEqual (const TObject *obj) const
 
Bool_t IsSortable () const
 
int N1 () const
 
int N1tot () const
 
int N2 () const
 
int N2tot () const
 
void Print ()
 
void Set0 ()
 
void SetCHI2 (float chi2)
 
void SetCHI2P (float chi2)
 
void SetN1 (int n1)
 
void SetN1tot (int n)
 
void SetN2 (int n2)
 
void SetN2tot (int n)
 
 ~EdbSegCouple ()
 

Static Public Member Functions

static void SetSortFlag (int s=0)
 
static int SortFlag ()
 

Public Attributes

bool eIsOwner
 
EdbSegPeS
 the result of the fit More...
 
EdbSegPeS1
 pointers - useful when all segments are in memory More...
 
EdbSegPeS2
 

Private Attributes

Float_t eCHI2
 final chi2 calculation based on the linked track More...
 
Float_t eCHI2P
 fast chi2 estimation used for couples selection More...
 
Int_t eID1
 
Int_t eID2
 
Int_t eN1
 
Int_t eN1tot
 
Int_t eN2
 n1,n2 - is rating of the segment (starting from 1) More...
 
Int_t eN2tot
 total number of entries for the segment More...
 

Static Private Attributes

static int egSortFlag
 0: chi2p only; 1: N1()*10000+N2()*10000000 + CHI2()/100 More...
 

Detailed Description

//////////////////////////////////////////////////////////////////////// // EdbSegCouple // // service class for couples handling // // ////////////////////////////////////////////////////////////////////////

Constructor & Destructor Documentation

◆ EdbSegCouple() [1/3]

EdbSegCouple::EdbSegCouple ( )

◆ EdbSegCouple() [2/3]

EdbSegCouple::EdbSegCouple ( const EdbSegCouple sc)

21{
22 eID1=sc.eID1;
23 eID2=sc.eID2;
24 eN1=sc.eN1;
25 eN2=sc.eN2;
26 eN1tot=sc.eN1tot;
27 eN2tot=sc.eN2tot;
28 eCHI2=sc.eCHI2;
29 eCHI2P=sc.eCHI2P;
30 if(sc.eS) eS = new EdbSegP( *(sc.eS) );
31 if(sc.eS1) eS1 = new EdbSegP( *(sc.eS1) );
32 if(sc.eS2) eS2 = new EdbSegP( *(sc.eS2) );
34}
EdbSegP * eS
the result of the fit
Definition: EdbSegCouple.h:27
Int_t eN1tot
Definition: EdbSegCouple.h:24
EdbSegP * eS2
Definition: EdbSegCouple.h:29
Int_t eN2
n1,n2 - is rating of the segment (starting from 1)
Definition: EdbSegCouple.h:23
Int_t eN2tot
total number of entries for the segment
Definition: EdbSegCouple.h:24
Int_t eID1
Definition: EdbSegCouple.h:20
Float_t eCHI2P
fast chi2 estimation used for couples selection
Definition: EdbSegCouple.h:22
bool eIsOwner
Definition: EdbSegCouple.h:30
Int_t eID2
Definition: EdbSegCouple.h:20
Int_t eN1
Definition: EdbSegCouple.h:23
Float_t eCHI2
final chi2 calculation based on the linked track
Definition: EdbSegCouple.h:21
EdbSegP * eS1
pointers - useful when all segments are in memory
Definition: EdbSegCouple.h:28
Definition: EdbSegP.h:21

◆ EdbSegCouple() [3/3]

EdbSegCouple::EdbSegCouple ( int  id1,
int  id2 
)
inline
39 { Set0();eID1=id1;eID2=id2; eCHI2=0; eCHI2P=0; eN1=0; eN2=0; }
void Set0()
Definition: EdbSegCouple.cxx:45

◆ ~EdbSegCouple()

EdbSegCouple::~EdbSegCouple ( )

38{
39 SafeDelete(eS);
40 if(eIsOwner) SafeDelete(eS1);
41 if(eIsOwner) SafeDelete(eS2);
42}

Member Function Documentation

◆ CHI2()

float EdbSegCouple::CHI2 ( ) const
inline
61{return eCHI2;}

◆ CHI2P()

float EdbSegCouple::CHI2P ( ) const
inline
62{return eCHI2P;}

◆ Compare()

int EdbSegCouple::Compare ( const TObject *  obj) const

75{
76 const EdbSegCouple *seg = (EdbSegCouple *)obj;
77
78 double f1=0, f2=0;
79
80 if(SortFlag()==0) {
81 f1=CHI2P();
82 f2=seg->CHI2P();
83 } else {
84 f1 = N1() + N2()*100000 + CHI2P()/1000.;
85 f2 = seg->N1() + seg->N2()*100000 + seg->CHI2P()/1000.;
86 }
87
88 if (f1>f2)
89 return 1;
90 else if (f1<f2)
91 return -1;
92 else
93 return 0;
94
95}
Definition: EdbSegCouple.h:17
static int SortFlag()
Definition: EdbSegCouple.h:53
float CHI2P() const
Definition: EdbSegCouple.h:62
int N1() const
Definition: EdbSegCouple.h:57
int N2() const
Definition: EdbSegCouple.h:58

◆ ID1()

int EdbSegCouple::ID1 ( ) const
inline
55{return eID1;}

◆ ID2()

int EdbSegCouple::ID2 ( ) const
inline
56{return eID2;}

◆ IsEqual()

Bool_t EdbSegCouple::IsEqual ( const TObject *  obj) const
inline
66 { return
67 (ID1()==((EdbSegCouple*)obj)->ID1())&&
68 (ID2()==((EdbSegCouple*)obj)->ID2()); }
int ID2() const
Definition: EdbSegCouple.h:56
int ID1() const
Definition: EdbSegCouple.h:55

◆ IsSortable()

Bool_t EdbSegCouple::IsSortable ( ) const
inline
69{ return kTRUE; }

◆ N1()

int EdbSegCouple::N1 ( ) const
inline
57{return eN1;}

◆ N1tot()

int EdbSegCouple::N1tot ( ) const
inline
59{return eN1tot;}

◆ N2()

int EdbSegCouple::N2 ( ) const
inline
58{return eN2;}

◆ N2tot()

int EdbSegCouple::N2tot ( ) const
inline
60{return eN2tot;}

◆ Print()

void EdbSegCouple::Print ( )

69{
70 printf("%f \t %f \t %d \t%d \t\t %d \t %d \n",CHI2(),CHI2P(),ID1(),N1(),ID2(),N2() );
71}
float CHI2() const
Definition: EdbSegCouple.h:61

◆ Set0()

void EdbSegCouple::Set0 ( )

46{
47 eID1=0;
48 eID2=0;
49 eN1=0;
50 eN2=0;
51 eN1tot=0;
52 eN2tot=0;
53 eCHI2=0;
54 eCHI2P=0;
55 eS=0;
56 eS1=0;
57 eS2=0;
58 eIsOwner=0;
59}

◆ SetCHI2()

void EdbSegCouple::SetCHI2 ( float  chi2)
inline
47{eCHI2=chi2;}
Float_t chi2
Definition: testBGReduction_By_ANN.C:14

◆ SetCHI2P()

void EdbSegCouple::SetCHI2P ( float  chi2)
inline
48{eCHI2P=chi2;}

◆ SetN1()

void EdbSegCouple::SetN1 ( int  n1)
inline
43{eN1=n1;}

◆ SetN1tot()

void EdbSegCouple::SetN1tot ( int  n)
inline
45{eN1tot=n;}

◆ SetN2()

void EdbSegCouple::SetN2 ( int  n2)
inline
44{eN2=n2;}

◆ SetN2tot()

void EdbSegCouple::SetN2tot ( int  n)
inline
46{eN2tot=n;}

◆ SetSortFlag()

void EdbSegCouple::SetSortFlag ( int  s = 0)
static

63{
65}
static int egSortFlag
0: chi2p only; 1: N1()*10000+N2()*10000000 + CHI2()/100
Definition: EdbSegCouple.h:33
s
Definition: check_shower.C:55

◆ SortFlag()

static int EdbSegCouple::SortFlag ( )
inlinestatic
53{return egSortFlag;}

Member Data Documentation

◆ eCHI2

Float_t EdbSegCouple::eCHI2
private

final chi2 calculation based on the linked track

◆ eCHI2P

Float_t EdbSegCouple::eCHI2P
private

fast chi2 estimation used for couples selection

◆ egSortFlag

int EdbSegCouple::egSortFlag
staticprivate

0: chi2p only; 1: N1()*10000+N2()*10000000 + CHI2()/100

◆ eID1

Int_t EdbSegCouple::eID1
private

◆ eID2

Int_t EdbSegCouple::eID2
private

◆ eIsOwner

bool EdbSegCouple::eIsOwner

◆ eN1

Int_t EdbSegCouple::eN1
private

◆ eN1tot

Int_t EdbSegCouple::eN1tot
private

◆ eN2

Int_t EdbSegCouple::eN2
private

n1,n2 - is rating of the segment (starting from 1)

◆ eN2tot

Int_t EdbSegCouple::eN2tot
private

total number of entries for the segment

◆ eS

EdbSegP* EdbSegCouple::eS

the result of the fit

◆ eS1

EdbSegP* EdbSegCouple::eS1

pointers - useful when all segments are in memory

◆ eS2

EdbSegP* EdbSegCouple::eS2

The documentation for this class was generated from the following files: