66 Class()->IgnoreTObjectStreamer(kTRUE);
73 if(frag ==
nullptr || chan ==
nullptr) {
91 std::vector<TFragment>::iterator front;
92 std::vector<TFragment>::iterator back;
93 std::vector<TFragment>::iterator pad;
96 bool front_used =
false;
97 bool back_used =
false;
99 if(front->GetDetector() == back->GetDetector()) {
105 if(front_used && back_used) {
120 for(
auto iter = to_remove->rbegin(); iter != to_remove->rend(); ++iter) {
124 hits->erase(hits->begin() + *iter);
135 if(strcmp(option,
"ALL") == 0) {
149 std::ostringstream str;
150 str <<
"not yet written..." << std::endl;
161 int FrontDet = detector;
162 int FrontStr = frontstrip;
164 int BackStr = backstrip;
168 TVector3 position_offset;
169 position_offset.SetXYZ(X, Y, Z);
174 if(FrontDet >= 9 && FrontDet <= 12) {
175 nrots = FrontDet - 9 + 0.5;
179 position.SetXYZ(x, y, z);
180 position.RotateZ(TMath::Pi() * nrots / 2.);
185 else if(FrontDet == 1) {
186 nrots = (BackStr - 7) + 0.5;
190 position.SetXYZ(x, y, z);
192 }
else if(FrontDet == 16) {
193 nrots = (BackStr - 15) + 0.5;
197 position.SetXYZ(x, y, z);
201 return (position + position_offset);
207 static std::array<double, 16> fDetectorThickness = {50., 0., 0., 0., 0., 0., 0., 0., 999., 999., 1023., 999., 0., 0., 0., 1004.};
212 double phi_90 = fmod(std::fabs(hit.
GetPosition().Phi()), TMath::Pi() / 2);
213 double phi_45 = phi_90;
214 if(phi_90 > (TMath::Pi() / 4.)) {
215 phi_45 = TMath::Pi() / 2 - phi_90;
219 return dist / (TMath::Sin(hit.
GetPosition().Theta()) * TMath::Cos(phi_45));
221 return std::fabs(dist / (TMath::Cos(hit.
GetPosition().Theta())));
229 static std::array<double, 16> fDeadLayerThickness = {0.7, 0., 0., 0., 0., 0., 0., 0., 0.1, 0.1, 0.1, 0.1, 0., 0., 0., 0.7};
const TMnemonic * GetMnemonic() const
virtual Int_t GetDetector() const
!
void Copy(TObject &) const override
!
void Clear(Option_t *="") override
!
virtual void AddHit(TDetectorHit *hit)
virtual EMnemonic ArraySubPosition() const
virtual EMnemonic CollectedCharge() const
void SetFront(const TFragment &frag)
!
TVector3 GetPosition(Double_t dist) const override
!
void RemoveHits(std::vector< TSharc2Hit > *, std::set< int > *)
!
std::vector< TFragment > fBackFragments
static double fXposUB
total Z dimension of all boxes
void Print(Option_t *="") const override
!
static double fStripFPitch
static double fSectorWidthDS2
static double fStripBPitch
static double fZdim
total Y dimension of all boxes
void BuildHits() override
!
static TVector3 GetPosition(int detector, int frontstrip, int backstrip, double X=0.00, double Y=0.00, double Z=0.00)
!
void Copy(TObject &) const override
!
void AddFragment(const std::shared_ptr< const TFragment > &, TChannel *) override
!
static double GetDetectorThickness(TSharc2Hit &hit, double dist=-1.0)
static double fStripPitchUS2
static double fStripPitchDS2
void Clear(Option_t *="") override
!
static double fYdim
total X dimension of all boxes
static double GetDeadLayerThickness(TSharc2Hit &hit)
static double fSectorWidthUS2
std::vector< TFragment > fFrontFragments