BOSS 6.6.4.p01
BESIII Offline Software System
Loading...
Searching...
No Matches
BhabhaPreSelect.h
Go to the documentation of this file.
1#ifndef BhabhaPreSelect_H
2#define BhabhaPreSelect_H
3#include <cstring>
4
5#include "GaudiKernel/AlgFactory.h"
6#include "GaudiKernel/Algorithm.h"
7#include "GaudiKernel/NTuple.h"
9
10
11class BhabhaPreSelect : public Algorithm {
12
13public:
14 BhabhaPreSelect(const std::string& name, ISvcLocator* pSvcLocator);
15 StatusCode initialize();
16 StatusCode execute();
17 StatusCode finalize();
18
19 bool WhetherSector(double,double=0.,double=CLHEP::twopi);
20
21 int selectedType() const
22 {
23 return m_selectedType;
24 }
25 int selectedTrkID1() const
26 {
27 return m_selectedTrkID1;
28 }
29 int selectedTrkID2() const
30 {
31 return m_selectedTrkID2;
32 }
33
34private:
35
36 RecEmcShower* matched( int TrkID ) const ;
37 double Angle2ClosestShower( int ShowerID );
38 // Declare r0, z0 cut for charged tracks
39 double m_vr0cut;
40 double m_vz0cut;
41
42 double m_lowEnergyShowerCut;
43 double m_highEnergyShowerCut;
44 double m_matchThetaCut ;
45 double m_matchPhiCut ;
46
47 double m_highMomentumCut;
48 double m_EoPMaxCut;
49 double m_EoPMinCut;
50 double m_minAngShEnergyCut;
51 double m_minAngCut;
52 double m_acolliCut;
53 double m_eNormCut;
54 double m_pNormCut;
55 int m_BarrelOrEndcap;
56
57 static int idmax[43];
58
59 double m_oneProngMomentumCut;
60
61 bool m_output;
62
63 /**selected event type */
64 int m_selectedType;
65 int m_selectedTrkID1;
66 int m_selectedTrkID2;
67 /**number of events passed */
68 long int m_events;
69
70 /**number of events rejected */
71 long int m_rejected;
72
73 int m_oneProngsSelected;
74 int m_twoProngsMatchedSelected;
75 int m_twoProngsOneMatchedSelected;
76
77
78 // define Ntuples here
79
80 NTuple::Tuple* m_tuple1; //Trk2Sh2
81 NTuple::Item<double> m_trk1_p;
82 NTuple::Item<double> m_trk1_theta;
83 NTuple::Item<double> m_trk1_phi;
84 NTuple::Item<double> m_sh1_ene;
85 NTuple::Item<double> m_sh1_theta;
86 NTuple::Item<double> m_sh1_phi;
87
88 NTuple::Item<double> m_trk2_p;
89 NTuple::Item<double> m_trk2_theta;
90 NTuple::Item<double> m_trk2_phi;
91 NTuple::Item<double> m_sh2_ene;
92 NTuple::Item<double> m_sh2_theta;
93 NTuple::Item<double> m_sh2_phi;
94 NTuple::Item<double> m_di_the;
95 NTuple::Item<double> m_di_phi;
96
97 NTuple::Item<double> m_etot;
98 NTuple::Item<long> m_mdc_hit1;
99 NTuple::Item<long> m_mdc_hit2;
100 NTuple::Item<double> m_pNorm;
101 NTuple::Item<double> m_eNorm;
102 NTuple::Item<double> m_acolli;
103 NTuple::Tuple* m_tuple2;
104 NTuple::Item<double> m_sh_ene;
105 NTuple::Item<double> m_sh_theta;
106 NTuple::Item<double> m_sh_phi;
107};
108
109#endif
int selectedTrkID2() const
StatusCode execute()
StatusCode initialize()
StatusCode finalize()
bool WhetherSector(double, double=0., double=CLHEP::twopi)
int selectedType() const
int selectedTrkID1() const