1 ///////////////////////////////////////////////
2 // Author: Henrik Tydesjo //
3 // Preprocessor Class for the SPD //
5 ///////////////////////////////////////////////
7 #include "AliITSPreprocessorSPD.h"
8 #include "AliITSCalibrationSPD.h"
9 #include "AliITSOnlineCalibrationSPD.h"
10 #include "AliITSOnlineCalibrationSPDhandler.h"
11 #include "AliCDBMetaData.h"
13 #include <TTimeStamp.h>
14 #include <TObjString.h>
16 ClassImp(AliITSPreprocessorSPD)
18 //______________________________________________________________________________________________
19 AliITSPreprocessorSPD::AliITSPreprocessorSPD(AliShuttleInterface* shuttle) :
20 AliPreprocessor("SPD", shuttle)
25 //______________________________________________________________________________________________
26 AliITSPreprocessorSPD::~AliITSPreprocessorSPD()
31 //______________________________________________________________________________________________
32 void AliITSPreprocessorSPD::Initialize(Int_t run, UInt_t startTime,
36 AliPreprocessor::Initialize(run, startTime, endTime);
38 AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", run,
39 TTimeStamp(startTime).AsString(),
40 TTimeStamp(endTime).AsString()));
43 //______________________________________________________________________________________________
44 UInt_t AliITSPreprocessorSPD::Process(TMap* dcsAliasMap)
46 // Do the actual preprocessing
49 // Create the cdb entry, at first filled with empty cal objects (one for each module)
50 TObjArray *spdEntry = new TObjArray(240);
51 for(Int_t module=0;module<240;module++){
52 AliITSCalibrationSPD* cal = new AliITSCalibrationSPD();
55 spdEntry->SetOwner(kTRUE);
56 // Get all the files corresponding to the different modules and fill the dead/noisy lists
57 AliITSOnlineCalibrationSPDhandler* handler = new AliITSOnlineCalibrationSPDhandler();
58 for (Int_t module=0; module<240; module++) {
60 sprintf(id,"SPD_%d",module);
61 TList* list = GetFileSources(kDAQ,id); // (the id is actually unique, so always 1 file)
63 TObjString* fileNameEntry = (TObjString*) list->First();
64 Char_t* fileName = (Char_t*) GetFile(kDAQ, id, fileNameEntry->GetString().Data());
65 handler->SetModuleNr(module);
66 handler->ReadFromFile(fileName);
67 ((AliITSCalibrationSPD*) spdEntry->At(module)) -> SetNrDead( handler->GetNrDead() );
68 ((AliITSCalibrationSPD*) spdEntry->At(module)) -> SetDeadList( handler->GetDeadArray() );
69 ((AliITSCalibrationSPD*) spdEntry->At(module)) -> SetNrNoisy( handler->GetNrNoisy() );
70 ((AliITSCalibrationSPD*) spdEntry->At(module)) -> SetNoisyList( handler->GetNoisyArray() );
74 // Store the cdb entry
75 AliCDBMetaData metaData;
76 metaData.SetBeamPeriod(0);
77 metaData.SetResponsible("Henrik Tydesjo");
78 metaData.SetComment("Preprocessor test for SPD.");
79 UInt_t result = Store("SHUTTLE", "Calib", spdEntry, &metaData, 0, 0);
83 // // Store the container files as reference data (one for each equipment)
84 // for (UInt_t eq=0; eq<20; eq++) {
86 // sprintf(id,"SPDref%d",eq);
87 // TList* list = GetFileSources(kDAQ,id); // (the id is actually unique, so always 1 file)
89 // TObjString* fileNameEntry = (TObjString*) list->First();
90 // Char_t* fileName = (Char_t*) GetFile(kDAQ, id, fileNameEntry->GetString().Data());
91 // AliITSOnlineSPDscan *scan = new AliITSOnlineSPDscan((Char_t*)fileName);
92 // TObjArray* arr = scan->GetAsTObjArray();
94 // sprintf(refCAT,"Ref%d",eq);
95 // StoreReferenceData("SHUTTLE", refCAT, arr, &metaData, 0, 0);