Hello
I have a tree with defined leaflist defined.
struct data_t {
Int_t Event;
Int_t QuartzChn;
Int_t TrRightChn;
Int_t TrLeftChn;
Int_t LYSOChn;
Int_t t1;
Int_t t2;
Int_t OR;
};
data_t data;
TFile *f = new TFile(Form("run_%d.root",run),"RECREATE");
TTree *dataTree = new TTree("dataTree","Detector Event Data");
dataTree->Branch("data",&data.Event,"Event/I:QuartzChn:TrRightChn:TrLeftChn:LYSOChn:t1:t2:OR");
FILE *fp1 = NULL;
FILE *fp2 = NULL;
FILE *fp3 = NULL;
FILE *fp4 = NULL;
FILE *fp5 = NULL;
fp1 = fopen(Form("ch00/run_%d_ch00.dat",run),"r"); //Quartz
fp2 = fopen(Form("ch02/run_%d_ch02.dat",run),"r"); //Trigger right
fp3 = fopen(Form("ch04/run_%d_ch04.dat",run),"r"); //Trigger left
fp4 = fopen(Form("ch06/run_%d_ch06.dat",run),"r"); //LYSO
fp5 = fopen(Form("ch08/run_%d_ch08.dat",run),"r"); //Signal OR
char tmp[20];
fscanf(fp1,"%s",tmp); cout << tmp << endl;
fscanf(fp2,"%s",tmp); cout << tmp << endl;
fscanf(fp3,"%s",tmp); cout << tmp << endl;
fscanf(fp4,"%s",tmp); cout << tmp << endl;
fscanf(fp5,"%s",tmp); cout << tmp << endl;
Int_t ret;
while(1){
ret = fscanf(fp1,"%d %d %d %d",&data.Event, &data.t1, &data.t2, &data.QuartzChn); if(ret == EOF) break;
ret = fscanf(fp2,"%d %d %d %d",&data.Event, &data.t1, &data.t2, &data.TrRightChn); if(ret == EOF) break;
ret = fscanf(fp3,"%d %d %d %d",&data.Event, &data.t1, &data.t2, &data.TrLeftChn); if(ret == EOF) break;
ret = fscanf(fp4,"%d %d %d %d",&data.Event, &data.t1, &data.t2, &data.LYSOChn); if(ret == EOF) break;
ret = fscanf(fp5,"%d %d %d %d",&data.Event, &data.t1, &data.t2, &data.OR); if(ret == EOF) break;
dataTree->Fill();
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(fp4);
fclose(fp5);
f->Write();
}
I can view the resulting root file with the Tbrowser with desired histogram.
now from here, I would like to find the two right most peaks from LYSOChn and apply the range between two peaks to QuartzChn histogram.
I plan to do this by finding the list of bins with maximum counts, choose the two right most bins and applying the range to LYSOChn.
Would there be any built in function that would find the bin? Or if I have to loop through the leaves, how could I loop through the items in each leaf?
Thank you for taking your time.
Let me know if there is something unclear.