14const std::array<double, 12>
TTrific::fXmm = {-33, -27, -21, -15, -9, -3, 3, 9, 15, 21, 27, 33};
15const std::array<double, 12>
TTrific::fYmm = {42, 36, 28, 20, 12, 4, -4, -12, -20, -28, -36, -42};
62 std::ostringstream str;
141 if(24 < detectorNumber || 1 > detectorNumber) {
return {1., -1., -1. * abs(detectorNumber)}; }
147 if(TVector3(-100, -100, -100) == vec) {
return vec; }
153 zCart += zCart * vec.Y() / (TMath::Sqrt(3) - vec.Y());
156 return {zCart * vec.X(), zCart * vec.Y(), zCart};
181 double xEngTotal = 0.0;
183 std::vector<int> hitXDets;
186 Int_t seg = hit->GetSegment();
188 if(3 > hit->GetEnergy()) {
continue; }
190 xMean +=
fXmm[seg] * hit->GetEnergy();
191 xEngTotal += hit->GetEnergy();
193 hitXDets.push_back(seg);
198 if(hitXDets.empty()) {
210 std::sort(hitXDets.begin(), hitXDets.end());
212 for(
unsigned int i = 1; i < hitXDets.size(); i++) {
213 if(hitXDets[i] != hitXDets[i - 1] + 1) {
225 double yEngTotal = 0.0;
227 std::vector<int> hitYDets;
231 Int_t seg = hit->GetSegment();
233 if(3 > hit->GetEnergy()) {
continue; }
235 yMean +=
fYmm[seg] * hit->GetEnergy();
236 yEngTotal += hit->GetEnergy();
238 hitYDets.push_back(seg);
243 if(hitYDets.empty()) {
251 std::sort(hitYDets.begin(), hitYDets.end());
254 for(
unsigned int i = 1; i < hitYDets.size(); i++) {
255 if(hitYDets[i] != hitYDets[i - 1] + 1) {
265 double yCart = yMean * TMath::Sin(
fAngle);
269 double tanX = xMean / zXCart;
270 double tanY = yCart / zYCart;
const TMnemonic * GetMnemonic() const
virtual Int_t GetDetector() const
!
void Copy(TObject &) const override
!
virtual Short_t GetMultiplicity() const
void Clear(Option_t *="") override
!
virtual void AddHit(TDetectorHit *hit)
virtual EMnemonic ArraySubPosition() const
void SetBit(T bit, Bool_t flag)
Bool_t TestBit(T bit) const
TTransientBits< UShort_t > fTrificBits
void Copy(TObject &) const override
!
std::vector< TTrificHit * > fXFragments
void Clear(Option_t *="") override
!
static const double fAngle
static double fTargetToWindowCart
static const std::array< double, 12 > fYmm
std::vector< TTrificHit * > fYFragments
static const std::array< double, 12 > fXmm
void AddFragment(const std::shared_ptr< const TFragment > &, TChannel *chan) override
!
std::vector< TTrificHit * > fSingFragments
static bool fSetCoreWave
! Flag for Waveforms ON/OFF
void Print(Option_t *opt="") const override
!
static const double fInitialSpacingCart
static const TVector3 fNormalGridVec
static const double fSpacingCart
TTrific & operator=(const TTrific &)
!