The GammaWare package - PowerPoint PPT Presentation

teness
the gammaware package n.
Skip this Video
Loading SlideShow in 5 Seconds..
The GammaWare package PowerPoint Presentation
Download Presentation
The GammaWare package

play fullscreen
1 / 27
Download Presentation
The GammaWare package
78 Views
Download Presentation

The GammaWare package

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. The GammaWare package (including ADF) Olivier Stézowski (on behalf of the Data Analysis Team) Data Analysis Workshop, Legnaro, November 9-10 2009

  2. Evolution of the package DAQ Protoype: Simu from LS Interface GEANT4 generators ADF Library 2004 2009 • Organisation: • Serveur SVN • Doc • Bugtracker • … Core library / tools / Interface to other frameworks + … « Collaborativedevelopment » !!

  3. Framework : collaborative work • Work on the same files (subversion) • Developers / users – tags, releases • Documentation ! • Interaction (bug tracker, ticket system) • Design proposals : design beforewriting • … • Not a hugesuccess … so far … New !

  4. Add-ons for ROOT DAQ GammaWarecurrent situation (PSA, Tracking not in but couldbeplugged) Design : avoid (circular) dependanciesbetweenlibraries

  5. Producer C/C++ code loaded in Narval (ADA) (single library) Filter « Narval terminology » Consumer Distributed system : many computers connected by the network

  6. A topology : chain of analysis

  7. Key, Frame have a name, a type and version numbers Ex: « agata » , « data:psa », (1,0) Stronglyprocessed data flow likely to change over the years (version !!) « ADF view » : Blocks of Frames

  8. agata 0xFA000000 conf 0xFA000200 conf:global 0xFA000200 data 0xFA000100 data:crystal 0xFA010100 data:ccrystal 0xFA010111 data:psa 0xFA010102 event:data:psa 0xFA010103 event:data 0xFA010104 data:tracked 0xFA010105 data:ranc0 0xFA0101A0 meta 0xFA001100 meta:vertex 0xFA011100 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 Agata Keys DataFrame ConfigurationFrame Frames CompositeFrame : made of threeDataFrame An .adf data flow or file Full definition of the DataFlow !!

  9. Agata Data Flow @ different stages

  10. Actions on an Agata Data Flow Complex Data Flow BUTan algorithmjustneeds the Frames itcouldprocessed !! DFTrigger

  11. Algorithm Frames Trigger Frame are sharedobjects !! Owned by Trigger Frames DataFlow Reader … (reconfiguration)

  12. Actions on an Agata Data Flow Definition 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 bedeleted : SharedFP are safe A given version of an algorithmworkswithsome versions of Frames : controledwithSharedFP virtualvoidSetKeyChangeFunction( … ) virtualvoidSetFrameChangeFunction( … )

  13. TheDataInterface

  14. Communications Narval - ADF Set/GetGlobalParameters() messages spectra Log GRU Actor Input Data Output Data from time to time .. Output Data Algo_path conf files Watchers Online / offline !

  15. Emulators Simple topologycouldbeemulatedwithout Narval (see in gammaware) : src/adf/dev/test0.1.c src/adf/dev/test0.2.c demos/adf/Emulator.C + … others (Joa) c programs ROOT macros

  16. Watchers on a Trigger classMyWatcher : publicWatcher { … Watcher( … ); … virtualvoidExec( … ); … } Watcher, WatcherWithTags : Base classes for a watcher FrameDispacher (consumer) : Dispatchs a Frame (trigger) to Watchers WatcherClient (emulator) : Collects a data block and sendsit to a FameDispatcher Declaration of spectra ! Fillthem !

  17. WatcherClients (FrameDispacher) Dump Frames on files Check Keys Signalsfrom the crystals Fold, singles and gamma-gammamatrix Rate in Crystals (core/segments)

  18. From the justfinishedexperiment Watcher on any Frame (AgataKey)

  19. From the justfinishedexperiment Watcher on event:data:psa (RateDisplay)

  20. From the justfinishedexperiment

  21. From the justfinishedexperiment Watcher on data:tracked (Coinc2D) Doppler correction available (VertexFrame) …. to beimplemented …

  22. From the justfinishedexperiment WatcherShowSignals on almost real online data !!!

  23. From the justfinishedexperiment WatcherTrackDisplay on almost real online data !!!

  24. Other parts of the GammaWare • SpectrumPlayer • LevelSchemePlayer • Graphical Fit • Spectraconverters • All ROOT facilities for free ! • γ-γ interactive gating … (to berevisited)

  25. Conclusions & perspectives • More stabilities • More tests/benchmarks • More documentations • New « fast » features (« anti-trigger ») • LevelShemePlayer • New watchers ? • Whatelse ? • Long termevolutions ? Postdoc in Lyon

  26. 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); } voidCoinc2D::Exec(Option_t */*option*/) { constGammaTrackedInterface *data = GetCstDataPointer<GammaTrackedInterface>(fFrame); // nowfillhistograms UInt_tfold = data->GetNbGamma(); fFold->Fill( fold ); for (UShort_ti = 0u; i < fold; i++) { constTrackedHit *gamma1 = data->GetGamma(i); Double_t edc1 = VertexWatcher::theCurrentVertex()->DopplerCorrection(gamma1); fSingles->Fill(gamma1->GetE()); fSinglesDoppler->Fill(edc1); for (UShort_tj = i+1u; j < fold; j++) { constTrackedHit *gamma2 = data->GetGamma(j); Double_t edc2 = VertexWatcher::theCurrentVertex()->DopplerCorrection(gamma2); fGxG->Fill(edc1,edc2); fGxG->Fill(edc2,edc1); } } }

  27. ConfAgent and ADF.conf One in the distribution One in the algopath #////ADF::ConfAgent_beg//// Agata 1 Init # ` Endian: kLittle # KeyFactory: Default KeyFactory: 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//// Init Agata 0xFA000000 0xFF000000 Conf 0xFA0002000 xFF00FF00 conf:global 0xFA000200 0xFFFFFFFF conf:crysta l0xFA010201 0xFFFFFFFF conf:psa 0xFA010202 0xFFFFFFFF Data 0xFA010000 0xFFFF0000 data:crystal 0xFA010101 0xFFFFFFFF data:psa 0xFA010102 0xFFFFFFFF event:data:psa 0xFA010103 0xFFFFFFFF event:data 0xFA010104 0xFFFFFFFF data:tracked 0xFA010105 0xFFFFFFFF # #////ADF::AgataKeyFactory_end//// # # Current Frames goingthrough the data flow # # #Frame: Agata agata 2 0 Agata agata 0 0 Frame: Agata data:tracked 2 0 Agata data:tracked 65000 1 Frame: Agata data:crystal 2 0 Agata data:crystal 65000 0 + Full definition of the Keys (for the Keyfactory) +