153 {
155
157 printf(
"Track %d nseg=%d, too short for kink search\n", trk->
ID(), trk->
N());
159 }
161
162 double rms,rmst,rmsl;
164
166 printf(
"Track %d nseg=%d. too short to calculate delta-theta rms. use 2.0mrad.\n",
t->ID(),
t->N());
167 rms=rmst=rmsl=2.0;
168 }
169
170 TObjArray *kinks = new TObjArray;
171
172 int vtxpl;
173
174
175 vtxpl=0;
176 printf("VERTEX plate is not set!!!!! \n");
177
178
182 vtxpl = pat->
Plate();
183 break;
184 }
185 }
186
188 for(int j=0;j<n-1;j++){
191
192
194
195
196 double dtt, dtl;
198 double dt = sqrt(dtt*dtt+dtl*dtl);
199
200
201 double dxt, dxl;
203
205
206
207
208
211
212
213 double Pt =
p>0 ?
p*dt : -1.;
214
215
216 TObjArray segs;
220
221 int ndau = n-j-1;
222
223 EdbSmallKink *kink =
new EdbSmallKink(v,
t,
s1,
s2, dtt, dtl, dxt, dxl, ndau,
p, pmin, pmax,
Pt, rmst, rmsl);
224
225
226 kinks->Add(kink);
228
229 {
230
231
235
238 for(
int i=0; i<=j; i++) tp->
AddSegment(
t->GetSegment(i));
241
244 for(
int i=j+1; i<
t->N(); i++)
td->AddSegment(
t->GetSegment(i));
249 }
250
251
252 printf("Kink candidate. itrk %d plate %d - %d kink angle %.4lf P %.3lf Pt %.3lf ",
254 printf("(Trans, Longi) = ( %.4lf, %.4lf ) thr ( %.4lf, %.4lf )\n",
255 dtt, dtl, rmst*3, rmsl*3);
256
257 }
258 }
259
260 printf("%d kink candidates are found.\n", kinks->GetEntries());
261
262 return kinks;
263}
float Pt[500]
Definition: RecDispNU.C:99
Expr< UnaryOp< Fabs< T >, Expr< A, T, D >, T >, T, D > fabs(const Expr< A, T, D > &rhs)
Definition: UnaryOperators.hh:96
EdbVertex * CalcVertex(TObjArray *segments)
Definition: ShowRec.cpp:9043
EdbPVRec * ePVR
Definition: EdbDecaySearch.h:224
General decay vertex.
Definition: EdbDecaySearch.h:114
@ kLong
Definition: EdbDecaySearch.h:126
@ kSmallKink
Definition: EdbDecaySearch.h:126
void SetParent(EdbTrackDS *parent)
Definition: EdbDecaySearch.C:75
void SetDaughter(EdbTrackDS *daughter)
Definition: EdbDecaySearch.C:80
void SetPrimaryVertex(EdbVertex *v)
Definition: EdbDecaySearch.h:137
void SetType(int type)
Definition: EdbDecaySearch.h:145
Definition: EdbPattern.h:273
Int_t Plate() const
Definition: EdbPattern.h:327
Int_t Npatterns() const
Definition: EdbPattern.h:366
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1721
Int_t ID() const
Definition: EdbSegP.h:147
Int_t Plate() const
Definition: EdbSegP.h:159
Int_t PID() const
Definition: EdbSegP.h:148
Float_t Z() const
Definition: EdbPattern.h:84
test
Definition: EdbDecaySearch.h:155
Tracks with DecaySearch information.
Definition: EdbDecaySearch.h:8
Definition: EdbPattern.h:113
void AddSegment(EdbSegP *s)
Definition: EdbPattern.h:214
Int_t N() const
Definition: EdbPattern.h:177
void Clear()
Definition: EdbPattern.h:264
void SetCounters()
Definition: EdbPattern.h:159
Definition: EdbVertex.h:69
Float_t X() const
Definition: EdbVertex.h:130
void SetXYZ(float x, float y, float z)
Definition: EdbVertex.h:157
Float_t Z() const
Definition: EdbVertex.h:132
Float_t Y() const
Definition: EdbVertex.h:131
TTree * t
Definition: check_shower.C:4
void td()
Definition: check_vertex.C:168
EdbSegP * s1
Definition: tlg2couples.C:29
EdbSegP * s2
Definition: tlg2couples.C:30
void CalcDXTransLongi(EdbSegP *s1, EdbSegP *s2, double *dxt, double *dxl)
Definition: EdbEDAUtil.C:665
void CalcDTTransLongi(EdbSegP *s1, EdbSegP *s2, double *dtTransverse, double *dtLongitudinal)
Definition: EdbEDAUtil.C:648
EdbTrackP * CleanTrack(EdbTrackP *t)
Definition: EdbEDAUtil.C:499
double DTRMSTL1Kink(EdbTrackP *t, double *rmsspace, double *rmstransverse, double *rmslongitudinal, int *NKinkAngleUsed=NULL)
Definition: EdbEDAUtil.C:745
void CalcPPartial(EdbTrackP *t, EdbSegP *s1st, EdbSegP *slast, double &p, double &pmin, double &pmax, bool print=kTRUE)
Definition: EdbEDAUtil.C:344
p
Definition: testBGReduction_AllMethods.C:8