Commit 13088ecc authored by Muzalevsky I.A's avatar Muzalevsky I.A

programm for raw data to processed modified

parent 6833af68
...@@ -12,20 +12,31 @@ ...@@ -12,20 +12,31 @@
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
// gSystem->Load("../libData.so"); if ( (argc < 3) || (argc > 4) ) {
if (argc != 4) {
// Tell the user how to run the program // Tell the user how to run the program
std::cerr << "Usage: " << argv[0] << " [list with input files] [outputfile] [number of points in one event (1000 of 1024)]" << std::endl; std::cerr << "Usage: " << argv[0] << " [list with input files] [outputfile] [number of points in one event (1000)]" << std::endl;
/* "Usage messages" are a conventional way of telling the user /* "Usage messages" are a conventional way of telling the user
* how to run a program if they enter the command incorrectly. * how to run a program if they enter the command incorrectly.
*/ */
return 1; return 1;
} }
// Print the user's name:
TString infiles = argv[1]; TString infiles = argv[1];
TString ofile = argv[2]; TString ofile = argv[2];
TString Asize = argv[3]; TString Asize = argv[3];
Int_t kEventSize;
if(argc==3) {
kEventSize = 1024;
Info("convertRawToAnalyzed", "Event size was set to %d", kEventSize);
}
if(argc==4) {
kEventSize = Asize.Atoi();
if(kEventSize!=1000) {
std::cerr<< argv[0] << " the size of Events should be 1000 in this case " << std::endl;
return 1;
}
}
TFile *f = new TFile(infiles.Data()); TFile *f = new TFile(infiles.Data());
TTree *tr = (TTree*)f->Get("rtree"); TTree *tr = (TTree*)f->Get("rtree");
...@@ -35,28 +46,27 @@ int main(int argc, char* argv[]) ...@@ -35,28 +46,27 @@ int main(int argc, char* argv[])
const Int_t cfTD = 5; const Int_t cfTD = 5;
TString bName; TString bName;
RawEvent *revent[noBranches]; // pointer to the array (of RawEvent class) in which raw data for each channel will be put RawEvent *revent[noBranches];
for (Int_t j = 0; j<noBranches; j++) { for (Int_t j = 0; j<noBranches; j++) {
revent[j] = new RawEvent(); //each raw event element is of class RawEvent() revent[j] = new RawEvent(kEventSize); //each Aevent element is of class AEvent()
bName.Form("ch%d.", j); bName.Form("ch%d.", j);
tr->SetBranchAddress(bName.Data(), &revent[j]); //read the tree tr with raw data and fill array revent with raw data tr->SetBranchAddress(bName.Data(), &revent[j]);
} }
// tr->SetMakeClass(1);
TFile *fw = new TFile(ofile.Data(), "RECREATE"); //create .root file with somehow analyzed data TFile *fw = new TFile(ofile.Data(), "RECREATE"); //create .root file with somehow analyzed data
TTree *tw = new TTree("atree", "title of drs4 analysis tree"); //create analysis tree atree in it TTree *tw = new TTree("atree", "title of drs4 analysis tree"); //create analysis tree atree in it
AEvent *wevent[noBranches]; // pointer to the array (of AEvent class) in which analyzed data for each channel will be put AEvent *wevent[noBranches]; // pointer to the array (of AEvent class) in which analyzed data for each channel will be put
for (Int_t j = 0; j<noBranches; j++) { for (Int_t j = 0; j<noBranches; j++) {
wevent[j] = new AEvent(atoi(Asize)); wevent[j] = new AEvent(kEventSize);
bName.Form("Ach%d.", j); bName.Form("Ach%d.", j);
wevent[j]->SetInputEvent(&revent[j]); //takes raw event from RawEvent wevent[j]->SetInputEvent(&revent[j]); //takes raw event from RawEvent
wevent[j]->SetCFratio(cfRatio); wevent[j]->SetCFratio(cfRatio);
wevent[j]->SetCFtimeDelay(cfTD); wevent[j]->SetCFtimeDelay(cfTD);
tw->Bronch(bName.Data(), "AEvent", &wevent[j]); // create branches in atree to hold analyzed data tw->Bronch(bName.Data(), "AEvent", &wevent[j]); // create branches in atree to hold analyzed data
} }
//----event loop in tr input tree //----event loop in tr input tree
Long64_t nentries = tr->GetEntries(); Long64_t nentries = tr->GetEntries();
...@@ -75,6 +85,7 @@ int main(int argc, char* argv[]) ...@@ -75,6 +85,7 @@ int main(int argc, char* argv[])
} }
//----end of event loop //----end of event loop
printf("%d events are processed\n", nentries);
tw->Write(); tw->Write();
fw->Close(); fw->Close();
......
void integralFormSignal() //void integralFormSignal()
{ {
gSystem->Load("../libData.so"); gSystem->Load("../libData.so");
TFile *f = new TFile("../data/dataTektronix/exp2.root"); TFile *f = new TFile("../data/dataTektronix/exp7.root");
TTree *tr = (TTree*)f->Get("atree"); TTree *tr = (TTree*)f->Get("atree");
const Int_t noBranches = 4; const Int_t noBranches = 4;
Double_t ZeroTime[4]; Double_t ZeroTime[4];
Int_t iZero[4],PosZero[4],deltaT[4]; Int_t iZero[4],PosZero[4],deltaT[4];
TString bName; TString bName;
AEvent *aevent[noBranches]; // pointer to the array (of RawEvent class) in which raw data for each channel will be put AEvent *aevent[noBranches]; // pointer to the array (of RawEvent class) in which raw data for each channel will be put
for (Int_t j = 0; j<noBranches; j++) { for (Int_t j = 0; j<noBranches; j++) {
aevent[j] = new AEvent(); //each raw event element is of class RawEvent() aevent[j] = new AEvent(1000); //each raw event element is of class RawEvent()
bName.Form("Ach%d.", j); bName.Form("Ach%d.", j);
tr->SetBranchAddress(bName.Data(), &aevent[j]); //read the tree tr with raw data and fill array revent with raw data tr->SetBranchAddress(bName.Data(), &aevent[j]); //read the tree tr with raw data and fill array revent with raw data
//cout << tr->SetBranchAddress(bName.Data(), &aevent[j]) << endl; //read the tree tr with raw data and fill array revent with raw data
} }
TH1F *hist0 = new TH1F("hist1", "h1 title", 2000, -100, 100); TH1F *hist0 = new TH1F("hist1", "h1 title", 2000, -100, 100);
...@@ -38,15 +38,12 @@ void integralFormSignal() ...@@ -38,15 +38,12 @@ void integralFormSignal()
deltaT[k] = iZero[k] - PosZero[k]; deltaT[k] = iZero[k] - PosZero[k];
} }
//for(k=0;k<4;k++) {
for(Int_t i = 0; i<1000; i++){ for(Int_t i = 0; i<1000; i++){
if( ((i+deltaT[0])>-1) && ((i+deltaT[0])<1000)) hist0->AddBinContent(i+500,aevent[0]->GetOnefAmpPos(i+deltaT[0])); if( ((i+deltaT[0])>-1) && ((i+deltaT[0])<1000)) hist0->AddBinContent(i+500,aevent[0]->GetOnefAmpPos(i+deltaT[0]));
if( ((i+deltaT[1])>-1) && ((i+deltaT[1])<1000)) hist1->AddBinContent(i+500,aevent[1]->GetOnefAmpPos(i+deltaT[1])); if( ((i+deltaT[1])>-1) && ((i+deltaT[1])<1000)) hist1->AddBinContent(i+500,aevent[1]->GetOnefAmpPos(i+deltaT[1]));
hist2->AddBinContent(i+500,aevent[0]->GetOnefAmpPos(i)); hist2->AddBinContent(i+500,aevent[0]->GetOnefAmpPos(i));
hist3->AddBinContent(i+500,aevent[1]->GetOnefAmpPos(i)); hist3->AddBinContent(i+500,aevent[1]->GetOnefAmpPos(i));
} }
//}
} }
TCanvas *c1 = new TCanvas("c1","test",10,10,1000,600); TCanvas *c1 = new TCanvas("c1","test",10,10,1000,600);
......
...@@ -47,6 +47,10 @@ clean: ...@@ -47,6 +47,10 @@ clean:
-@echo ' ' -@echo ' '
-$(RM) $(CONVERTDRS4)/read_binary_DRS4 -$(RM) $(CONVERTDRS4)/read_binary_DRS4
-@echo ' ' -@echo ' '
-$(RM) $(CONVERTTEKTRONIX)/convertTektronix
-@echo ' '
-$(RM) $(CONVERTRAWTOANALYZED)/convertRawToAnalyzed
-@echo ' '
# Those *Cint* files below need special treating: # Those *Cint* files below need special treating:
$(DATA)/DataCint.cpp: $(DATA)/DataCint.cpp:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment