]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSTriggerFOProcessor.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ITS / AliITSTriggerFOProcessor.h
1 #ifndef ALIITSTRIGGERFOPROCESSOR_H
2 #define ALIITSTRIGGERFOPROCESSOR_H
3
4 /////////////////////////////////////////////////////////////////////
5 // Author: Henrik Tydesjo                                          //
6 //                                                                 //
7 // This class takes care of simulating the output from the pixel   //
8 // trigger system.                                                 //
9 // The fast-or signals are given as input and they are processed   //
10 // to see which algorithm will give a signal to the central        //
11 // trigger system. To avoid doing the same operations many times,  //
12 // there is a method called PreprocessFOSignals, which should      //
13 // always be called for each event before the processing of        //
14 // each individual algorithm is done.                              //
15 //                                                                 //
16 // As soon as a new algorithm has been implemented online, a       //
17 // corresponding method should be implemented here. Which method   //
18 // should be used for a given trigger label is taken care of in    //
19 // ProcessFOSignalsLabel method.                                   //
20 //                                                                 //
21 /////////////////////////////////////////////////////////////////////
22
23 /* $Id$ */
24
25 #include "AliITSFOSignalsSPD.h"
26
27 class AliITSTriggerConditions;
28
29 class AliITSTriggerFOProcessor {
30
31  public:
32   AliITSTriggerFOProcessor();
33   AliITSTriggerFOProcessor(AliITSTriggerConditions* ocdbCond);
34   AliITSTriggerFOProcessor(const AliITSTriggerFOProcessor& handle);
35   virtual ~AliITSTriggerFOProcessor();
36   AliITSTriggerFOProcessor& operator=(const AliITSTriggerFOProcessor& handle);
37
38   virtual void          SetTriggerConditions(AliITSTriggerConditions* const ocdbCond);
39   virtual Bool_t        TriggerConditionsSet() {return fTriggerCond!=NULL;}
40
41   virtual UInt_t        GetNumOutputs() const;
42   virtual const Char_t* GetOutputLabel(Short_t index) const;
43
44
45   virtual void          PreprocessFOSignals(AliITSFOSignalsSPD* signals); // NB! Call this before calling the below methods!!!
46
47   virtual Bool_t        ProcessFOSignalsIndex(Short_t index, AliITSFOSignalsSPD* signals);
48   virtual Bool_t        ProcessFOSignalsLabel(const Char_t* label, AliITSFOSignalsSPD* signals);
49   
50   virtual Bool_t        ProcessFOSignalsTHRTotal(Short_t index, AliITSFOSignalsSPD* /*signals*/);
51   virtual Bool_t        ProcessFOSignalsTHRTotalAndTHRInnerAndTHROuter(Short_t index, AliITSFOSignalsSPD* /*signals*/);
52   virtual Bool_t        ProcessFOSignalsTHRInnerAndTHROuter(Short_t index, AliITSFOSignalsSPD* /*signals*/);
53   virtual Bool_t        ProcessFOSignalsInnerGTOuterPlusOffset(Short_t index, AliITSFOSignalsSPD* /*signals*/);
54   virtual Bool_t        ProcessFOSignalsOuterGTInnerPlusOffset(Short_t index, AliITSFOSignalsSPD* /*signals*/);
55   virtual Bool_t        ProcessFOSignalsCosmic(Short_t index, AliITSFOSignalsSPD* const signals);
56   
57  protected:
58   Int_t fFOInner;
59   Int_t fFOOuter;
60   AliITSTriggerConditions *fTriggerCond;
61
62 };
63
64 #endif