本文整理汇总了C++中TFile::GetTitle方法的典型用法代码示例。如果您正苦于以下问题:C++ TFile::GetTitle方法的具体用法?C++ TFile::GetTitle怎么用?C++ TFile::GetTitle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TFile
的用法示例。
在下文中一共展示了TFile::GetTitle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ScanChain
int ScanChain( TChain* chain, int nEvents = -1, std::string skimFilePrefix="") {
TObjArray *listOfFiles = chain->GetListOfFiles();
unsigned int nEventsChain=0;
if(nEvents==-1)
nEvents = chain->GetEntries();
nEventsChain = nEvents;
unsigned int nEventsTotal = 0;
TDirectory *rootdir = gDirectory->GetDirectory("Rint:");
TH1F *samplehisto = new TH1F("samplehisto", "Example histogram", 200,0,200);
samplehisto->SetDirectory(rootdir);
// file loop
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
while ( currentFile = (TFile*)fileIter.Next() ) {
TFile f(currentFile->GetTitle());
TTree *tree = (TTree*)f.Get("Events");
cms2.Init(tree);
//Event Loop
unsigned int nEvents = tree->GetEntries();
for( unsigned int event = 0; event < nEvents; ++event) {
cms2.GetEntry(event);
++nEventsTotal;
// Progress feedback to the user
if(nEventsTotal%1000 == 0) {
// xterm magic from L. Vacavant and A. Cerri
if (isatty(1)) {
printf("\015\033[32m ---> \033[1m\033[31m%4.1f%%"
"\033[0m\033[32m <---\033[0m\015", (float)nEventsTotal/(nEventsChain*0.01));
fflush(stdout);
}
}//if(nEventsTotal%20000 == 0) {
}
delete tree;
f.Close();
}
if ( nEventsChain != nEventsTotal ) {
std::cout << "ERROR: number of events from files is not equal to total number of events" << std::endl;
}
samplehisto->Draw();
return 0;
}
示例2: genDump
int genDump( TChain* chain, int first, int nev) {
TObjArray *listOfFiles = chain->GetListOfFiles();
// unsigned int nEventsChain=0;
int nEventsChain = chain->GetEntries();
// nEventsChain = nEvents;
unsigned int nEventsTotal = 0;
int nDumped = 0;
int nprocessed=0;
// file loop
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
while ( currentFile = (TFile*)fileIter.Next() ) {
TFile f(currentFile->GetTitle());
TTree *tree = (TTree*)f.Get("Events");
cms2.Init(tree);
//Event Loop
unsigned int nEvents = tree->GetEntries();
for( unsigned int event = 0; event < nEvents; ++event) {
cms2.GetEntry(event);
++nEventsTotal;
// Progress feedback to the user
if(nEventsTotal%1000 == 0) {
// xterm magic from L. Vacavant and A. Cerri
if (isatty(1)) {
printf("\015\033[32m ---> \033[1m\033[31m%4.1f%%"
"\033[0m\033[32m <---\033[0m\015", (float)nEventsTotal/(nEventsChain*0.01));
fflush(stdout);
}
}//if(nEventsTotal%20000 == 0) {
nprocessed++;
if (nprocessed < first) continue;
cout << " " <<endl;
cout << " Dumping entry " << nprocessed-1 << endl;
dumpDocLines();
nDumped++;
if (nDumped >= nev) return 0;
}
}
return 0;
}
示例3: scan
// void scan(float jetPtCut=40.0, TString tag = "", bool requireLeptonic = false, float mtLow = -1.0, float mtHigh = -1.0) {
void scan(float jetPtCut=40.0, TString tag = "", bool requireLeptonic = false) {
TChain *ch = new TChain("Events");
// ch->Add("/hadoop/cms/store/user/namin/mStop500to800_mLSP1/ntuple_78_2_RJ3.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_309_4_16a.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_253_1_f2L.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_343_3_l8P.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_329_3_4dB.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_336_1_yfv.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_358_1_IPX.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_346_1_ptQ.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_281_1_Qqp.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_362_1_NNy.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_361_1_Yhs.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_359_1_YrF.root");
ch->Add("/hadoop/cms/store/user/namin/mStop825to900_mLSP1/ntuple_360_1_sfh.root");
ch->Add("/hadoop/cms/store/user/namin/mStop150to475_mLSP1/*.root");
ch->Add("/hadoop/cms/store/user/namin/mStop500to800_mLSP1/*.root");
int nEventsTotal = ch->GetEntries();
int nEventsSoFar = 0;
int nGoodEvents = 0;
TFile *currentFile = 0;
TObjArray *listOfFiles = ch->GetListOfFiles();
TIter fileIter(listOfFiles);
vector<TH1F*> h1D_mindR_vec;
TH1F* h1D_mindR = new TH1F("", "min #DeltaR between reco jet and quark;;Entries", 100, 0.0, 2.0); h1D_mindR_vec.push_back(h1D_mindR);
vector<TH1F*> h1D_stop_mass_vec;
TH1F* h1D_stop_mass = new TH1F("", "Stop mass (events have 2 matched jets);;Entries", 100, 100, 900); h1D_stop_mass_vec.push_back(h1D_stop_mass);
vector<TH1F*> h1D_stop_mass_lt2match_vec;
TH1F* h1D_stop_mass_lt2match = new TH1F("", "Stop mass (events have <2 matched jets);;Entries", 100, 100, 900); h1D_stop_mass_lt2match_vec.push_back(h1D_stop_mass_lt2match);
vector<TH1F*> h1D_stop_mass_all_vec;
TH1F* h1D_stop_mass_all = new TH1F("", "Stop mass (events passing W daughter reqs);;Entries", 100, 100, 900); h1D_stop_mass_all_vec.push_back(h1D_stop_mass_all);
vector<TH1F*> h1D_lonelyjet_vec;
TH1F* h1D_lonelyjet = new TH1F("", "Just 1 jet;;Entries", 100, 100, 900); h1D_lonelyjet_vec.push_back(h1D_lonelyjet);
vector<TH1F*> h1D_nonlonelyjet_vec;
TH1F* h1D_nonlonelyjet = new TH1F("", "2 jets;;Entries", 100, 100, 900); h1D_nonlonelyjet_vec.push_back(h1D_nonlonelyjet);
TH2F* h2D_dRqq_Wpt = new TH2F("", "#DeltaR_{qq} (no matching);W_{p_{T}};#DeltaR_{qq}", 50,0.0,900, 50,0.0,5.0);
vector<TH1F*> h1D_njets_gen_vec;
vector<TH1F*> h1D_njets_reco_vec;
vector<TH1F*> h1D_dRjj_masses_vec;
vector<TH1F*> h1D_dRqq_nomatch_vec;
vector<TH1F*> h1D_dRcone_nomatch_vec;
vector<TH1F*> h1D_leadjmass_masses_vec;
vector<TH1F*> h1D_mt_masses_vec;
for(int iStop = 0; iStop <= NSTOPMASSES; iStop++) {
TH1F* h1D_njets_gen = new TH1F("", ";;Entries", 15, 0,15); h1D_njets_gen_vec.push_back(h1D_njets_gen);
TH1F* h1D_njets_reco = new TH1F("", ";;Entries", 15, 0,15); h1D_njets_reco_vec.push_back(h1D_njets_reco);
TH1F* h1D_dRjj_masses = new TH1F("", ";;Entries", 100, 0.0, 5.0); h1D_dRjj_masses_vec.push_back(h1D_dRjj_masses);
TH1F* h1D_dRqq_nomatch = new TH1F("", ";;Entries", 100, 0.0, 5.0); h1D_dRqq_nomatch_vec.push_back(h1D_dRqq_nomatch);
TH1F* h1D_dRcone_nomatch = new TH1F("", ";;Entries", 100, 0.0, 5.0); h1D_dRcone_nomatch_vec.push_back(h1D_dRcone_nomatch);
TH1F* h1D_leadjmass_masses = new TH1F("", ";;Entries", 30, 0.0, 100.0); h1D_leadjmass_masses_vec.push_back(h1D_leadjmass_masses);
TH1F* h1D_mt_masses = new TH1F("", ";;Entries", 45, 0.0, 900.0); h1D_mt_masses_vec.push_back(h1D_mt_masses);
}
initCounter();
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("Events");
cms2.Init(tree);
TString filename(currentFile->GetTitle());
// Loop over Events in current file
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// if(event > 300) break;
addToCounter("total");
// Get Event Content
cms2.GetEntry(event);
nEventsSoFar++;
// each element of this vector is a pair of genps_ indices for the 2 quarks from a W
vector<pair<int, int> > WtoqqIdxs;
// each element of this vector is a pair of goodJet indices for the 2 matched jets for the quarks
vector<pair<int, int> > qqMatchedJets;
// indices of b quarks from same tops as Ws; this is in same order as WtoqqIdxs
vector<int> bIdxs;
// indices of Ws
vector<int> WIdxs;
//.........这里部分代码省略.........
示例4: ScanChain
//.........这里部分代码省略.........
else if(j==3) prefix = "NJ2_";
else if(j==4) prefix = "NJge3_";
else if(j==5) prefix = "NB0_";
else if(j==6) prefix = "NBge1_";
else if(j==7) prefix = "HTge100_";
else if(j==8) prefix = "METge50_";
else if(j==9) prefix = "METge25_";
else if(j==10) prefix = "HTge150_";
mapname = prefix + histonames[i]+"_"+skimFilePrefix;
//cout << mapname << endl;
if(histos.count(mapname) == 0 ) histos[mapname] = new TH1F(mapname.c_str(), "", nbins, hlow[i], hup[i]);
histos[mapname]->Sumw2(); histos[mapname]->SetDirectory(rootdir);
}
}
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
//load json file
const char* json_fileDCS = "myjsons/json_DCSONLY_Run2015B_snt.txt";
const char* json_file = "myjsons/json_Golden_246908-251883_snt.txt";
if(DCSonly) set_goodrun_file(json_fileDCS);
else set_goodrun_file(json_file);
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
int nleps = 1;
myevt p;//previous event
myevt c;//current event
resetEvent(p);
resetEvent(c);
vector<myevt> mu; mu.clear();
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
// Progress
CMS3::progress(nEventsTotal, nEventsChain );
if(evt_isRealData()&& !goodrun(evt_run(), evt_lumiBlock()) ) continue;
//load my struct
c.evt_pfmet = evt_pfmet();
c.evt_pfmetPhi = evt_pfmetPhi();
c.evt_trackmet = evt_trackmet();
c.evt_trackmetPhi = evt_trackmetPhi();
示例5: ScanChain
void makeVictorTemplates::ScanChain (TChain* chain){
int npass = 0;
bookHistos();
TObjArray *listOfFiles = chain->GetListOfFiles();
unsigned int nEventsChain = 0;
unsigned int nEvents = chain->GetEntries();
nEventsChain = nEvents;
unsigned int nEventsTotal = 0;
if(debug) cout << "Begin file loop" << endl;
// file loop
TIter fileIter(listOfFiles);
TFile* currentFile = 0;
while ((currentFile = (TFile*)fileIter.Next())){
TFile f(currentFile->GetTitle());
TTree *tree = (TTree*)f.Get("jetTree");
//cms2.Init(tree);
setBranches(tree);
// event loop
//unsigned int nEvents = tree->GetEntries();
nEvents = tree->GetEntries();
for (unsigned int event = 0 ; event < nEvents; ++event){
tree->GetEntry(event);
++nEventsTotal;
// progress feedback to user
if (nEventsTotal % 1000 == 0){
// xterm magic from L. Vacavant and A. Cerri
if (isatty(1)){
printf("\015\033[32m ---> \033[1m\033[31m%4.1f%%"
"\033[0m\033[32m <---\033[0m\015", (float)nEventsTotal/(nEventsChain*0.01));
fflush(stdout);
}
}
if( nJets_ < 2 ) continue;
if( maxjetpt_ < 30. ) continue;
int iJetBin = getJetBin( nJets_ );
int iSumJetPtBin = getSumJetPtBin( sumJetPt_ );
//int iBosonPtBin = getBosonPtBin( etg_ );
int iVtxBin = getVtxBin( nvtx_ );
float templateWeight = 1;//jet15U_L1Prescale_ * jet15U_HLTPrescale_;
//fill templates binned by njets, sumjetpt, boson pt
//fillUnderOverFlow( tcmetTemplate[ iJetBin ][ iSumJetPtBin ][ iBosonPtBin ] , tcmet_ , templateWeight );
//fillUnderOverFlow( pfmetTemplate[ iJetBin ][ iSumJetPtBin ][ iBosonPtBin ] , pfmet_ , templateWeight );
//fill templates binned by njets, sumjetpt, nVtx
fillUnderOverFlow( tcmetTemplate_njets_ht_nvtx[ iJetBin ][ iSumJetPtBin ][ iVtxBin ] , tcmet_ , templateWeight );
fillUnderOverFlow( pfmetTemplate_njets_ht_nvtx[ iJetBin ][ iSumJetPtBin ][ iVtxBin ] , pfmet_ , templateWeight );
//fill templates binned by njets, sumjetpt
fillUnderOverFlow( tcmetTemplate_combined[ iJetBin ][ iSumJetPtBin ] , tcmet_ , templateWeight );
fillUnderOverFlow( pfmetTemplate_combined[ iJetBin ][ iSumJetPtBin ] , pfmet_ , templateWeight );
++npass;
int iTrigBin = -1;
if( firedJet15U_ == 1 ){
templateWeight = jet15U_L1Prescale_ * jet15U_HLTPrescale_;
iTrigBin = 0;
fillUnderOverFlow( tcmetTemplate_qcd[ iTrigBin ][ iJetBin ][ iSumJetPtBin ] , tcmet_ , templateWeight );
fillUnderOverFlow( pfmetTemplate_qcd[ iTrigBin ][ iJetBin ][ iSumJetPtBin ] , pfmet_ , templateWeight );
fillUnderOverFlow( hleadJetPt15 , maxjetpt_ , templateWeight );
}
if( firedJet30U_ == 1 ){
templateWeight = jet30U_L1Prescale_ * jet30U_HLTPrescale_;
iTrigBin = 1;
fillUnderOverFlow( tcmetTemplate_qcd[ iTrigBin ][ iJetBin ][ iSumJetPtBin ] , tcmet_ , templateWeight );
fillUnderOverFlow( pfmetTemplate_qcd[ iTrigBin ][ iJetBin ][ iSumJetPtBin ] , pfmet_ , templateWeight );
fillUnderOverFlow( hleadJetPt30 , maxjetpt_ , templateWeight );
}
if( firedJet50U_ == 1 ){
templateWeight = jet50U_L1Prescale_ * jet50U_HLTPrescale_;
iTrigBin = 2;
//.........这里部分代码省略.........
示例6: looperCR2lep
//.........这里部分代码省略.........
int yGen_trkVeto = 0;
int yGen_tauVeto = 0;
int yGen_2lepCR = 0;
int yGen_njets = 0;
int yGen_1bjet = 0;
int yGen_METcut = 0;
int yGen_MTcut = 0;
int yGen_dPhi = 0;
int yGen_chi2 = 0;
////////////////////////////////////////////////////////////////////
// Set up data-specific filters
if( mySample->IsData() ) {
set_goodrun_file_json( "reference-files/Cert_271036-284044_13TeV_23Sep2016ReReco_Collisions16_JSON.txt" );
duplicate_removal::clear_list();
}
/////////////////////////////////////////////////////////////////////
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile file( currentFile->GetTitle() );
TString filename = file.GetName();
TTree *tree = (TTree*)file.Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
// Load event weight histograms
TH2F* hNEvts = (TH2F*)file.Get("histNEvts");
TH3D* hCounterSMS = (TH3D*)file.Get("h_counterSMS");
TH1D* hCounter = (TH1D*)file.Get("h_counter");
myHelper.Setup( isFastsim, hCounter, hNEvts, hCounterSMS );
// Reset zeroing histograms
for( int i=0; i<nSigRegs; i++ ) {
for( int j=0; j<=nVariations; j++ ) {
h_bkgtype[i][j]->Reset();
h_evttype[i][j]->Reset();
}
}
h_yields->Reset();
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
示例7: ScanChain
int ScanChain( TChain* chain, bool fast = true, int nEvents = -1, string skimFilePrefix = "test") {
// Benchmark
TBenchmark *bmark = new TBenchmark();
bmark->Start("benchmark");
// Example Histograms
TDirectory *rootdir = gDirectory->GetDirectory("Rint:");
TH1F *samplehisto = new TH1F("samplehisto", "Example histogram", 200,0,200);
samplehisto->SetDirectory(rootdir);
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
// Progress
StopBabies10012015::progress( nEventsTotal, nEventsChain );
// Analysis Code
}
// Clean Up
delete tree;
file->Close();
delete file;
}
if ( nEventsChain != nEventsTotal ) {
cout << Form( "ERROR: number of events from files (%d) is not equal to total number of events (%d)", nEventsChain, nEventsTotal ) << endl;
}
// Example Histograms
samplehisto->Draw();
// return
bmark->Stop("benchmark");
cout << endl;
cout << nEventsTotal << " Events Processed" << endl;
cout << "------------------------------" << endl;
cout << "CPU Time: " << Form( "%.01f", bmark->GetCpuTime("benchmark") ) << endl;
cout << "Real Time: " << Form( "%.01f", bmark->GetRealTime("benchmark") ) << endl;
cout << endl;
delete bmark;
return 0;
}
示例8: ScanChain
int ScanChain( TChain* chain, bool fast = true, int nEvents = -1, string skimFilePrefix = "test") {
// Benchmark
TBenchmark *bmark = new TBenchmark();
bmark->Start("benchmark");
// Example Histograms
TDirectory *rootdir = gDirectory->GetDirectory("Rint:");
map<string, TH1F*> histos;
vector<string> histonames; histonames.clear();
vector<int> hbins; hbins.clear();
vector<float> hlow; hlow.clear();
vector<float> hup; hup.clear();
histonames.push_back("MT"); hbins.push_back(18); hlow.push_back( 50.); hup.push_back(500);
histonames.push_back("MT_harder"); hbins.push_back(18); hlow.push_back( 50.); hup.push_back(500);
histonames.push_back("MT2W"); hbins.push_back(20); hlow.push_back( 0.); hup.push_back(500);
histonames.push_back("MT2W_4j"); hbins.push_back(20); hlow.push_back( 0.); hup.push_back(500);
histonames.push_back("MET"); hbins.push_back(26); hlow.push_back(100.); hup.push_back(750);
histonames.push_back("MET_3j"); hbins.push_back(26); hlow.push_back(100.); hup.push_back(750);
histonames.push_back("MET_4j"); hbins.push_back(26); hlow.push_back(100.); hup.push_back(750);
histonames.push_back("MET_hMT2W"); hbins.push_back(26); hlow.push_back(100.); hup.push_back(750);
histonames.push_back("MET_hMT2W_4j"); hbins.push_back(26); hlow.push_back(100.); hup.push_back(750);
histonames.push_back("MinDPhi"); hbins.push_back(16); hlow.push_back( 0.); hup.push_back(3.2);
histonames.push_back("MinDPhi_harder"); hbins.push_back(16); hlow.push_back( 0.); hup.push_back(3.2);
histonames.push_back("MinDPhi_3j"); hbins.push_back(16); hlow.push_back( 0.); hup.push_back(3.2);
histonames.push_back("MinDPhi_4j"); hbins.push_back(16); hlow.push_back( 0.); hup.push_back(3.2);
histonames.push_back("NJets"); hbins.push_back(6 ); hlow.push_back( 2.); hup.push_back(8);
histonames.push_back("NJets_hard"); hbins.push_back(6 ); hlow.push_back( 2.); hup.push_back(8);
histonames.push_back("NJets_harder"); hbins.push_back(6 ); hlow.push_back( 2.); hup.push_back(8);
histonames.push_back("tMod"); hbins.push_back(30); hlow.push_back(-15.); hup.push_back(15);
histonames.push_back("tMod_2j"); hbins.push_back(30); hlow.push_back(-15.); hup.push_back(15);
for(unsigned int b = 0; b<2; ++b){
string samplename = skimFilePrefix;
if(skimFilePrefix!="TTbar"&&b>0) continue;
if(skimFilePrefix=="TTbar"&&b==0) samplename = "TTbar1l";
if(skimFilePrefix=="TTbar"&&b==1) samplename = "TTbar2l";
for(unsigned int i = 0; i<histonames.size(); ++i){
string mapname = histonames[i] + "_"+samplename;
if(histos.count(mapname) == 0 ) histos[mapname] = new TH1F(mapname.c_str(), "", hbins[i], hlow[i], hup[i]);
histos[mapname]->Sumw2(); histos[mapname]->SetDirectory(rootdir);
}
}
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
TH1D* counterhist;
double count1(0), count2(0);
double count3(0), count4(0);
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
// Progress
CMS3::progress( nEventsTotal, nEventsChain );
float weight = cms3.scale1fb()*2.26;
if(event==0) cout << "weight " << weight << " nEvents " << cms3.nEvents() << " filename " << currentFile->GetTitle() << endl;
//ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<float> > metlv;
//metlv.SetPxPyPzE(pfmet()*TMath::Cos(pfmet_phi()),pfmet()*TMath::Sin(pfmet_phi()),0.,pfmet());
int NSLeps = 0;
int NAddVetoLeps = 0;
if(lep1_is_mu()){
if(lep1_pt()>20&&fabs(lep1_eta())<2.4) {++NSLeps;}
} else if (lep1_is_el()){
if(lep1_pt()>20&&fabs(lep1_eta())<1.4442) {++NSLeps; }
} if(lep2_is_mu()){
if(lep2_pt()>20&&fabs(lep2_eta())<2.4) {++NSLeps;}
} else if (lep2_is_el()){
if(lep2_pt()>20&&fabs(lep2_eta())<1.4442) {++NSLeps; }
//.........这里部分代码省略.........
示例9: looper
//.........这里部分代码省略.........
histName += thisAnalyzer->GetLabel();
histTitle += thisAnalyzer->GetLabel();
h_cutflow[iAna] = selectionInfo::get_cutflowHistoTemplate( thisAnalyzer->GetSelections(), histName, histTitle );
}
//////////////////////
// //
// Loop Over Events //
// //
//////////////////////
// Event Counters
cout << " Loading files to loop over" << endl << endl;
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
// Grab list of files
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
while ( (currentFile = (TFile*)fileIter.Next()) ) {
//////////////////////
// //
// Get File Content //
// //
//////////////////////
// Open File and Get Tree
TFile *file = new TFile( currentFile->GetTitle(), "read" );
TTree *tree = (TTree*)file->Get("t");
if(readFast) TTreeCache::SetLearnEntries(10);
if(readFast) tree->SetCacheSize(128*1024*1024);
babyAnalyzer.Init(tree);
// Get weight histogram from baby
wgtInfo.getWeightHistogramFromBaby( file );
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
///////////////////////
// //
// Get Event Content //
// //
///////////////////////
// Read Tree
if( nEventsTotal >= nEventsChain ) continue;
if(readFast) tree->LoadTree(event);
babyAnalyzer.GetEntry(event);
++nEventsTotal;
// Progress
stop_1l_babyAnalyzer::progress( nEventsTotal, nEventsChain );
/////////////////////
// //
示例10: ScanChain
void looper::ScanChain (TChain* chain, const char* prefix, bool isData, int nEvents){
bookHistos();
set_goodrun_file("Cert_TopAug13_Merged_135059-142664_goodruns.txt");
ofile.open( Form( "output/%s_%s_events.txt" , prefix , iter ) );
TObjArray *listOfFiles = chain->GetListOfFiles();
unsigned int nEventsChain = 0;
if(nEvents == -1)
nEvents = chain->GetEntries();
nEventsChain = nEvents;
unsigned int nEventsTotal = 0;
MakeBabyNtuple( Form( "output/%s_%s_baby.root" , prefix , iter) );
DorkyEventIdentifier dei;
//pass fail counters
int nPassDuplicate = 0;
int nPassGoodRun = 0;
float nGoodMu = 0;
float nGoodEl = 0;
if( debug ) cout << "Begin looping over files" << endl;
if( isData ){
cout << "|" << setw(8) << "run" << setw(4)
<< "|" << setw(6) << "lumi" << setw(4)
<< "|" << setw(12) << "event" << setw(4)
<< "|" << setw(6) << "type" << setw(4)
<< "|" << setw(6) << "njets" << setw(4)
<< "|" << setw(6) << "nbtags" << setw(4)
<< "|" << setw(8) << "tcmet" << setw(4)
<< "|" << setw(8) << "cltcmet" << setw(4)
<< "|" << setw(8) << "pftcmet" << setw(4)
<< "|" << setw(8) << "pfmet" << setw(4)
<< "|" << setw(8) << "dphi" << setw(4) << "|" << endl;
}
// file loop
TIter fileIter(listOfFiles);
TFile* currentFile = 0;
while ((currentFile = (TFile*)fileIter.Next()))
{
TFile f(currentFile->GetTitle());
TTree *tree = (TTree*)f.Get("Events");
cms2.Init(tree);
// event loop
unsigned int nEvents = tree->GetEntries();
for (unsigned int event = 0; event < nEvents; ++event)
{
if( debug ) cout << "Event " << event << endl;
cms2.GetEntry(event);
++nEventsTotal;
// progress feedback to user
if (nEventsTotal % 1000 == 0)
{
// xterm magic from L. Vacavant and A. Cerri
if (isatty(1))
{
printf("\015\033[32m ---> \033[1m\033[31m%4.1f%%"
"\033[0m\033[32m <---\033[0m\015", (float)nEventsTotal/(nEventsChain*0.01));
fflush(stdout);
}
}
//APPLY BASIC EVENT SELECTIONS
//TRIGGER, TRACKING AND VERTEX
if( dei.is_duplicate( DorkyEvent() ) ) continue;
nPassDuplicate++;
if (!isData || goodrun(cms2.evt_run(), cms2.evt_lumiBlock()))
nPassGoodRun++;
else continue;
float weight = 1.;
if ( strcmp(prefix,"data") == 0 ) weight = 1;
else if( strcmp(prefix,"ZJets") == 0 ) weight = 1.27 * 2.2121427 * 0.84e-3;
else if( strcmp(prefix,"TTBar") == 0 ) weight = 0.1112306 * 0.84e-3;
else if( strcmp(prefix,"Vqq") == 0 ) weight = 0.0408562 * 0.84e-3;
else{
cout << "I DON'T RECOGNIZE " << prefix << endl;
exit(0);
}
for( unsigned int hypIdx = 0 ; hypIdx < hyp_type().size() ; hypIdx++ ){
InitBabyNtuple();
int myType = 99;
if (hyp_type()[hypIdx] == 3) myType = 0; // ee
if (hyp_type()[hypIdx] == 0) myType = 1; // mm
//.........这里部分代码省略.........
示例11: skimThisBaby
//
// Fucntions
//
void skimThisBaby(TString inPath, TString inFileName, TString inTreeName, TString outPath){
// Talk to user
cout << " Skimming: "<< endl;
cout << " " << inPath+inFileName <<endl;
// Load input TChain
TChain *ch = new TChain(inTreeName);
TString inFile = inPath;
inFile += inFileName;
ch->Add(inFile);
Long64_t nentries = ch->GetEntries();
TTreeCache::SetLearnEntries(10);
ch->SetCacheSize(128*1024*1024);
// Initialize Branches
babyAnalyzer.Init(ch->GetTree());
babyAnalyzer.LoadAllBranches();
// Setup output file name and path
TString outFileName = outPath;
outFileName += inFileName;
outFileName.ReplaceAll("*", "");
outFileName.ReplaceAll(".root", "_skimmed.root");
cout << " Output will be written to: " << endl;
cout << " " << outFileName << endl << endl;
// Open outputfile and Clone input TTree
TFile *newfile = new TFile(outFileName, "recreate");
TTree *newtree = (TTree*)ch->GetTree()->CloneTree(0);
if(!newtree) cout << "BAD TTREE CLONE" << endl;
TH1D *newCounter=NULL;
// Get nEntries
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = ch->GetEntries();
// Grab list of files
TObjArray *listOfFiles = ch->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
// File Loop
int iFile=0;
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
TTreeCache::SetLearnEntries(10);
tree->SetCacheSize(128*1024*1024);
babyAnalyzer.Init(tree);
if(iFile==0){
TH1D *temp = (TH1D*)file->Get("h_counter");
newCounter = (TH1D*)temp->Clone("h_counter");
newCounter->SetDirectory(newfile);
}
//else{
//TH1D *temp = (TH1D*)file->Get("h_counter");
//newCounter->Add(temp);
//}
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Progress
stop_1l_babyAnalyzer::progress( nEventsTotal, nEventsChain );
// Load Tree
tree->LoadTree(event);
babyAnalyzer.GetEntry(event);
++nEventsTotal;
// Selection
if(nvetoleps()<1) continue;
if(nvetoleps()<2 && PassTrackVeto_v3() && PassTauVeto()) continue;
if(ngoodjets()<2) continue;
if(mt_met_lep()<150.0) continue;
if(pfmet()<200.0) continue;
// Turn on all branches on input
babyAnalyzer.LoadAllBranches();
// Fill output tree
newtree->Fill();
} // end loop over entries
iFile++;
} // end loop over files in TChain
// Clean up
//.........这里部分代码省略.........
示例12: ScanChain
//.........这里部分代码省略.........
TTree *outtree[3];
for(unsigned int b = 0; b<histonames.size(); ++b){
value[histonames[b] ] = -99;
histonameshelp.push_back(histonames[b]+(string)"/F");
}
for(unsigned int b = 0; b<3; ++b){
string samplename = skimFilePrefix;
if(skimFilePrefix!="TTbar"&&b>0) continue;
if(skimFilePrefix=="TTbar"&&b==0) samplename = "TTbar1l";
if(skimFilePrefix=="TTbar"&&b==1) samplename = "TTbar2l";
if(skimFilePrefix=="TTbar"&&b==2) samplename = "TTbarH";
TString fileName = "rootfiles/TestmysmallBDTvartree_"+samplename+".root";
outfile[b] = new TFile(fileName,"RECREATE");
outtree[b] = new TTree(samplename.c_str(),"");
for(unsigned int a = 0; a<histonames.size(); ++a){
outtree[b]->Branch(histonames[a].c_str(), &value[histonames[a] ], histonameshelp[a].c_str() );
}
}
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
// Progress
CMS3::progress( nEventsTotal, nEventsChain );
int sampleid = 0;
string samplename = skimFilePrefix;
if(skimFilePrefix=="TTbar"){
if(cms3.gen_nfromtmus_() + cms3.gen_nfromtels_() + cms3.gen_nfromttaus_() ==2) { samplename = "TTbar2l"; sampleid=1; }
else if(cms3.gen_nfromtmus_() + cms3.gen_nfromtels_() + cms3.gen_nfromttaus_() ==1) { samplename = "TTbar1l"; sampleid=0; }
else { samplename = "TTbarH"; sampleid=2; }
}
// Analysis Code
float weight = cms3.scale1fb()*10.;
int NLeps = cms3.ngoodlep();
string ds = cms3.dataset();
float MET = cms3.pfmet();
float METPhi = cms3.pfmet_phi();
示例13: ScanChain
//.........这里部分代码省略.........
h_phi->Sumw2();
//-------
TFile *InputFile = new TFile("phiRatio.root","read");
TH1F *h_phi_ratio = (TH1F*) InputFile->Get("h_phidata_clone_scaled")->Clone("h_phi_ratio");
//-------
TH1F* h_sumet_ee_inc = new TH1F("h_sumet_ee_inc","ee SumET (Inclusive)",2500,0,2500);//350,0,350 for all met histos
h_sumet_ee_inc->SetDirectory(rootdir);
h_sumet_ee_inc->Sumw2();
TH1F* h_sumet_mumu_inc = new TH1F("h_sumet_mumu_inc","mumu SumET (Inclusive)",2500,0,2500);//350,0,350 for all met histos
h_sumet_mumu_inc->SetDirectory(rootdir);
h_sumet_mumu_inc->Sumw2();
TH1F* h_sumet_emu_inc = new TH1F("h_sumet_emu_inc","emu SumET (Inclusive)",2500,0,2500);//350,0,350 for all met histos
h_sumet_emu_inc->SetDirectory(rootdir);
h_sumet_emu_inc->Sumw2();
//-------
TFile *InputFile_sumet = new TFile("sumet_Ratio.root","read");
TH1F *h_sumet_ratio = (TH1F*) InputFile_sumet->Get("h_sumet_ee_inc_data_clone_scaled")->Clone("h_sumet_ratio");
//-------
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("T1");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
zmet.Init(tree);
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
zmet.GetEntry(event);
++nEventsTotal;
// Progress
ZMET::progress( nEventsTotal, nEventsChain );
//------------------------- CUT --------------------------------------------
//
if( (zmet.leptype() != 0) && (zmet.leptype() != 1) && (zmet.leptype() != 2) ){ continue;} // 0 -> e's, 1 -> Mu's, 2->emu
float ptcutoff=20.;
if( ( zmet.lep1().Pt() <= ptcutoff) || ( zmet.lep2().Pt() <= ptcutoff) ) {continue;}
float etacutoff=2.4;
if( ( abs( zmet.lep1().Eta()) >= etacutoff) || ( abs( zmet.lep2().Eta()) >= etacutoff) ) {continue;}
//barrel/endcap eta cuts
示例14: looper
//Main function
int ScanChain::looper(TChain* chain, TString output_name, int nEvents){
//Print warning!
cout << "Careful!! Path is " << path << endl;
createAndInitMVA("CORE");
//readMVA* localEleMVAreader = new readMVA();
//localEleMVAreader->InitMVA("CORE");
//Set up loop over chain
unsigned int nEventsDone = 0;
unsigned int nEventsToDo = chain->GetEntries();
if( nEvents >= 0 ) nEventsToDo = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
std::map<std::string, TH1*> h_1d;
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
if(nEventsDone >= nEventsToDo) continue;
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("Events");
cms3.Init(tree);
// Loop over Events in current file
unsigned int nEventsTree = tree->GetEntriesFast();
for(unsigned int evt = 0; evt < nEventsTree; evt++){
//cout<<"\nEvent loop again"<<endl;
// Get Event Content
if(nEventsDone >= nEventsToDo) continue;
cms3.GetEntry(evt);
nEventsDone++;
//Debug mode
if (verbose && tas::evt_event() != evt_cut) continue;
if (verbose) cout << "file name is " << file->GetName() << endl;
// Progress
CMS3::progress(nEventsDone, nEventsToDo);
for (unsigned int iel = 0; iel < els_p4().size(); ++iel) {
LorentzVector el_p4 = els_p4().at(iel);
float pt = el_p4.pt();
plot1D("h_pt", pt, 1, h_1d, "pT [GeV]", 150, 0, 150);
}
}// end of event loop
file->Close();
delete file;
//delete tree;
cout<<"\nFile done"<<endl;
}//end of file loop
cout<<"\nWriting file"<<endl;
savePlots(h_1d, output_name+".root");
return 0;
}
示例15: ScanChain
int ScanChain( TChain* chain, bool fast = true, int nEvents = -1, string skimFilePrefix = "test") {
int version = 4;
// Benchmark
TBenchmark *bmark = new TBenchmark();
bmark->Start("benchmark");
// Example Histograms
TDirectory *rootdir = gDirectory->GetDirectory("Rint:");
map<string, TH1F*> histos;
vector<string> histonames; histonames.clear();
int nbins = 9; float blow = 0.5; float bup = 9.5; bool storeh = true;
if(version== 1){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version== 2){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version== 3){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version== 4){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version== 5){ nbins = 6; blow = 0.5; bup = 6.5; storeh = true; }
if(version== 6){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version== 7){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version== 8){ nbins = 7; blow = 0.5; bup = 7.5; storeh = true; }
if(version== 9){ nbins = 7; blow = 0.5; bup = 7.5; storeh = true; }
if(version==10){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version==11){ nbins = 6; blow = 0.5; bup = 6.5; storeh = true; }
if(version==12){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version==13){ nbins = 6; blow = 0.5; bup = 6.5; storeh = true; }
if(version==14){ nbins = 8; blow = 0.5; bup = 8.5; storeh = true; }
if(version==15){ nbins = 5; blow = 0.5; bup = 5.5; storeh = true; }
if(version==16){ nbins = 9; blow = 0.5; bup = 9.5; storeh = true; }
if(version==17){ nbins = 11; blow = 0.5; bup = 11.5; storeh = true; }
//AllBGCorr
//CorrName1Name2Name3 with NameX being sampleX
//CorrAllBG CorrAll means correlated among all backgrounds, or everything (bg+sig)
histonames.push_back("SRyield");
histonames.push_back("CRyield");
histonames.push_back("StatUnc");
histonames.push_back("SystUnc");
for(unsigned int b = 0; b<2; ++b){
string samplename = skimFilePrefix;
TString helper = TString(samplename);
//cout << helper << endl;
if(skimFilePrefix!="TTbar"&&b>0) continue;
if(skimFilePrefix=="TTbar"&&b==0) samplename = "TTbar1l";
if(skimFilePrefix=="TTbar"&&b==1) samplename = "TTbar2l";
if(skimFilePrefix=="TTbar"&&b==2) samplename = "TTbarH";
string mapname;
for(unsigned int i = 0; i<histonames.size();++i){
mapname = histonames[i] + "_" + samplename;
//cout << mapname << " " << nbins << " " << blow << " " << bup << endl;
if(histos.count(mapname) == 0 ) histos[mapname] = new TH1F(mapname.c_str(), "", nbins, blow, bup);
histos[mapname]->Sumw2(); histos[mapname]->SetDirectory(rootdir);
//cout << mapname << endl;
//cout << mapname << endl;
}
}
// Loop over events to Analyze
unsigned int nEventsTotal = 0;
unsigned int nEventsChain = chain->GetEntries();
if( nEvents >= 0 ) nEventsChain = nEvents;
TObjArray *listOfFiles = chain->GetListOfFiles();
TIter fileIter(listOfFiles);
TFile *currentFile = 0;
// File Loop
while ( (currentFile = (TFile*)fileIter.Next()) ) {
// Get File Content
TFile *file = new TFile( currentFile->GetTitle() );
TTree *tree = (TTree*)file->Get("t");
if(fast) TTreeCache::SetLearnEntries(10);
if(fast) tree->SetCacheSize(128*1024*1024);
cms3.Init(tree);
// Loop over Events in current file
if( nEventsTotal >= nEventsChain ) continue;
unsigned int nEventsTree = tree->GetEntriesFast();
for( unsigned int event = 0; event < nEventsTree; ++event) {
// Get Event Content
if( nEventsTotal >= nEventsChain ) continue;
if(fast) tree->LoadTree(event);
cms3.GetEntry(event);
++nEventsTotal;
// Progress
CMS3::progress( nEventsTotal, nEventsChain );
string samplename = skimFilePrefix;
if(skimFilePrefix=="TTbar"){
if(genlepsfromtop() ==2) samplename = "TTbar2l";
else if(genlepsfromtop() ==1) samplename = "TTbar1l";
else { samplename = "TTbarH"; continue; }// cout << "no gen lep" << " " << genlepsfromtop() << endl; }
}
TString helper = TString(samplename);
/*if(helper.Contains("Signal")){
if(helper.Contains("T2tt")){
//.........这里部分代码省略.........