Docker-in-Docker (DinD) capabilities of public runners deactivated. More info

Commit fa143bed authored by dino's avatar dino
Browse files

Added spectrum of segments Track__22-36-16384-UI__SG.spec in TrackingFilter

Quite a lot of refactoring on the use of MultiHist spectra

git-svn-id: svn://gal-serv.lnl.infn.it/agata/trunk/narval_emulator@1214 170316e4-aea8-4b27-aad4-0380ec0519c9
parent c3a20f30
......@@ -96,8 +96,9 @@ DISPATCHER EventBuilder pseudo actor to connect the output of the ch
#include "PostPSAFilter.h" // 34 340
#ifdef ENABLE_GLOBAL_FILTER
#include "GlobalFilter.h" // 35 350
#endif
// 4 CONSUMER
// None // 40 400 fake, used as last of a chain
#include "BasicAFC.h" // 41 410 no mother-daughter model
......@@ -809,9 +810,11 @@ void listKeysAndExit()
pe1->GetParameters("", true);
delete pe1;
#ifdef ENABLE_GLOBAL_FILTER
GlobalFilter *pf4 = new GlobalFilter;
pf4->GetParameters("", true);
delete pf4;
#endif
TrackingFilter *pf5 = new TrackingFilter;
pf5->GetParameters("", true);
......@@ -1014,6 +1017,7 @@ bool topologyConfNew()
}
ELSE_UNKNOWNCLASS(nc);
}
#ifdef ENABLE_GLOBAL_FILTER
// 35
else if(pActor->libName == "GlobalFilter") {
cout << "GlobalFilter ..." << endl;
......@@ -1026,6 +1030,7 @@ bool topologyConfNew()
}
ELSE_UNKNOWNCLASS(nc);
}
#endif
ELSE_UNKNOWNCLASS(nc);
break;
case CONSUMER: //// 4
......@@ -1273,6 +1278,7 @@ bool topologyConfNew()
pActor->nrvPointer = new PostPSAFilter;
pActor->libItem = 6;
}
#ifdef ENABLE_GLOBAL_FILTER
else if(pActor->libName == "GlobalFilter") {
cout << "GlobalFilter ..." << endl;
GlobalFilter::process_config(pActor->libConf.c_str(), &error_config);
......@@ -1284,6 +1290,7 @@ bool topologyConfNew()
cout << "Unknown class [ " << nc << " " << nc << " ] " << pActor->libName << endl;
return false;
}
#endif
break;
case CONSUMER:
if(pActor->libName == "None" || pActor->libName == "none") {
......
......@@ -47,13 +47,6 @@ EventBuilder::EventBuilder(std::string name, unsigned int nque) :
fActualClass = gActualClass = name;
fUseMultiHist = true;
#ifdef EVB_MULTIHIST
EvbSpecTdiff = NULL;
EvbSpecTAC = NULL;
EvbSpecRate = NULL;
EvbTqueue = NULL;
sTstamps = NULL;
#endif //EVB_MULTIHIST
minTstamp = 0;
numKeys = 0;
......@@ -297,8 +290,7 @@ void EventBuilder::Process(void *obuffer, unsigned int osize, unsigned int *used
}
else {
#ifdef EVB_MULTIHIST
// before moving it out, increment the tstamp-diff spectrum
{
{ // before moving it out, increment the tstamp-diff spectrum
int tq = int(evQue[nn].getTstamp() - minTstamp);
if(EvbSpecTdiff && nn != minChain)
EvbSpecTdiff->Incr(tq);
......@@ -695,46 +687,9 @@ bool EventBuilder::InitBuilder()
detailedValidation = evTstampMin>0 || evTstampMax<(~1ULL+1) || tStampFilter;
#ifdef EVB_MULTIHIST
if(fUseMultiHist) {
hGroup.remove();
EvbSpecTdiff = new MultiHist<unsigned int>(2000);
EvbSpecTdiff->setFileName(fOdirPrefix+"Evb?"+gActualClass+".spec");
EvbSpecTdiff->setComment("timestamp differences");
hGroup.add(EvbSpecTdiff);
if(fDetails&1) {
std::ostringstream sfn;
sfn << "Evb_tqueues__0-" << nQueues+2 << "-UI__";
sTstamps = new sAppend<UInt_t>(fOdirPrefix+sfn.str()+gActualClass+".bdat", 10000*nQueues );
}
if(fDetails&4) {
EvbSpecTAC = new MultiHist<unsigned int>(nQueues, nQueues, specTacSize);
EvbSpecTAC->setFileName(fOdirPrefix+"Evb?TS.spec");
EvbSpecTAC->setComment("timestamp differences, pairwise");
hGroup.add(EvbSpecTAC);
}
if(tStampStep && tStampSize>0) {
EvbSpecRate = new MultiHist<unsigned int>(tStampSize);
ostringstream com;
com << tStampStep;
EvbSpecRate->setFileName(fOdirPrefix+"Evb?Rate_"+com.str()+".spec");
EvbSpecRate->setComment("events/"+com.str()+" timestamp units");
hGroup.add(EvbSpecRate);
}
EvbTqueue = new std::pair<int, int> [nQueues+2]; // some guard
}
#endif //EVB_MULTIHIST
InitMultiHist();
cServer.SetCommandFile(GetConfPath() + gActualClass + ".live");
#ifdef EVB_MULTIHIST
cServer.SetHistGroup(&hGroup);
#endif //EVB_MULTIHIST
cServer.Start(gActualClass);
......@@ -764,10 +719,10 @@ UInt_t EventBuilder::GetParameters(const std::string& confFile, Bool_t doList)
conf.Add("NoMultiHist", "exclude flat binary spectra", &fUseMultiHist);
conf.Add("Verbose", "verbosity of printouts", &fVerbose);
conf.Info("Keyword 'BuilderType' is deprecated and will be removed soon.");
conf.Info("Keyword 'BuilderType' is deprecated and will be removed");
conf.Info("The coincidence window should be defined using the keyword");
conf.Info("'TstampWindow width' for EventBuilder behaviour or");
conf.Info("'TstampWindow from to' for EventMerger behaviour");
conf.Info("'TstampWindow width' for EventBuilder behaviour");
conf.Info("'TstampWindow from to' for EventMerger behaviour");
// refine behaviour
conf.Require("BuilderType", 2);
......@@ -1037,3 +992,52 @@ void EventBuilder::PrintDFAgentKeys(std::string)
}
#endif // #ifdef EVB_INHERITS_FROM_NARVAL_PRODUCER # else
#ifdef EVB_MULTIHIST
void EventBuilder::InitMultiHist()
{
EvbSpecTdiff = NULL;
EvbSpecTAC = NULL;
EvbSpecRate = NULL;
EvbTqueue = NULL;
sTstamps = NULL;
if(!fUseMultiHist)
return;
hGroup.remove();
EvbSpecTdiff = new MultiHist<unsigned int>(2000);
EvbSpecTdiff->setFileName(fOdirPrefix+"Evb?"+gActualClass+".spec");
EvbSpecTdiff->setComment("timestamp differences");
hGroup.add(EvbSpecTdiff);
if(fDetails&1) {
std::ostringstream sfn;
sfn << "Evb_tqueues__0-" << nQueues+2 << "-UI__";
sTstamps = new sAppend<UInt_t>(fOdirPrefix+sfn.str()+gActualClass+".bdat", 10000*nQueues );
}
if(fDetails&4) {
EvbSpecTAC = new MultiHist<unsigned int>(nQueues, nQueues, specTacSize);
EvbSpecTAC->setFileName(fOdirPrefix+"Evb?TS.spec");
EvbSpecTAC->setComment("timestamp differences, pairwise");
hGroup.add(EvbSpecTAC);
}
if(tStampStep && tStampSize>0) {
EvbSpecRate = new MultiHist<unsigned int>(tStampSize);
ostringstream com;
com << tStampStep;
EvbSpecRate->setFileName(fOdirPrefix+"Evb?Rate_"+com.str()+".spec");
EvbSpecRate->setComment("events/"+com.str()+" timestamp units");
hGroup.add(EvbSpecRate);
}
EvbTqueue = new std::pair<int, int> [nQueues+2]; // some guard
cServer.SetHistGroup(&hGroup);
}
#endif //EVB_MULTIHIST
......@@ -27,8 +27,7 @@
// To allow going back to a self standing class, the simplifications (e.g. stop using separate pointers
// in the class actor and unification of process_start, process_stop, ...) are not done fully.
// The event-number has never been used and it would makes sense to remove it completely from the event builder
// The event-number has never been used and it would make sense to remove it completely from the event builder
#define EVB_INHERITS_FROM_NARVAL_PRODUCER
......@@ -107,14 +106,6 @@ public:
Int_t numKeys;
bool fUseMultiHist;
#ifdef EVB_MULTIHIST
MultiHist<unsigned int> *EvbSpecTdiff;
MultiHist<unsigned int> *EvbSpecTAC;
MultiHist<unsigned int> *EvbSpecRate;
MultiHistGroup hGroup; // used to record the pointers of all defined MultiHist spectra
std::pair<int, int> *EvbTqueue; // detID and timestamp of the front events, to produce the pairwise TAC spectra
sAppend<UInt_t> *sTstamps; // time differences among the event queues seen by the tstamp-based event builder
#endif //EVB_MULTIHIST
CycleServer cServer; // manager of cyclic operations for this EventBuilder
......@@ -198,6 +189,18 @@ public:
protected:
virtual Int_t AlgoInitialise() {return 0;}
#ifdef EVB_MULTIHIST
MultiHistGroup hGroup; // used to record the pointers of all defined MultiHist spectra
MultiHist<unsigned int> *EvbSpecTdiff;
MultiHist<unsigned int> *EvbSpecTAC;
MultiHist<unsigned int> *EvbSpecRate;
std::pair<int, int> *EvbTqueue; // detID and timestamp of the front events, to produce the pairwise TAC spectra
sAppend<UInt_t> *sTstamps; // time differences among the event queues seen by the tstamp-based event builder
void InitMultiHist();
#else
void InitMultiHist() {}
#endif //EVB_MULTIHIST
};
#endif // EVENTBUILDER_H_INCLUDED
......@@ -8,6 +8,7 @@
#include "commonDefs.h"
#include "Misc.h"
#ifdef MULTIHIST_SPECTRA
# include "MultiHist.h"
#endif
......
......@@ -105,15 +105,15 @@ bool adetParams::ReadCalibCoeffs(std::string setupFile, bool verbose)
if(readOK) {
if(tntFactor) {
// gainTrace = gainEnergy*preampFall*trapezRise/tntFactor;
for(int nn = 0; nn < NSG; nn++) {
for(int nn = 0; nn < kNSG; nn++) {
pSG[nn].sgain = pSG[nn].egain * pSG[nn].tfall * pSG[nn].trise / tntFactor;
}
for(int nn = 0; nn < NCC; nn++) {
for(int nn = 0; nn < kNCC; nn++) {
pCC[nn].sgain = pCC[nn].egain * pCC[nn].tfall * pCC[nn].trise / tntFactor;
}
}
if(bSegEmin) {
for(int nn = 0; nn < NSG; nn++) {
for(int nn = 0; nn < kNSG; nn++) {
pSG[nn].emink = max(vSegEmin, pSG[nn].emink);
}
}
......@@ -124,8 +124,8 @@ bool adetParams::ReadCalibCoeffs(std::string setupFile, bool verbose)
bool adetParams::GetCalibCoeffs(bool verbose)
{
bool bCC[NCC]; fill_n(bCC, NCC, false);
bool bSG[NSG]; fill_n(bSG, NSG, false);
bool bCC[kNCC]; fill_n(bCC, kNCC, false);
bool bSG[kNSG]; fill_n(bSG, kNSG, false);
int keyCore = Reader.LocateKey("core");
int keySegm = Reader.LocateKey("segm");
......@@ -164,7 +164,7 @@ bool adetParams::GetCalibCoeffs(bool verbose)
return false;
}
ptrKey->GetData(0, id); // id must be first data item
if(id < 0 || id >= NCC) {
if(id < 0 || id >= kNCC) {
cout << "Invalid core id " << id << " in line { " << line << " }" << endl;
return false;
}
......@@ -196,7 +196,7 @@ bool adetParams::GetCalibCoeffs(bool verbose)
return false;
}
ptrKey->GetData(0, id); // id must be first data item
if(id < 0 || id >= NSG) {
if(id < 0 || id >= kNSG) {
cout << "Invalid segment id " << id << " in line { " << line << " }" << endl;
return false;
}
......@@ -228,7 +228,7 @@ bool adetParams::GetCalibCoeffs(bool verbose)
return false;
}
ptrKey->GetData(0, id); // id must be first data item
if(id < 0 || id >= NCC) {
if(id < 0 || id >= kNCC) {
cout << "Invalid trigger channel in line { " << line << " }" << endl;
return false;
}
......@@ -269,8 +269,8 @@ bool adetParams::GetCalibCoeffs(bool verbose)
bool adetParams::ReadRecalCoeffs(std::string setupFile, bool verbose)
{
// preset to no-recalibration
for(int nn = 0; nn < NCC; nn++) { pCC[nn].eoffs = 0; pCC[nn].egain = 1.; }
for(int nn = 0; nn < NSG; nn++) { pSG[nn].eoffs = 0; pSG[nn].egain = 1.; }
for(int nn = 0; nn < kNCC; nn++) { pCC[nn].eoffs = 0; pCC[nn].egain = 1.; }
for(int nn = 0; nn < kNSG; nn++) { pSG[nn].eoffs = 0; pSG[nn].egain = 1.; }
// get the whole file
if( !Reader.ImportFile(setupFile) || Reader.NumLines()==0 )
......@@ -324,8 +324,8 @@ bool adetParams::ReadXtalkCoeffs(std::string cname, bool verbose)
const float nonvalid = -1.e20f;
for(segseen = 0; segseen < NSG; segseen++) {
for(seggate = 0; seggate < NSG; seggate++) {
for(segseen = 0; segseen < kNSG; segseen++) {
for(seggate = 0; seggate < kNSG; seggate++) {
xTalkProp[segseen][seggate] = nonvalid;
}
}
......@@ -338,13 +338,13 @@ bool adetParams::ReadXtalkCoeffs(std::string cname, bool verbose)
nn = 0;
// victim aggressor value
while(fscanf(tfp, "%d %d %f", &segseen, &seggate, &xx) == 3) {
if(seggate < 0 || seggate >= NSG || segseen < 0 || segseen >= NSG) {
if(seggate < 0 || seggate >= kNSG || segseen < 0 || segseen >= kNSG) {
printf("\nWrong channel number: %d %d %f\n", seggate, segseen, xx);
return false;
}
xTalkProp[segseen][seggate] = xx;
if(verbose) {
if((segseen%NSLIC) == 0) {
if((segseen%kNSLIC) == 0) {
if(nn != 0) printf("\n");
if(segseen == 0) printf("%3d", seggate);
else printf(" ");
......@@ -357,15 +357,15 @@ bool adetParams::ReadXtalkCoeffs(std::string cname, bool verbose)
if(verbose) printf("\n");
fclose(tfp);
if(nn != NSG*NSG) {
cout << "Expecting " << NSG*NSG << " values; found only " << endl;
if(nn != kNSG*kNSG) {
cout << "Expecting " << kNSG*kNSG << " values; found only " << endl;
return false;
}
// testing that all were really present
int notgiven = 0;
for(segseen = 0; segseen < NSG; segseen++) {
for(seggate = 0; seggate < NSG; seggate++) {
for(segseen = 0; segseen < kNSG; segseen++) {
for(seggate = 0; seggate < kNSG; seggate++) {
if(xTalkProp[segseen][seggate] <= nonvalid) {
printf("%3d %3d not given\n", segseen, seggate);
notgiven++;
......@@ -376,7 +376,7 @@ bool adetParams::ReadXtalkCoeffs(std::string cname, bool verbose)
cout << notgiven << " not given or repeated values" << endl;
return false;
}
cout << "Found all " << NSG*NSG << " expected values" << endl;
cout << "Found all " << kNSG*kNSG << " expected values" << endl;
doEcalXT = true;
return true;
......@@ -390,12 +390,12 @@ void adetParams::CalcDifferentialXtalk(float xfactor)
{
// average of non neighbours; we could recover a few more
// values by not fully rejecting the left and right sector
for(int n1 = 0; n1 < NSG; n1++) {
for(int n1 = 0; n1 < kNSG; n1++) {
float vv = 0;
int nn = 0;
int sector1 = n1/NSLIC;
//int slice1 = n1%NSLIC;
for(int n2 = 0; n2 < NSG; n2++) {
for(int n2 = 0; n2 < kNSG; n2++) {
int sector2 = n2/NSLIC;
//int slice2 = n2%NSLIC;
int secdist = (sector2>sector1) ? (sector2-sector1) : (sector1-sector2);
......@@ -413,8 +413,8 @@ void adetParams::CalcDifferentialXtalk(float xfactor)
// differential cross talk taken from the difference between average and actual
// diagonals set to 0
// gain factor for the correction has to be adjusted
for(int n1 = 0; n1 < NSG; n1++) {
for(int n2 = 0; n2 < NSG; n2++) {
for(int n1 = 0; n1 < kNSG; n1++) {
for(int n2 = 0; n2 < kNSG; n2++) {
if(n2==n1 || xTalkProp[n2][n2]==0)
xTalkDiff[n1][n2] = 0;
else
......@@ -460,7 +460,7 @@ bool adetParams::ReadTrappingCal(std::string setupFile, bool verbose)
printf("\nWrong number of parameters (%d instead of %d) in line \n %s \n", np, nPars, line.c_str());
return false;
}
if(ns < 0 || ns >= NSG) {
if(ns < 0 || ns >= kNSG) {
printf("\nWrong segment number (%d) in line \n %s \n", ns, line.c_str());
return false;
}
......@@ -478,8 +478,8 @@ bool adetParams::ReadTrappingCal(std::string setupFile, bool verbose)
}
//if(verbose) printf("\n");
if(nn != NSG) {
cout << "Expecting " << NSG << " values; found only " << nn << endl;
if(nn != kNSG) {
cout << "Expecting " << kNSG << " values; found only " << nn << endl;
return false;
}
......
......@@ -37,35 +37,35 @@ public:
cGainSG(1.f), cGainCC(1.f) {}
};
//template<int NCC, int NSG> // too complicated
//template<int kNCC, int kNSG> // too complicated
class adetParams
{
public:
static const int NCC = 2; // number of core signals
static const int NSG = 36; // total number of segments
static const int NSLIC = 6; // number of slices (faster index, front-to-back)
static const int NSECT = 6; // number of sectors (slower index, around crystal axis)
achannel_t pCC[NCC]; // parameters of the cores
achannel_t pSG[NSG]; // parameters of the segments
//int nCC; // number of core channels : in principle can be made smaller than NCC
//int nSG; // number of segments: in principle can be made smaller than NSG
static const int kNCC = 2; // number of core signals
static const int kNSG = 36; // total number of segments
static const int kNSLIC = 6; // number of slices (faster index, front-to-back)
static const int kNSECT = 6; // number of sectors (slower index, around crystal axis)
achannel_t pCC[kNCC]; // parameters of the cores
achannel_t pSG[kNSG]; // parameters of the segments
//int nCC; // number of core channels : in principle can be made smaller than kNCC
//int nSG; // number of segments: in principle can be made smaller than kNSG
float vtrig; // discriminator level (meaningful only for cores)
int itrig; // which core is triggering
float tntFactor; // usually 2^21 = 2097152; if==0 traces get the same gain as energies
float vSegEmin; //
bool bSegEmin; // flag to apply vSegEmin
bool doEcalXT; // flag to enable this correction
float xTalkProp[NSG][NSG]; // proportional cross-talk
//float xTalkAver[NSG]; // average proportional xTalk
//float xTalkDiff[NSG][NSG]; // differential cross-talk
float xTalkProp[kNSG][kNSG]; // proportional cross-talk
//float xTalkAver[kNSG]; // average proportional xTalk
//float xTalkDiff[kNSG][kNSG]; // differential cross-talk
adetParams() : /*nCC(NCC), nSG(NSG),*/
vtrig(-1000.f), itrig(0), tntFactor(2097152.f),
adetParams() : vtrig(-1000.f), itrig(0), tntFactor(2097152.f),
vSegEmin(0), bSegEmin(false), doEcalXT(false)
{
for(int nn = 0; nn < NCC; nn++)
for(int nn = 0; nn < kNCC; nn++)
pCC[nn].myID = nn;
for(int nn = 0; nn < NSG; nn++)
for(int nn = 0; nn < kNSG; nn++)
pSG[nn].myID = nn;
memset(xTalkProp, 0, sizeof(xTalkProp));
//memset(xTalkDiff, 0, sizeof(xTalkDiff));
......
......@@ -142,7 +142,6 @@ const int defTriggerSample = 10; // 60-10=50 samples passed to the PSA
#endif
#define PSA_MULTIHIST // enable MultiHist spectra
//#define PSA_FromGRU // enable GRU/ViGRU
///////////////////////////////
//////// PostPSAFilter ////////
......@@ -168,17 +167,6 @@ const int defTriggerSample = 10; // 60-10=50 samples passed to the PSA
#define NUMGEDETS 20 // default number of crystals, used to define size of structures in the global level filters
//////////////////////////
////// GlobalFilter //////
//////////////////////////
//#define GLF_ROOTTREE // enable the root tree in this actor (ENABLED IN THE MAKEFILE)
//#define GLF_WRITE_TRACKED // enable writing the tracked gammas into the Oft_TrackedEnergies ascii file
//#define GLF_WRITE_GSORT // enable writing input and tracked data in gasp format
#define GLF_WRITE_HITS_MGT // enable writing the input hits in mgt format
#define GLF_MULTIHIST // enable MultiHist spectra
//#define GLF_FromGRU // enable GRU/ViGRU
////////////////////////////
////// TrackingFilter //////
////////////////////////////
......@@ -190,6 +178,21 @@ const int defTriggerSample = 10; // 60-10=50 samples passed to the PSA
#define TRF_MULTIHIST // enable MultiHist spectra
//#define TRF_FromGRU // enable GRU/ViGRU
#define ENABLE_GLOBAL_FILTER // enable GlobalFilter ==> be aware that most likely this is out of date
#ifdef ENABLE_GLOBAL_FILTER
//////////////////////////
////// GlobalFilter //////
//////////////////////////
//#define GLF_ROOTTREE // enable the root tree in this actor (ENABLED IN THE MAKEFILE)
//#define GLF_WRITE_GSORT // enable writing input and tracked data in gasp format
#define GLF_WRITE_HITS_MGT // enable writing the input hits in mgt format
#define GLF_MULTIHIST // enable MultiHist spectra
#endif //#ifdef ENABLE_GLOBAL_FILTER
///////////////////////////////////
////// The WinCtest Emulator //////
///////////////////////////////////
......
......@@ -78,6 +78,8 @@ fTrigger("data:ranc0")
fTstampFilterId = -1;
fTstampFilter = NULL;
fUseMultiHist = true;
stop_called = false;
}
......@@ -181,9 +183,6 @@ void AncillaryFilter::process_initialise ( UInt_t *error_code )
*error_code = AlgoInitialise();
cServer.SetCommandFile(GetConfPath() + gMotherClass + ".live");
#ifdef ANF_MULTIHIST
cServer.SetHistGroup(&hGroup);
#endif //ANF_MULTIHIST
cServer.Start(gMotherClass);
......@@ -409,35 +408,6 @@ bool AncillaryFilter::Decodesetup(bool verbose)
return true;
}
//void AncillaryFilter::process_block( void *input_buffer, UInt_t size_of_input_buffer,
// void *output_buffer, UInt_t size_of_output_buffer,
// UInt_t *used_size_of_output_buffer,
// UInt_t *error_code)
//{
// fBlockIn.SetBlock((Char_t *)input_buffer, size_of_input_buffer);
// fBlockOut.SetBlock((Char_t *)output_buffer, size_of_output_buffer);
//
// *used_size_of_output_buffer = 0;
// //cout << "\n -AncillaryFilter::process_block() [" << stop_called << "] " << size_of_input_buffer << endl ;
//
// if (stop_called) {
// cout << "\n -AncillaryFilter::process_block() returning with stop_called " << endl << endl;
// *used_size_of_output_buffer = 0;
// return;
// }
//
// *error_code = AncillaryFilter::ProcessBlock(fBlockIn, fBlockOut);
//
// *used_size_of_output_buffer = UInt_t(fBlockOut.GetSize());
//
// if (stop_called) {
// cout << "\n -AncillaryFilter::process_block() returning with stop_called " << endl << endl;
// *used_size_of_output_buffer = 0;
// return;
// }
//
//}
UInt_t AncillaryFilter::ProcessBlock (ADF::FrameBlock &inBlock, ADF::FrameBlock &outBlock)
{
if (stop_called) {
......
......@@ -11,14 +11,12 @@
#include <ctime>
#include "NarvalInterface.h"
#include "CrystalFrame.h"
#include "Trigger.h"
#include "Converter.h"
#include "commonDefs.h"
#ifdef ANF_MULTIHIST
# include "MultiHist.h"
#endif
#include "CycleServer.h"
#include "TstampFilter.h"
......@@ -32,6 +30,10 @@
//!Base class for ancillary filters
class AncillaryFilter : public ADF::NarvalFilter
{
public:
static const int kNCC = ADF::CrystalInterface::kNbCores;
static const int kNSG = ADF::CrystalInterface::kNbSegments;
private:
ADF::AgataFrameTrigger fTrigger; // Trigger for the input frame
//ADF::OneBlock fBlockIn;
......@@ -61,9 +63,7 @@ protected:
Float_t *outData;
bool fUseMultiHist;
#ifdef ANF_MULTIHIST
MultiHistGroup hGroup; // used to record the pointers of all defined MultiHist spectra
#endif //ANF_MULTIHIST
CycleServer cServer; // manager of cyclic operations
std::string fOdirPrefix;
......@@ -118,11 +118,6 @@ public:
virtual void process_initialise ( UInt_t *error_code ); //! Constructor implementation
virtual void process_reset ( UInt_t *error_code ); //! Destructor implementation
//virtual void process_block( void *input_buffer, UInt_t size_of_input_buffer,
// void *output_buffer, UInt_t size_of_output_buffer,
// UInt_t *used_size_of_output_buffer,
// UInt_t *error_code);
virtual UInt_t ProcessBlock(ADF::FrameBlock &, ADF::FrameBlock &);
virtual void process_start (UInt_t *error_code);
......
This diff is collapsed.
......@@ -10,6 +10,10 @@
#include "mwdlib.h"