Line data Source code
1 : /**
2 : * @file AliEmcalTriggerPatchFinder.h
3 : * @date Oct. 23, 2015
4 : * @author Markus Fasel <markus.fasel@cern.ch>, Lawrence Berkeley National Laboratory
5 : */
6 : #ifndef ALIEMCALTRIGGERPATCHFINDER_H
7 : #define ALIEMCALTRIGGERPATCHFINDER_H
8 : /* Copyright(c) 1998-2015, ALICE Experiment at CERN, All rights reserved. *
9 : * See cxx source for full Copyright notice */
10 :
11 : #include <TObject.h>
12 : #include <vector>
13 :
14 : #include "AliEMCALTriggerRawPatch.h"
15 :
16 : template<typename T> class AliEMCALTriggerDataGrid;
17 : template<typename T> class AliEMCALTriggerAlgorithm;
18 :
19 : /**
20 : * @class AliEmcalTriggerPatchFinder
21 : * @brief Steering class for patch finder
22 : *
23 : * This class steers the trigger patch finding by calling
24 : * the trigger algorithms assigned to the patch finder. Trigger
25 : * algorithms are added via the function AddTriggerAlgorithm.
26 : * Patches are found via the function FindPatches.
27 : */
28 : template<typename T>
29 0 : class AliEMCALTriggerPatchFinder : public TObject {
30 : public:
31 : /**
32 : * Constructor
33 : */
34 : AliEMCALTriggerPatchFinder();
35 : /**
36 : * Destructor
37 : */
38 : virtual ~AliEMCALTriggerPatchFinder();
39 :
40 : /**
41 : * Add trigger algorithm to the trigger patch finder
42 : * @param trigger Trigger algorithm assigned to the patch finder
43 : */
44 0 : void AddTriggerAlgorithm(AliEMCALTriggerAlgorithm<T> *trigger) { fTriggerAlgorithms.push_back(trigger); }
45 :
46 : /**
47 : * Find trigger patches usin the grid of adc values. All trigger patch finders are called one after each other.
48 : * The result contains the vector of patches from all trigger algorithms. The trigger patches are sorted in energy.
49 : * @param adc Data grid with ADC values
50 : * @return List of trigger patches found by all trigger algorithms assigned to this trigger patch finder.
51 : */
52 : std::vector<AliEMCALTriggerRawPatch> FindPatches(const AliEMCALTriggerDataGrid<T> &adc, const AliEMCALTriggerDataGrid<T> &offlineAdc) const;
53 :
54 : protected:
55 : std::vector<AliEMCALTriggerAlgorithm<T> *> fTriggerAlgorithms; ///< Trigger algoritms to be used
56 :
57 : /// \cond CLASSIMP
58 66 : ClassDef(AliEMCALTriggerPatchFinder, 1);
59 : /// \endcond
60 : };
61 :
62 : #endif
|