]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTTriggerEmcalElectron.h
Reverting the change to the statistics printing since it leads to a bug, cannot be...
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerEmcalElectron.h
1 //**************************************************************************                        
2 //* This file is property of and copyright by the ALICE HLT Project        *                        
3 //* ALICE Experiment at CERN, All rights reserved.                         *                        
4 //*                                                                        *                        
5 //* Primary Authors: marcelfigueredo@gmail.com                             *                        
6 //*                  for The ALICE HLT Project.                            *                        
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
18 #ifndef ALIHLTTRIGGEREMCALELECTRON_H
19 #define ALIHLTTRIGGEREMCALELECTRON_H
20 #include "AliHLTTriggerCaloClusterEnergy.h"
21 #include "AliHLTTriggerEmcalClusterEnergy.h"
22 #include "AliHLTTrigger.h"
23 #include "AliHLTScalars.h"
24 class AliHLTCaloClusterReader;
25 class TRefArray;
26 class AliESDEvent;
27 class TMap;
28
29 class AliHLTTriggerEmcalElectron : public AliHLTTrigger 
30 {
31
32 public:
33   AliHLTTriggerEmcalElectron();
34   ~AliHLTTriggerEmcalElectron();
35
36   /// inherited from AliHLTTrigger: name of this trigger
37   const char* GetTriggerName() const;
38   /// inherited from AliHLTComponent: create an instance
39   AliHLTComponent* Spawn();
40
41   ///Inherited from AliHLTComponent: Get list of OCDB objects
42   void GetOCDBObjectDescription( TMap* const targetMap);
43
44  protected:
45   /// inherited from AliHLTComponent: handle the initialization
46   int DoInit(int argc, const char** argv);
47
48   /// inherited from AliHLTComponent: handle cleanup
49   int DoDeinit();
50
51   /// inherited from AliHLTComponent: handle re-configuration event
52   int Reconfigure(const char* cdbEntry, const char* chainId);
53
54   /// inherited from AliHLTComponent, scan one argument and
55   /// its parameters
56   int ScanConfigurationArgument(int argc, const char** argv);
57
58   /// inherited from AliHLTComponent
59   //  Get a ratio by how much the data volume is shrunken or enhanced.
60   virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
61
62     // inherited from AliHLTTrigger: returns the output data types generated from this component 
63   void GetOutputDataTypes(AliHLTComponentDataTypeList &list) const;
64   
65 protected :
66
67   ///Get the clusters from the esd
68 //   Int_t GetClustersFromEsd( const AliESDEvent * esd, TRefArray * clustersRefs ); 
69 //   virtual Int_t GetClustersFromEsd( const AliESDEvent * esd, TRefArray * clustersRefs ) = 0;
70
71   // FR: Set the appropriate readout list for each calo
72   void SetCaloReadoutList();
73   
74   /// inherited from AliHLTTrigger: calculate the trigger
75   Int_t DoTrigger();
76
77   
78   /// Check if cluster fullfills criteria and if so trigger
79   template <class T> 
80   Bool_t TriggerOnEoverP(T* cluster,AliESDEvent *esd);
81
82   /// Threshold to trigger on EoverP
83   Float_t fEThreshold;
84   Float_t fEoverPThreshold;
85   Float_t fEoverPLimit;
86   Float_t fdEta;
87   Float_t fdPhi;
88   
89   ///array to hold esd clusters
90 //   TRefArray * fClustersRefs;  //!transient
91
92     ///Cluster data struct reader
93 //   AliHLTCaloClusterReader * fClusterReader; //!transient
94
95   /// the default configuration entry for this component
96   const char* fOCDBEntry; //!transient
97   const TString fDetector;
98   
99   AliHLTComponentDataType fInputDataType;   ///Input data type for calo struct input, must be set in child class
100   
101   // flag to make statistics for histograming using AliHLTScalars
102   Bool_t fMakeStats;
103
104   // AliHLTScalars
105   //AliHLTScalars scalars;
106   
107   
108  private:
109   
110   /// Copy constructor prohibited
111   AliHLTTriggerEmcalElectron(const AliHLTTriggerEmcalElectron & );
112   
113   /// Assignment operator prohibited
114   AliHLTTriggerEmcalElectron& operator=(const AliHLTTriggerEmcalElectron &);
115   
116   ClassDef(AliHLTTriggerEmcalElectron, 0);
117
118 };
119
120
121 #endif //ALIHLTTRIGGERCALOCLUSTERENERGY_H