30 std::cout <<
fHits.size() <<
" hits Found. " << std::endl;
42 for(
int i=12;
i<16;
i++)
45 for(
int i=16;
i<20;
i++)
48 for(
int i=20;
i<24;
i++)
53 map<Int_t, PndTrackCand> tracks =
FindTracklets(splittedHits[layer]);
54 typedef map<Int_t, PndTrackCand>::iterator iterator;
55 for(iterator it = tracks.begin();it!=tracks.end();it++){
61 vector<PndFtsHit*>
hits) {
62 map<Int_t, vector<PndFtsHit*>>
map;
63 for (
size_t i = 0;
i < hits.size();
i++) {
71 vector<PndFtsHit*>
hits) {
73 typedef std::map<Int_t, Int_t>::iterator it_type2;
74 map<Int_t, Int_t> states;
75 map<Int_t, PndFtsHit*> hitMap;
76 map<Int_t, vector<Int_t> > neighbors =
getNeighbors(hits);
78 for (
size_t i = 0;
i < hits.size();
i++) {
89 for (it_type2 it = states.begin(); it != states.end(); it++) {
91 vector<int> hitNeighbors = neighbors[it->second];
92 for (
size_t i = 0;
i < hitNeighbors.size();
i++) {
93 Int_t state1 = states[it->first];
94 Int_t state2 = states[hitNeighbors[
i]];
95 if (state1 != state2) {
98 states[it->first] =
min;
99 states[hitNeighbors[
i]] =
min;
106 map<Int_t, PndTrackCand> result;
107 for (it_type2 it = states.begin(); it != states.end(); it++) {
108 Int_t hitNumber = result[it->second].GetNHits()+1;
109 result[it->second].AddHit(hitMap[it->first]->GetEntryNr(),hitNumber);
116 vector<PndFtsHit*>
hits) {
117 map<Int_t, vector<Int_t> > neighbors;
118 for (
size_t i = 0;
i < hits.size();
i++) {
121 for (
size_t j =
i + 1; j < hits.size(); j++) {
128 TVector3 diff = p1 -
p2;
159 if(((hit->
GetLayerID() - 1) / 2)%4==1) angle = -5;
160 if(((hit->
GetLayerID() - 1) / 2)%4==2) angle = 5;
162 if(!transToNewSystem) angle*=-1;
165 hitMat[0][0] = hit->GetX();
166 hitMat[1][0] = hit->GetY();
167 hitMat[2][0] = hit->GetZ();
168 TMatrix newPos = rotMat*hitMat;
169 hit->SetXYZ(newPos[0][0],newPos[1][0],newPos[2][0]);
void setHits(std::vector< PndFtsHit * > hits)
map< Int_t, PndTrackCand > FindTracklets(vector< PndFtsHit * > hits)
static T Sqrt(const T &x)
map< Int_t, std::vector< Int_t > > getNeighbors(vector< PndFtsHit * > hits)
labels push_back("electron")
map< Int_t, vector< PndTrackCand > > fTracklets
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
virtual ~PndFtsCellTrackletGenerator()
TMatrix getRotationMatrix(Double_t angle)
map< Int_t, vector< PndFtsHit * > > splitLayers(vector< PndFtsHit * > hits)
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)
std::vector< PndFtsHit * > fHits
PndFtsCellTrackletGenerator()
void transform(Bool_t transToNewSystem, PndFtsHit *hit)