for current DA
[u/mrichter/AliRoot.git] / T0 / AliT0DataDCS.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *  * appear in the supporting documentation. The authors make no claims     *
11  * about the suitability of this software for any purpose. It is          *
12  * provided "as is" without express or implied warranty.                  *
13  **************************************************************************/
14
15 /*
16 $Log: AliT0DataDCS.cxx,v $
17  Revision   2008/01/30 
18 Fetching data points from DCS, calculating mean and storing data to Reference DB 
19  
20  Version 1.1  2006/10
21 Preliminary test version (T.Malkiewicz)
22 */
23
24 #include "AliT0DataDCS.h"
25
26 #include "AliCDBMetaData.h"
27 #include "AliDCSValue.h"
28 #include "AliLog.h"
29
30 #include <TTimeStamp.h>
31 #include <TObjString.h>
32 #include <TH2F.h>
33 #include <TProfile.h>
34 #include <TGraph.h>
35 #include <TDatime.h>
36 #include <TStyle.h>
37 #include <TCanvas.h>
38
39 // AliT0DataDCS class
40 // declaring DCS aliases for T0
41 // fetching T0 data points from DCS, 
42 // calculating mean values for the entire run
43 // and storing the result to Reference DB
44
45 ClassImp(AliT0DataDCS)
46
47 //---------------------------------------------------------------
48 AliT0DataDCS::AliT0DataDCS():
49         TObject(),
50         fRun(0),        
51         fStartTime(0),
52         fEndTime(0),
53         fIsProcessed(kFALSE)
54 {
55 }
56
57 //---------------------------------------------------------------
58 AliT0DataDCS::AliT0DataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
59         TObject(),
60         fRun(nRun),
61         fStartTime(startTime),
62         fEndTime(endTime),
63         fIsProcessed(kFALSE)
64 {
65         AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", nRun,
66         TTimeStamp(startTime).AsString(),
67         TTimeStamp(endTime).AsString()));
68
69         Init();
70
71 }
72
73 //---------------------------------------------------------------
74 AliT0DataDCS::~AliT0DataDCS() {
75
76 }
77
78 //---------------------------------------------------------------
79 Bool_t AliT0DataDCS::ProcessData(TMap& aliasMap)
80 {
81                 Float_t t0_scaler[32];
82                 Int_t aliasEntr[32];
83                 TObjArray *aliasArr;
84                 for(int j=0; j<kNAliases; j++)
85                 {
86                   for (Int_t k=0;k<32;k++) 
87                   {
88                     t0_scaler[k]=0;
89                     aliasEntr[k]=0;     
90                   }
91                   aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
92                   if(!aliasArr)
93                   {
94                         AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
95                         continue;
96                   }
97                   if(aliasArr->GetEntries()<2)
98                   {
99                         AliError(Form("Alias %s has just %d entries!",
100                                         fAliasNames[j].Data(),aliasArr->GetEntries()));
101                         continue;
102                   }
103                   aliasEntr[j] = aliasArr->GetEntries();
104                   for(int l=0; l<aliasEntr[j]; l++)
105                   {
106                   AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
107                   t0_scaler[j]+= aValue->GetFloat();
108                   }
109                 fScalerMean[j] = t0_scaler[j] / aliasEntr[j] ;
110                 }
111         fIsProcessed=kTRUE;
112         return kTRUE;
113 }
114
115 //---------------------------------------------------------------
116 void AliT0DataDCS::Init()
117 {
118         TString sindex;
119         for(int i=0;i<kNAliases;i++)
120         {
121                 fAliasNames[i] = "t00_ac_scaler_";
122                  sindex.Form("%02d",i);
123                 fAliasNames[i] += sindex;
124         }
125
126 }
127
128 //---------------------------------------------------------------
129 void AliT0DataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr){
130
131         int entries=aliasArr->GetEntries();
132         AliInfo(Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
133         AliInfo(Form("          %d DP values collected",entries));
134
135 }
136
137
138