本文整理汇总了C++中TTree::GetListOfAliases方法的典型用法代码示例。如果您正苦于以下问题:C++ TTree::GetListOfAliases方法的具体用法?C++ TTree::GetListOfAliases怎么用?C++ TTree::GetListOfAliases使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TTree
的用法示例。
在下文中一共展示了TTree::GetListOfAliases方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: branches
void branches(TString input, TString treeName="Events")
{
TFile *file = new TFile(input);
TTree *tree = (TTree*)file->Get(treeName);
if(treeName.Contains("Events")) {
for(int i = 0; i < tree->GetListOfAliases()->LastIndex(); i++)
std::cout << "branch: " << tree->GetListOfAliases()->At(i)->GetName() << std::endl;
} else {
for(int i = 0; i < tree->GetListOfBranches()->LastIndex(); i++)
std::cout << "branch: " << tree->GetListOfBranches()->At(i)->GetName() << std::endl;
}
}
示例2: plotAll
int plotAll(){
TFile *file = new TFile("/hadoop/cms/store/group/snt/phys14/TTJets_MSDecaysCKM_central_Tune4C_13TeV-madgraph-tauola_Phys14DR-PU20bx25_PHYS14_25_V1-v1/V07-02-08/merged_ntuple_4.root");
TTree *tree = (TTree*)file->Get("Events");
int nEntries = tree->GetEntries();
TList *t_list = tree->GetListOfAliases();
for(int i = 0; i < t_list->GetSize(); i++) {
TString aliasname(t_list->At(i)->GetName());
cout << aliasname.Data() << endl;
TString command = aliasname;
//Support Lorentz Vectors
TBranch *branch = tree->GetBranch(tree->GetAlias(aliasname.Data()));
TString branchname(branch->GetName());
if( branchname.Contains("LorentzVector") ) {
command.Append(".Pt()");
}
//Don't support vectors of vectors
if(branchname.BeginsWith("intss") || branchname.BeginsWith("floatss") || branchname.BeginsWith("doubless") || branchname.Contains("LorentzVectorss") || branchname.Contains("timestamp") ){
cout << "Sorry, I dont support vector of vectors of objects, will be skipping " << aliasname << endl;
continue;
}
//Don't support TStrings
if(branchname.Contains("TString") ) {
cout << "Sorry, I dont support strings, will be skipping " << aliasname << endl;
continue;
}
TString histname = "hist_" + aliasname + ".pdf";
TH1F* null = new TH1F("","",1,0,1);
command.Append(">>hist");
tree->Draw(command.Data(), (aliasname)+"!=-9999 &&"+(aliasname)+"!=-999");
TH1F *hist = (TH1F*)gDirectory->Get("hist");
if (hist->Integral() == 0) tree->Draw(command.Data());
hist = (TH1F*)gDirectory->Get("hist");
vector <TH1F*> hists;
hists.push_back(hist);
vector <string> titles;
titles.push_back("");
//Overflow and Underflow
hist->SetBinContent(1, hist->GetBinContent(1)+hist->GetBinContent(0));
hist->SetBinContent(hist->GetNbinsX(), hist->GetBinContent(hist->GetNbinsX())+hist->GetBinContent(hist->GetNbinsX()+1));
if (hist->GetXaxis()->GetXmax() == hist->GetXaxis()->GetXmin()){
ofstream myfile;
myfile.open("names.txt", ios_base::app);
myfile << aliasname.Data() << "\n";
myfile.close();
}
float max = hist->GetMaximum()*100;
string subtitle = aliasname.Data();
string histname2 = histname.Data();
dataMCplotMaker(null, hists, titles, subtitle, "CMS3 4.02 Validation", Form("--outputName %s --noFill --noLegend --setMaximum %f --energy 13 --lumi 0 --xAxisLabel %s --noXaxisUnit --noDivisionLabel", subtitle.c_str(), max, histname2.c_str()));
}
system("mkdir plots");
system("mv *.pdf plots/");
system("gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=merged.pdf plots/*pdf");
return 0;
}
示例3: makeHeaderFile
//-------------------------------------------------------------------------------------------------
void makeHeaderFile(TFile *f, const string& treeName, bool paranoid, const string& Classname, const string& nameSpace, const string& objName) {
headerf << "// -*- C++ -*-" << endl;
headerf << "#ifndef " << Classname << "_H" << endl;
headerf << "#define " << Classname << "_H" << endl;
headerf << "#include \"Math/LorentzVector.h\"" << endl;
headerf << "#include \"Math/Point3D.h\"" << endl;
headerf << "#include \"TMath.h\"" << endl;
headerf << "#include \"TBranch.h\"" << endl;
headerf << "#include \"TTree.h\"" << endl;
headerf << "#include \"TH1F.h\"" << endl;
headerf << "#include \"TFile.h\"" << endl;
headerf << "#include \"TBits.h\"" << endl;
headerf << "#include <vector>" << endl;
headerf << "#include <unistd.h>" << endl;
headerf << "typedef ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<float> > LorentzVector;" << endl << endl;
if (paranoid)
headerf << "#define PARANOIA" << endl << endl;
headerf << "using namespace std; " << endl;
headerf << "class " << Classname << " {" << endl;
headerf << "private: " << endl;
headerf << "protected: " << endl;
headerf << "\tunsigned int index;" << endl;
// TTree *ev = (TTree*)f->Get("Events");
TList* list_of_keys = f->GetListOfKeys();
std::string tree_name = "";
if (treeName.empty()) {
unsigned int ntrees = 0;
for (unsigned int idx = 0; idx < (unsigned int)list_of_keys->GetSize(); idx++) {
const char* obj_name = list_of_keys->At(idx)->GetName();
TObject* obj = f->Get(obj_name);
if (obj->InheritsFrom("TTree")) {
++ntrees;
tree_name = obj_name;
}
}
if (ntrees == 0) {
std::cout << "Did not find a tree. Exiting." << std::endl;
return;
}
if (ntrees > 1) {
std::cout << "Found more than one tree. Please specify a tree to use." << std::endl;
return;
}
}
else
tree_name = treeName;
TTree *ev = (TTree*)f->Get(tree_name.c_str());
TSeqCollection *fullarray = ev->GetListOfAliases();
bool have_aliases = true;
if (!fullarray) {
have_aliases = false;
fullarray = ev->GetListOfBranches();
}
// if (have_aliases && fullarray->GetSize() != ev->GetListOfBranches()->GetSize()) {
// std::cout << "Tree has " << fullarray->GetSize() << " aliases and " << ev->GetListOfBranches()->GetSize() << " branches. Exiting." << std::endl;
// return;
// }
TList *aliasarray = new TList();
for(Int_t i = 0; i < fullarray->GetEntries(); ++i) {
TString aliasname(fullarray->At(i)->GetName());
// TBranch *branch = ev->GetBranch(ev->GetAlias(aliasname.Data()));
TBranch *branch = 0;
if (have_aliases)
branch = ev->GetBranch(ev->GetAlias(aliasname.Data()));
else
branch = (TBranch*)fullarray->At(i);
TString branchname(branch->GetName());
TString branchtitle(branch->GetTitle());
TString branchclass(branch->GetClassName());
if(!branchname.BeginsWith("int") &&
!branchname.BeginsWith("uint") &&
!branchname.BeginsWith("bool") &&
!branchname.BeginsWith("float") &&
!branchname.BeginsWith("double") &&
!branchtitle.EndsWith("/F") &&
!branchtitle.EndsWith("/I") &&
!branchtitle.EndsWith("/i") &&
!branchtitle.EndsWith("/O") &&
!branchtitle.BeginsWith("TString") &&
!branchtitle.BeginsWith("TBits") &&
!branchclass.Contains("LorentzVector") &&
!branchclass.Contains("int") &&
!branchclass.Contains("uint") &&
!branchclass.Contains("bool") &&
!branchclass.Contains("float") &&
!branchclass.Contains("double") &&
!branchclass.Contains("TString"))
continue;
// if (branchclass.Contains("TString"))
//.........这里部分代码省略.........