the gammaware package
DESCRIPTION
The GammaWare package. ( including ADF). Olivier Stézowski (on behalf of the Data Analysis Team) Data Analysis Workshop, Legnaro , November 9-10 2009. Evolution of the package. DAQ. Protoype : Simu from LS. Interface GEANT4 generators. ADF Library. 2004. 2009. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/1.jpg)
The GammaWare package
Olivier Stézowski(on behalf of the Data Analysis
Team)Data Analysis Workshop, Legnaro,
November 9-10 2009
(including ADF)
![Page 2: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/2.jpg)
Evolution of the package
2004 2009
Protoype:Simu from LS
Organisation:•Serveur SVN•Doc•Bugtracker…
ADF Library
Core library / tools /Interface
to other frameworks+ …
DAQ
Interface GEANT4generators
« Collaborative development » !!
![Page 3: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/3.jpg)
Framework : collaborative work• Work on the same files
(subversion)• Developers / users – tags, releases• Documentation !• Interaction (bug tracker, ticket system)• Design proposals : design before writing• …
Not a huge success … so far …
New !
![Page 4: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/4.jpg)
GammaWare current situation
Design : avoid (circular) dependancies between libraries
Add-ons for ROOT
DAQ
(PSA, Tracking not in but could be plugged)
![Page 5: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/5.jpg)
« Narval terminology »
Producer
Filter
Consumer
C/C++ code loaded in Narval (ADA)
(single library)
Distributed system : many computers connected by the network
![Page 6: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/6.jpg)
A topology : chain of analysis
![Page 7: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/7.jpg)
« ADF view » : Blocks of Frames
Key, Frame have a name, a type and version numbers
Ex: « agata » , « data:psa », (1,0)
Strongly processed data flow likely to change over the years (version !!)
![Page 8: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/8.jpg)
DataFrame
ConfigurationFrame
CompositeFrame : made of three DataFrame
An .adf data flow or file
Agat
a Ke
ysFr
ames
Full definition of the DataFlow !!
agata0xFA0000000xFF000000 conf0xFA0002000xFF000F00conf:global0xFA0002000xFFFFFFFF conf:crystal0xFA0102010xFFFFFFFF conf:psa0xFA0102020xFFFFFFFF conf:ranc00xFA0102A00xFFFFFFFF conf:ranc10xFA0102A10xFFFFFFFF conf:ranc20xFA0102A20xFFFFFFFF data0xFA0001000xFF000F00 data:crystal0xFA0101010xFFFFFFFFdata:ccrystal0xFA0101110xFFFFFFFF data:psa0xFA0101020xFFFFFFFF event:data:psa0xFA0101030xFFFFFFFF event:data0xFA0101040xFFFFFFFF data:tracked0xFA0101050xFFFFFFFFdata:ranc00xFA0101A00xFFFFFFFF data:ranc10xFA0101A10xFFFFFFFF data:ranc20xFA0101A20xFFFFFFFF meta0xFA0011000xFF00FF00meta:vertex0xFA0111000xFFFFFFFF
agata0xFA000000 conf
0xFA000200conf:global0xFA000200data
0xFA000100data:crystal0xFA010100data:ccrystal0xFA010111data:psa
0xFA010102event:data:psa0xFA010103event:data0xFA010104data:tracked0xFA010105data:ranc00xFA0101A0meta
0xFA001100meta:vertex0xFA011100
![Page 9: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/9.jpg)
Agata Data Flow @ different stages
![Page 10: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/10.jpg)
Actions on an Agata Data FlowComplex Data Flow BUT an algorithm just needs the Frames it
could processed !! DFTrigger
![Page 11: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/11.jpg)
Algorithm
DataFlow Reader … (reconfiguration)
Trigger
Frames
Frames
Owne
d by
Trig
ger
Fram
e are
shar
ed ob
jects
!!
![Page 12: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/12.jpg)
Actions on an Agata Data FlowDefinition of a DFTrigger
AgataFrameTrigger *t = new AgataFrameTrigger(“OnTrackAndAncillary“);
SharedFP *sfp_event = t->Add(”event:data” …, IsConsumed , … );
SharedFP *sfp_track = t->Add(”data:tracked”, …, IsConsumed , … );
SharedFP *sfp_anc0 = t->Add(”data:ranc0”, …, IsConsumed , … );
t->SetOutputFrame( … );
New !
Reconfiguration of the Data Flow, pointers likely to be deleted :
SharedFP are safeA given version of an algorithm works with some versions of Frames :
controled with SharedFP virtual void SetKeyChangeFunction( … )virtual void SetFrameChangeFunction( … )
![Page 13: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/13.jpg)
The DataInterface
![Page 14: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/14.jpg)
Communications Narval - ADF
ActorInput Data Output Data
Log GRU
Set/GetGlobalParameters()
Algo_pathWatchers
messages spectra
conf filesOutput Data
from time to time ..
Online / offline !
![Page 15: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/15.jpg)
Emulators
Simple topology could be emulated without Narval (see in gammaware) :
src/adf/dev/test0.1.csrc/adf/dev/test0.2.cdemos/adf/Emulator.C
+ … others (Joa)
c programsROOT macros
![Page 16: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/16.jpg)
Watchers on a Trigger Watcher, WatcherWithTags :
Base classes for a watcher
FrameDispacher (consumer) :Dispatchs a Frame (trigger) to Watchers
WatcherClient (emulator) :Collects a data block and sends it to a
FameDispatcher
class MyWatcher : public Watcher{… Watcher( … );… virtual void Exec( … );…}
Declaration of spectra !Fill them !
![Page 17: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/17.jpg)
Dump Frames on files
Check Keys
Signals from the crystals
Fold, singles and gamma-gamma
matrix
Rate in Crystals (core/segments)
WatcherClients (FrameDispacher)
![Page 18: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/18.jpg)
From the just finished experiment
Watcher on any Frame (AgataKey)
![Page 19: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/19.jpg)
From the just finished experiment
Watcher on event:data:psa (RateDisplay)
![Page 20: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/20.jpg)
From the just finished experiment
![Page 21: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/21.jpg)
From the just finished experiment
Doppler correction available (VertexFrame) …. to be implemented …
Watcher on data:tracked (Coinc2D)
![Page 22: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/22.jpg)
From the just finished experiment
Watcher ShowSignals on almost real online data !!!
![Page 23: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/23.jpg)
From the just finished experiment
Watcher TrackDisplay on almost real online data !!!
![Page 24: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/24.jpg)
Other parts of the GammaWare
• SpectrumPlayer• LevelSchemePlayer• Graphical Fit• Spectra converters• All ROOT facilities for free !
• γ-γ interactive gating … (to be revisited)
![Page 25: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/25.jpg)
Conclusions & perspectives
• More stabilities• More tests/benchmarks• More documentations• New « fast » features (« anti-trigger »)• LevelShemePlayer • New watchers ?
• What else ?
• Long term evolutions ?
Postdoc in Lyon
![Page 26: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/26.jpg)
Coinc2D::Coinc2D() : TrackedWatcher("Coinc2D","Check singles and build a gamma-gamma matrix"),fSingles(0x0),fSinglesDoppler(0x0),fFold(0x0),fGxG(0x0)
{fSingles = new TH1F("Singles","Singles",6000,0,6000);AddToPool(fSingles);fSinglesDoppler = new TH1F("SinglesDoppler","Singles with Doppler correction",6000,0,6000);TagOn(fSinglesDoppler);AddToPool(fSinglesDoppler);fFold = new TH1F("Fold","Fold distributions",10,0,10);TagOn(fFold);AddToPool(fFold);fGxG = new TH2F("GxG","Gamma Gamma matrix",2000,0,1000,2000,0,1000);AddToPool(fGxG);
}void Coinc2D::Exec(Option_t */*option*/) {
const GammaTrackedInterface *data = GetCstDataPointer<GammaTrackedInterface>(fFrame);
// now fill histogramsUInt_t fold = data->GetNbGamma();fFold->Fill( fold );for (UShort_t i = 0u; i < fold; i++) {
const TrackedHit *gamma1 = data->GetGamma(i); Double_t edc1 = VertexWatcher::theCurrentVertex()->DopplerCorrection(gamma1);fSingles->Fill(gamma1->GetE());fSinglesDoppler->Fill(edc1);for (UShort_t j = i+1u; j < fold; j++) {
const TrackedHit *gamma2 = data->GetGamma(j); Double_t edc2 = VertexWatcher::theCurrentVertex()-
>DopplerCorrection(gamma2);fGxG->Fill(edc1,edc2); fGxG->Fill(edc2,edc1);
}}
}
![Page 27: The GammaWare package](https://reader036.vdocuments.net/reader036/viewer/2022062410/56816628550346895dd98678/html5/thumbnails/27.jpg)
ConfAgent and ADF.conf#////ADF::ConfAgent_beg//// Agata 1 Init# `Endian: kLittle#KeyFactory: DefaultKeyFactory: Agata#FrameFactory: Agata# PrimaryKey: Default FS 0 1 #AutoConf: Agata conf:global 2 0 Agata conf:global 0 0##////ADF::ConfAgent_end//// #////ADF::AgataKeyFactory_beg//// InitAgata 0xFA0000000xFF000000Conf 0xFA0002000xFF00FF00conf:global 0xFA0002000xFFFFFFFF conf:crysta l0xFA0102010xFFFFFFFF conf:psa 0xFA0102020xFFFFFFFF Data 0xFA0100000xFFFF0000 data:crystal 0xFA0101010xFFFFFFFF data:psa 0xFA0101020xFFFFFFFF event:data:psa 0xFA0101030xFFFFFFFF event:data 0xFA0101040xFFFFFFFFdata:tracked 0xFA0101050xFFFFFFFF##////ADF::AgataKeyFactory_end////#
# Current Frames going through the data flow###Frame: Agata agata 2 0 Agata agata 0 0Frame: Agata data:tracked 2 0 Agata data:tracked 65000 1Frame: Agata data:crystal 2 0 Agata data:crystal 65000 0
+
One in the distributionOne in the algo path
+ Full definition of the Keys(for the Keyfactory)