Page History
...
Code Block | ||||
---|---|---|---|---|
| ||||
########################################################## ## User Input start --> ########################################################## ##adding raw timetool traces: #defaultDets.append(ttRawDetector(env=ds.env())) ##adding wave8 traces: #defaultDets.append(wave8Detector('Wave8WF')) ########################################################## ## <-- User Input end ########################################################## |
Time tool analysis
XTCAV values
Run-dependent variables: Area detectors analysis
In order to keep the filesizes small to avoid issue when analysis the smallData files, we try to extract the important information gleaned from areaDetectors at an event-by-event basis and only save these pieces of data. Implementation examples of each of the analysis functions that are readily available can be found in <smalldata_tools>/producers/smalldata_producer_template.py
.
Please reach out to your data and controls POC to discuss analysis needs for your experiments. The POC will make sure the functions you need are prepared in the main producer file, and you should only have to change the argument's values, such as region of interest or thresholds, according the ongoing experimental conditions.
Generally speaking, the parameters for each analysis functions are set from a run-dependent logic as shown here:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
def getFuncParam(run): """ """ if isinstance(run,str): run=int(run) ret_dict = {} if run<21: func_dict = {} func_dict['param1'] = <param> func_dict['param2'] = <param> func_dict['param3'] = <param> ret_dict['detname'] = func_dict else: func_dict = {} func_dict['param1'] = <param> func_dict['param2'] = <param> func_dict['param3'] = <param> ret_dict['detname'] = func_dict return ret_dict |
Several analysis functions or detectors can be set up this way .
Anfor example:
Regions of interest (ROIs)- ROI
- Azimuthal integration
- Droplet
- Projection
- ...
In the smd_producer.py, the function to define the ROIs goes as follow:
Code Block | ||||
---|---|---|---|---|
| ||||
def getROIs(run):
""" Set parameter for ROI analysis. Set writeArea to True to write the full ROI in the h5 file.
See roi_rebin.py for more info
"""
if isinstance(run,str):
run=int(run)
ret_dict = {}
if run<21:
roi_dict = {}
roi_dict['ROIs'] = [ [[1,2], [127,394], [655,923]]] # can define more than one ROI
roi_dict['writeArea'] = True
roi_dict['thresADU'] = None
ret_dict['jungfrau1M'] = roi_dict
elif run>20 and run<43:
roi_dict = {}
roi_dict['ROIs'] = [chip22] # can define more than one ROI
roi_dict['writeArea'] = True
roi_dict['thresADU'] = None
ret_dict['jungfrau1M'] = roi_dict
elif run>42:
roi_dict = {}
roi_dict['ROIs'] = [chip22] # can define more than one ROI
roi_dict['writeArea'] = True
roi_dict['thresADU'] = None
ret_dict['jungfrau1M'] = roi_dict
return ret_dict |
Besides, the ROI definition, the parameters are the following:
writeArea
: whether to write the full ROI to file or only the statistics (intensity sum, and other statistics)
thresADU
: pixel intensity threshold. Any pixel below that value are set to 0
See 1.2 Area Detector treatment with DetObject#1.2AreaDetectortreatmentwithDetObject-InteractiveSmallDataAnasessionDetObject and child pages for details on the different analysis functions.