ROOT logo
#ifndef ALIITSTRIGGERFOPROCESSOR_H
#define ALIITSTRIGGERFOPROCESSOR_H

/////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                          //
//                                                                 //
// This class takes care of simulating the output from the pixel   //
// trigger system.                                                 //
// The fast-or signals are given as input and they are processed   //
// to see which algorithm will give a signal to the central        //
// trigger system. To avoid doing the same operations many times,  //
// there is a method called PreprocessFOSignals, which should      //
// always be called for each event before the processing of        //
// each individual algorithm is done.                              //
//                                                                 //
// As soon as a new algorithm has been implemented online, a       //
// corresponding method should be implemented here. Which method   //
// should be used for a given trigger label is taken care of in    //
// ProcessFOSignalsLabel method.                                   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

/* $Id$ */

#include "AliITSFOSignalsSPD.h"

class AliITSTriggerConditions;

class AliITSTriggerFOProcessor {

 public:
  AliITSTriggerFOProcessor();
  AliITSTriggerFOProcessor(AliITSTriggerConditions* ocdbCond);
  AliITSTriggerFOProcessor(const AliITSTriggerFOProcessor& handle);
  virtual ~AliITSTriggerFOProcessor();
  AliITSTriggerFOProcessor& operator=(const AliITSTriggerFOProcessor& handle);

  virtual void          SetTriggerConditions(AliITSTriggerConditions* const ocdbCond);
  virtual Bool_t        TriggerConditionsSet() {return fTriggerCond!=NULL;}

  virtual UInt_t        GetNumOutputs() const;
  virtual const Char_t* GetOutputLabel(Short_t index) const;


  virtual void          PreprocessFOSignals(AliITSFOSignalsSPD* signals); // NB! Call this before calling the below methods!!!

  virtual Bool_t        ProcessFOSignalsIndex(Short_t index, AliITSFOSignalsSPD* signals);
  virtual Bool_t        ProcessFOSignalsLabel(const Char_t* label, AliITSFOSignalsSPD* signals);
  
  virtual Bool_t        ProcessFOSignalsTHRTotal(Short_t index, AliITSFOSignalsSPD* /*signals*/);
  virtual Bool_t        ProcessFOSignalsTHRTotalAndTHRInnerAndTHROuter(Short_t index, AliITSFOSignalsSPD* /*signals*/);
  virtual Bool_t        ProcessFOSignalsTHRInnerAndTHROuter(Short_t index, AliITSFOSignalsSPD* /*signals*/);
  virtual Bool_t        ProcessFOSignalsInnerGTOuterPlusOffset(Short_t index, AliITSFOSignalsSPD* /*signals*/);
  virtual Bool_t        ProcessFOSignalsOuterGTInnerPlusOffset(Short_t index, AliITSFOSignalsSPD* /*signals*/);
  virtual Bool_t        ProcessFOSignalsCosmic(Short_t index, AliITSFOSignalsSPD* const signals);
  
 protected:
  Int_t fFOInner;
  Int_t fFOOuter;
  AliITSTriggerConditions *fTriggerCond;

};

#endif
 AliITSTriggerFOProcessor.h:1
 AliITSTriggerFOProcessor.h:2
 AliITSTriggerFOProcessor.h:3
 AliITSTriggerFOProcessor.h:4
 AliITSTriggerFOProcessor.h:5
 AliITSTriggerFOProcessor.h:6
 AliITSTriggerFOProcessor.h:7
 AliITSTriggerFOProcessor.h:8
 AliITSTriggerFOProcessor.h:9
 AliITSTriggerFOProcessor.h:10
 AliITSTriggerFOProcessor.h:11
 AliITSTriggerFOProcessor.h:12
 AliITSTriggerFOProcessor.h:13
 AliITSTriggerFOProcessor.h:14
 AliITSTriggerFOProcessor.h:15
 AliITSTriggerFOProcessor.h:16
 AliITSTriggerFOProcessor.h:17
 AliITSTriggerFOProcessor.h:18
 AliITSTriggerFOProcessor.h:19
 AliITSTriggerFOProcessor.h:20
 AliITSTriggerFOProcessor.h:21
 AliITSTriggerFOProcessor.h:22
 AliITSTriggerFOProcessor.h:23
 AliITSTriggerFOProcessor.h:24
 AliITSTriggerFOProcessor.h:25
 AliITSTriggerFOProcessor.h:26
 AliITSTriggerFOProcessor.h:27
 AliITSTriggerFOProcessor.h:28
 AliITSTriggerFOProcessor.h:29
 AliITSTriggerFOProcessor.h:30
 AliITSTriggerFOProcessor.h:31
 AliITSTriggerFOProcessor.h:32
 AliITSTriggerFOProcessor.h:33
 AliITSTriggerFOProcessor.h:34
 AliITSTriggerFOProcessor.h:35
 AliITSTriggerFOProcessor.h:36
 AliITSTriggerFOProcessor.h:37
 AliITSTriggerFOProcessor.h:38
 AliITSTriggerFOProcessor.h:39
 AliITSTriggerFOProcessor.h:40
 AliITSTriggerFOProcessor.h:41
 AliITSTriggerFOProcessor.h:42
 AliITSTriggerFOProcessor.h:43
 AliITSTriggerFOProcessor.h:44
 AliITSTriggerFOProcessor.h:45
 AliITSTriggerFOProcessor.h:46
 AliITSTriggerFOProcessor.h:47
 AliITSTriggerFOProcessor.h:48
 AliITSTriggerFOProcessor.h:49
 AliITSTriggerFOProcessor.h:50
 AliITSTriggerFOProcessor.h:51
 AliITSTriggerFOProcessor.h:52
 AliITSTriggerFOProcessor.h:53
 AliITSTriggerFOProcessor.h:54
 AliITSTriggerFOProcessor.h:55
 AliITSTriggerFOProcessor.h:56
 AliITSTriggerFOProcessor.h:57
 AliITSTriggerFOProcessor.h:58
 AliITSTriggerFOProcessor.h:59
 AliITSTriggerFOProcessor.h:60
 AliITSTriggerFOProcessor.h:61
 AliITSTriggerFOProcessor.h:62
 AliITSTriggerFOProcessor.h:63
 AliITSTriggerFOProcessor.h:64