14#include "BmnRootIterator.h"
15#include "BmnRun8cgDetModel.h"
27#define BMN_FILELIST "cfg/dst7466noa-full.txt"
29#define XHIST_WIDTH 0.06
30#define YHIST_WIDTH 0.6
39#define DET_FILTER 201392146
41static const std::vector<Int_t>
detIDs = {201588754, 201588770};
42static const Double_t detMinMax[2][6] = {{-27.0, 27.0, 0.0, 16.0}, {-27.0, 27.0, -16.0, 0.0}};
52std::map<Int_t, std::array<Double_t, 6>>
detPos;
54int review(
int argc = 0,
char** argv =
nullptr)
60 "canvas",
"BM@N alignment");
69 pPads[
i][j] =
new TPad(
Form(
"pad%d%d",
i + 1, j + 1),
Form(
"pad%d%d",
i + 1, j + 1), padW * j, padH *
i,
70 padW * (j + 1), padH * (
i + 1));
91 Double_t xSum{0.0}, ySum{0.0}, zSum{0.0}, z2Sum{0.0}, zxSum{0.0}, zySum{0.0};
95 auto found{std::find(
detIDs.begin(),
detIDs.end(), detID)};
96 if (found !=
detIDs.end()) {
99 detIdx = std::distance(
detIDs.begin(), found);
112 if (detIdx == -1 || (!filterOK &&
DET_FILTER != -1)) {
118 if (!hist[detIdx][
hResX]) {
119 hist[detIdx][
hResX] =
121 hist[detIdx][
hResY] =
130 xA{(xSum * z2Sum - zSum * zxSum) * factor}, yA{(ySum * z2Sum - zSum * zySum) * factor},
131 xB{(hitCnt * zxSum - zSum * xSum) * factor}, yB{(hitCnt * zySum - zSum * ySum) * factor},
132 resX{detHit.GetX() - xA - xB * detHit.GetZ()}, resY{detHit.GetY() - yA - yB * detHit.GetZ()};
136 ((
TH2D*)hist[detIdx][
hXresX])->Fill(detHit.GetX(), resX);
137 ((
TH2D*)hist[detIdx][
hYresX])->Fill(detHit.GetY(), resX);
142 std::ofstream f(
"positions.csv", std::ofstream::out);
144 std::cout <<
i->first <<
",";
145 f <<
i->first <<
",";
146 for (
Int_t j = 0; j < 6; j++) {
147 std::cout <<
i->second[j] <<
",";
148 f <<
i->second[j] <<
",";
180 std::cout <<
"Done in " << timer.
RealTime() <<
"s" << std::endl;
char * Form(const char *fmt,...)
Bool_t EndOfTracks() const noexcept
Bool_t EndOfHits() const noexcept
virtual Double_t HitY() const override
virtual Int_t HitDetectorID() const override
const Hit_t * GetHit() const noexcept
virtual Double_t HitZ() const override
virtual Double_t HitX() const override
virtual Int_t HitsInTrack() const override
virtual void NextTrack() override
virtual void NextHit() override
virtual void SetFillColor(Color_t fcolor)
void SetWindowSize(UInt_t ww, UInt_t wh)
void SetFixedAspectRatio(Bool_t fixed=kTRUE) override
void SetCanvasSize(UInt_t ww, UInt_t wh) override
bool SetRealAspectRatio(const Int_t axis=1)
static void StatOverflows(Bool_t flag=kTRUE)
void Draw(Option_t *option="") override
virtual Int_t Fill(const char *name, Double_t w)
virtual void SetStats(Bool_t stats=kTRUE)
TVirtualPad * cd(Int_t subpadnumber=0) override
void Draw(Option_t *option="") override
std::map< Int_t, std::array< Double_t, 6 > > detPos
static const std::vector< Int_t > detIDs
static const Double_t detMinMax[2][6]
int review(int argc=0, char **argv=nullptr)