AIDA for Power Users
This covers advanced topics in JAS3 and AIDA. The examples in this section are mostly written in the Python language. It's syntax is simpler and less strict than Java, yet very clear. If you do not feel comfortable learning yet another language, please visit the exellent, if slightly dated AIDA documentation. However, please feel encouraged to take a look at the examples. They should all run out of the box (if not, please don't feel discouraged – file a bug report), so that you should still be able to get something out of them.
For this section, you will want to take a look at
PAIDA and AIDA API
Changing Layout/Style/Properties with a Script
While it is convenient to be able to manipulate your data with the mouse, in many cases you will want to apply the same modifications to a set of similar data, or perform more complicated modifications that are quite possible to do with AIDA, but not (yet) implemented in JAS3. This is where a script comes in handy
Advanced Manipulations of Histograms
Adding and subtracting histograms
Fitting
Using predefined functions
Writing your own function
Oftentimes you will have to perform more complicated computations than can be put in a string. Use this template to
from hep.aida import IFunction import AIDATutorial import math class MyFunc(IFunction): def __init__(self, track): self.title = "My Own Function" return def providesGradient(self): return false # This Function returns the value f(x) # x can be multi-dimensional def value(self, x): y = x[0] + math.exp(x[1]) + x[0]*x[1] externalValue = AIDATutorial.someExternalFunction(y, x) return externalValue-y # This tells AIDA the dimension of the function def dimension(self): return 2 def annotation(self): ann = IAnnotation() ann.addItem('Title', self.title) return ann