47 TNtuple::TNtuple(): TTree()
67 TNtuple::TNtuple(
const char *name,
const char *title,
const char *varlist, Int_t bufsize)
75 Int_t nch = strlen(varlist);
77 char *vars =
new char[nch+1];
78 strlcpy(vars,varlist,nch+1);
79 Int_t *pvars =
new Int_t[nch+1];
89 fArgs =
new Float_t[fNvar];
92 for (i=0;i<fNvar;i++) {
94 TTree::Branch(&vars[pv],&fArgs[i],&vars[pv],bufsize);
120 TTree* TNtuple::CloneTree(Long64_t nentries , Option_t* option )
122 TNtuple *newtuple =
dynamic_cast<TNtuple*
> (TTree::CloneTree(nentries,option) );
125 newtuple->fNvar = newtuple->fBranches.GetEntries();
134 void TNtuple::ResetBranchAddress(TBranch *branch)
137 Int_t index = fBranches.IndexOf(branch);
139 branch->SetAddress(&fArgs[index]);
148 void TNtuple::ResetBranchAddresses()
150 for (Int_t i = 0; i < fNvar; i++) {
151 TBranch *branch = (TBranch*)fBranches.UncheckedAt(i);
152 if (branch) branch->SetAddress(&fArgs[i]);
159 void TNtuple::Browse(TBrowser *b)
170 Int_t TNtuple::Fill()
172 return TTree::Fill();
178 Int_t TNtuple::Fill(
const Float_t *x)
182 for (Int_t i=0;i<fNvar;i++) {
186 return TTree::Fill();
192 Int_t TNtuple::Fill(Float_t x0,Float_t x1,Float_t x2,Float_t x3,Float_t x4
193 ,Float_t x5,Float_t x6,Float_t x7,Float_t x8,Float_t x9
194 ,Float_t x10,Float_t x11,Float_t x12,Float_t x13,Float_t x14)
196 if (fNvar > 0) fArgs[0] = x0;
197 if (fNvar > 1) fArgs[1] = x1;
198 if (fNvar > 2) fArgs[2] = x2;
199 if (fNvar > 3) fArgs[3] = x3;
200 if (fNvar > 4) fArgs[4] = x4;
201 if (fNvar > 5) fArgs[5] = x5;
202 if (fNvar > 6) fArgs[6] = x6;
203 if (fNvar > 7) fArgs[7] = x7;
204 if (fNvar > 8) fArgs[8] = x8;
205 if (fNvar > 9) fArgs[9] = x9;
206 if (fNvar > 10) fArgs[10] = x10;
207 if (fNvar > 11) fArgs[11] = x11;
208 if (fNvar > 12) fArgs[12] = x12;
209 if (fNvar > 13) fArgs[13] = x13;
210 if (fNvar > 14) fArgs[14] = x14;
212 return TTree::Fill();
221 Long64_t TNtuple::ReadStream(std::istream &inputStream,
const char * ,
char delimiter)
244 return ROOT::TreeUtils::FillNtupleFromStream<Float_t, TNtuple>(inputStream, *
this, delimiter,
true);
250 void TNtuple::Streamer(TBuffer &b)
254 Version_t R__v = b.ReadVersion(&R__s, &R__c);
256 b.ReadClassBuffer(TNtuple::Class(),
this, R__v, R__s, R__c);
261 b.CheckByteCount(R__s, R__c, TNtuple::IsA());
264 if (fNvar <= 0)
return;
265 fArgs =
new Float_t[fNvar];
266 for (Int_t i=0;i<fNvar;i++) {
267 TBranch *branch = (TBranch*)fBranches.UncheckedAt(i);
268 if (branch) branch->SetAddress(&fArgs[i]);
271 b.WriteClassBuffer(TNtuple::Class(),
this);