44 TNtupleD::TNtupleD(): TTree()
64 TNtupleD::TNtupleD(
const char *name,
const char *title,
const char *varlist, Int_t bufsize)
72 Int_t nch = strlen(varlist);
74 char *vars =
new char[nch+1];
75 strlcpy(vars,varlist,nch+1);
76 Int_t *pvars =
new Int_t[nch+1];
86 fArgs =
new Double_t[fNvar];
90 for (i=0;i<fNvar;i++) {
92 snprintf(descriptor,100,
"%s/D",&vars[pv]);
93 TTree::Branch(&vars[pv],&fArgs[i],descriptor,bufsize);
103 TNtupleD::~TNtupleD()
113 void TNtupleD::ResetBranchAddress(TBranch *branch)
116 UInt_t index = fBranches.IndexOf(branch);
118 branch->SetAddress(&fArgs[index]);
127 void TNtupleD::ResetBranchAddresses()
129 for (Int_t i = 0; i < fNvar; i++) {
130 TBranch *branch = (TBranch*)fBranches.UncheckedAt(i);
131 if (branch) branch->SetAddress(&fArgs[i]);
138 void TNtupleD::Browse(TBrowser *b)
149 Int_t TNtupleD::Fill()
151 return TTree::Fill();
157 Int_t TNtupleD::Fill(
const Double_t *x)
160 for (Int_t i=0;i<fNvar;i++) {
164 return TTree::Fill();
170 Int_t TNtupleD::Fill(Double_t x0,Double_t x1,Double_t x2,Double_t x3,Double_t x4
171 ,Double_t x5,Double_t x6,Double_t x7,Double_t x8,Double_t x9
172 ,Double_t x10,Double_t x11,Double_t x12,Double_t x13,Double_t x14)
174 if (fNvar > 0) fArgs[0] = x0;
175 if (fNvar > 1) fArgs[1] = x1;
176 if (fNvar > 2) fArgs[2] = x2;
177 if (fNvar > 3) fArgs[3] = x3;
178 if (fNvar > 4) fArgs[4] = x4;
179 if (fNvar > 5) fArgs[5] = x5;
180 if (fNvar > 6) fArgs[6] = x6;
181 if (fNvar > 7) fArgs[7] = x7;
182 if (fNvar > 8) fArgs[8] = x8;
183 if (fNvar > 9) fArgs[9] = x9;
184 if (fNvar > 10) fArgs[10] = x10;
185 if (fNvar > 11) fArgs[11] = x11;
186 if (fNvar > 12) fArgs[12] = x12;
187 if (fNvar > 13) fArgs[13] = x13;
188 if (fNvar > 14) fArgs[14] = x14;
190 return TTree::Fill();
199 Long64_t TNtupleD::ReadStream(std::istream &inputStream,
const char * ,
char delimiter)
222 return ROOT::TreeUtils::FillNtupleFromStream<Double_t, TNtupleD>(inputStream, *
this, delimiter,
true);
228 void TNtupleD::Streamer(TBuffer &b)
232 Version_t R__v = b.ReadVersion(&R__s, &R__c);
233 b.ReadClassBuffer(TNtupleD::Class(),
this, R__v, R__s, R__c);
234 if (fNvar <= 0)
return;
235 fArgs =
new Double_t[fNvar];
236 for (Int_t i=0;i<fNvar;i++) {
237 TBranch *branch = (TBranch*)fBranches.UncheckedAt(i);
238 if (branch) branch->SetAddress(&fArgs[i]);
241 b.WriteClassBuffer(TNtupleD::Class(),
this);