BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
PionZeroList Class Reference

#include <PionZeroList.h>

Classes

class  f_less

Public Member Functions

 PionZeroList (Vp4 &input_vp)
void set_cut (int index, double cut)
void sort ()
void reduce ()
void print ()
void refresh ()
int get_num_pi0 ()
Vp4 get_pi0_list ()

Detailed Description

Definition at line 33 of file PionZeroList.h.

Constructor & Destructor Documentation

◆ PionZeroList()

PionZeroList::PionZeroList ( Vp4 & input_vp)

Definition at line 43 of file PionZeroList.cxx.

44 : m_gam_vp( input_vp )
45 , m_pi0_vp( 0 )
46 , Vpi0_list( 0 )
47 , m_low_cut( 0.11 )
48 , m_high_cut( 0.15 ) {
49 int m_Ngam( input_vp.size() );
50 if ( m_Ngam < 2 ) cout << "number of photons less than 2" << endl;
51 for ( int i = 0; i < m_Ngam - 1; i++ )
52 {
53 for ( int j = i + 1; j < m_Ngam; j++ )
54 {
55 double m_temp_mass( ( m_gam_vp[i] + m_gam_vp[j] ).m() );
56 if ( m_temp_mass < m_low_cut || m_temp_mass > m_high_cut ) continue;
57 PionZero m_temp_pi0( m_gam_vp[i], i, m_gam_vp[j], j );
58 Vpi0_list.push_back( m_temp_pi0 );
59 }
60 }
61 m_num_pi0 = Vpi0_list.size();
62}

Member Function Documentation

◆ get_num_pi0()

int PionZeroList::get_num_pi0 ( )
inline

Definition at line 41 of file PionZeroList.h.

41{ return m_num_pi0; }

◆ get_pi0_list()

Vp4 PionZeroList::get_pi0_list ( )
inline

Definition at line 42 of file PionZeroList.h.

42{ return m_pi0_vp; }

◆ print()

void PionZeroList::print ( )

Definition at line 111 of file PionZeroList.cxx.

111 {
112 std::cout << "number of pion0 in the list " << m_num_pi0 << std::endl;
113 for ( int i = 0; i < Vpi0_list.size(); i++ )
114 {
115 std::cout << "i= " << i << endl;
116 std::cout << "pi0 mass " << Vpi0_list[i].get_mass() << endl;
117 std::cout << "pi0 goodness " << Vpi0_list[i].get_goodness() << endl;
118 std::cout << "pi0 four momentum " << Vpi0_list[i].get_pi0_vp() << endl;
119 std::cout << "fir gam index " << Vpi0_list[i].get_index( 0 ) << endl;
120 std::cout << "sec gam index " << Vpi0_list[i].get_index( 1 ) << endl;
121 std::cout << "fir gam mom " << Vpi0_list[i].get_gam_vp( 0 ) << endl;
122 std::cout << "sec gam mom " << Vpi0_list[i].get_gam_vp( 1 ) << endl;
123 }
124}

◆ reduce()

void PionZeroList::reduce ( )

Definition at line 84 of file PionZeroList.cxx.

84 {
85 std::vector<int> gam_index_v( 0 );
86 std::vector<PionZero> temp_pi0_list( 0 );
87 for ( int i = 0; i < Vpi0_list.size(); i++ )
88 {
89 int temp_one( Vpi0_list[i].get_index( 0 ) );
90 int temp_two( Vpi0_list[i].get_index( 1 ) );
91 if ( find( gam_index_v.begin(), gam_index_v.end(), temp_one ) != gam_index_v.end() )
92 continue;
93 if ( find( gam_index_v.begin(), gam_index_v.end(), temp_two ) != gam_index_v.end() )
94 continue;
95 gam_index_v.push_back( temp_one );
96 gam_index_v.push_back( temp_two );
97 temp_pi0_list.push_back( Vpi0_list[i] );
98 }
99 Vpi0_list = temp_pi0_list;
100 refresh();
101}

◆ refresh()

void PionZeroList::refresh ( )

Definition at line 104 of file PionZeroList.cxx.

104 {
105 m_num_pi0 = Vpi0_list.size();
106 m_pi0_vp.clear();
107 for ( int i = 0; i < m_num_pi0; i++ ) m_pi0_vp.push_back( Vpi0_list[i].get_pi0_vp() );
108}

Referenced by reduce(), set_cut(), and sort().

◆ set_cut()

void PionZeroList::set_cut ( int index,
double cut )

Definition at line 65 of file PionZeroList.cxx.

65 {
66 if ( index < 1 ) m_low_cut = cut;
67 else m_high_cut = cut;
68 std::vector<PionZero>::iterator m_ind;
69 for ( m_ind = Vpi0_list.begin(); m_ind != Vpi0_list.end(); m_ind++ )
70 {
71 double m_temp_mass( ( *m_ind ).get_mass() );
72 if ( m_temp_mass < m_low_cut || m_temp_mass > m_high_cut ) Vpi0_list.erase( m_ind );
73 }
74 refresh();
75}
*********Class see also m_nmax DOUBLE PRECISION m_MasPhot DOUBLE PRECISION m_phsu DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_r2 DOUBLE PRECISION m_WtMass INTEGER m_nmax INTEGER m_Nevgen INTEGER m_IsFSR INTEGER m_MarTot *COMMON c_KarFin $ !Output file $ !Event serial number $ !alpha QED at Thomson limit $ !minimum energy at CMS for remooval $ !infrared cut
Definition KarFin.h:27

◆ sort()

void PionZeroList::sort ( )

Definition at line 78 of file PionZeroList.cxx.

78 { // sort the pion0 list respect to goodness
79 std::sort( Vpi0_list.begin(), Vpi0_list.end(), f_less() );
80 refresh();
81}

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