Changeset 17699 for trunk/Mars/fact/analysis/mc/callisto.C
- Timestamp:
- 04/26/14 15:35:48 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Mars/fact/analysis/mc/callisto.C
r17641 r17699 1 using namespace std;2 3 1 #include <sstream> 4 2 #include <iostream> 3 4 #include "MLog.h" 5 #include "MLogManip.h" 5 6 6 7 #include "TH1F.h" … … 10 11 #include "TLine.h" 11 12 13 #include "../mcore/DrsCalib.h" 12 14 #include "MDrsCalibration.h" 13 //#include "MLogManip.h"14 15 #include "MExtralgoSpline.h" 15 16 #include "MSequence.h" … … 45 46 #include "MWriteAsciiFile.h" 46 47 48 using namespace std; 49 47 50 /* Maybe you wanna use this macro like this: 48 51 * … … 67 70 */ 68 71 69 //using namespace std; 70 71 int callisto( 72 const char *drs_calib_300_path="/fhgfs/groups/app/fact/mc_test/testingdrsfile/test300samples.drs.fits", 73 const char *pedestal_file_path="/fhgfs/groups/app/fact/mc_test/ceresfitstest/mcFilesForTests/mcNsbPedestal/00000001.001_P_MonteCarlo000_Events.fits", 74 const char *data_file_path="/fhgfs/groups/app/fact/mc_test/ceresfitstest/mcFilesForTests/mcProton/00000003.387_D_MonteCarlo010_Events.fits", 75 76 const char *root_file_output_path = "/fhgfs/groups/app/callisto_star_test/callisto_for_mc_test_output/callisto.root", 77 const char *status_display_output_path = "/fhgfs/groups/app/callisto_star_test/callisto_for_mc_test_output/callisto_status_display.root", 78 const char *status_display_title = "callisto_status_display") 72 int callisto(const TString drsfile="test300samples.drs.fits", 73 const TString pedfile="00000001.001_P_MonteCarlo000_Events.fits", 74 const TString datfile="00000003.387_D_MonteCarlo010_Events.fits", 75 TString outfile = "", 76 TString displayfile = "", TString displaytitle = "") 79 77 { 80 78 79 // ====================================================== 80 81 if (displaytitle.IsNull()) 82 displaytitle = gSystem->BaseName(datfile); 83 84 FileStat_t fstat; 85 int rc = gSystem->GetPathInfo(outfile, fstat); 86 bool isdir = !rc || R_ISDIR(fstat.fMode); 87 88 const char *buf = gSystem->ConcatFileName(outfile, "callisto.root"); 89 outfile = buf; 90 delete [] buf; 91 92 if (displayfile.IsNull()) 93 { 94 displayfile = outfile; 95 displayfile.Insert(displayfile.Last('.'), "-display"); 96 } 97 else 98 { 99 if (isdir && gSystem->DirName(displayfile)==TString(".")) 100 { 101 buf = gSystem->ConcatFileName(outfile, displayfile); 102 displayfile = buf; 103 delete [] buf; 104 } 105 } 106 81 107 // ====================================================== 82 108 … … 88 114 89 115 // map file to use (get that from La Palma!) 90 const char *map = usemap ? " /fhgfs/groups/app/fact/resources/monte_carlo_FACTmap.txt" : NULL;116 const char *map = usemap ? "TestForThomas/FACT/FACTmap111030.txt" : NULL; 91 117 92 118 Bool_t maximum = kTRUE; … … 96 122 // "/cm/shared/apps/fact/Mars_svn_LP/template-lp-extractor-leading-edge.root"; 97 123 98 const char *lp_template = "/cm/shared/apps/fact/Mars_Trunk/template-lp.root"; 99 100 //const char *pulse_template = "/cm/shared/apps/fact/Mars_svn_LP/template-pulse.root"; 101 102 const char *pulse_template = "/cm/shared/apps/fact/Mars_Trunk/template-pulse.root"; 124 const char *pulse_template = "TestForThomas/FACT/template-pulse.root"; 103 125 104 126 // ------------------------------------------------------ … … 147 169 } 148 170 149 TString datfile = TString(data_file_path);150 TString drsfile = TString(drs_calib_300_path);151 TString pedfile = TString(pedestal_file_path);152 153 171 gLog.Separator("Callisto"); 154 gLog << all; 155 gLog << "Data File : " << datfile << "\n";156 gLog << "DRS calib 300: " << drsfile << '\n';172 gLog << all; 173 gLog << "Data File: " << datfile << '\n'; 174 gLog << "DRS calib 300: " << drsfile << endl;; 157 175 158 176 MDrsCalibration drscalib300; … … 162 180 } 163 181 gLog << all; 164 gLog << "Pedestal file: " << pedfile << '\n'; 165 166 gLog << "root_file_output_path: " << root_file_output_path << endl; 167 gLog << "status_display_output_path: " << status_display_output_path << endl; 168 gLog << "status_display_title: " << status_display_title << endl; 182 gLog << "Pedestal file: " << pedfile << '\n'; 183 gLog << "Output file: " << outfile << '\n'; 184 gLog << "Display file: " << displayfile << '\n'; 185 gLog << "Display title: " << displaytitle << endl; 169 186 170 187 // ------------------------------------------------------ 171 188 MStatusArray arrt, arrp; 172 189 173 TFile ft(lp_template);174 if (arrt.Read()<=0)175 {176 gLog << err << "ERROR - Reading LP template from " << lp_template << endl;177 return 100;178 }179 180 MHCamera *lpref = (MHCamera*)arrt.FindObjectInCanvas("ExtCalSig;avg", "MHCamera", "Cam");181 if (!lpref)182 {183 gLog << err << "ERROR - LP Template not found in " << lp_template << endl;184 return 101;185 }186 lpref->SetDirectory(0);190 // TFile ft(lp_template); 191 // if (arrt.Read()<=0) 192 // { 193 // gLog << err << "ERROR - Reading LP template from " << lp_template << endl; 194 // return 100; 195 // } 196 197 // MHCamera *lpref = (MHCamera*)arrt.FindObjectInCanvas("ExtCalSig;avg", "MHCamera", "Cam"); 198 // if (!lpref) 199 // { 200 // gLog << err << "ERROR - LP Template not found in " << lp_template << endl; 201 // return 101; 202 // } 203 // lpref->SetDirectory(0); 187 204 188 205 // MHCamera *gain = (MHCamera*)arrt.FindObjectInCanvas("gain", "MHCamera", "Gain"); … … 619 636 // The second rule is for the case reading raw-files! 620 637 621 MWriteRootFile write5(root_file_output_path, "RECREATE", "Calibrated Data", 2); 622 write5.AddContainer("MRawRunHeader", "RunHeaders"); 623 write5.AddContainer("MGeomCam", "RunHeaders"); 624 write5.AddContainer("MSignalCam", "Events"); 625 write5.AddContainer("MTime", "Events"); 626 write5.AddContainer("MRawEvtHeader", "Events"); 638 MWriteRootFile write5(outfile, "RECREATE", "Calibrated Data", 2); 639 write5.AddContainer("MRawRunHeader", "RunHeaders"); 640 write5.AddContainer("MGeomCam", "RunHeaders"); 641 write5.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE); 642 write5.AddContainer("MCorsikaRunHeader", "RunHeaders", kFALSE); 643 write5.AddContainer("MMcRunHeader", "RunHeaders", kFALSE); 644 645 // Common events 646 write5.AddContainer("MCorsikaEvtHeader", "Events", kFALSE); 647 write5.AddContainer("MMcEvt", "Events", kFALSE); 648 write5.AddContainer("IncidentAngle", "Events", kFALSE); 649 write5.AddContainer("MPointingPos", "Events", kFALSE); 650 write5.AddContainer("MSignalCam", "Events"); 651 write5.AddContainer("MTime", "Events"); 652 write5.AddContainer("MRawEvtHeader", "Events"); 627 653 //write.AddContainer("MTriggerPattern", "Events"); 628 629 654 630 655 // ------------------ Setup histograms and fill tasks ---------------- … … 669 694 return 19; 670 695 671 d->SetTitle( status_display_title, kFALSE);672 d->SaveAs( status_display_output_path);696 d->SetTitle(displaytitle, kFALSE); 697 d->SaveAs(displayfile); 673 698 674 699 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.