14 TClonesArray *JetEvent::fgJets = 0;
15 TClonesArray *JetEvent::fgTracks = 0;
16 TClonesArray *JetEvent::fgHitsA = 0;
17 TClonesArray *JetEvent::fgHitsB = 0;
26 if (!fgTracks) fgTracks =
new TClonesArray(
"Track", 100);
27 if (!fgJets) fgJets =
new TClonesArray(
"Jet", 10);
28 if (!fgHitsA) fgHitsA =
new TClonesArray(
"Hit", 10000);
29 if (!fgHitsB) fgHitsB =
new TClonesArray(
"Hit", 1000);
46 void JetEvent::Build(Int_t jetm, Int_t trackm, Int_t hitam, Int_t hitbm) {
48 Int_t ObjectNumber = TProcessID::GetObjectCount();
54 fNjet = fNtrack = fNhitA = fNhitB = 0;
56 fVertex.SetXYZ(gRandom->Gaus(0,0.1),
60 Int_t njets = (Int_t)gRandom->Gaus(jetm,1);
if (njets < 1) njets = 1;
61 for (Int_t j=0;j<njets;j++) {
63 jet->fPt = gRandom->Gaus(0,10);
64 jet->fPhi = 2*TMath::Pi()*gRandom->Rndm();
65 Int_t ntracks = (Int_t)gRandom->Gaus(trackm,3);
if (ntracks < 1) ntracks = 1;
66 for (Int_t t=0;t<ntracks;t++) {
68 track->fPx = gRandom->Gaus(0,1);
69 track->fPy = gRandom->Gaus(0,1);
70 track->fPz = gRandom->Gaus(0,5);
71 jet->fTracks.Add(track);
72 Int_t nhitsA = (Int_t)gRandom->Gaus(hitam,5);
73 for (Int_t ha=0;ha<nhitsA;ha++) {
75 hit->fX = 10000*j + 100*t +ha;
76 hit->fY = 10000*j + 100*t +ha+0.1;
77 hit->fZ = 10000*j + 100*t +ha+0.2;
78 track->fHits.Add(hit);
80 Int_t nhitsB = (Int_t)gRandom->Gaus(hitbm,2);
81 for (Int_t hb=0;hb<nhitsB;hb++) {
83 hit->fX = 20000*j + 100*t +hb+0.3;
84 hit->fY = 20000*j + 100*t +hb+0.4;
85 hit->fZ = 20000*j + 100*t +hb+0.5;
86 track->fHits.Add(hit);
88 track->fNhit = nhitsA + nhitsB;
95 TProcessID::SetObjectCount(ObjectNumber);
102 Jet *JetEvent::AddJet()
104 TClonesArray &jets = *fJets;
105 Jet *jet =
new(jets[fNjet++]) Jet();
113 Track *JetEvent::AddTrack()
115 TClonesArray &tracks = *fTracks;
116 Track *track =
new(tracks[fNtrack++]) Track();
124 Hit *JetEvent::AddHitA()
126 TClonesArray &hitsA = *fHitsA;
127 Hit *hit =
new(hitsA[fNhitA++]) Hit();
134 Hit *JetEvent::AddHitB()
136 TClonesArray &hitsB = *fHitsB;
137 Hit *hit =
new(hitsB[fNhitB++]) Hit();
143 void JetEvent::Clear(Option_t *option)
145 fJets->Clear(option);
146 fTracks->Clear(option);
147 fHitsA->Clear(option);
148 fHitsB->Clear(option);
154 void JetEvent::Reset(Option_t *)
156 delete fgJets; fgJets = 0;
157 delete fgTracks; fgTracks = 0;
158 delete fgHitsA; fgHitsA = 0;
159 delete fgHitsB; fgHitsB = 0;