1 | // ESAF : Euso Simulation and Analysis Framework |
---|
2 | // $Id: LblChipTrackingTrgEngine.hh 2168 2005-10-10 16:28:03Z ejudd $ |
---|
3 | // |
---|
4 | // |
---|
5 | #ifndef __LBLCHIPTRACKINGTRGENGINE_HH_ |
---|
6 | #define __LBLCHIPTRACKINGTRGENGINE_HH_ |
---|
7 | |
---|
8 | #include "euso.hh" |
---|
9 | #include "TriggerEngine.hh" |
---|
10 | #include "LblTrackSegment.hh" |
---|
11 | |
---|
12 | class ChipGtuData; |
---|
13 | |
---|
14 | class LblChipTrackingTrgEngine : public TriggerEngine { |
---|
15 | public: |
---|
16 | // ctor |
---|
17 | LblChipTrackingTrgEngine(); |
---|
18 | |
---|
19 | // dtor |
---|
20 | virtual ~LblChipTrackingTrgEngine(); |
---|
21 | |
---|
22 | // simulate trigger |
---|
23 | virtual void Simulate( MacroCellData* ); |
---|
24 | |
---|
25 | EsafConfigClass(Electronics,LblChipTrackingTrgEngine); |
---|
26 | |
---|
27 | private: |
---|
28 | |
---|
29 | ClassDef(LblChipTrackingTrgEngine,0) |
---|
30 | |
---|
31 | // Pixel threshold for being used |
---|
32 | Int_t fPxlthr; |
---|
33 | |
---|
34 | // Segment finding parameters |
---|
35 | Int_t fColumn; |
---|
36 | Int_t fColthr; |
---|
37 | Int_t fFrmsinseg; |
---|
38 | Int_t fSegs; |
---|
39 | Int_t fTrksumthr; |
---|
40 | bool fWantsumsub; |
---|
41 | |
---|
42 | // Track and persistency checking parameters |
---|
43 | Int_t fFrmsinpsum; |
---|
44 | Int_t fMinpersum; |
---|
45 | |
---|
46 | // Output control flags |
---|
47 | bool fVerbose; |
---|
48 | bool fDebug; |
---|
49 | |
---|
50 | // Clear everything |
---|
51 | void Clear(Int_t,Int_t); |
---|
52 | |
---|
53 | // Find Segments and join them to form Tracks |
---|
54 | Int_t Find_Tracks(map<Int_t,ChipGtuData*>&,Int_t,Int_t,Int_t); |
---|
55 | |
---|
56 | // Check these tracks for persistency |
---|
57 | Int_t Check_Persistency(Int_t,Int_t); |
---|
58 | |
---|
59 | // Save the tracks in the ROOT output |
---|
60 | void FillELblTrackTrigger(Int_t,Int_t); |
---|
61 | |
---|
62 | // Hank's track segments array. Each element holds the total |
---|
63 | // number of counts from all pixels in that segment |
---|
64 | Int_t fRawSums[200][12][12]; |
---|
65 | |
---|
66 | // This is the background-subtracted version of fRawSums |
---|
67 | // If fWantSumSub is false then fSums = fRawSum |
---|
68 | Int_t fSums[200][12][12]; |
---|
69 | |
---|
70 | // Hank's persistency array. Each element holds the total |
---|
71 | // number of good tracks that start from a given pixel and a given GTU. |
---|
72 | Int_t fPers[200][12][12]; |
---|
73 | |
---|
74 | // Eleanor's tracks array. Each element holds the ID number of the |
---|
75 | // first track, starting from a given pixel, stored in the fTracks vector |
---|
76 | Int_t fTrks[200][12][12]; |
---|
77 | |
---|
78 | // Vector containing all the track information to be written to ROOT output |
---|
79 | vector<LblTrackSegment> fTracks; |
---|
80 | |
---|
81 | }; |
---|
82 | |
---|
83 | #endif /* __LBLCHIPTRACKINGTRGENGINE_HH_ */ |
---|
84 | |
---|