]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ZDC/AliZDCPreprocessor.cxx
Changes required by the updated CDB classes (Alberto)
[u/mrichter/AliRoot.git] / ZDC / AliZDCPreprocessor.cxx
1 // --- ROOT system
2 #include <TFile.h>
3 #include <TTimeStamp.h>
4
5 #include "AliZDCPreprocessor.h"
6 #include "AliCDBManager.h"
7 #include "AliCDBEntry.h"
8 #include "AliCDBMetaData.h"
9 #include "AliDCSValue.h"
10 #include "AliLog.h"
11 #include "AliZDCDataDCS.h"
12 #include "AliZDCCalibData.h"
13
14 //
15 // This class is an example for a simple preprocessor.
16 // It takes data from DCS and passes it to the class AliZDCDataDCS, which
17 // reformats its. This class is then written to the CDB.
18 //
19
20 ClassImp(AliZDCPreprocessor)
21
22 //______________________________________________________________________________________________
23 AliZDCPreprocessor::AliZDCPreprocessor(const char* detector, AliShuttleInterface* shuttle) :
24   AliPreprocessor(detector, shuttle),
25   fData(0)
26 {
27   // constructor
28 }
29
30 //______________________________________________________________________________________________
31 AliZDCPreprocessor::~AliZDCPreprocessor()
32 {
33   // destructor
34 }
35
36 //______________________________________________________________________________________________
37 void AliZDCPreprocessor::Initialize(Int_t run, UInt_t startTime,
38         UInt_t endTime)
39 {
40   // Creates AliZDCDataDCS object
41
42   AliPreprocessor::Initialize(run, startTime, endTime);
43
44         AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run,
45                 TTimeStamp(startTime).AsString(),
46                 TTimeStamp(endTime).AsString()));
47
48         fData = new AliZDCDataDCS(fRun, fStartTime, fEndTime);
49 }
50
51 //______________________________________________________________________________________________
52 UInt_t AliZDCPreprocessor::Process(TMap* dcsAliasMap)
53 {
54   // Fills data into a AliZDCDataDCS object
55   if(!dcsAliasMap) return 0;
56
57   // The processing of the DCS input data is forwarded to AliZDCDataDCS
58   Float_t DCSValues[26];
59   fData->ProcessData(*dcsAliasMap, DCSValues);
60   dcsAliasMap->Print("");
61   //
62   AliZDCCalibData *calibdata = new AliZDCCalibData();
63   calibdata->SetDCSCalibData(DCSValues);
64
65   const char* PedfileName = GetFile(kDAQ, "PEDESTALS", "LDC0");
66   if(PedfileName){
67     AliInfo(Form("File %s connected to analyze pedestal events", PedfileName));
68     //TFile *file = TFile::Open(PedfileName);
69     AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/Data/");
70     AliZDCCalibData *calibpeddata = (AliZDCCalibData*) entry->GetObject();
71     calibpeddata->Print("");
72     calibdata->SetMeanPed(calibpeddata->GetMeanPed());
73     calibdata->SetMeanPedWidth(calibpeddata->GetMeanPedWidth());
74     calibdata->SetOOTPed(calibpeddata->GetOOTPed());
75     calibdata->SetOOTPedWidth(calibpeddata->GetOOTPedWidth());
76     calibdata->SetPedCorrCoeff(calibpeddata->GetPedCorrCoeff());
77   }
78   else AliInfo(Form("File %s not found", PedfileName));
79
80   const char* EMDfileName = GetFile(kDAQ, "MUTUALEMD", "LDC0");
81   if(EMDfileName){
82     AliInfo(Form("File %s connected to analyze EM dissociation events", EMDfileName));
83     //TFile *file = TFile::Open(EMDfileName);
84     AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/Data/");
85     AliZDCCalibData *calibEMDdata = (AliZDCCalibData*) entry->GetObject();
86     calibdata->SetEnCalib(calibEMDdata->GetEnCalib());
87   }
88   else AliInfo(Form("File %s not found", EMDfileName));
89    
90   calibdata->Print("");
91   
92   //Now we have to store the final CDB file
93   AliCDBMetaData metaData;
94   metaData.SetBeamPeriod(0);
95   metaData.SetResponsible("Chiara");
96   metaData.SetComment("This preprocessor fills an AliZDCDataDCS object.");
97
98   UInt_t result = Store("DCS", "Data", fData, &metaData);
99   delete fData;
100   fData = 0;
101
102   delete calibdata;
103   return result;
104 }
105