Enviado em 04/07/2017 - 15:59h
Boa tarde pessoal,void Run(TString namefile = "default.root"){
TFile *f = new TFile(namefile, "UPDATE");
/// n histograms
doHist("Medidas_Ar/05CMAR.txt","hist_05cmar");
// ou
TH1 *hist1;
hist1 = doHist("Medidas_Ar/05CMAR.txt");
f->close();
}
void doHist(TString namedata, TH1 *h)
{
int max_canal = 0, max_contagem = 0;
int canal_inicial = 0, contagem_inicial = 0, total_contagem = 0, canal_final = 0, contagem_final = 0;
get_MaxCount(namedata, max_canal, max_contagem);
cout << "========================" << endl;
cout << " MAXIMA CONTAGEM " << endl;
cout << "Canal:" << " " << "Contagem:" << endl;
cout << " " << max_canal << " " << max_contagem << endl;
cout << "========================" << endl;
get_FirstChannel(namedata, max_canal, canal_inicial, contagem_inicial, canal_final, contagem_final);
cout << "========================" << endl;
cout << " CANAL INICIAL " << endl;
cout << "Canal:" << " " << "Contagem:" << endl;
cout << " " << canal_inicial << " " << contagem_inicial << endl;
cout << "========================" << endl;
cout << "========================" << endl;
cout << " CANAL FINAL " << endl;
cout << "Canal:" << " " << "Contagem:" << endl;
cout << " " << canal_final - 2 << " " << contagem_final << endl;
cout << "========================" << endl;
//make_Hist(namedata, canal_inicial, canal_final);
int nbin = max_canal-min_canal+1;
TH1 *h;
h = new TH1F ("h", "h", nbin , min_canal, max_canal+1);
int i = 0;
if (in.is_open())
{
while(getline(in, line))
{
in >> canal >> contagem;
if ((canal > (min_canal-1)) && (canal < (max_canal+1)))
{
i++;
h->SetBinContent(i,contagem);
}
}
}
}
void get_MaxCount(TString namedata, int &max_canal, int &max_contagem)
{
ifstream in;
in.open(namedata);
string line;
int canal, contagem;
if(in.is_open())
{
while(getline(in, line))
{
in >> canal >> contagem;
if(contagem > max_contagem)
{
max_contagem = contagem;
max_canal = canal;
}
}
}
}
void get_FirstChannel(TString namedata, int &max_canal, int &canal_inicial, int &contagem_inicial, int &canal_final, int &contagem_final)
{
ifstream in;
in.open(namedata);
string line;
int vteste[3] = {0,0,0};
int canal = 0, contagem;
if (in.is_open())
{
while(getline(in, line))
{
in >> canal >> contagem;
vteste[0] = vteste[1];
vteste[1] = vteste[2];
vteste[2] = contagem;
if((vteste[0] == 0) && (vteste[1] == 0) && (vteste[2] != 0))
{
canal_inicial = canal;
contagem_inicial = contagem;
break;
}
}
}
if (in.is_open())
{
while(getline(in, line))
{
in >> canal >> contagem;
int i = canal;
if (i >= max_canal)
{
vteste[0] = vteste[1];
vteste[1] = vteste[2];
vteste[2] = contagem;
if((vteste[0] == 0) && (vteste[1] == 0) && (vteste[2] == 0))
{
canal_final = canal;
contagem_final = contagem;
break;
}
}
}
}
}
void make_Hist(TString namedata, int &min_canal, int &max_canal)
{
TFile *f = new TFile(namefile, "UPDATE");
ifstream in;
in.open(namedata);
string line;
int canal;
float contagem;
int nbin = max_canal-min_canal+1;
TH1 *h3;
h3 = new TH1F ("h3", "h3", nbin , min_canal, max_canal+1);
int i = 0;
if (in.is_open())
{
while(getline(in, line))
{
in >> canal >> contagem;
if ((canal > (min_canal-1)) && (canal < (max_canal+1)))
{
i++;
h3->SetBinContent(i,contagem);
}
}
}
h3 -> Write();
f -> Close();
}
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
como instalar o docker desktop e o docker no debian 12 arm64 (11)