// ESAF : Euso Simulation and Analysis Framework // $Id: ChipTrackingTrgEngine1.hh,v 1.8 2005/10/24 09:06:42 pesce Exp $ // R. Pesce created // Special multiple configurations is built directly inside /***************************************************************************** * ESAF: Euso Simulation and Analysis Framework * * * * Id: ChipTrackingTrgEngine1 * * Package: Electronics * * Coordinator: Marco.Pallavicini * * * *****************************************************************************/ #ifndef __CHIPTRACKINGTRGENGINE1_HH_ #define __CHIPTRACKINGTRGENGINE1_HH_ #include "euso.hh" #include "TriggerEngine.hh" #include "ChipTrackSegment.hh" /////////////////////////////////////////////////////////////////////////////// // // // ChipTrackingTrgEngine1 // // // // Tracking trigger built in front end chip logic. // // // // ALGORYTHM: // // each chip is capable of finding a track segment of consequtive and // // adjacent pixels. // // If the length of a given segment exceeds a threshold, trigger occurs // // If not, the macrocell checks if there are 2 segments in nearby front end // // chips that summed together exceed the threshold: if this happens, trigger // // occurs. // // // // Special multiple configurations is built directly inside // // A specific trigger word is filled respect to the length of recognized // // tracks. // // // /////////////////////////////////////////////////////////////////////////////// class ChipTrackingTrgEngine1 : public TriggerEngine { public: // ctor ChipTrackingTrgEngine1(); // dtor virtual ~ChipTrackingTrgEngine1(); // simulate trigger virtual void Simulate( MacroCellData* ); protected: // ctor for child classes ChipTrackingTrgEngine1( string, ETriggerTypeIdentifier ); // trigger parameters Bool_t fRelativeThreshold; // true if the threshold is relative to the mean value // of the background in each chip: thresh = back + n*sqrt(back) Int_t fThreshold; // threshold on pixel hits in a gtu or value of n for relative thresholds Int_t fMinTrackLength; // algorithm searches for tracks of length between Int_t fMaxTrackLength; // fMinTrackLength and fMaxTriggerTrackLength Int_t fMinTriggerTrackLength; // min trigger track length in a single chip Int_t fMinTriggerTwoLength; // min trigger track length in two nearby chips Int_t fMaxTwoLength; // max length for trigger in two nearby chips Bool_t fAcceptHole; // true if we accept an hole in a track in a single chip Bool_t fOnlyWithSignal; // if true processes only chip with signal // counter for trigger pattern type to insert in the triggerword Int_t fPatternCounter; // clear maps virtual void Clear(); // fill run parameters void FillRunPars(); // fill root event virtual void FillEEvent( Int_t ); // dump the number of tracks for each chip virtual void Dump( Int_t ); map > fTrackSegments; //map for storing data private: EsafConfigClass(Electronics,ChipTrackingTrgEngine1); ClassDef(ChipTrackingTrgEngine1,0) }; #endif /* __CHIPTRACKINGTRGENGINE1_HH_ */