]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSBaselineAnalyzerComponent.h
removing obsolete classes from build system
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSBaselineAnalyzerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 /**************************************************************************
5  * This file is property of and copyright by the ALICE HLT Project        * 
6  * All rights reserved.                                                   *
7  *                                                                        *
8  * Primary Authors: Oystein Djuvsland                                                      *
9  *                                                                        *
10  * Permission to use, copy, modify and distribute this software and its   *
11  * documentation strictly for non-commercial purposes is hereby granted   *
12  * without fee, provided that the above copyright notice appears in all   *
13  * copies and that both the copyright notice and this permission notice   *
14  * appear in the supporting documentation. The authors make no claims     *
15  * about the suitability of this software for any purpose. It is          * 
16  * provided "as is" without express or implied warranty.                  *
17  **************************************************************************/
18 #ifndef ALIHLTPHOSBASELINEANALYZERCOMPONENT_H
19 #define ALIHLTPHOSBASELINEANALYZERCOMPONENT_H
20
21
22 /** 
23  * Class does baseline analysis
24  * 
25  * @file   AliHLTPHOSBaselineAnalyzerComponent.h
26  * @author Oystein Djuvsland
27  * @date   
28  * @brief  A baseline analyzer for PHOS HLT
29 */
30
31 // see below for class documentation
32 // or
33 // refer to README to build package
34 // or
35 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
36
37 #include "AliHLTPHOSProcessor.h"
38
39 class AliHLTPHOSBaselineAnalyzer;
40 class TTree;
41
42
43 /**
44  * @class AliHLTPHOSBaselineAnalyzerComponent
45  * 
46  * Class for running baseline analysis for PHOS in HLT. Takes raw data as input and creates 
47  * objects of class AliHLTPHOSBaseline. Also it fills histograms of baselines as well as RMS
48  * of the channels
49  */ 
50
51 class AliHLTPHOSBaselineAnalyzerComponent : public AliHLTPHOSProcessor
52 {
53 public:
54
55   /** Constructor */ 
56   AliHLTPHOSBaselineAnalyzerComponent();
57
58   /** Destructor */ 
59   virtual ~AliHLTPHOSBaselineAnalyzerComponent();
60
61   /** Copy constructor */
62   AliHLTPHOSBaselineAnalyzerComponent(const AliHLTPHOSBaselineAnalyzerComponent &) : 
63     AliHLTPHOSProcessor(),
64     fBaselineAnalyzerPtr(0),
65     fTreePtr(0),
66     fBaselineArrayPtr(0),
67     fEvCnt(0),
68     fWriteInterval(100),
69     fFillInterval(100),
70     fFilename(0),
71     fDirectory(0),
72     fHistPath(0),
73     fRunNb(0),
74     fCalculateAll(false)
75   {
76     //Copy constructor not implemented
77   }
78   
79   /** Assignment */
80   AliHLTPHOSBaselineAnalyzerComponent & operator = (const AliHLTPHOSBaselineAnalyzerComponent)
81     {
82       //Assignment
83       return *this; 
84     }
85   
86   /** interface function, see @ref AliHLTComponent for description */
87   const char* GetComponentID();
88
89   /** interface function, see @ref AliHLTComponent for description */
90   void GetInputDataTypes(std::vector<AliHLTComponentDataType>& list);
91
92   /** interface function, see @ref AliHLTComponent for description */
93   AliHLTComponentDataType GetOutputDataType();
94
95   /** interface function, see @ref AliHLTComponent for description */
96   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
97
98   /** interface function, see @ref AliHLTComponent for description */
99   int DoEvent(const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
100               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
101               std::vector<AliHLTComponentBlockData>& outputBlocks);
102   
103   /** interface function, see @ref AliHLTComponent for description */
104   AliHLTComponent* Spawn();
105   
106 protected:
107
108   /** interface function, see @ref AliHLTComponent for description */
109   using AliHLTPHOSProcessor::DoEvent;
110
111   int DoInit(int argc, const char** argv);
112
113   /** interface function, see @ref AliHLTComponent for description */
114   virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor
115   
116 private:
117   
118   /** Calculate all values baselines, RMS etc. */
119   void CalculateAll();
120
121   /** Pointer to a baseline analyzer */ 
122   AliHLTPHOSBaselineAnalyzer *fBaselineAnalyzerPtr; //! transient
123
124   /** Pointer the a tree containing the TClonesArrays of AliHLTPHOSBaseline objects */ 
125   TTree *fTreePtr;                                  //! transient
126
127   /** TClonesArray of AliHLTPHOSBaseline objects */ 
128   TClonesArray *fBaselineArrayPtr;                  //! transient
129
130   /** Event count */
131   UInt_t fEvCnt;                                    //COMMENT
132
133   /** Number of events between each writing of files */
134   UInt_t fWriteInterval;                            //COMMENT
135
136   /** Number of events between each filling of the tree */ 
137   UInt_t fFillInterval;                             //COMMENT
138
139   /** The filename base */
140   char *fFilename;                                  //! transient
141
142   /** The directory to write the files */
143   char* fDirectory;                                 //! transient
144
145   /** The path for the histograms */
146   char* fHistPath;                                  //! transient
147
148   /** The run number */
149   Int_t fRunNb;                                     //COMMENT
150
151   /** If every value should be calculated, not only RMS */ 
152   Bool_t fCalculateAll;                             //COMMMENT
153
154   /** Interface variable */
155   static const AliHLTComponentDataType fgkInputDataTypes[];     //COMMENT
156
157 };
158 #endif