160 likes | 305 Views
ANALYSIS Package. Offline Week Piotr Krzysztof Skowroński 30 June 200 4. AOD. A nalysis O bject D ata Similar to ESD but Contains data needed to analysis ony Designed for efficiency of the analysis. AliVAODParticle. Virtual AOD Particle pure virtual class
E N D
ANALYSISPackage Offline Week Piotr Krzysztof Skowroński 30June 2004
AOD • Analysis Object Data • Similar to ESD but • Contains data needed to analysis ony • Designed for efficiency of the analysis Analysis project P. K. Skowroński Offline Week June 2004
AliVAODParticle • Virtual AOD Particle • pure virtual class • Analyses can differ in preferable internal representation of a particle properties • pt, q, f • px, py, pz • Analyses should depend only on the interface defined by AliVAODParticle • Given analysis specific particle should not extend functionality of a particle • If such needed, proper method should be defined in VAODParticle • Still guarantee that one analysis can always be run on data prepared for other analysis • Even if less efficient • Provides all the interfaces needed for accessing any property Analysis project P. K. Skowroński Offline Week June 2004
AliAODParticle • Concretized varsion of a particle class based on px, py, pz reprezentation Analysis project P. K. Skowroński Offline Week June 2004
AliRunAnalysis cont... • Implements loop over events • Takes data from a reader (AliReader) • Reader provides 2 pointers to AODs • Reconstructed and (eventually if demanded) Simulated • These two AODs have „parallel” structure • Nth particle in simulated event corresponds to nth in the reconstructed one • Comfortable for any comparisons and resolution analyses • One track can appear more than ones in AOD in two different incarnations • f.g ones as pion and ones as kaon • In order to recognize them, particles are given UID (unique ID) • RunAnalysis checks AOD against the event cut • Implemented by AliEventCut Analysis project P. K. Skowroński Offline Week June 2004
AliAnalysis: base class for analyses • Analysis has to provide 3 methods • Init • ProcessEvent(AliAOD* rec,AliAOD*sim=0) • Finish • Analysis is a task • AliAnalysis inherits from TTask • Identified by unique names • Under Developement: Specification what requires and what provides • This way AliRunAnalysis can correctly order the execution and check if there is no circular dependencies between analyses Analysis project P. K. Skowroński Offline Week June 2004
Output data • Currently each analysis is responsible for writing its results to file • Done in a macro • Output data can be stored in folders • Other analyses can find there data which they require • Writing results can be managed by AliRunAnalysis Analysis project P. K. Skowroński Offline Week June 2004
Cuts • Design of all cuts is similar • Cut contains list of „Base Cuts” • „Base Cut” implements a cut on a single property • „Base Cuts” that perform logical operations on others „base cuts” • F.g.: AliAODOrPairCut • Allows to create tree structure that implements sophisticated logical operations, e.g. (Number of TPC tracks > N) AND (ZDC signal > X) • Cut implements shortcut methods for setting ranges • e.g..: SetPtRange(0.4,0.7) Analysis project P. K. Skowroński Offline Week June 2004
Cuts • „Base Cuts” are distinguishable by their property (enumerate type) • If a given base cut is already present in the list, and user wants to change its range • „Empty Cuts” • Accepts everything • All pointers to cuts by default point an empty cut • No necessity of checking if pointer is not NULL • Cuts use negative logic! • True when accepted • Carefully with logical base cuts • Ranges specify what we want to accept Analysis project P. K. Skowroński Offline Week June 2004
Cuts: advantages of this design • Cuts that ranges were specified are checked only • Configuration without necessity of recompilation • Very easy to extend functionality • User can implement his own library with base cuts • No necessity to reinstall all the software (e.g. on all AliEn sites) because one more cut is needed • One still can create a base cut that implements complicated Analysis project P. K. Skowroński Offline Week June 2004
Cuts: • AliEventCut • Event properties • AliParticleCut • Particle properties • AliPairCut • Pair properties • Apart of list of pair „base cuts” consists pointers to 2 AliParticleCut • They can point the same cut Analysis project P. K. Skowroński Offline Week June 2004
Readers • Analysis takes data from an object of AliReader type • Reader returns AODs • There are implemented following readers • AliReaderESD • Reads ESD • Also can read • AliReaderKineTree • Reads Kinematics Tree • All currently implemented readers read AliAODParticles • User can set a list of directories where to look for data • By default it seeks in current directory Analysis project P. K. Skowroński Offline Week June 2004
Readers • Method Next() reads the next event • Returns non-zero value when no more events available • Concretized Reader has to implement • ReadNext() • Attempts to read next event • Returns 0 in case of success • Rewind() • Readers do not buffer events by default • If some kind of mixing is necessary given analysis has to make a own copy for their use Analysis project P. K. Skowroński Offline Week June 2004
Other classes moved from HBTAN • AliTrackPoints • List of spatial coordinates of a track in different radii • Used to asses • Average distance between two tracks • If track was passing close to some element or other track at given position • AliClusterMap • Bit Vector describing cluster occupation in TPC • 1 on nth field if track has a cluster on nth padrow • Used to detect splitted tracks • AliEventBuffer • FIFO queue for buffering events • Readers by default are not buffering Analysis project P. K. Skowroński Offline Week June 2004
Not yet implemented ideasAliRunAnalysis • Use AliLoader as utility object • We are going to need more data for analysis that we would like to share in folders • Geometry, configuration parameters, etc. • loaders can simplify this task • Loaders can be created on the fly by AliRunAnalysis • Dependence on galice.root at all. is not a problem • Loaders can be hided behind AliRunAnalaysis so user can be even unaware of their presence Analysis project P. K. Skowroński Offline Week June 2004
Not yet implemented ideasAliRunAnalysis • Must guarantee consistency when automatically paralleled • Input data consistency check against demanded set must be performed every event • Output data consistency • Not to write the rubbish if error occurred • According to current schema output must be written as TH1’s or TTree’s Analysis project P. K. Skowroński Offline Week June 2004