]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCClusterTransformation.cxx
Removing annoying prints
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClusterTransformation.cxx
1 // $Id: AliHLTTPCClusterTransformation.cxx 41244 2010-05-14 08:13:35Z kkanaki $
2
3 //**************************************************************************
4 //* This file is property of and copyright by the ALICE HLT Project        *
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //*                                                                        *
7 //* Primary Authors: Kalliopi Kanaki <Kalliopi.Kanaki@ift.uib.no>          *
8 //*                  for The ALICE HLT Project.                            *
9 //*                                                                        *
10 //* Permission to use, copy, modify and distribute this software and its   *
11 //* documentation strictly for non-commercial purposes is hereby granted   *
12 //* without fee, provided that the above copyright notice appears in all   *
13 //* copies and that both the copyright notice and this permission notice   *
14 //* appear in the supporting documentation. The authors make no claims     *
15 //* about the suitability of this software for any purpose. It is          *
16 //* provided "as is" without express or implied warranty.                  *
17 //**************************************************************************
18
19 /** @file   AliHLTTPCClusterTransformation.cxx
20     @author Kalliopi Kanaki, Sergey Gorbubnov
21     @date   
22     @brief 
23 */
24
25
26 #include "AliHLTTPCClusterTransformation.h"
27 #include "AliHLTTPCTransform.h"
28 #include "AliHLTTPCFastTransform.h"
29
30 #include "AliCDBPath.h"
31 #include "AliCDBManager.h"
32 #include "AliCDBEntry.h"
33 #include "AliGRPObject.h"
34 #include "AliTPCcalibDB.h"
35 #include "AliTPCTransform.h"
36 #include "AliTPCParam.h"
37 #include "AliTPCRecoParam.h"
38 #include "AliGeomManager.h"
39 #include "AliRunInfo.h"
40 #include "AliEventInfo.h"
41 #include "AliRawEventHeaderBase.h"
42 #include <iostream>
43 #include <iomanip>
44
45 using namespace std;
46
47 ClassImp(AliHLTTPCClusterTransformation) //ROOT macro for the implementation of ROOT specific class methods
48
49 AliRecoParam AliHLTTPCClusterTransformation::fOfflineRecoParam;
50
51 AliHLTTPCClusterTransformation::AliHLTTPCClusterTransformation()
52 :
53   fError(),
54   fFastTransform()  
55 {
56   // see header file for class documentation
57   // or
58   // refer to README to build package
59   // or
60   // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt  
61 }
62
63 AliHLTTPCClusterTransformation::~AliHLTTPCClusterTransformation() 
64
65   // see header file for class documentation
66 }
67
68
69 int  AliHLTTPCClusterTransformation::Init( double FieldBz, Long_t TimeStamp )
70 {
71   // Initialisation
72  
73   if(!AliGeomManager::GetGeometry()){
74     AliGeomManager::LoadGeometry();
75   }
76
77   if(!AliGeomManager::GetGeometry()) return Error(-1,"AliHLTTPCClusterTransformation::Init: Can not initialise geometry");
78   
79   AliTPCcalibDB* pCalib=AliTPCcalibDB::Instance();
80  
81   if(!pCalib ) return Error(-2,"AliHLTTPCClusterTransformation::Init: Calibration not found");
82   
83   pCalib->SetExBField(FieldBz);
84  
85   if( !pCalib->GetTransform() ) return Error(-3,"AliHLTTPCClusterTransformation::Init: No TPC transformation found");
86   
87   // -- Get AliRunInfo variables  
88
89   AliGRPObject tmpGRP, *pGRP=0;
90
91   AliCDBEntry *entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
92   
93   if(!entry) return Error(-4,"AliHLTTPCClusterTransformation::Init: No GRP object found in data base");
94
95   {
96     TMap* m = dynamic_cast<TMap*>(entry->GetObject());  // old GRP entry
97
98     if (m) {
99       //cout<<"Found a TMap in GRP/GRP/Data, converting it into an AliGRPObject"<<endl;
100       m->Print();
101       pGRP = &tmpGRP;
102       pGRP->ReadValuesFromMap(m);
103     }
104     else {
105       //cout<<"Found an AliGRPObject in GRP/GRP/Data, reading it"<<endl;
106       pGRP = dynamic_cast<AliGRPObject*>(entry->GetObject());  // new GRP entry
107     }
108   }
109     
110   if( !pGRP ){
111     return Error(-5,"AliHLTTPCClusterTransformation::Init: Unknown format of the GRP object in data base");
112   }
113
114   AliRunInfo runInfo(pGRP->GetLHCState(),pGRP->GetBeamType(),pGRP->GetBeamEnergy(),pGRP->GetRunType(),pGRP->GetDetectorMask());
115   AliEventInfo evInfo;
116   evInfo.SetEventType(AliRawEventHeaderBase::kPhysicsEvent);
117
118   entry=AliCDBManager::Instance()->Get("TPC/Calib/RecoParam");
119
120   if(!entry) return Error(-6,"AliHLTTPCClusterTransformation::Init: No TPC reco param entry found in data base");
121
122   TObject *recoParamObj = entry->GetObject();
123   if(!recoParamObj) return Error(-7,"AliHLTTPCClusterTransformation::Init: Empty TPC reco param entry in data base");
124
125   if (dynamic_cast<TObjArray*>(recoParamObj)) {
126     //cout<<"\n\nSet reco param from AliHLTTPCClusterTransformation: TObjArray found \n"<<endl;
127     TObjArray *copy = (TObjArray*)( static_cast<TObjArray*>(recoParamObj)->Clone() );
128     fOfflineRecoParam.AddDetRecoParamArray(1,copy);
129   }
130   else if (dynamic_cast<AliDetectorRecoParam*>(recoParamObj)) {
131     //cout<<"\n\nSet reco param from AliHLTTPCClusterTransformation: AliDetectorRecoParam found \n"<<endl;
132     AliDetectorRecoParam *copy = (AliDetectorRecoParam*)static_cast<AliDetectorRecoParam*>(recoParamObj)->Clone();
133     fOfflineRecoParam.AddDetRecoParam(1,copy);
134   } else {    
135     return Error(-8,"AliHLTTPCClusterTransformation::Init: Unknown format of the TPC Reco Param entry in the data base");
136   }
137   
138   
139   fOfflineRecoParam.SetEventSpecie(&runInfo, evInfo, 0);    
140  
141   // 
142
143   AliTPCRecoParam* recParam = (AliTPCRecoParam*)fOfflineRecoParam.GetDetRecoParam(1);
144
145   if( !recParam ) return Error(-9,"AliHLTTPCClusterTransformation::Init: No TPC Reco Param entry found for the given event specification");
146
147  
148   pCalib->GetTransform()->SetCurrentRecoParam(recParam);
149
150   // set current time stamp and initialize the fast transformation
151   int err = fFastTransform.Init( pCalib->GetTransform(), TimeStamp );
152
153   if( err!=0 ){
154     return Error(-10,Form( "AliHLTTPCClusterTransformation::Init: Initialisation of Fast Transformation failed with error %d :%s",err,fFastTransform.GetLastError()) );
155   }
156
157   return 0;
158 }
159
160 Bool_t AliHLTTPCClusterTransformation::IsInitialised() const 
161 {
162   // Is the transformation initialised
163   return fFastTransform.IsInitialised();
164 }
165
166 void AliHLTTPCClusterTransformation::DeInit()
167 {
168   // Deinitialisation
169   fFastTransform.DeInit();
170 }
171
172 Int_t AliHLTTPCClusterTransformation::SetCurrentTimeStamp( Long_t TimeStamp )
173 {
174   // Set the current time stamp  
175
176   AliTPCRecoParam* recParam = (AliTPCRecoParam*)fOfflineRecoParam.GetDetRecoParam(1);
177   if( !recParam )  return Error(-1,"AliHLTTPCClusterTransformation::SetCurrentTimeStamp: No TPC Reco Param entry found");
178
179   AliTPCcalibDB* pCalib=AliTPCcalibDB::Instance();
180   if(!pCalib ) return Error(-2,"AliHLTTPCClusterTransformation::Init: Calibration not found");
181    
182   if( !pCalib->GetTransform() ) return Error(-3,"AliHLTTPCClusterTransformation::SetCurrentTimeStamp: No TPC transformation found");
183   
184   pCalib->GetTransform()->SetCurrentRecoParam(recParam);
185
186   int err = fFastTransform.SetCurrentTimeStamp( TimeStamp );
187   if( err!=0 ){
188     return Error(-4,Form( "AliHLTTPCClusterTransformation::SetCurrentTimeStamp: SetCurrentTimeStamp to the Fast Transformation failed with error %d :%s",err,fFastTransform.GetLastError()) );
189   }
190   return 0;
191 }
192
193 void AliHLTTPCClusterTransformation::Print(const char* /*option*/) const
194 {
195   // print info
196   fFastTransform.Print();
197 }
198
199
200 Int_t AliHLTTPCClusterTransformation::GetSize() const
201 {
202   // total size of the object
203   int size = sizeof(AliHLTTPCClusterTransformation) - sizeof(AliHLTTPCFastTransform) + fFastTransform.GetSize();
204   return size;
205 }