new classes for cosmic calibration
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSMIPCounterComponent.h
1
2  /**************************************************************************
3  * This file is property of and copyright by the ALICE HLT Project        *
4  * All rights reserved.                                                   *
5  *                                                                        *
6  * Primary Authors: Oystein Djuvsland                                     *
7  *                                                                        *
8  * Permission to use, copy, modify and distribute this software and its   *
9  * documentation strictly for non-commercial purposes is hereby granted   *
10  * without fee, provided that the above copyright notice appears in all   *
11  * copies and that both the copyright notice and this permission notice   *
12  * appear in the supporting documentation. The authors make no claims     *
13  * about the suitability of this software for any purpose. It is          *
14  * provided "as is" without express or implied warranty.                  *
15  **************************************************************************/
16
17 #ifndef ALIHLTPHOSMIPCOUNTERCOMPONENT_H
18 #define ALIHLTPHOSMIPCOUNTERCOMPONENT_H
19
20 #include "AliHLTPHOSProcessor.h"
21
22 class AliHLTPHOSMIPCounter;
23 class TH1F;
24 class TH1I;
25 class TH2I;
26
27 /**
28         @author Ã˜ystein Djuvsland <oystein.djuvsland@gmail.com>
29 */
30 class AliHLTPHOSMIPCounterComponent : public AliHLTPHOSProcessor
31 {
32 public:
33     AliHLTPHOSMIPCounterComponent();
34
35     ~AliHLTPHOSMIPCounterComponent();
36
37     const char* GetComponentID();
38
39     void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
40
41     AliHLTComponentDataType GetOutputDataType();
42
43     void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
44
45     int DoEvent(const AliHLTComponentEventData&, const AliHLTComponentBlockData*,
46                 AliHLTComponentTriggerData&, AliHLTUInt8_t*, AliHLTUInt32_t&,
47                 std::vector<AliHLTComponentBlockData>&);
48
49     AliHLTComponent* Spawn();
50   
51   protected:
52     int DoInit(int argc, const char** argv);
53     virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
54
55   private:
56
57     Int_t fEventCount;
58     Int_t fInterval;
59     Int_t fMIPCount;
60     Char_t *fTRUThreshold;
61     Float_t fMIPCountInterval;
62     Char_t *fPath;
63     AliHLTPHOSMIPCounter *fMIPCounterPtr;
64     TH1I *fHistPtr;
65     TH1I *fIntervalHistPtr;
66     TH1F *fRateHistPtr;
67     TH2I *fChannelHistPtr;
68     TH1F *fRatioHistPtr;
69     static const AliHLTComponentDataType fgkInputDataTypes[];     //HLT input data type
70 };
71 #endif
72
73