source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/simulation/detector/electronics/src/PersistencyTriggerEngine.cc @ 117

Last change on this file since 117 was 117, checked in by moretto, 11 years ago

ESAF version compilable on mac OS

File size: 1.9 KB
Line 
1// ESAF : Euso Simulation and Analysis Framework
2// $Id: PersistencyTriggerEngine.cc 2353 2005-11-10 10:36:18Z pesce $
3// M. Pallavicini - created Oct, 24 2003
4
5#include "PersistencyTriggerEngine.hh"
6#include "MacroCellData.hh"
7#include "MacroCell.hh"
8
9ClassImp(PersistencyTriggerEngine)
10
11//______________________________________________________________________________
12PersistencyTriggerEngine::PersistencyTriggerEngine() : 
13    // constructor
14    TriggerEngine(string("PersistencyTriggerEngine"), kPersistencyTrigger ) {
15}
16
17// destructor
18//______________________________________________________________________________
19PersistencyTriggerEngine::~PersistencyTriggerEngine() {
20}
21
22//______________________________________________________________________________
23void PersistencyTriggerEngine::Simulate( MacroCellData* pData ) {
24   
25    // simulate trigger with only persistency included
26
27    Int_t NConsGtu = pData->Cell()->TriggerThreshold(); 
28
29    // check if there is enough activity
30    if ( ( pData->GtuEnd() - pData->GtuStart() + 1 ) <= NConsGtu ) return; 
31
32    // loop over relevant GTUs
33    for( Int_t gtu = pData->GtuStart(); gtu < pData->GtuEnd(); gtu++) {
34
35        Bool_t trigger = kTRUE;
36
37        for(Int_t i=0; i < NConsGtu; i++) {
38
39            vector<MacroCellHit*>* hits = pData->Hits(gtu+i);
40            if ( hits ) {
41                if ( hits->size() ) {
42                    MacroCellHit *hit = (*hits)[0];
43                    if ( !hit ) {
44                        trigger = kFALSE;
45                    }
46                } 
47                else {
48                    trigger = kFALSE;
49                }
50            } 
51            else {
52                trigger = kFALSE;
53            }
54        }
55
56        if ( trigger ) {
57            SetTrigger();
58            SetGtuTrigger( gtu );
59            Msg(EsafMsg::Info) << "=== TRIGGER! Cell:" << pData->Cell()->Id() 
60                 << " Gtu:" << gtu << " Engine:" << GetName() << MsgDispatch;
61            return;
62        }
63    }
64}
Note: See TracBrowser for help on using the repository browser.