3 #include <TTimeStamp.h>
5 #include "AliZDCPreprocessor.h"
6 #include "AliCDBManager.h"
7 #include "AliCDBEntry.h"
8 #include "AliCDBMetaData.h"
9 #include "AliDCSValue.h"
11 #include "AliZDCDataDCS.h"
12 #include "AliZDCCalibData.h"
15 // Class implementing ZDC pre-processor.
16 // It takes data from DCS and passes it to the class AliZDCDataDCS.
17 // The class is then written to the CDB.
20 ClassImp(AliZDCPreprocessor)
22 //______________________________________________________________________________________________
23 AliZDCPreprocessor::AliZDCPreprocessor(const char* detector, AliShuttleInterface* shuttle) :
24 AliPreprocessor(detector, shuttle),
30 //______________________________________________________________________________________________
31 AliZDCPreprocessor::~AliZDCPreprocessor()
37 //______________________________________________________________________________________________
38 void AliZDCPreprocessor::Initialize(Int_t run, UInt_t startTime,
41 // Creates AliZDCDataDCS object
43 AliPreprocessor::Initialize(run, startTime, endTime);
45 AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run,
46 TTimeStamp(startTime).AsString(),
47 TTimeStamp(endTime).AsString()));
49 fData = new AliZDCDataDCS(fRun, fStartTime, fEndTime);
52 //______________________________________________________________________________________________
53 UInt_t AliZDCPreprocessor::Process(TMap* dcsAliasMap)
55 // Fills data into a AliZDCDataDCS object
56 if(!dcsAliasMap) return 0;
58 // The processing of the DCS input data is forwarded to AliZDCDataDCS
59 Float_t DCSValues[26];
60 fData->ProcessData(*dcsAliasMap, DCSValues);
61 dcsAliasMap->Print("");
63 AliZDCCalibData *calibdata = new AliZDCCalibData();
64 calibdata->SetDCSCalibData(DCSValues);
66 const char* PedfileName = GetFile(kDAQ, "PEDESTALS", "LDC0");
68 AliInfo(Form("File %s connected to analyze pedestal events", PedfileName));
69 //TFile *file = TFile::Open(PedfileName);
70 AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/Data/");
71 AliZDCCalibData *calibpeddata = (AliZDCCalibData*) entry->GetObject();
72 calibpeddata->Print("");
73 calibdata->SetMeanPed(calibpeddata->GetMeanPed());
74 calibdata->SetMeanPedWidth(calibpeddata->GetMeanPedWidth());
75 calibdata->SetOOTPed(calibpeddata->GetOOTPed());
76 calibdata->SetOOTPedWidth(calibpeddata->GetOOTPedWidth());
77 calibdata->SetPedCorrCoeff(calibpeddata->GetPedCorrCoeff());
79 else AliInfo(Form("File %s not found", PedfileName));
81 const char* EMDfileName = GetFile(kDAQ, "MUTUALEMD", "LDC0");
83 AliInfo(Form("File %s connected to analyze EM dissociation events", EMDfileName));
84 //TFile *file = TFile::Open(EMDfileName);
85 AliCDBEntry *entry = AliCDBManager::Instance()->Get("ZDC/Calib/Data/");
86 AliZDCCalibData *calibEMDdata = (AliZDCCalibData*) entry->GetObject();
87 calibdata->SetEnCalib(calibEMDdata->GetEnCalib());
89 else AliInfo(Form("File %s not found", EMDfileName));
93 //Now we have to store the final CDB file
94 AliCDBMetaData metaData;
95 metaData.SetBeamPeriod(0);
96 metaData.SetResponsible("Chiara");
97 metaData.SetComment("This preprocessor fills an AliZDCDataDCS object.");
99 UInt_t result = Store("SHUTTLE","Data",fData, &metaData);