]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCHistogramHandlerComponent.h
Bugfix, For interleaved data the channel was sett for branch B even if the channel...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCHistogramHandlerComponent.h
index bfdffcc6d0c330b9afd292e2c2a390a6658f5fa8..9012cb0304f3ade66d42e43633ba57626f1c0fb9 100644 (file)
@@ -5,14 +5,14 @@
 #define ALIHLTTPCHISTOGRAMHANDLERCOMPONENT_H
 
 //* This file is property of and copyright by the ALICE HLT Project        * 
-//* ALICE Experiment at CERN, All rights reserved.                         *
-//* See cxx source for full Copyright notice                               *
+  //* ALICE Experiment at CERN, All rights reserved.                         *
+    //* See cxx source for full Copyright notice                               *
 
-/** @file   AliHLTTPCHistogramHandlerComponent.h
-    @author Kalliopi Kanaki
-    @date   
-    @brief  Component for acting upon histograms
-*/
+    /** @file   AliHLTTPCHistogramHandlerComponent.h
+       @author Kalliopi Kanaki, Kenneth Aamodt
+       @date   
+       @brief  Component for acting upon histograms
+    */
 
 // see below for class documentation
 // or
@@ -21,6 +21,7 @@
 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
 
 #include "AliHLTProcessor.h"
+#include <vector>
 
 class TH1;
 class TH2;
@@ -33,87 +34,107 @@ class TH2;
  *  
  * The component has the following component arguments:
  *
- * -sum-noise-histograms Loops over the output of TPCNoiseMap and adds the histograms
+ * -sum-noise-histograms Loops over the output of TPCNoiseMap and sums the partition histograms
+ *  They are sorted per TPC side.
+ *
+ * -sum-krypton-histograms Loops over the output of the krypton CF and sums the histograms
+ * (it will become obsolete, when the next option does all the work)
+ *
+ * -use-general It will become the standard general option for summing histograms
+ *
+ * -ignore-specification It ignores the last part of the histogram name, if it has 
+ * the form "_Slice_%.2d%.2d_Partition_%.2d%.2d, minSlice, maxSlice, minPartition, maxPartition".
+ * It keeps the first part of the hist name and uses it to name the summed histogram.
  *
- * It loops over histogram input and sums up the TPC histograms per side (at the moment).
- * 
  * @ingroup alihlt_tpc
  */
 class AliHLTTPCHistogramHandlerComponent : public AliHLTProcessor {
     
-   public:
-   
-   /** standard constructor */    
-   AliHLTTPCHistogramHandlerComponent();           
-   /** destructor */
-   virtual ~AliHLTTPCHistogramHandlerComponent();
-
-      // Public functions to implement AliHLTComponent's interface.
-      // These functions are required for the registration process
+public:
+  struct AliHLTHistogramData
+  {
+    TH1 *fHistogram;
+    UInt_t fMinSlice;
+    UInt_t fMaxSlice;
+    UInt_t fMinPartition;
+    UInt_t fMaxPartition;
+  };
+  typedef struct AliHLTHistogramData AliHLTHistogramData; //!
+
+  /** standard constructor */    
+  AliHLTTPCHistogramHandlerComponent();           
+  /** destructor */
+  virtual ~AliHLTTPCHistogramHandlerComponent();
+
+  // Public functions to implement AliHLTComponent's interface.
+  // These functions are required for the registration process
       
-      /** interface function, see @ref AliHLTComponent for description */
-      const char* GetComponentID();                                                         
-      /** interface function, see @ref AliHLTComponent for description */
-      void GetInputDataTypes( vector<AliHLTComponentDataType>& list);                       
-      /** interface function, see @ref AliHLTComponent for description */
-      AliHLTComponentDataType GetOutputDataType();                                          
-      /** interface function, see @ref AliHLTComponent for description */
-      int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);                       
-      /** interface function, see @ref AliHLTComponent for description */
-      virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); 
-      /** interface function, see @ref AliHLTComponent for description */
-      AliHLTComponent* Spawn();                                                           
-      /** function for acting on the saving and cleaning histograms, after they are filled */
-      void MakeHistosPublic();
-
-   protected:
+  /** interface function, see AliHLTComponent for description */
+  const char* GetComponentID();                                                             
+  /** interface function, see AliHLTComponent for description */
+  void GetInputDataTypes( vector<AliHLTComponentDataType>& list);                           
+  /** interface function, see AliHLTComponent for description */
+  AliHLTComponentDataType GetOutputDataType();                                      
+  /** interface function, see AliHLTComponent for description */
+  int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);                           
+  /** interface function, see AliHLTComponent for description */
+  virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); 
+  /** interface function, see AliHLTComponent for description */
+  AliHLTComponent* Spawn();                                                       
+  /** function for acting on the saving and cleaning histograms, after they are filled */
+  void MakeHistosPublic();
+
+protected:
        
-      // Protected functions to implement AliHLTComponent's interface.
-      // These functions provide initialization as well as the actual processing capabilities of the component. 
+  // Protected functions to implement AliHLTComponent's interface.
+  // These functions provide initialization as well as the actual processing capabilities of the component. 
 
-      int DoInit( int argc, const char** argv );
-      int DoDeinit();
-      int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
-      int Reconfigure(const char* cdbEntry, const char* chainId);
+  int DoInit( int argc, const char** argv );
+  int DoDeinit();
+  int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
+  int Reconfigure(const char* cdbEntry, const char* chainId);
 
-      using AliHLTProcessor::DoEvent;
+  using AliHLTProcessor::DoEvent;
 
-   private:
+private:
    
-      int Configure(const char* arguments);
+  int Configure(const char* arguments);
           
-      /** copy constructor prohibited */
-      AliHLTTPCHistogramHandlerComponent(const AliHLTTPCHistogramHandlerComponent&);
+  /** copy constructor prohibited */
+  AliHLTTPCHistogramHandlerComponent(const AliHLTTPCHistogramHandlerComponent&);
 
-      /** assignment operator prohibited */
-      AliHLTTPCHistogramHandlerComponent& operator=(const AliHLTTPCHistogramHandlerComponent&);
+  /** assignment operator prohibited */
+  AliHLTTPCHistogramHandlerComponent& operator=(const AliHLTTPCHistogramHandlerComponent&);
 
-      /** the reader object for data decoding */
-      AliHLTUInt32_t fSpecification;  //!transient
-      
-      
-      Bool_t fNoiseHistograms;   //!transient
-      Bool_t fKryptonHistograms; //!transient
+  /** the reader object for data decoding */
+  AliHLTUInt32_t fSpecification;  //!transient
+            
+  Bool_t fNoiseHistograms;     //!transient
+  Bool_t fKryptonHistograms;   //!transient
+  Bool_t fUseGeneral;          //!transient
+  Bool_t fIgnoreSpecification; //!transient 
       
-      Int_t fSlice;  //!transient
+  Int_t fSlice;  //!transient
       
-      TH1 *fHistTH1Tmp;                //!transient  
-      TH1 *fTotalClusterChargeIROCAll; //!transient
-      TH1 *fTotalClusterChargeOROCAll; //!transient
-      TH1 *fQMaxPartitionAll;          //!transient
-      TH1 *fPlotQmaxROCAll;            //!transient
-      TH1 *fNumberOfClusters;          //!transient
-            
-      TH2 *fHistTH2Tmp;    //!transient
-      TH2 *fHistTPCSideAmax;  //!transient     
-      TH2 *fHistTPCSideCmax;  //!transient  
-      TH2 *fHistTPCSideAtot;  //!transient     
-      TH2 *fHistTPCSideCtot;  //!transient  
-      TH2 *fHistTPCSideArms;  //!transient     
-      TH2 *fHistTPCSideCrms;  //!transient  
-
+  TH1 *fHistTH1Tmp;                //!transient  
+  TH1 *fTotalClusterChargeIROCAll; //!transient
+  TH1 *fTotalClusterChargeOROCAll; //!transient
+  TH1 *fQMaxPartitionAll;          //!transient
+  TH1 *fPlotQmaxROCAll;            //!transient
+  TH1 *fNumberOfClusters;          //!transient
             
-      ClassDef(AliHLTTPCHistogramHandlerComponent, 2)
-    };
+  TH2 *fHistTH2Tmp;       //!transient
+  TH2 *fHistTPCSideAmax;  //!transient 
+  TH2 *fHistTPCSideCmax;  //!transient  
+  TH2 *fHistTPCSideAtot;  //!transient 
+  TH2 *fHistTPCSideCtot;  //!transient  
+  TH2 *fHistTPCSideArms;  //!transient 
+  TH2 *fHistTPCSideCrms;  //!transient  
+
+  vector<AliHLTHistogramData> fHistogramData;
+
+  
+  ClassDef(AliHLTTPCHistogramHandlerComponent, 4)
+};
 
 #endif