本文整理汇总了C++中HiForest::FillOutput方法的典型用法代码示例。如果您正苦于以下问题:C++ HiForest::FillOutput方法的具体用法?C++ HiForest::FillOutput怎么用?C++ HiForest::FillOutput使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HiForest
的用法示例。
在下文中一共展示了HiForest::FillOutput方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: stdsort
void stdsort(int startline = 0, string flist = "")
{
//! Define the input and output file and HiForest
string buffer;
vector<string> listoffiles;
int nlines = 0;
ifstream infile(flist.data());
if (!infile.is_open()) {
cout << "Error opening file. Exiting." << endl;
return;
} else {
while (!infile.eof()) {
infile >> buffer;
listoffiles.push_back(buffer);
nlines++;
}
}
cout<<" here"<<endl;
HiForest *c = new HiForest(listoffiles[startline].data(),0,0,0,0,true);
TFile * outf = new TFile(Form("sortedHiForest_%d.root",startline),"recreate");
c->outf = outf;
c->SetOutputFile("null",true);
c->LoadNoTrees();
c->hasEvtTree = true;
//! loop through all the events once to construct the cent,vz pair array we'll be sorting over
cout << "Constructing the cent:vz pair array..." << endl;
for (int i=0;i<c->GetEntries();i++)
{
c->GetEntry(i);
pair<int,double> centvz;
centvz.first = c->evt->hiBin;
centvz.second = c->evt->vz;
evtCentVz.push_back(centvz);
if (i%1000==0) cout <<i<<" / "<<c->GetEntries()<<" "<<c->setupOutput<<endl;
}
c->ResetBooleans();
//! Make the index array which will get sorted on first centrality
int evtindecies[c->GetEntries()];
for (int i=0;i<c->GetEntries();i++)
{
evtindecies[i] = i;
}
cout << "Sorting the cent:vz pair array..." << " "<<c->setupOutput<<endl;
//! Sort the index array first on the centrality bin, then on the vz of the entry at that index
qsort (evtindecies, c->GetEntries(), sizeof(int), comparecentvz);
//! Now fill the tree in the new order
cout << "Filling the tree in the sorted order..." << " "<<c->setupOutput<<endl;
for (int i=0;i<c->GetEntries();i++)
{
c->GetEntry(evtindecies[i]);
c->FillOutput();
if (i%1000==0) cout <<i<<" / "<<c->GetEntries()<<" "<<c->setupOutput<<endl;
}
delete c;
}
示例2: skimTree
void skimTree(char *infname = "../JetSample/hiForest_Jet80or95_GR_R_53_LV6_12Mar2014_0000CET_Track8_Jet21_0.root")
{
// Define the input file and HiForest
HiForest *c = new HiForest(infname);
c->hasHltTree=0;
c->hasPFTree=0;
c->hasPhotonTree=0;
c->hasTowerTree=0;
c->hasHbheTree=0;
c->hasEbTree=0;
c->hasGenpTree=0;
c->hasGenParticleTree=0;
c->hasAk5CaloJetTree=0;
c->hasAkPu2CaloJetTree=0;
c->hasAkPu3CaloJetTree=0;
c->hasAkPu4CaloJetTree=0;
c->hasAkPu5CaloJetTree=0;
c->hasAkPu2JetTree=0;
c->hasAkPu3JetTree=0;
c->hasAkPu4JetTree=0;
c->hasAkPu5JetTree=0;
c->hasAkVs2PFJetTree=0;
c->hasAkVs3PFJetTree=0;
c->hasAkVs4PFJetTree=0;
c->hasAkVs5PFJetTree=0;
c->SetOutputFile("skim_jet.root");
int filtered=0;
// Main loop
for (int i=0;i<c->GetEntries();i++)
{
c->GetEntry(i);
if (i%1000==0) cout <<filtered<<" "<<i<<" / "<<c->GetEntries()<<endl;
//if (c->evt.hiBin>=20) continue;
int flag=0;
int flag2=0;
for (int j=0;j<c->akVs3Calo.nref;j++) {
if (fabs(c->akVs3Calo.jteta[j])>2) continue;
if (c->akVs3Calo.jtpt[j]>120) flag=1;
if (c->akVs3Calo.jtpt[j]>50) flag2++;
if (flag>=1&&flag2>=2) break;
}
if (flag>=1&&flag2>=2) {
c->FillOutput(); // Write output forest
filtered++;
}
}
delete c;
}
示例3: correlateEvent
void correlateEvent(char *infname = "0.root", char *mbname = "mb.root", char *outfname = "matched_Jet.root",int startEntry=0,int endEntry=0)
{
// Define the input file and HiForest
HiForest *d = new HiForest(mbname);
turnOffBranches(d);
d->SetOutputFile(outfname);
cout <<"good good"<<endl;
HiForest *c = new HiForest(infname);
turnOffBranches(c);
int filtered=0;
int idx=0;
// Main loop
if (endEntry==0) endEntry=c->GetEntries();
for (int i=startEntry;i<=endEntry;i++)
{
c->GetEntry(i);
if (i%100==0) cout <<filtered<<" "<<i<<" / "<<c->GetEntries()<<endl;
int nMatched=0;
while (nMatched<20)
{
idx++;
cout <<i<<" / " << c->GetEntries() << " / "<<idx<<" / "<<nMatched<<"\r";
if (idx>=d->GetEntries()) idx=0;
if (idx==i) continue;
d->evtTree->GetEntry(idx);
if ((fabs(c->evt.hiBin-d->evt.hiBin)/(double)c->evt.hiBin)>0.05) continue;
if ((fabs(c->evt.vz-d->evt.vz)>1)) continue;
d->skimTree->GetEntry(idx);
if (!(d->skim.pcollisionEventSelection && d->skim.pHBHENoiseFilter )) continue;
nMatched++;
d->GetEntry(idx);
d->FillOutput(); // Write output forest
}
cout <<std::endl;
}
delete c;
delete d;
}
示例4: noiseSkim
void noiseSkim(char *infname = "/d100/yjlee/hiForest/PromptReco2011/HIHighPt/skim_Photon35/merged_HIData2011_HIHighPt_highPtExercise_photonSkim35GeVEB.root")
{
// Define the input file and HiForest
HiForest *c = new HiForest(infname);
c->SetOutputFile("skim_jet.root");
// Main loop
for (int i=0;i<c->GetEntries();i++)
{
c->GetEntry(i);
if (i%1000==0) cout <<i<<" / "<<c->GetEntries()<<endl;
if (c->akPu3PF.jtpt[0]>=98||c->akPu2PF.jtpt[0]>=98&&c->akPu4PF.jtpt[0]>98){
c->FillOutput(); // Write output forest
}
}
delete c;
}
示例5: frankforestsort
// void sortforestCentVz(double etCut=40, char *infname = "/mnt/hadoop/cms/store/user/velicanu/forest/HiForestTrack_v3.root")
// void sortforestCentVz(double etCut=40, char *infname = "/mnt/hadoop/cms/store/user/velicanu/HIHighPt/HIRun2011_hiHighPtTrack_PromptSkim_forest_v0/9902eec616cc8b0649a7a8bb69754615/HiForest_998_1_rJ1.root")
// void sortforestCentVz(double etCut=40, char *infname = "/net/hisrv0001/home/dav2105/hdir/HIHighPt/HIRun2011_hiHighPtTrack_PromptSkim_forest_v0/9902eec616cc8b0649a7a8bb69754615/HiForest_1000_1_8wo.root")
// void sortforestCentVz(double etCut=40, char *infname = "/net/hisrv0001/home/dav2105/hdir/HIHighPt/HIRun2011_hiHighPtTrack_PromptSkim_forest_v0/9902eec616cc8b0649a7a8bb69754615/HiForest_1001_1_TRm.root")
void frankforestsort(int startline = 0)
{
//! Define the input and output file and HiForest
string buffer;
vector<string> listoffiles;
int nlines = 0;
// ifstream infile("/net/hidsk0001/d00/scratch/dav2105/forest/jobsort/jet80sortlist.txt");
ifstream infile("/net/hidsk0001/d00/scratch/dav2105/forest/jobsort/frankjet80sortlist.txt");
// ifstream infile("/net/hidsk0001/d00/scratch/dav2105/forest/jobsort/sortlist.txt");
if (!infile.is_open()) {
cout << "Error opening file. Exiting." << endl;
return;
} else {
while (!infile.eof()) {
infile >> buffer;
listoffiles.push_back(buffer);
nlines++;
}
}
cout<<" here"<<endl;
HiForest *c = new HiForest(listoffiles[startline].data(),0,0,0,0,true);
// c->SetOutputFile(Form("sortedHiForest_%d.root",startline));
TFile * outf = new TFile(Form("sortedHiForest_%d.root",startline),"recreate");
c->outf = outf;
c->SetOutputFile("null",true);
//! loop through all the events once to construct the cent,vz pair array we'll be sorting over
cout << "Constructing the cent:vz pair array..." << endl;
for (int i=0;i<c->GetEntries();i++)
{
c->GetEntry(i);
pair<int,double> centvz;
centvz.first = c->evt->hiBin;
centvz.second = c->evt->vz;
evtCentVz.push_back(centvz);
if (i%1000==0) cout <<i<<" / "<<c->GetEntries()<<" "<<c->setupOutput<<endl;
// if (i > 1000) break;
}
//! Make the index array which will get sorted on first centrality
int evtindecies[c->GetEntries()];
for (int i=0;i<c->GetEntries();i++)
{
evtindecies[i] = i;
// if (i > 1000) break;
// cout << "In original loop | " << evtindecies[i] << " : (" << evtCentVz[evtindecies[i]].first <<" , "<<evtCentVz[evtindecies[i]].second << endl;
}
cout << "Sorting the cent:vz pair array..." << " "<<c->setupOutput<<endl;
//! Sort the index array first on the centrality bin, then on the vz of the entry at that index
qsort (evtindecies, c->GetEntries(), sizeof(int), comparecentvz);
// qsort (evtindecies, 1000, sizeof(int), comparecentvz);
//! Now fill the tree in the new order
cout << "Filling the tree in the sorted order..." << " "<<c->setupOutput<<endl;
for (int i=0;i<c->GetEntries();i++)
{
c->GetEntry(evtindecies[i]);
c->FillOutput();
// cout << "In fill loop | " << evtindecies[i] << " : (" << evtCentVz[evtindecies[i]].first <<" , "<<evtCentVz[evtindecies[i]].second << endl;
if (i%1000==0) cout <<i<<" / "<<c->GetEntries()<<" "<<c->setupOutput<<endl;
// if (i > 1000) break;
}
delete c;
}