Line data Source code
1 : /**
2 : * @file AliEMCALTriggerAlgorithm.h
3 : * @date Oct. 23, 2015
4 : * @author Markus Fasel <markus.fasel@cern.ch>, Lawrence Berkeley National Laboratory
5 : */
6 : #ifndef AliEMCALTRIGGERALGORITHM_H
7 : #define AliEMCALTRIGGERALGORITHM_H
8 : /* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
9 : * See cxx source for full Copyright notice */
10 :
11 : #include "AliEMCALTriggerRawPatch.h"
12 : #include <TObject.h>
13 : #include <vector>
14 :
15 : template<typename T> class AliEMCALTriggerDataGrid;
16 :
17 : /**
18 : * @class AliEMCALTriggerAlgorithm
19 : * @brief Base class for EMCAL Level1 trigger algorithms
20 : */
21 : template<typename T>
22 0 : class AliEMCALTriggerAlgorithm : public TObject {
23 : public:
24 : AliEMCALTriggerAlgorithm();
25 : AliEMCALTriggerAlgorithm(Int_t rowmin, Int_t rowmax, UInt_t bitmask);
26 : virtual ~AliEMCALTriggerAlgorithm();
27 :
28 0 : ULong_t GetBitMask() const { return fBitMask; }
29 :
30 0 : void SetRowMin(Int_t rowmin) { fRowMin = rowmin; }
31 0 : void SetRowMax(Int_t rowmax) { fRowMax = rowmax; }
32 0 : void SetThresholds(Float_t th, Float_t offTh) { fThreshold = th; fOfflineThreshold = offTh; }
33 0 : void SetBitMask(UInt_t bitmask) { fBitMask = bitmask; }
34 0 : void SetPatchSize(Int_t patchsize) { fPatchSize = patchsize; }
35 0 : void SetSubregionSize(Int_t subregionsize) { fSubregionSize = subregionsize; }
36 :
37 : virtual std::vector<AliEMCALTriggerRawPatch> FindPatches(const AliEMCALTriggerDataGrid<T> &adc, const AliEMCALTriggerDataGrid<T> &offlineAdc) const;
38 :
39 : protected:
40 : Int_t fRowMin;
41 : Int_t fRowMax;
42 : Int_t fPatchSize;
43 : Int_t fSubregionSize;
44 : UInt_t fBitMask;
45 : Float_t fThreshold;
46 : Float_t fOfflineThreshold;
47 :
48 : /// \cond CLASSIMP
49 66 : ClassDef(AliEMCALTriggerAlgorithm, 2);
50 : /// \endcond
51 : };
52 :
53 : #endif
|