151 {
153
155 printf(
"Track %d nseg=%d, too short for kink search\n", trk->
ID(), trk->
N());
157 }
159
160 double rms,rmst,rmsl;
162
164 printf(
"Track %d nseg=%d. too short to calculate delta-theta rms. use 2.0mrad.\n",
t->ID(),
t->N());
165 rms=rmst=rmsl=2.0;
166 }
167
168 TObjArray *kinks = new TObjArray;
169
170 int vtxpl;
172 else {
173 vtxpl=0;
174 printf("VERTEX plate is not set!!!!! \n");
175 }
176
180 vtxpl = pat->
Plate();
181 break;
182 }
183 }
184
186 for(int j=0;j<n-1;j++){
189
190
192
193
194 double dtt, dtl;
196 double dt = sqrt(dtt*dtt+dtl*dtl);
197
198
199 double dxt, dxl;
201
203
204
205
206
209
210
211 double Pt =
p>0 ?
p*dt : -1.;
212
213
214 TObjArray segs;
218
219 int ndau = n-j-1;
220
221 EdbEDASmallKink *kink =
new EdbEDASmallKink(v,
t,
s1,
s2, dtt, dtl, dxt, dxl, ndau,
p, pmin, pmax,
Pt, rmst, rmsl);
222
224 kinks->Add(kink);
226
227 {
228
229
233
236 for(
int i=0; i<=j; i++) tp->
AddSegment(
t->GetSegment(i));
239
242 for(
int i=j+1; i<
t->N(); i++)
td->AddSegment(
t->GetSegment(i));
247 }
248
249
250 printf("Kink candidate. itrk %d plate %d - %d kink angle %.4lf P %.3lf Pt %.3lf ",
252 printf("(Trans, Longi) = ( %.4lf, %.4lf ) thr ( %.4lf, %.4lf )\n",
253 dtt, dtl, rmst*3, rmsl*3);
254
255 }
256 }
257
258 printf("%d kink candidates are found.\n", kinks->GetEntries());
259
260 return kinks;
261}
EdbEDA * gEDA
Definition: EdbEDA.C:3
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
int GetIPLZ(float z)
Definition: EdbEDA.h:267
EdbPVRec * ePVR
Definition: EdbEDADecaySearch.h:230
Definition: EdbEDADecaySearch.h:120
void SetType(int type)
Definition: EdbEDADecaySearch.h:151
void SetParent(EdbEDATrackP *parent)
Definition: EdbEDADecaySearch.C:80
void SetDaughter(EdbEDATrackP *daughter)
Definition: EdbEDADecaySearch.C:85
void SetPrimaryVertex(EdbVertex *v)
Definition: EdbEDADecaySearch.h:143
@ kSmallKink
Definition: EdbEDADecaySearch.h:132
@ kLong
Definition: EdbEDADecaySearch.h:132
Definition: EdbEDADecaySearch.h:161
Definition: EdbEDADecaySearch.h:9
void AddVertex(EdbVertex *v)
Definition: EdbEDA.h:661
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
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