100 static int nevent = 0;
103 int i1, i2, i3, n1, n2, n3;
104 int bs1, bs2, es1, es2;
105 ROOT::Math::XYZVector clusterPosition;
106 ROOT::Math::XYZVector decayVertex, hitPosition;
111 for (i1 = 0; i1 < n1; i1++) {
115 n2 = clusterMCParticles.
size();
116 for (i2 = 0; i2 < n2; i2++) {
117 if (clusterMCParticles[i2]->getPDG() ==
Const::Klong.getPDGCode())
129 static TH2F* hzx =
new TH2F(
"hzx",
"", 100, -300, 420, 100, -320, 320);
130 static TH2F* hzy =
new TH2F(
"hzy",
"", 100, -300, 420, 100, -320, 320);
131 static TH2F* hxy =
new TH2F(
"hxy",
"", 100, -320, 320, 100, -320, 320);
132 static TCanvas* c1 =
new TCanvas();
133 static TMarker* clusterMarker =
new TMarker(0, 0, 20);
134 static TMarker* hitMarker =
new TMarker(0, 0, 21);
136 hzx->GetXaxis()->SetTitle(
"z, cm");
137 hzx->GetYaxis()->SetTitle(
"x, cm");
138 hzy->GetXaxis()->SetTitle(
"z, cm");
139 hzy->GetYaxis()->SetTitle(
"y, cm");
140 hxy->GetXaxis()->SetTitle(
"x, cm");
141 hxy->GetYaxis()->SetTitle(
"y, cm");
144 for (i1 = 0; i1 < n1; i1++) {
145 clusterMarker->SetMarkerColor(i1 + 1);
146 hitMarker->SetMarkerColor(i1 + 1);
148 clusterMarker->DrawMarker(clusterPosition.Z(), clusterPosition.X());
151 n2 = klmHit2ds.
size();
152 for (i2 = 0; i2 < n2; i2++) {
153 hitPosition = klmHit2ds[i2]->getPosition();
154 hitMarker->DrawMarker(hitPosition.Z(), hitPosition.X());
157 snprintf(str, 128,
"clusters%dzx.eps", nevent);
160 for (i1 = 0; i1 < n1; i1++) {
161 clusterMarker->SetMarkerColor(i1 + 1);
162 hitMarker->SetMarkerColor(i1 + 1);
164 clusterMarker->DrawMarker(clusterPosition.Z(), clusterPosition.Y());
167 n2 = klmHit2ds.
size();
168 for (i2 = 0; i2 < n2; i2++) {
169 hitPosition = klmHit2ds[i2]->getPosition();
170 hitMarker->DrawMarker(hitPosition.Z(), hitPosition.Y());
173 snprintf(str, 128,
"clusters%dzy.eps", nevent);
176 for (i1 = 0; i1 < n1; i1++) {
177 clusterMarker->SetMarkerColor(i1 + 1);
178 hitMarker->SetMarkerColor(i1 + 1);
180 clusterMarker->DrawMarker(clusterPosition.X(), clusterPosition.Y());
183 n2 = klmHit2ds.
size();
184 for (i2 = 0; i2 < n2; i2++) {
185 hitPosition = klmHit2ds[i2]->getPosition();
186 hitMarker->DrawMarker(hitPosition.X(), hitPosition.Y());
189 snprintf(str, 128,
"clusters%dxy.eps", nevent);
194 for (i1 = 0; i1 < n1; i1++) {
204 n2 = mcKLMHit2ds.
size();
205 for (i2 = 0; i2 < n2; i2++) {
206 hitPosition = mcKLMHit2ds[i2]->getPosition();
207 angle = ROOT::Math::VectorUtil::Angle(decayVertex, hitPosition);
213 n2 = kl0Clusters.
size();
218 kl0Clusters[0]->getRelationsTo<
KLMHit2d>();
221 for (
const KLMHit2d& hit2d : klmHit2ds) {
236 if (m_MCParticles2.
size() == 1) {
237 if (m_MCParticles2.
weight(0) == 1)
240 }
else if (n2 == 2) {
242 kl0Clusters[0]->getRelationsTo<
KLMHit2d>();
244 kl0Clusters[1]->getRelationsTo<
KLMHit2d>();
249 for (
const KLMHit2d& hit2d : klmHit2ds1) {
255 for (
const KLMHit2d& hit2d : klmHit2ds2) {
261 if (bs1 > 0 && bs2 > 0) {
262 if (es1 > 0 && es2 > 0) {
264 }
else if ((es1 > 0 && es2 == 0) || (es1 == 0 && es2 > 0)) {
266 }
else if (es1 == 0 && es2 == 0) {
269 }
else if (bs1 > 0 && bs2 == 0) {
270 if (es1 > 0 && es2 > 0) {
272 }
else if (es1 == 0 && es2 > 0) {
275 }
else if (bs1 == 0 && bs2 > 0) {
276 if (es1 > 0 && es2 > 0) {
278 }
else if (es1 > 0 && es2 == 0) {
281 }
else if (bs1 == 0 && bs2 == 0) {
282 if (es1 > 0 && es2 > 0) {
289 for (i2 = 0; i2 < n2; i2++) {
290 clusterPosition = kl0Clusters[i2]->getClusterPosition();
296 kl0Clusters[i2]->getRelationsTo<
KLMHit2d>();
297 n3 = klmHit2ds.
size();
298 for (i3 = 0; i3 < n3; i3++) {
299 hitPosition = klmHit2ds[i3]->getPosition();
300 angle = ROOT::Math::VectorUtil::Angle(clusterPosition, hitPosition);
A Class to store the Monte Carlo particle information.