]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSDCSAnalyzerSDD.cxx
Global coordinates from AliCluster::GetGlobalXYZ. fGeometry no longer used in AliITSM...
[u/mrichter/AliRoot.git] / ITS / AliITSDCSAnalyzerSDD.cxx
CommitLineData
cfaccd71 1/**************************************************************************
2 * Copyright(c) 2007-2009, 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 *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18///////////////////////////////////////////////////////////////////
19// //
20// Implementation of the class for SDD DCS data analysis //
21// Origin: F.Prino, Torino, prino@to.infn.it //
22// //
23///////////////////////////////////////////////////////////////////
24
25
26#include "AliITSDCSAnalyzerSDD.h"
27#include "AliDCSValue.h"
28
29
30
31const Int_t AliITSDCSAnalyzerSDD::fgkNcathodes = 291;
32const Float_t AliITSDCSAnalyzerSDD::fgkCathodePitch = 0.0120;
33const Int_t AliITSDCSAnalyzerSDD::fgkTemperatureStatusOK = 4;
34
35ClassImp(AliITSDCSAnalyzerSDD)
36
37//---------------------------------------------------------------
38AliITSDCSAnalyzerSDD::AliITSDCSAnalyzerSDD():
39TObject(),
40fDCSData(0)
41{
42 // Default constructor
43 Init();
44 fDCSData=new AliITSDCSDataSDD*[kNmodules];
45}
46//---------------------------------------------------------------
47AliITSDCSAnalyzerSDD::AliITSDCSAnalyzerSDD(const AliITSDCSAnalyzerSDD& /* dcsa */):
48TObject(),
49fDCSData(0)
50{
51 // copy constructor
52 // Copies are not allowed. The method is protected to avoid misuse.
53 AliError("Copy constructor not allowed");
54}
55//---------------------------------------------------------------
56AliITSDCSAnalyzerSDD& AliITSDCSAnalyzerSDD::operator=(const AliITSDCSAnalyzerSDD& /* dcsa */){
57 // assigment operator
58 // Assignment is not allowed. The method is protected to avoid misuse.
59 AliError("Assignment operator not allowed");
60 return *this;
61}
62//---------------------------------------------------------------
63AliITSDCSAnalyzerSDD::~AliITSDCSAnalyzerSDD(){
64 // destructor
65 for(int j=0; j<kNmodules; j++){
66 if(fDCSData[j]) delete fDCSData[j];
67 }
68 delete [] fDCSData;
69}
70//---------------------------------------------------------------
71void AliITSDCSAnalyzerSDD::AnalyzeData(TMap* dcsMap){
72 // Data processing
73
74 for(int j=0; j<kNmodules; j++){
75 TObjArray* arrHV = (TObjArray*) dcsMap->GetValue(fHVDPNames[j].Data());
76 if(!arrHV){
77 AliError(Form("DCS HV alias %s not found!", fHVDPNames[j].Data()));
78 continue;
79 }
80 TObjArray* arrMV = (TObjArray*) dcsMap->GetValue(fMVDPNames[j].Data());
81 if(!arrMV){
82 AliError(Form("DCS MV alias %s not found!", fMVDPNames[j].Data()));
83 continue;
84 }
85 TObjArray* arrTL = (TObjArray*) dcsMap->GetValue(fTLDPNames[j].Data());
86 if(!arrTL){
87 AliError(Form("DCS TEMP_L alias %s not found!", fTLDPNames[j].Data()));
88 continue;
89 }
90 TObjArray* arrTR = (TObjArray*) dcsMap->GetValue(fTRDPNames[j].Data());
91 if(!arrTR){
92 AliError(Form("DCS TEMP_R alias %s not found!", fTRDPNames[j].Data()));
93 continue;
94 }
95 TObjArray* arrStTL = (TObjArray*) dcsMap->GetValue(fTLStDPNames[j].Data());
96 if(!arrStTL){
97 AliError(Form("DCS TEMP_L_STATE alias %s not found!", fTLStDPNames[j].Data()));
98 continue;
99 }
100 TObjArray* arrStTR = (TObjArray*) dcsMap->GetValue(fTRStDPNames[j].Data());
101 if(!arrStTR){
102 AliError(Form("DCS TEMP_R_STATE alias %s not found!", fTRStDPNames[j].Data()));
103 continue;
104 }
105
106 Int_t nData=arrHV->GetEntries();
107 fDCSData[j]=new AliITSDCSDataSDD(nData);
108 for(int i =0; i<arrHV->GetEntries(); i++) {
109 AliDCSValue* valHV = (AliDCSValue*) arrHV->At(i);
110 AliDCSValue* valMV = (AliDCSValue*) arrMV->At(i);
111 AliDCSValue* valTL = (AliDCSValue*) arrTL->At(i);
112 AliDCSValue* valTR = (AliDCSValue*) arrTR->At(i);
113 AliDCSValue* valStTL = (AliDCSValue*) arrStTL->At(i);
114 AliDCSValue* valStTR = (AliDCSValue*) arrStTR->At(i);
115 Int_t timeStamp = valHV->GetTimeStamp();
116 Float_t hv = valHV->GetFloat();
117 Float_t mv = valMV->GetFloat();
118 Float_t edrift = (hv-mv)/(Float_t)fgkNcathodes/fgkCathodePitch;
119 Int_t statusTL=valStTL->GetInt();
120 Int_t statusTR=valStTR->GetInt();
121 Float_t tleft = -9999.;
122 if(statusTL==fgkTemperatureStatusOK) tleft=valTL->GetFloat();
123 Float_t tright = -9999.;
124 if(statusTR==fgkTemperatureStatusOK) tright=valTR->GetFloat();
125 fDCSData[j]->SetValues(timeStamp,edrift,tleft,tright);
126 }
127 }
128}
129
130//---------------------------------------------------------------
131void AliITSDCSAnalyzerSDD::Init(){
132 // Initialization of DCS DP names
133 Char_t dpName[50];
134 Char_t modName[50];
135 for(Int_t iLad=0; iLad<kNladders3; iLad++){
136 for(Int_t iMod=0; iMod<kNmodLad3;iMod++){
137 sprintf(modName,"SDD_LAYER3_LADDER%02d_MODULE%d",iLad,iMod);
138 Int_t id=iMod+iLad*kNmodLad3;
139 sprintf(dpName,"%s_HV",modName);
140 fHVDPNames[id]=dpName;
141 sprintf(dpName,"%s_MV",modName);
142 fMVDPNames[id]=dpName;
143 sprintf(dpName,"%s_TEMP_L",modName);
144 fTLDPNames[id]=dpName;
145 sprintf(dpName,"%s_TEMP_R",modName);
146 fTRDPNames[id]=dpName;
147 sprintf(dpName,"%s_TEMP_L_STATE",modName);
148 fTLStDPNames[id]=dpName;
149 sprintf(dpName,"%s_TEMP_R_STATE",modName);
150 fTRStDPNames[id]=dpName;
151 }
152 }
153 for(Int_t iLad=0; iLad<kNladders4; iLad++){
154 for(Int_t iMod=0; iMod<kNmodLad4;iMod++){
155 sprintf(modName,"SDD_LAYER4_LADDER%02d_MODULE%d",iLad,iMod);
156 Int_t id=kNladders3*kNmodLad3+iMod+iLad*kNmodLad4;
157 sprintf(dpName,"%s_HV",modName);
158 fHVDPNames[id]=dpName;
159 sprintf(dpName,"%s_MV",modName);
160 fMVDPNames[id]=dpName;
161 sprintf(dpName,"%s_TEMP_L",modName);
162 fTLDPNames[id]=dpName;
163 sprintf(dpName,"%s_TEMP_R",modName);
164 fTRDPNames[id]=dpName;
165 sprintf(dpName,"%s_TEMP_L_STATE",modName);
166 fTLStDPNames[id]=dpName;
167 sprintf(dpName,"%s_TEMP_R_STATE",modName);
168 fTRStDPNames[id]=dpName;
169 }
170 }
171}
172
173//---------------------------------------------------------------
174void AliITSDCSAnalyzerSDD::PrintDCSDPNames(){
175 // Data processing
176 for(int j=0; j<kNmodules; j++){
177 printf("Module %d %s %s %s %s\n",j,fHVDPNames[j].Data(),fMVDPNames[j].Data(),fTLDPNames[j].Data(),fTRDPNames[j].Data());
178 }
179}