All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
TaJetClustering.h
Go to the documentation of this file.
1 #ifndef TaJetClustering_h
2 #define TaJetClustering_h 1
3 
4 #include "marlin/Processor.h"
5 #include "lcio.h"
6 #include <string>
7 
8 using namespace lcio ;
9 using namespace marlin ;
10 
11 class TaJetClustering : public Processor {
12 
13  public:
14 
15  virtual Processor* newProcessor() { return new TaJetClustering ; }
16 
17 
18  TaJetClustering() ;
19 
20  /** Called at the begin of the job before anything is read.
21  * Use to initialize the processor, e.g. book histograms.
22  */
23  virtual void init() ;
24 
25  /** Called for every run.
26  */
27  virtual void processRunHeader( LCRunHeader* run ) ;
28 
29  /** Called for every event - the working horse.
30  */
31  virtual void processEvent( LCEvent * evt ) ;
32 
33 
34  virtual void check( LCEvent * evt ) ;
35 
36 
37  /** Called after data processing for clean up.
38  */
39  virtual void end() ;
40 
41 
42  protected:
43 
44  /** Input collection name.
45  */
46  std::string _pfoCollectionName{};
47  std::string _tauCollectionName{};
48  std::string _remainCollectionName{};
49 
50  // parameters for tau clustering
51  double _tauMass{};
52  double _tauCosAngle{};
53 
54  // selection
55  int _noSelection{};
56 
57  // primary cuts
58  double _minimumTrackEnergy{};
59  double _minimumJetEnergy{};
60  double _minimumTrackEnergyAssoc{};
61  int _acceptFlexibleLowEnergyTrack{};
62  //int _maxTracks; // now fixed: allowed only 1 or 3
63 
64  // three prong cut
65  double _maximumNeutralEnergyInThreeProng{};
66 
67  // cone cuts
68  double _coneMinCosAngle{};
69  double _coneMaxCosAngle{};
70  double _coneMaxEnergyFrac{};
71 
72  // impact parameter cuts
73  double _ipCutsMinimumTrackEnergy{};
74  double _ipCutsSigmaOneProng{}; // and cut, d0 or z0
75  double _ipCutsSigmaThreeProngNoNeutrals{}; // and cut, one of three, d0 or z0
76  double _ipCutsSigmaThreeProngWithNeutrals{}; // or cut with cone, one of three, d0 or z0
77  double _ipMaxAbsolute{}; // d0 or z0, max allowed absolute value in mm
78 
79  // lepton ID cuts: only applicable when ntr==1 && eneutral<1 GeV
80  double _leptonCutsMinimumTrackEnergy{};
81  double _muMaxFracEcal{};
82  double _muMaxCalByTrack{};
83  double _eMinFracEcal{};
84  double _eMinCalByTrack{};
85  double _eMaxCalByTrack{};
86 
87  //int _maxTaus; // throw away too many taus: energy order after all cuts
88  //int _returnCutTaus; // put cut taus to remain collection or not
89 
90  int _nRun{};
91  int _nEvt{};
92 } ;
93 
94 #endif
95 
96 
97 
virtual Processor * newProcessor()