]>
Commit | Line | Data |
---|---|---|
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 | ||
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 | |
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 |