]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/physics/AliHLTCaloHistoComponent.h
- adding option to cut energy in the central crystal
[u/mrichter/AliRoot.git] / HLT / global / physics / AliHLTCaloHistoComponent.h
1 //-*- Mode: C++ -*-
2 /**************************************************************************
3  * This file is property of and copyright by the ALICE HLT Project        * 
4  * All rights reserved.                                                   *
5  *                                                                        *
6  * Primary Authors: Oystein Djuvsland, Svein Lindal                       *
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 ALIHLTCALOHISTOCOMPONENT_H
18 #define ALIHLTCALOHISTOCOMPONENT_H
19
20 /**
21  * 
22  *
23  * @file   AliHLTCaloHistoComponent.cxx
24  * @author Svein Lindal
25  * @date   
26  * @brief  
27 */
28
29 // see below for class documentation
30 // or
31 // refer to README to build package
32 // or
33 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
34
35 #include "AliHLTProcessor.h"
36
37 #include "Rtypes.h"
38
39 class AliHLTPHOSPhysicsHistogramProducer;
40 class AliHLTCaloHistoCellEnergy;
41 class AliHLTCaloHistoClusterEnergy;
42 class AliHLTCaloHistoInvMass;
43 class AliHLTCaloHistoMatchedTracks;
44 class TRefArray;
45 class AliHLTCaloClusterReader;
46 class TObjArray;
47 /**
48  * @class AliHLTPHOSHistogramProducerComponent
49  *
50  * 
51  * @ingroup alihlt_phos
52  */
53
54 class AliHLTCaloHistoComponent : public AliHLTProcessor {
55
56  public:
57
58   /** Constructor */
59   AliHLTCaloHistoComponent();
60   /** Destructor */
61   virtual ~AliHLTCaloHistoComponent();
62
63   /** interface function, see @ref AliHLTComponent for description */
64   const char* GetComponentID();
65
66   /** interface function, see @ref AliHLTComponent for description */
67   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
68
69   /** interface function, see @ref AliHLTComponent for description */
70   AliHLTComponentDataType GetOutputDataType();
71
72   /** interface function, see @ref AliHLTComponent for description */
73   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
74   /** interface function, see @ref AliHLTComponent for description */
75   AliHLTComponent* Spawn();
76
77
78 protected:
79
80   /** interface function, see @ref AliHLTComponent for description */
81   int DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
82   /** interface function, see @ref AliHLTComponent for description */
83   int DoInit(int argc, const char** argv);
84   /** interface function, see @ref AliHLTComponent for description */
85   int DoDeinit();
86
87   using AliHLTProcessor::DoEvent;
88
89  private:
90
91   /** Copy constructor prohibited*/  
92   AliHLTCaloHistoComponent(const AliHLTCaloHistoComponent & );
93   /** asssignment operator prohibited */
94   AliHLTCaloHistoComponent& operator=(const AliHLTCaloHistoComponent&);
95
96   /** function to get data content from blocks and pass it on to histogram produsers*/
97   Int_t ProcessBlocks(const AliHLTComponentBlockData * pBlock, TObjArray * histoArray);
98   
99   AliHLTCaloClusterReader * fClusterReader; //!transient Class to read cluster data structs
100   
101   TRefArray * fEmcalClustersArray;  //!transient Array to contain EMCAL Clusters
102   TRefArray * fPhosClustersArray;  //!transient Array to contain PHOS Clusters
103
104   TObjArray * fPhosProducerArray; //!transient 
105   TObjArray * fEmcalProducerArray; //!transient 
106   
107   TObjArray * fPhosHistogramArray; //!transient 
108   TObjArray * fEmcalHistogramArray; //!transient 
109   
110   
111   Bool_t fDoEmcal;  //Fill EMCAL histos?
112   Bool_t fDoPhos;   //Fill PHOS histos?
113   
114   Bool_t fCutOnCentrality; // Cut on centrality on cluters with high energy
115   Float_t fCentralityCut; //How large fraction of the energy do we want in the central tower to make the cut?
116   Float_t fCentralityCutEnergy; //The minimum energy of the cluster to make the cut.
117
118   ClassDef(AliHLTCaloHistoComponent, 0);
119
120 };
121
122 #endif