Line data Source code
1 : /**************************************************************************
2 : * This file is property of and copyright by the ALICE HLT Project *
3 : * All rights reserved. *
4 : * *
5 : * Primary Authors: Markus Fasel *
6 : * *
7 : * Permission to use, copy, modify and distribute this software and its *
8 : * documentation strictly for non-commercial purposes is hereby granted *
9 : * without fee, provided that the above copyright notice appears in all *
10 : * copies and that both the copyright notice and this permission notice *
11 : * appear in the supporting documentation. The authors make no claims *
12 : * about the suitability of this software for any purpose. It is *
13 : * provided "as is" without express or implied warranty. *
14 : **************************************************************************/
15 :
16 : #ifndef ALIHLTEMCALTRIGGERMAKERCOMPONENT_H
17 : #define ALIHLTEMCALTRIGGERMAKERCOMPONENT_H
18 :
19 : /**
20 : * @file AliHLTEMCALTriggerMakerComponent.h
21 : * @author Markus Fasel
22 : * @date Oct. 30, 2015
23 : * @brief A trigger maker component for EMCAL HLT
24 : */
25 :
26 : #include "AliHLTCaloProcessor.h"
27 :
28 : class AliHLTEMCALGeometry;
29 : class AliHLTEMCALTriggerMaker;
30 : struct AliHLTCaloTriggerPatchContainerStruct;
31 :
32 : /**
33 : * @class AliHLTEMCALTriggerMakerComponent
34 : * @brief HLT component for EMCAL/DCAL trigger patch finder
35 : */
36 : class AliHLTEMCALTriggerMakerComponent : public AliHLTCaloProcessor {
37 : public:
38 : AliHLTEMCALTriggerMakerComponent();
39 : virtual ~AliHLTEMCALTriggerMakerComponent();
40 :
41 : /**
42 : *
43 : * @param evtData
44 : * @param blocks
45 : * @param trigData
46 : * @param outputPtr
47 : * @param size
48 : * @param outputBlocks
49 : * @return
50 : */
51 : int DoEvent ( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
52 : AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
53 : std::vector<AliHLTComponentBlockData>& outputBlocks );
54 :
55 : /** interface function, see @ref AliHLTComponent for description */
56 : const char* GetComponentID();
57 :
58 : /** interface function, see @ref AliHLTComponent for description */
59 : void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
60 :
61 : /** interface function, see @ref AliHLTComponent for description */
62 : AliHLTComponentDataType GetOutputDataType();
63 :
64 : /** interface function, see @ref AliHLTComponent for description */
65 : void GetOutputDataSize ( unsigned long& constBase, double& inputMultiplier );
66 :
67 : /** interface function, see @ref AliHLTComponent for description */
68 : AliHLTComponent* Spawn();
69 :
70 :
71 : protected:
72 : /** interface function, see @ref AliHLTComponent for description */
73 : int DoInit ( int argc, const char** argv );
74 :
75 : /** interface function, see @ref AliHLTComponent for description */
76 : virtual int Deinit();
77 :
78 : /** Initialising geometry for the HLT Trigger maker */
79 : void InitialiseGeometry();
80 :
81 : bool CheckInputDataType(const AliHLTComponentDataType &datatype);
82 :
83 : private:
84 : /** Pointer to the trigger maker from cells */
85 : AliHLTEMCALTriggerMaker *fTriggerMakerPtr; //! Transient
86 : /** EMCAL geometry data */
87 : AliHLTEMCALGeometry *fGeometry; //! Transient
88 :
89 : /** Copy constructor, not implemented */
90 : AliHLTEMCALTriggerMakerComponent(const AliHLTEMCALTriggerMakerComponent &);
91 :
92 : /** Assignment operator, not implemented */
93 : AliHLTEMCALTriggerMakerComponent & operator = (const AliHLTEMCALTriggerMakerComponent);
94 :
95 6 : ClassDef(AliHLTEMCALTriggerMakerComponent, 1);
96 : };
97 :
98 : #endif
|