222 cout <<
" *** This NcJet initialisation was invoked via the NcVertex ctor." << endl;
320 Int_t jetflag=0,connect=0;
322 for (Int_t it=1; it<=v.
fNtrk; it++)
330 if (!jetflag && !connect)
AddTrack(tx);
358 for (Int_t ij=1; ij<=v.
GetNjets(); ij++)
476 for (Int_t i=0; i<=
fConnects->GetLast(); i++)
652 const char* name=GetName();
653 const char* title=GetTitle();
654 cout <<
" *NcVertex::Data*";
655 if (strlen(name)) cout <<
" Name : " << GetName();
656 if (strlen(title)) cout <<
" Title : " << GetTitle();
661 cout <<
" Nvertices : " <<
fNvtx <<
" Njets : " <<
fNjets
662 <<
" Energy scale : " <<
fEscale <<
" GeV" << endl;
695 ntk=tracks->GetEntries();
704 cout <<
" *NcVertex::List* No tracks are present." << endl;
711 for (Int_t it=1; it<=ntk; it++)
715 obj=tracks->At(it-1);
717 if (!obj->InheritsFrom(
"NcTrack"))
continue;
725 cout <<
" ---Track no. " << it << endl;
737 cout <<
" ---Level 1 sec. vertex no. " << iv << endl;
743 cout <<
" *NcVertex::List* Error : No sec. vertex present." << endl;
774 ntk=tracks->GetEntries();
783 cout <<
" *NcVertex::ListAll* No tracks are present." << endl;
790 for (Int_t it=1; it<=ntk; it++)
794 obj=tracks->At(it-1);
796 if (!obj->InheritsFrom(
"NcTrack"))
continue;
804 cout <<
" ---Track no. " << it << endl;
827 cout <<
" ---Level " << n <<
" sec. vertex no. " << iv << endl;
838 cout <<
" ---Track no. " << it << endl;
844 cout <<
" *NcVertex::Dumps* Error : No track present." << endl;
853 cout <<
" *NcVertex::Dumps* Error : No sec. vertex present." << endl;
879 cout <<
" *NcVertex*::GetVertex* No (secondary) vertices present." << endl;
886 cout <<
" *NcVertex*::GetVertex* Invalid argument i : " << i
887 <<
" Nvtx = " <<
fNvtx << endl;
909 cout <<
" *NcVertex*::GetIdVertex* No (secondary) vertices present." << endl;
914 for (Int_t i=0; i<
fNvtx; i++)
917 if (
id == vx->
GetId()) v=vx;
946 cout <<
"*NcVertex::SetVertexCopy* Invalid argument : " << j << endl;
951 cout <<
"*NcVertex::SetVertexCopy* Storage already contained vertices."
952 <<
" ==> VertexCopy mode not changed." << endl;
990 cout <<
" *NcVertex*::GetJet* No jets present." << endl;
997 cout <<
" *NcVertex*::GetJet* Invalid argument i : " << i
998 <<
" Njets = " <<
fNjets << endl;
1020 cout <<
" *NcVertex*::GetIdJet* No jets present." << endl;
1025 for (Int_t i=0; i<
fNjets; i++)
1028 if (
id == jx->
GetId()) j=jx;
1057 cout <<
"*NcVertex::SetJetCopy* Invalid argument : " << j << endl;
1062 cout <<
"*NcVertex::SetJetCopy* Storage already contained jets."
1063 <<
" ==> JetCopy mode not changed." << endl;
1094 if (
fConnects->FindObject(t)) connect=1;
1149 Double_t vec[3]={0,0,0};
1163 for (Int_t jtk=1; jtk<=ntk; jtk++)
1171 TPolyLine3D* line=
new TPolyLine3D();
1181 line->SetNextPoint(vec[0],vec[1],vec[2]);
1185 line->SetNextPoint(vec[0],vec[1],vec[2]);
1186 line->SetLineWidth(1);
1194 line->SetNextPoint(vec[0],vec[1],vec[2]);
1198 line->SetNextPoint(vec[0],vec[1],vec[2]);
1199 line->SetLineWidth(3);
1202 line->SetLineColor(kGreen);
1203 if (charge>0) line->SetLineColor(kRed);
1204 if (charge<0) line->SetLineColor(kBlue);
1211 line->SetLineWidth(2);
1212 line->SetLineColor(kMagenta);
1223 for (Int_t jvtx=1; jvtx<=nvtx; jvtx++)
1226 if (vx) vx->
Draw(secs,cons,jets);
1274 if (ordered) ordered->Clear();
1276 TObjArray* ajets=jets;
1277 if (!ajets) ajets=
fJets;
1280 if (ajets) njets=ajets->GetEntries();
1282 if (!mode || abs(mode)>13 || !jets || !njets)
return 0;
1286 ordered->Expand(njets);
1309 for (Int_t i=0; i<njets; i++)
1313 if (!obj->InheritsFrom(
"NcJet"))
continue;
1319 arr->AddAt(jx,nord-1);
1323 for (Int_t j=0; j<=nord; j++)
1339 val2=((
NcJet*)arr->At(j))->GetNtracks();
1343 val2=((
NcJet*)arr->At(j))->GetEnergy(1);
1347 val2=((
NcJet*)arr->At(j))->GetMomentum(1);
1351 val2=((
NcJet*)arr->At(j))->GetInvmass(1);
1355 val2=((
NcJet*)arr->At(j))->GetPt(1);
1359 val2=((
NcJet*)arr->At(j))->GetPl(1);
1363 val2=((
NcJet*)arr->At(j))->GetEt(1);
1367 val2=((
NcJet*)arr->At(j))->GetEl(1);
1371 val2=((
NcJet*)arr->At(j))->GetMt(1);
1375 val2=((
NcJet*)arr->At(j))->GetRapidity();
1379 val2=((
NcJet*)arr->At(j))->GetPseudoRapidity();
1383 val2=((
NcJet*)arr->At(j))->GetNsignals();
1387 val2=((
NcJet*)arr->At(j))->GetCharge();
1391 if (mode<0 && val1 <= val2)
continue;
1392 if (mode>0 && val1 >= val2)
continue;
1395 for (Int_t k=nord-1; k>j; k--)
1397 arr->AddAt(arr->At(k-1),k);
1431 if (strlen(name)) vtx->SetName(name);
void GetVector(Double_t *v, TString f, TString u="rad") const
Double_t GetPseudoRapidity()
virtual void Data(TString f="car", TString u="rad")
Double_t GetInvmass(Float_t scale=-1)
Double_t GetEnergy(Float_t scale=-1)
Double_t GetEl(Float_t scale=-1)
Double_t GetPl(Float_t scale=-1)
Int_t GetNtracks(Int_t idmode=0, Int_t chmode=2, Int_t pcode=0)
Int_t GetTrackCopy() const
NcTrack * GetTrack(Int_t i) const
TObjArray * fSelected
! Temp. array to hold user selected or ordered objects
Double_t GetMomentum(Float_t scale=-1)
Double_t GetPt(Float_t scale=-1)
Double_t GetEt(Float_t scale=-1)
virtual void SetOwner(Bool_t own=kTRUE)
virtual TObject * Clone(const char *name="") const
Float_t GetCharge() const
void SetTrackCopy(Int_t j)
Double_t GetMt(Float_t scale=-1)
Int_t GetNsignals(TString classname="TObject", Int_t par=0) const
void AddTrack(NcTrack &t)
void GetPosition(Double_t *r, TString f, TString u="rad", Float_t s=-1) const
NcPosition & GetPosition()
virtual void Data(TString f="car", TString u="rad") const
Handling of the attributes of a reconstructed particle track.
NcPosition * GetEndPoint()
NcPosition * GetBeginPoint()
void Set4Momentum(Nc4Vector &p)
virtual void ListAll(TString f="car", TString u="rad")
void SetCharge(Float_t q)
void SetBeginPoint(NcPosition &p)
void SetEndPoint(NcPosition &p)
virtual void Data(TString f="car", TString u="rad")
NcPosition * GetClosestPoint()
Nc3Vector Get3Momentum(Float_t scale=-1) const
Float_t GetCharge() const
Creation and investigation of an NcVertex.
virtual void Draw(Option_t *)
void SetVertexCopy(Int_t j)
TObjArray * SortJets(Int_t mode=-1, TObjArray *jets=0, TObjArray *ordered=0)
virtual TObject * Clone(const char *name="") const
void Dumps(NcVertex *v, Int_t n, TString f, TString u)
virtual void ListAll(TString f="car", TString u="rad", TObjArray *tracks=0)
virtual void Data(TString f="car", TString u="rad")
TObjArray * fLines
! Array to (temporarily) store the 3D lines for the event display
NcJet * GetIdJet(Int_t id) const
Int_t GetNvertices() const
Int_t IsJetTrack(NcTrack *t) const
virtual void SetOwner(Bool_t own=kTRUE)
NcVertex * GetIdVertex(Int_t id) const
Int_t GetVertexCopy() const
void AddJet(NcJet &j, Int_t tracks=1)
virtual void List(TString f="car", TString u="rad", TObjArray *tracks=0)
Int_t IsConnectTrack(NcTrack *t) const
NcVertex * GetVertex(Int_t i) const
void AddVertex(NcVertex &v, Int_t connect=1)
NcJet * GetJet(Int_t i) const