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