13 #ifndef TRGCDCSegment_FLAG_
14 #define TRGCDCSegment_FLAG_
17 #include "trg/cdc/LUT.h"
18 #include "trg/cdc/Cell.h"
20 #ifdef TRGCDC_SHORT_NAMES
21 #define TCSegment TRGCDCSegment
35 class TRGCDCSegmentHit;
36 class CDCTriggerSegmentHit;
48 const std::string& TSLUTFile,
49 const std::vector<const TRGCDCWire*>&
wires);
57 const std::vector<const TRGCDCWire*>&
wires(
void)
const;
60 std::string
name(
void)
const override;
78 const std::vector<const CDCTriggerSegmentHit*>
storeHits(
void)
const;
109 void dump(
const std::string& message = std::string(
""),
110 const std::string& prefix = std::string(
""))
const override;
126 nStereo(
const std::vector<const TRGCDCSegment*>& list);
129 virtual bool hasMember(
const std::string& a)
const override;
134 void clear(
void)
override;
137 void simulate(
bool clockSimulation,
bool logicLUTFlag,
138 const std::string& cdcCollectionName = std::string(
""),
139 const std::string& tsCollectionName = std::string(
""));
154 std::string tsCollectionName);
174 std::vector<const TRGCDCWireHit*>
_hits;
189 const std::vector<const TRGCDCWire*>&
235 const std::vector<const CDCTriggerSegmentHit*>
Combination of several CDCHits to a track segment hit for the trigger.
A class to represent a wire hit in CDC.
A class to represent a wire in CDC.
A class to use LUTs for TRGCDC.
A class to represent a cell layer.
A class to represent a track segment hit in CDC.
A class to represent a wire in CDC.
std::vector< const TRGCDCWire * > _wires
LookUp Table.
std::vector< const CDCTriggerSegmentHit * > _storeHits
list of DataStore hits.
TRGSignal _signal
Trigger signal.
int priorityPosition(int clk0, int clk1) const
return priority cell position in TSHit for given time window.
void initialize(bool fevtTime)
initilize variables.
int priorityPosition(void) const
return priority cell position in TSHit. 0: no hit, 3: 1st priority, 1: 2nd right, 2: 2nd left
float fastestTime(void) const
return fastest time in TSHit.
void simulateWithoutClock(bool logicLUTFlag)
simulates time-indegrated TF hit
void simulateWithClock(std::string cdcCollectionName, std::string tsCollectionName)
simulates TF hit time-dependently
void simulate(bool clockSimulation, bool logicLUTFlag, const std::string &cdcCollectionName=std::string(""), const std::string &tsCollectionName=std::string(""))
simulates TF hit using wire information.
std::vector< const TRGCDCWireHit * > _hits
Wire hits.
std::string m_TSLUTFileName
TS LUT file name.
TRGCDCLUT * m_TSLUT
LookUp Table. 0: no hit, 1: right, 2: left, 3: not determined.
float priorityTime(void) const
return priority time in TSHit.
static unsigned nStereo(const std::vector< const TRGCDCSegment * > &list)
returns axial segments.
float foundTime(void) const
return found time in TSHit.
const TRGCDCWire * _center
Center wire.
float fastestTime(int clk0) const
fastest time in TSHit that is larger of equal to clk0.
const TRGCDCWire & priority(void) const
returns priority wire.
A class to represent a wire in CDC.
The instance of TRGCDC is a singleton.
A class to represent a digitized signal. Unit is nano second.
A class to represent a digitized signal. Unit is nano second.
virtual bool hasMember(const std::string &a) const override
returns true this has member named a.
const TRGCDCWire & center(void) const
returns a center wire.
unsigned id(void) const
returns id.
void addStoreHit(const CDCTriggerSegmentHit *)
sets a pointer to a CDCTriggerSegmentHit.
virtual ~TRGCDCSegment()
Destructor.
unsigned hitPattern(void) const
returns hit pattern.
const TRGCDCCellHit * hit(void) const
returns a pointer to a TRGCDCCellHit.
const TRGSignal & signal(void) const override
returns trigger output. Null will returned if no signal.
TRGCDCSegment(unsigned id, const TRGCDCLayer &layer, const TRGCDCWire &w, const TRGClock &clock, const std::string &TSLUTFile, const std::vector< const TRGCDCWire * > &wires)
Constructor.
void initialize(void)
initilize variables.
std::string name(void) const override
returns name.
unsigned lutPattern(void) const
hit pattern containing bit for priority position
const TRGCDCWire * operator[](unsigned id) const
returns a wire.
const TRGCDCLUT * LUT(void) const
returns LUT
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const override
dumps debug information.
void clear(void) override
clears information.
const std::vector< const CDCTriggerSegmentHit * > storeHits(void) const
returns a pointer to a CDCTriggerSegmentHit.
const TRGCDCLayer & layer(void) const
returns a pointer to a layer.
const std::vector< const TRGCDCWire * > & wires(void) const
returns a vector containing pointers to a wire.
const TRGCDCSegmentHit * hit(void) const
returns a pointer to a TRGCDCSegmentHit.
Abstract base class for different kinds of events.