Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Names for charges and waveforms container extension in fits files #59

Merged
merged 2 commits into from
Apr 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/nectarchain/calibration/NectarGain/PhotoStat/PhotoStat.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ class PhotoStatGain(ABC):

def _readFF(self,FFRun,maxevents: int = None,**kwargs) :
log.info('reading FF data')
method = kwargs.get('method','std')
method = kwargs.get('method','FullWaveformSum')
FFchargeExtractorWindowLength = kwargs.get('FFchargeExtractorWindowLength',None)
if method != 'std' :
if method != 'FullWaveformSum' :
if FFchargeExtractorWindowLength is None :
e = Exception(f"we have to specify FFchargeExtractorWindowLength argument if charge extractor method is not FullwaveformSum")
log.error(e,exc_info=True)
Expand Down Expand Up @@ -68,7 +68,7 @@ def _readFF(self,FFRun,maxevents: int = None,**kwargs) :

def _readPed(self,PedRun,maxevents: int = None,**kwargs) :
log.info('reading Ped data')
method = 'std'#kwargs.get('method','std')
method = 'FullWaveformSum'#kwargs.get('method','std')
if isinstance(PedRun,int) :
try :
self.Pedcharge = ChargeContainer.from_file(f"{os.environ['NECTARCAMDATA']}/charges/{method}",PedRun)
Expand Down
12 changes: 6 additions & 6 deletions src/nectarchain/calibration/container/charge.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,10 +194,10 @@ def write(self,path : Path,**kwargs) :
hdr['COMMENT'] = f"The charge containeur for run {self.__run_number} with {self.__method} method : primary is the pixels id, then you can find HG charge, LG charge, HG peak and LG peak, 2 last HDU are composed of event properties and trigger patern"

primary_hdu = fits.PrimaryHDU(self.pixels_id,header=hdr)
charge_hg_hdu = fits.ImageHDU(self.charge_hg)
charge_lg_hdu = fits.ImageHDU(self.charge_lg)
peak_hg_hdu = fits.ImageHDU(self.peak_hg)
peak_lg_hdu = fits.ImageHDU(self.peak_lg)
charge_hg_hdu = fits.ImageHDU(self.charge_hg,name = "HG charge")
charge_lg_hdu = fits.ImageHDU(self.charge_lg,name = "LG charge")
peak_hg_hdu = fits.ImageHDU(self.peak_hg, name = 'HG peak time')
peak_lg_hdu = fits.ImageHDU(self.peak_lg, name = 'LG peak time')

col1 = fits.Column(array = self.event_id, name = "event_id", format = '1I')
col2 = fits.Column(array = self.event_type, name = "event_type", format = '1I')
Expand All @@ -207,12 +207,12 @@ def write(self,path : Path,**kwargs) :
col6 = fits.Column(array = self.multiplicity, name = "multiplicity", format = '1I')

coldefs = fits.ColDefs([col1, col2, col3, col4, col5, col6])
event_properties = fits.BinTableHDU.from_columns(coldefs)
event_properties = fits.BinTableHDU.from_columns(coldefs, name = 'event properties')

col1 = fits.Column(array = self.trig_pattern_all, name = "trig_pattern_all", format = f'{4 * self.CAMERA.n_pixels}L',dim = f'({self.CAMERA.n_pixels},4)')
col2 = fits.Column(array = self.trig_pattern, name = "trig_pattern", format = f'{self.CAMERA.n_pixels}L')
coldefs = fits.ColDefs([col1, col2])
trigger_patern = fits.BinTableHDU.from_columns(coldefs)
trigger_patern = fits.BinTableHDU.from_columns(coldefs, name = 'trigger patern')

hdul = fits.HDUList([primary_hdu, charge_hg_hdu, charge_lg_hdu,peak_hg_hdu,peak_lg_hdu,event_properties,trigger_patern])
try :
Expand Down
10 changes: 5 additions & 5 deletions src/nectarchain/calibration/container/waveforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ def write(self,path : str, **kwargs) :

primary_hdu = fits.PrimaryHDU(self.pixels_id,header=hdr)

wfs_hg_hdu = fits.ImageHDU(self.wfs_hg)
wfs_lg_hdu = fits.ImageHDU(self.wfs_lg)
wfs_hg_hdu = fits.ImageHDU(self.wfs_hg,name = "HG Waveforms")
wfs_lg_hdu = fits.ImageHDU(self.wfs_lg,name = "LG Waveforms")


col1 = fits.Column(array = self.event_id, name = "event_id", format = '1J')
Expand All @@ -199,13 +199,13 @@ def write(self,path : str, **kwargs) :
col6 = fits.Column(array = self.multiplicity, name = "multiplicity", format = '1I')

coldefs = fits.ColDefs([col1, col2, col3, col4, col5, col6])
event_properties = fits.BinTableHDU.from_columns(coldefs)
event_properties = fits.BinTableHDU.from_columns(coldefs,name = 'event properties')

col1 = fits.Column(array = self.trig_pattern_all, name = "trig_pattern_all", format = f'{4 * self.CAMERA.n_pixels}L',dim = f'({self.CAMERA.n_pixels},4)')
col2 = fits.Column(array = self.trig_pattern, name = "trig_pattern", format = f'{self.CAMERA.n_pixels}L')
coldefs = fits.ColDefs([col1, col2])
trigger_patern = fits.BinTableHDU.from_columns(coldefs)
trigger_patern = fits.BinTableHDU.from_columns(coldefs,name = 'trigger patern')

hdul = fits.HDUList([primary_hdu, wfs_hg_hdu, wfs_lg_hdu,event_properties,trigger_patern])
try :
hdul.writeto(Path(path)/f"waveforms_run{self.run_number}{suffix}.fits",overwrite=kwargs.get('overwrite',False))
Expand Down
21 changes: 14 additions & 7 deletions src/nectarchain/user_scripts/ggrolleron/load_wfs_compute_charge.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
nargs="+",
#default=[],
help='FF max events to be load',
type=list)
type=int)

#n_events in runs
parser.add_argument('--spe_nevents',
Expand All @@ -64,7 +64,7 @@
nargs="+",
#default=[],
help='FF n events to be load',
type=list)
type=int)

#boolean arguments
parser.add_argument('--reload_wfs',
Expand Down Expand Up @@ -187,12 +187,12 @@ def main(spe_run_number : list = [],
#print(kwargs)

spe_nevents = kwargs.pop('spe_nevents',[-1 for i in range(len(spe_run_number))])
ff_nevents = kwargs.pop('spe_nevents',[-1 for i in range(len(ff_run_number))])
ped_nevents = kwargs.pop('spe_nevents',[-1 for i in range(len(ped_run_number))])
ff_nevents = kwargs.pop('ff_nevents',[-1 for i in range(len(ff_run_number))])
ped_nevents = kwargs.pop('ped_nevents',[-1 for i in range(len(ped_run_number))])

spe_max_events = kwargs.pop('spe_max_events',[None for i in range(len(spe_run_number))])
ff_max_events = kwargs.pop('spe_max_events',[None for i in range(len(ff_run_number))])
ped_max_events = kwargs.pop('spe_max_events',[None for i in range(len(ped_run_number))])
ff_max_events = kwargs.pop('ff_max_events',[None for i in range(len(ff_run_number))])
ped_max_events = kwargs.pop('ped_max_events',[None for i in range(len(ped_run_number))])

runs_list = spe_run_number + ff_run_number + ped_run_number
nevents = spe_nevents + ff_nevents + ped_nevents
Expand Down Expand Up @@ -251,7 +251,14 @@ def main(spe_run_number : list = [],

log.info(f"arguments passed to main are : {arg}")

path= args.extractorMethod+f"_{args.extractor_kwargs['window_shift']}-{args.extractor_kwargs['window_width']-args.extractor_kwargs['window_shift']}"
path= args.extractorMethod
if args.extractorMethod in ["GlobalPeakWindowSum", "LocalPeakWindowSum"] :
path +=f"_{args.extractor_kwargs['window_shift']}-{args.extractor_kwargs['window_width']-args.extractor_kwargs['window_shift']}"
elif args.extractorMethod in ["SlidingWindowMaxSum"] :
path +=f"_{args.extractor_kwargs['window_width']}"
elif args.extractorMethod in ["FixedWindowSum"] :
path +=f"_{args.extractor_kwargs['peak_index']}_{args.extractor_kwargs['window_shift']}-{args.extractor_kwargs['window_width']-args.extractor_kwargs['window_shift']}"

arg['path'] = path

main(**arg)