11 fLines =
new vector<PndLineApproximation>();
20 vector<PndFtsHit*> newHits;
21 vector<PndFtsHit*> oldHits = l.
getHits();
22 for(
size_t i=0;
i<oldHits.size();
i++){
23 newHits.push_back(
copyHit(oldHits[
i]));
30 if(
fLines->size()>1 && skewed){
32 }
else if(
fLines->size()>1){
34 for(
size_t i=0;
i<hits.size();
i++){
43 h2->SetDetectorID(h->GetDetectorID());
47 h2->SetXYZ(h->GetX(),h->GetY(),h->GetZ());
50 h2->SetRefIndex(h->GetRefIndex());
51 h2->SetEntryNr(h->GetEntryNr());
57 vector<PndFtsHit*> allHits;
59 vector<PndFtsHit*>
hits = (*fLines)[
i].getHits();
60 for(
size_t j=0;j<hits.size();j++) allHits.push_back(hits[j]);
63 PndLine zyLine = (*fLines)[0].linearRegressionZY(allHits);
65 for(
size_t i=0;
i<allHits.size();
i++){
77 (*fLines)[
i].setLine(newLine);
82 TVector3 base = l.
getP1();
84 Double_t lamp = (hit->GetZ()-base[2])/dir[2];
85 TVector3
p = base+lamp*dir;
90 PndLine first = (*fLines)[0].getLine();
93 FairTrackParP tp1(first.
getP1(),3 * first.
getDir().Unit(),
v,
v, 1,
v,
v,
v);
100 hitCount = hits.size();
101 for(
size_t j=0;j<hits.size();j++){
102 trackCand.AddHit(orgHits[hits[j]->GetTubeID()]->GetEntryNr(),j);
106 trackCand.AddHit(
fHits[
i]->GetEntryNr(),
i+hitCount);
114 Int_t apprLayer = appr.
getHits()[0]->GetLayerID();
115 if(layer<8 && apprLayer>=8)
continue;
116 if(layer>=16 && apprLayer<16)
continue;
117 if(layer>8 && layer < 16 && layer!=apprLayer)
continue;
122 if(dist2<dist) dist = dist2;
vector< PndFtsHit * > getHits()
std::vector< PndLineApproximation > * fLines
void SetIsochrone(Double_t isochrone)
TVector3 getPerpendicular(PndLine l2)
void SetChamberID(Int_t chamberid)
void SetTubeID(Int_t tubeid)
Double_t getDistTo(PndLine l, Int_t layer)
virtual ~PndTrackCollection()
void refitHit(PndLine &l, PndFtsHit *hit)
vector< PndFtsHit * > fHits
Double_t GetIsochrone() const
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
PndTrack getPndTrack(map< Int_t, PndFtsHit * > orgHits)
Double_t GetIsochroneError() const
void SetLayerID(Int_t layerid)
PndFtsHit * copyHit(PndFtsHit *h)
void add(PndLineApproximation l, Bool_t skewed)
void SetIsochroneError(Double_t isochroneError)
Int_t GetChamberID() const
void setHits(vector< PndFtsHit * > h)