96 static int nevent = 0;
99 int i1, i2, i3, n1, n2, n3;
100 int bs1, bs2, es1, es2;
101 ROOT::Math::XYZVector clusterPosition;
102 ROOT::Math::XYZVector decayVertex, hitPosition;
107 for (i1 = 0; i1 < n1; i1++) {
111 n2 = clusterMCParticles.
size();
112 for (i2 = 0; i2 < n2; i2++) {
113 if (clusterMCParticles[i2]->getPDG() ==
Const::Klong.getPDGCode())
125 static TH2F* hzx =
new TH2F(
"hzx",
"", 100, -300, 420, 100, -320, 320);
126 static TH2F* hzy =
new TH2F(
"hzy",
"", 100, -300, 420, 100, -320, 320);
127 static TH2F* hxy =
new TH2F(
"hxy",
"", 100, -320, 320, 100, -320, 320);
128 static TCanvas* c1 =
new TCanvas();
129 static TMarker* clusterMarker =
new TMarker(0, 0, 20);
130 static TMarker* hitMarker =
new TMarker(0, 0, 21);
132 hzx->GetXaxis()->SetTitle(
"z, cm");
133 hzx->GetYaxis()->SetTitle(
"x, cm");
134 hzy->GetXaxis()->SetTitle(
"z, cm");
135 hzy->GetYaxis()->SetTitle(
"y, cm");
136 hxy->GetXaxis()->SetTitle(
"x, cm");
137 hxy->GetYaxis()->SetTitle(
"y, cm");
140 for (i1 = 0; i1 < n1; i1++) {
141 clusterMarker->SetMarkerColor(i1 + 1);
142 hitMarker->SetMarkerColor(i1 + 1);
144 clusterMarker->DrawMarker(clusterPosition.Z(), clusterPosition.X());
147 n2 = klmHit2ds.
size();
148 for (i2 = 0; i2 < n2; i2++) {
149 hitPosition = klmHit2ds[i2]->getPosition();
150 hitMarker->DrawMarker(hitPosition.Z(), hitPosition.X());
153 snprintf(str, 128,
"clusters%dzx.eps", nevent);
156 for (i1 = 0; i1 < n1; i1++) {
157 clusterMarker->SetMarkerColor(i1 + 1);
158 hitMarker->SetMarkerColor(i1 + 1);
160 clusterMarker->DrawMarker(clusterPosition.Z(), clusterPosition.Y());
163 n2 = klmHit2ds.
size();
164 for (i2 = 0; i2 < n2; i2++) {
165 hitPosition = klmHit2ds[i2]->getPosition();
166 hitMarker->DrawMarker(hitPosition.Z(), hitPosition.Y());
169 snprintf(str, 128,
"clusters%dzy.eps", nevent);
172 for (i1 = 0; i1 < n1; i1++) {
173 clusterMarker->SetMarkerColor(i1 + 1);
174 hitMarker->SetMarkerColor(i1 + 1);
176 clusterMarker->DrawMarker(clusterPosition.X(), clusterPosition.Y());
179 n2 = klmHit2ds.
size();
180 for (i2 = 0; i2 < n2; i2++) {
181 hitPosition = klmHit2ds[i2]->getPosition();
182 hitMarker->DrawMarker(hitPosition.X(), hitPosition.Y());
185 snprintf(str, 128,
"clusters%dxy.eps", nevent);
190 for (i1 = 0; i1 < n1; i1++) {
200 n2 = mcKLMHit2ds.
size();
201 for (i2 = 0; i2 < n2; i2++) {
202 hitPosition = mcKLMHit2ds[i2]->getPosition();
203 angle = ROOT::Math::VectorUtil::Angle(decayVertex, hitPosition);
209 n2 = kl0Clusters.
size();
214 kl0Clusters[0]->getRelationsTo<
KLMHit2d>();
217 for (
const KLMHit2d& hit2d : klmHit2ds) {
232 if (m_MCParticles2.
size() == 1) {
233 if (m_MCParticles2.
weight(0) == 1)
236 }
else if (n2 == 2) {
238 kl0Clusters[0]->getRelationsTo<
KLMHit2d>();
240 kl0Clusters[1]->getRelationsTo<
KLMHit2d>();
245 for (
const KLMHit2d& hit2d : klmHit2ds1) {
251 for (
const KLMHit2d& hit2d : klmHit2ds2) {
257 if (bs1 > 0 && bs2 > 0) {
258 if (es1 > 0 && es2 > 0) {
260 }
else if ((es1 > 0 && es2 == 0) || (es1 == 0 && es2 > 0)) {
262 }
else if (es1 == 0 && es2 == 0) {
265 }
else if (bs1 > 0 && bs2 == 0) {
266 if (es1 > 0 && es2 > 0) {
268 }
else if (es1 == 0 && es2 > 0) {
271 }
else if (bs1 == 0 && bs2 > 0) {
272 if (es1 > 0 && es2 > 0) {
274 }
else if (es1 > 0 && es2 == 0) {
277 }
else if (bs1 == 0 && bs2 == 0) {
278 if (es1 > 0 && es2 > 0) {
285 for (i2 = 0; i2 < n2; i2++) {
286 clusterPosition = kl0Clusters[i2]->getClusterPosition();
292 kl0Clusters[i2]->getRelationsTo<
KLMHit2d>();
293 n3 = klmHit2ds.
size();
294 for (i3 = 0; i3 < n3; i3++) {
295 hitPosition = klmHit2ds[i3]->getPosition();
296 angle = ROOT::Math::VectorUtil::Angle(clusterPosition, hitPosition);
A Class to store the Monte Carlo particle information.