]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/CALO/AliHLTCaloUtilities.h
- bug fixes/improvements in the CALO library. (Per Thomas)
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloUtilities.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTCaloUtilities.h 34264 2009-08-14 18:29:23Z odjuvsla $
3
4 #ifndef ALIHLTCALOUTILITIES_H
5 #define ALIHLTCALOUTILITIES_H
6
7 /**************************************************************************
8  * This file is property of and copyright by the Experimental Nuclear     *
9  * Physics Group, Dep. of Physics                                         *
10  * University of Oslo, Norway, 2007                                       *
11  *                                                                        *
12  * Author: Per Thomas Hille <perthi@fys.uio.no> for the ALICE HLT Project.*
13  * Contributors are mentioned in the code where appropriate.              *
14  * Please report bugs to perthi@fys.uio.no                                *
15  *                                                                        *
16  * Permission to use, copy, modify and distribute this software and its   *
17  * documentation strictly for non-commercial purposes is hereby granted   *
18  * without fee, provided that the above copyright notice appears in all   *
19  * copies and that both the copyright notice and this permission notice   *
20  * appear in the supporting documentation. The authors make no claims     *
21  * about the suitability of this software for any purpose. It is          *
22  * provided "as is" without express or implied warranty.                  *
23  **************************************************************************/
24
25 #include <iostream>
26
27 using namespace std;
28
29 //      AliHLTCaloUtilities
30 class  AliHLTCaloUtilities
31 {
32  public:
33   AliHLTCaloUtilities();
34   virtual ~AliHLTCaloUtilities();
35  
36   bool CheckFile(const char *fileName, const char *opt) const;
37
38   bool ScanSingleIntArgument(int argc, const char** argv, const char *name, int *value = 0 );
39   bool ScanSingleFloatArgument(int argc, const char** argv, const char *name, float *value = 0 );
40   bool ScanSingleNameArgument(int argc, const char** argv, const char *name, char *outname = 0 );
41   bool ScanSingleArgument(int argc, const char** argv, const char *name);
42
43   template<typename T> 
44     void  DumpData(T *array, int N, int nPerLine)
45     {
46       //   cout <<   "DumpData N=  " << N <<endl;
47       for(int i= 0; i< N; i++)
48         {
49           if((i%nPerLine == 0)  &&  (i != 0))
50             {
51               //printf("\n");
52               cout << endl;
53             }
54
55           cout << array[i]<< "\t";
56         }
57       //     printf("\n");
58       cout << endl;
59     }
60
61   template<typename T> 
62     void  ResetArray(T *array, int N) const
63     {
64       for(int i= 0; i< N; i++)
65         {
66           array[i] = 0;
67         }
68     }
69  
70   template<typename T> 
71     T  MaxValue(T *array, int N) const
72     {
73       T tmpMax = 0;
74
75       for(int i = 0; i < N; i++)
76         {
77           if(array[i] > tmpMax)
78             {
79               tmpMax = array[i];
80             }
81         }
82       return tmpMax;
83     }
84
85
86
87   
88  private:
89   int DoExistArgument(const int argc, const char** argv, const char *argument) const;
90
91 };
92
93 #endif