]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSTriggerFOProcessor.h
Most of these updates are related to the offline software needed for the pixel trigge...
[u/mrichter/AliRoot.git] / ITS / AliITSTriggerFOProcessor.h
1 #ifndef ALIITS_TRIGGERFOPROCESSOR_H
2 #define ALIITS_TRIGGERFOPROCESSOR_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 #include "AliITSFOSignalsSPD.h"
24
25 class AliITSTriggerConditions;
26
27 class AliITSTriggerFOProcessor {
28
29  public:
30   AliITSTriggerFOProcessor();
31   AliITSTriggerFOProcessor(AliITSTriggerConditions* ocdbCond);
32   AliITSTriggerFOProcessor(const AliITSTriggerFOProcessor& handle);
33   virtual ~AliITSTriggerFOProcessor();
34   AliITSTriggerFOProcessor& operator=(const AliITSTriggerFOProcessor& handle);
35
36   virtual void          SetTriggerConditions(AliITSTriggerConditions* ocdbCond);
37   virtual Bool_t        TriggerConditionsSet() {return fTriggerCond!=NULL;}
38
39   virtual UInt_t        GetNumOutputs() const;
40   virtual const Char_t* GetOutputLabel(Short_t index) const;
41
42
43   virtual void          PreprocessFOSignals(AliITSFOSignalsSPD* signals); // NB! Call this before calling the below methods!!!
44
45   virtual Bool_t        ProcessFOSignalsIndex(Short_t index, AliITSFOSignalsSPD* signals);
46   virtual Bool_t        ProcessFOSignalsLabel(const Char_t* label, AliITSFOSignalsSPD* signals);
47   
48   virtual Bool_t        ProcessFOSignalsTHRTotal(Short_t index, AliITSFOSignalsSPD* /*signals*/);
49   virtual Bool_t        ProcessFOSignalsTHRTotalAndTHRInnerAndTHROuter(Short_t index, AliITSFOSignalsSPD* /*signals*/);
50   virtual Bool_t        ProcessFOSignalsTHRInnerAndTHROuter(Short_t index, AliITSFOSignalsSPD* /*signals*/);
51   virtual Bool_t        ProcessFOSignalsInnerGTOuterPlusOffset(Short_t index, AliITSFOSignalsSPD* /*signals*/);
52   virtual Bool_t        ProcessFOSignalsOuterGTInnerPlusOffset(Short_t index, AliITSFOSignalsSPD* /*signals*/);
53
54   
55  protected:
56   Int_t fFOInner;
57   Int_t fFOOuter;
58   AliITSTriggerConditions *fTriggerCond;
59
60 };
61
62 #endif