]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ZDC/AliZDCPreprocessor.cxx
Introduce protection against switched off supermodules
[u/mrichter/AliRoot.git] / ZDC / AliZDCPreprocessor.cxx
CommitLineData
31af5828 1// --- ROOT system
2#include <TFile.h>
3#include <TTimeStamp.h>
64a7c78d 4
31af5828 5#include "AliZDCPreprocessor.h"
6#include "AliCDBManager.h"
7#include "AliCDBEntry.h"
64a7c78d 8#include "AliCDBMetaData.h"
9#include "AliDCSValue.h"
10#include "AliLog.h"
11#include "AliZDCDataDCS.h"
31af5828 12#include "AliZDCCalibData.h"
64a7c78d 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
20ClassImp(AliZDCPreprocessor)
21
22//______________________________________________________________________________________________
23AliZDCPreprocessor::AliZDCPreprocessor(const char* detector, AliShuttleInterface* shuttle) :
24 AliPreprocessor(detector, shuttle),
25 fData(0)
26{
27 // constructor
28}
29
30//______________________________________________________________________________________________
31AliZDCPreprocessor::~AliZDCPreprocessor()
32{
33 // destructor
34}
35
36//______________________________________________________________________________________________
37void 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//______________________________________________________________________________________________
52UInt_t AliZDCPreprocessor::Process(TMap* dcsAliasMap)
53{
54 // Fills data into a AliZDCDataDCS object
31af5828 55 if(!dcsAliasMap) return 0;
64a7c78d 56
57 // The processing of the DCS input data is forwarded to AliZDCDataDCS
31af5828 58 Float_t DCSValues[26];
59 fData->ProcessData(*dcsAliasMap, DCSValues);
60 dcsAliasMap->Print("");
61 //
5a068f58 62 AliZDCCalibData *calibdata = new AliZDCCalibData();
31af5828 63 calibdata->SetDCSCalibData(DCSValues);
64a7c78d 64
65 const char* PedfileName = GetFile(kDAQ, "PEDESTALS", "LDC0");
66 if(PedfileName){
31af5828 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());
64a7c78d 77 }
78 else AliInfo(Form("File %s not found", PedfileName));
79
31af5828 80 const char* EMDfileName = GetFile(kDAQ, "MUTUALEMD", "LDC0");
64a7c78d 81 if(EMDfileName){
31af5828 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());
64a7c78d 87 }
88 else AliInfo(Form("File %s not found", EMDfileName));
31af5828 89
90 calibdata->Print("");
91
64a7c78d 92 //Now we have to store the final CDB file
93 AliCDBMetaData metaData;
31af5828 94 metaData.SetBeamPeriod(0);
95 metaData.SetResponsible("Chiara");
96 metaData.SetComment("This preprocessor fills an AliZDCDataDCS object.");
64a7c78d 97
420563be 98 UInt_t result = Store("DCS", "Data", fData, &metaData);
31af5828 99 delete fData;
100 fData = 0;
64a7c78d 101
5a068f58 102 delete calibdata;
64a7c78d 103 return result;
104}
105