BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
PionZeroList.h
Go to the documentation of this file.
1#ifndef Physics_Analysis_PionZeroList_H
2#define Physics_Analysis_PionZeroList_H
3
4#include "CLHEP/Vector/LorentzVector.h"
5#include "CLHEP/Vector/ThreeVector.h"
6#include <algorithm>
7#include <vector>
8using namespace CLHEP;
9using CLHEP::Hep3Vector;
10using CLHEP::HepLorentzVector;
11typedef std::vector<Hep3Vector> Vp3;
12typedef std::vector<HepLorentzVector> Vp4;
13
14class PionZero {
15public:
16 PionZero( HepLorentzVector& vp_gam_1, int& index_gam_1, HepLorentzVector& vp_gam_2,
17 int& index_gam_2 );
19 int get_index( int i ) { return i > 0 ? m_index_2 : m_index_1; }
20 double get_mass() { return m_inv_mass; }
21 double get_goodness() { return m_goodness; }
22 void cal_goodness( int good_method ); // 0: mass diff; 1: chi^2; 2: ...???
23 HepLorentzVector get_gam_vp( int i ) { return i > 0 ? m_vp_2 : m_vp_1; }
24 HepLorentzVector get_pi0_vp() { return m_vp_total; }
25
26private:
27 int m_index_1, m_index_2, m_good_method;
28 HepLorentzVector m_vp_1, m_vp_2, m_vp_total;
29 double m_goodness; // desribe how good of a pi0
30 double m_inv_mass;
31};
32
34public:
35 PionZeroList( Vp4& input_vp ); // initial photon four-momentum list input
36 void set_cut( int index, double cut );
37 void sort(); // sort all pion0 list with goodness( lower is better )
38 void reduce(); // delete all the pion0 with re-used photons
39 void print(); // print all information in pion0 list
40 void refresh(); // after reduce and sort, we should refresh the mom list
41 int get_num_pi0() { return m_num_pi0; }
42 Vp4 get_pi0_list() { return m_pi0_vp; }
43
44 class f_less {
45 public:
46 bool operator()( PionZero& p1, PionZero& p2 ) const {
47 return p1.get_goodness() < p2.get_goodness();
48 }
49 };
50
51private:
52 Vp4 m_gam_vp, m_pi0_vp;
53 std::vector<PionZero> Vpi0_list;
54 double m_low_cut, m_high_cut; // mass cuts of pion0
55 int m_num_pi0;
56};
57
58#endif
double p2[4]
double p1[4]
std::vector< HepLorentzVector > Vp4
Definition Gam4pikp.cxx:38
*********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
std::vector< HepLorentzVector > Vp4
std::vector< Hep3Vector > Vp3
bool operator()(PionZero &p1, PionZero &p2) const
Vp4 get_pi0_list()
void set_cut(int index, double cut)
int get_num_pi0()
PionZeroList(Vp4 &input_vp)
int get_index(int i)
HepLorentzVector get_pi0_vp()
double get_goodness()
HepLorentzVector get_gam_vp(int i)
double get_mass()
void cal_goodness(int good_method)
PionZero(HepLorentzVector &vp_gam_1, int &index_gam_1, HepLorentzVector &vp_gam_2, int &index_gam_2)