Attachment 'KIT.h'
Download 1 #ifndef KITdev_h
2 #define KITdev_h 1
3
4 #include "marlin/Processor.h"
5 #include "lcio.h"
6 #include <string>
7 #include <stdio.h>
8 #include <vector>
9 #include <map>
10 #include <set>
11 #include <stack>
12 #include <sstream>
13 #include <bitset>
14 #include <queue>
15 #include <utility>
16 #include <algorithm>
17 #include <EVENT/LCCollection.h>
18 #include <EVENT/MCParticle.h>
19 #include <EVENT/ReconstructedParticle.h>
20 #include <EVENT/Cluster.h>
21 #include <IMPL/MCParticleImpl.h>
22 #include <IMPL/ClusterImpl.h>
23 #include <IMPL/LCCollectionVec.h>
24 #include <EVENT/SimCalorimeterHit.h>
25 #include <EVENT/CalorimeterHit.h>
26 #include <UTIL/LCTOOLS.h>
27 #include <UTIL/CellIDDecoder.h>
28 #include <UTIL/LCRelationNavigator.h>
29 #include <LCRTRelations.h>
30 #include <iomanip>
31 #include "math.h"
32 #include "KITutil_LDC00.h"
33 #include "myPhys_Geom_Database.h"
34 #include "myMarlinMath.h"
35 #include "ClusterShapes.h"
36 #include "DeepAnalysis.hh"
37
38 using namespace lcio ;
39 using namespace marlin ;
40 using namespace std;
41 using namespace IMPL;
42 using namespace EVENT;
43
44
45 typedef struct {
46
47 CalorimeterHit* ECALHit;
48 std::vector<PROTSEED2*> relatedCores;
49 std::vector<double> probabilitiesForThisECALHit;
50 std::vector<double> distancesToCoresForThisECALHit;
51 std::vector<double> estimatedEnergyPerCore;
52
53 } ECALHitWithAttributes;
54
55 // integer runtime extension which flags CalorimeterHits in EMShowers
56 struct isPartOfEMShowerCandidate : LCIntExtension<isPartOfEMShowerCandidate> {};
57
58 class KITdev : public Processor {
59
60 public:
61
62 virtual Processor* newProcessor() { return new KITdev ; }
63
64
65 KITdev() ;
66
67 virtual void init() ;
68 virtual void processRunHeader( LCRunHeader* run ) ;
69 virtual void processEvent( LCEvent * evt ) ;
70 virtual void end();
71
72
73 protected:
74
75 int split;
76
77 int _options ;
78 int _nRun ;
79 int _nEvt ;
80 int _nSkippedEvt ;
81
82 int _debugLevel;
83 int _desiredNCluster;
84 int _Ntrcl; // number of true clusters
85
86 unsigned int _N_hitsPerCluster;// number of hits per cluster
87 unsigned int _N_core; // N core rec
88 unsigned int _N_reco; // N gamma(e) reconstructed
89 double _E_in; //Energy from generator
90 double _E_reco; //reconstructed energy
91 double _E_estimated; //estimated total energy
92
93 double _Esum_ecal; //energy sum in ECAL in GeV
94 double _Esum_hcal; //energy sum in HCAL in GeV
95 double _Esum_calos; //energy sum in ECAL + HCAL in GeV
96 double _Ehit_ecal; //energy per hit in ECAL in GeV
97 double _Ehit_hcal; //energy per hit in HCAL in GeV
98 double _Esum_ecal_mip; //energy sum in ECAL in MIP
99 double _Ehit_ecal_mip; //energy per hit in ECAL in MIP
100 double _Et_miss; //missing transvers energy sum in ECAL + HCAL in GeV
101 double _Et_x;
102 double _Et_y;
103 unsigned int _NhitsEcal; //number of hits in ECAL
104 unsigned int _NhitsHcal; //number of hits in HCAL
105 unsigned int _NhitsCalos; //number of hits in ECAL + HCAL
106
107 double _E_cluster; //energy in cluster
108 double _xPos_cluster; //position of cluster
109 double _yPos_cluster; //position of cluster
110 double _zPos_cluster; //position of cluster
111
112 double _xStart_cluster; //start of cluster
113 double _yStart_cluster; //start of cluster
114 double _zStart_cluster; //start of cluster
115
116 double _E_ratio[10]; //reconstructed photon energy / true energy ?
117
118 double _phiDegree; //xy angle in degree
119 double _thetaDegree; //yz angle in degree
120
121 double _dca; //distance of closest approach IP - gamma
122 double _trueGammaPos[3]; //true photon position
123 double _trueGammaDir[3]; //true photon direction
124 double _trueCog[3]; //true center of gravity
125 double _trueDist; //true distance of IP - secondary vertex
126 double _trueEgamma; //true photon energy from generator
127 double _truePhi; //true phi angle between photon and ECAL
128 double _trueTheta; //true theta angle between photon and ECAL
129
130 double _trueEneutralino; //true neutralino energy GeV
131 double _trueNeutralinoDir[3]; //true neutralino direction
132
133 int _nPhotons;
134 std::string _Ecal_col;
135 std::string _Hcal_col;
136 std::string _CoreCollection;
137
138 std::string _detectorModel;
139 std::string _ToClean;
140 int _CleanCut;
141
142 int _Nlevels; //number of cluster levels
143 vector<float> _mipstep;
144 vector<double> estimatedE;
145
146 int _MinHit0;
147 int _MinHitSplit;
148 double _rCut;
149 double _distCut;
150 double _cosCut;
151 double _probabilityDensityCut;
152 double _energyDeviationCut;
153 } ;
154 #endif
155
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.