2839{
2841 int zpos = 1, zpos2 = 1;
2846 {
2849 {
2850
2851 printf("No working vertex selected!\n");
2853 return;
2854 }
2855 if (GetMarkerColor() == kRed) zpos = 0;
2857 {
2858
2859 printf("Track alredy connected to a vertex by this edge!\n");
2861 return;
2862 }
2863
2864
2865
2867 {
2868
2869 printf("Track alredy connected to a vertex by this edge!\n");
2871 return;
2872 }
2873
2874
2875
2877 if (!
eD->
eVerRec) {printf(
"Error: EdbDisplay:AddTrackToVertex: EdbVertexRec not defined, use SetVerRec(...)\n"); fflush(
stdout);
return;}
2878 double ImpMaxSave = 0.;
2879 double ProbMinSave = 0.;
2881 {
2889 {
2891 {
2893 {
2896 }
2897 }
2902 eVs->V()->rmsDistAngle();
2903 sprintf(
text,
"Creat %-4d %-4d %-8.1f %-8.1f %-8.1f %-6.1f %-7.1f %-7.5f",
2904 eVs->ID(), eVs->N(), eVs->VX(), eVs->VY(), eVs->VZ(), eVs->V()->dist(),
2905 eVs->V()->chi2()/eVs->V()->ndf(), eVs->V()->prob());
2910 }
2911 else
2912 {
2913 printf(
"EdbTrackG::AddTrackToVertex: New vertex not created! May be Prob < ProbMin=%f. Change ProbMin with 'TrackParams' button!\n",
eD->
eTProbMin);
2914 }
2917 return;
2918 }
2921 {
2924 int i = 0, n = 0;
2925 for(i=0; i<ntr; i++)
2926 {
2928 {
2929 (
eD->
eVertex)->GetTrack(i)->AddVTA(vta);
2930 n++;
2931 }
2932 }
2933 if (n < 2)
2934 {
2937 {
2940 }
2941 else
2942 {
2945 }
2946 printf("Can't create working copy of the vertex!\n");
2948 return;
2949 }
2950
2952 {
2955 {
2958 }
2959 else
2960 {
2963 }
2964 printf("Can't create working copy of the vertex!\n");
2966 return;
2967 }
2968 }
2969 else
2970 {
2971
2975 int i = 0, n = 0;
2976 for(i=0; i<ntr; i++)
2977 {
2979 {
2981 n++;
2982 }
2983 }
2984 if (n < 2)
2985 {
2988 {
2992 }
2993 else
2994 {
2997 }
2998 printf("Can't create working copy of the vertex!\n");
3000 return;
3001 }
3002
3004 {
3007 {
3011 }
3012 else
3013 {
3016 }
3017 printf("Can't create working copy of the vertex!\n");
3019 return;
3020 }
3021 }
3027 {
3032 sprintf(
text,
"New %-4d %-4d %-8.1f %-8.1f %-8.1f %-6.1f %-7.1f %-7.5f",
3033 eW->
ID(), eW->
N(), eW->
VX(), eW->
VY(), eW->
VZ(), eW->
V()->
dist(),
3037 {
3042 sprintf(
text,
"Pre %-4d %-4d %-8.1f %-8.1f %-8.1f %-6.1f %-7.1f %-7.5f",
3043 eW->
ID(), eW->
N(), eW->
VX(), eW->
VY(), eW->
VZ(), eW->
V()->
dist(),
3047 }
3048 else
3049 {
3053 {
3057 }
3058 }
3059
3062 {
3063
3065 }
3067 if (ePreviousSaved) delete ePreviousSaved;
3068 ePreviousSaved = 0;
3071 }
3072 else
3073 {
3074 printf("Track not added! May be Prob < ProbMin. Change ProbMin with 'TrackParams' button!\n");
3078 {
3082 }
3083 else
3084 {
3087 }
3090 return;
3091 }
3092 }
3093}
TText * text
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:164
virtual void CreateCanvasVTX()
Definition: EdbDisplayBase.cxx:993
virtual void DrawOldBut(char *text)
Definition: EdbDisplayBase.cxx:1048
virtual void DrawNewVTX(char *text)
Definition: EdbDisplayBase.cxx:971
virtual void DrawNewBut(char *text)
Definition: EdbDisplayBase.cxx:1108
virtual void DrawPreVTX(char *text)
Definition: EdbDisplayBase.cxx:949
virtual void DrawAcc()
Definition: EdbDisplayBase.cxx:1154
virtual void DrawOldVTX(char *text)
Definition: EdbDisplayBase.cxx:927
virtual void DrawUnd()
Definition: EdbDisplayBase.cxx:1138
virtual void DrawPreBut(char *text)
Definition: EdbDisplayBase.cxx:1078
virtual void DrawCan()
Definition: EdbDisplayBase.cxx:1170
virtual void DrawEnv()
Definition: EdbDisplayBase.cxx:1186
TObjArray * eArrV
array of vertices to be drawn
Definition: EdbDisplay.h:44
void DrawVTXTracks(char *type, EdbVertex *v=0)
Definition: EdbDisplay.cxx:4084
Double_t eTProbMin
Minimal probability for interactive add track.
Definition: EdbDisplay.h:66
EdbVertex * ePrevious
saved previous vertex modifications
Definition: EdbDisplay.h:50
Int_t eIndVert
Index of selected vertex in ArrV.
Definition: EdbDisplay.h:57
EdbVertex * eVertex
current selected vertex
Definition: EdbDisplay.h:49
Double_t eTImpMax
Maximal impact for interactive add track.
Definition: EdbDisplay.h:65
Bool_t eWait_Answer
set TRUE when answer received
Definition: EdbDisplay.h:56
EdbVertex * eWorking
working vertex
Definition: EdbDisplay.h:48
void AddVTA(EdbVTA *vta)
Definition: EdbPattern.cxx:450
EdbVertex * VertexS()
Definition: EdbPattern.cxx:1191
EdbVertex * VertexE()
Definition: EdbPattern.cxx:1198
Definition: EdbVertex.h:26
EdbVertex * ProbVertex2(EdbTrackP *tr1, EdbTrackP *tr2, int zpos1, int zpos2)
Definition: EdbVertex.cxx:1302
Definition: EdbVertex.h:69
Int_t ID() const
Definition: EdbVertex.h:126
Float_t VX() const
Definition: EdbVertex.h:133
void SetID(int ID=0)
Definition: EdbVertex.h:156
VERTEX::Vertex * V() const
Definition: EdbVertex.h:154
Int_t N() const
Definition: EdbVertex.h:121
Float_t VY() const
Definition: EdbVertex.h:134
Float_t VZ() const
Definition: EdbVertex.h:135
unsigned short int ndf() const
degrees of freedom of vertex fit
Definition: VtVertex.C:238
float chi2() const
$\chi^2$ of vertex fit
Definition: VtVertex.C:236
double rmsDistAngle() const
calc rms dist and rms angle
Definition: VtVertex.C:1073
double dist() const
available after call to rmsDistAngle()
float prob() const
upper tail $\chi^2$ probability
Definition: VtVertex.C:237