39 if (histos.size() == 0) {
40 histos.emplace_back(
new TH1F(
"dx",
"dx;dx (cm)", 20001, -1.00005, 1.00005));
41 histos.emplace_back(
new TH1F(
"dy",
"dy;dy (cm)", 20001, -1.00005, 1.00005));
42 histos.emplace_back(
new TH1F(
"dz",
"dz;dz (cm)", 20001, -1.00005, 1.00005));
43 histos.emplace_back(
new TH1F(
"dpx",
"dpx;dpx (GeV/c)", 20001, -1.00005, 1.00005));
44 histos.emplace_back(
new TH1F(
"dpy",
"dpy;dpy (GeV/c)", 20001, -1.00005, 1.00005));
45 histos.emplace_back(
new TH1F(
"dpz",
"dpz;dpz (GeV/c)", 20001, -1.00005, 1.00005));
46 histos.emplace_back(
new TH2F(
"dpxvspx",
"dpxvspx;px (GeV/c);dpx/px (\%)", 2000, 0., 20., 2001, -10.005, 10.005));
47 histos.emplace_back(
new TH2F(
"dpyvspy",
"dpyvspy;py (GeV/c);dpy/py (\%)", 2000, 0., 20., 2001, -10.005, 10.005));
48 histos.emplace_back(
new TH2F(
"dpzvspz",
"dpzvspz;pz (GeV/c);dpz/pz (\%)", 2000, 0., 200., 2001, -10.005, 10.005));
49 histos.emplace_back(
new TH2F(
"dslopexvsp",
"dslopexvsp;p (GeV/c);dslopex", 2000, 0., 200., 2001, -0.0010005, 0.0010005));
50 histos.emplace_back(
new TH2F(
"dslopeyvsp",
"dslopeyvsp;p (GeV/c);dslopey", 2000, 0., 200., 2001, -0.0010005, 0.0010005));
51 histos.emplace_back(
new TH2F(
"dpvsp",
"dpvsp;p (GeV/c);dp/p (\%)", 2000, 0., 200., 2001, -10.005, 10.005));
75 for (
auto itTrack1 = tracks.begin(); itTrack1 != tracks.end(); ++itTrack1) {
77 for (
auto itTrack2 = std::next(itTrack1); itTrack2 != tracks.end(); ++itTrack2) {
113 std::list<ExtendedTrack>& tracks2,
114 const std::array<std::vector<TH1*>, 5>& histos)
116 for (
auto itTrack21 = tracks2.begin(); itTrack21 != tracks2.end(); ++itTrack21) {
119 if (itTrack21->hasMatchIdentical()) {
121 }
else if (itTrack21->hasMatchFound()) {
127 for (
auto itTrack22 = std::next(itTrack21); itTrack22 != tracks2.end(); ++itTrack22) {
130 if (itTrack21->hasMatchIdentical() && itTrack22->hasMatchIdentical()) {
132 }
else if (itTrack21->hasMatchFound() && itTrack22->hasMatchFound()) {
140 for (
auto itTrack11 = tracks1.begin(); itTrack11 != tracks1.end(); ++itTrack11) {
143 if (!itTrack11->hasMatchFound()) {
145 }
else if (!itTrack11->hasMatchIdentical()) {
149 for (
auto itTrack12 = std::next(itTrack11); itTrack12 != tracks1.end(); ++itTrack12) {
152 if (!itTrack11->hasMatchFound() || !itTrack12->hasMatchFound()) {
154 }
else if (!itTrack11->hasMatchIdentical() || !itTrack12->hasMatchIdentical()) {
183 if (cl1.getDEId() == cl2.getDEId()) {
184 double dx = cl2.getX() - cl1.getX();
185 double dy = cl2.getY() - cl1.getY();
186 histos[cl1.getChamberId() / 2 * 2]->Fill(dx);
187 histos[cl1.getChamberId() / 2 * 2 + 1]->Fill(dy);
188 histos[10]->Fill(dx);
189 histos[11]->Fill(dy);
198 for (
const auto& track : tracks) {
199 if (!matched || track.hasMatchFound()) {
200 for (
const auto&
param : track.track()) {
201 double dx =
param.getClusterPtr()->getX() -
param.getNonBendingCoor();
202 double dy =
param.getClusterPtr()->getY() -
param.getBendingCoor();
203 histos[
param.getClusterPtr()->getChamberId() / 2 * 2]->Fill(dx);
204 histos[
param.getClusterPtr()->getChamberId() / 2 * 2 + 1]->Fill(dy);
205 histos[10]->Fill(dx);
206 histos[11]->Fill(dy);