fEndTime(0),
fStartTimeDCSQuery(0),
fEndTimeDCSQuery(0),
+// fTimeStamp(0x0),
+// fHVData(0x0),
fIsProcessed(kFALSE)
{
// Default constructor
- for(Int_t i=0; i<kNAliases; i++){
- fAliasNames[i] = "";
- fCalibData[i] = 0.;
- fTimeStamp[i] = 0.;
- }
+ for(Int_t i=0; i<kNAliases; i++) fAliasNames[i] = "";
+ for(Int_t i=0; i<kNAlignDet; i++) fAlignData[i] = 0.;
}
//---------------------------------------------------------------
fEndTime(endTime),
fStartTimeDCSQuery(startTimeDCSQuery),
fEndTimeDCSQuery(endTimeDCSQuery),
+// fTimeStamp(0x0),
+// fHVData(0x0),
fIsProcessed(kFALSE)
{
// Standard constructor
fEndTime(data.fEndTime),
fStartTimeDCSQuery(data.fStartTimeDCSQuery),
fEndTimeDCSQuery(data.fEndTimeDCSQuery),
+// fTimeStamp(data.fTimeStamp),
+// fHVData(data.fHVData),
fIsProcessed(data.fIsProcessed)
{
// copy constructor
- for(int i=0;i<kNAliases;i++) {
- fAliasNames[i]=data.fAliasNames[i];
- }
-
+ for(int i=0;i<kNAliases;i++) fAliasNames[i] = data.fAliasNames[i];
+ for(int i=0;i<kNAlignDet;i++) fAlignData[i] = data.fAlignData[i];
}
fEndTime = data.GetEndTime();
fStartTimeDCSQuery = data.GetStartTimeDCSQuery();
fEndTimeDCSQuery = data.GetEndTimeDCSQuery();
+// fTimeStamp = data.GetTimeStamp();
+// fHVData = data.GetHVData();
+ fIsProcessed = data.fIsProcessed;
- for(int i=0;i<kNAliases;i++) {
- fAliasNames[i]=data.GetAliasName(i);
- fCalibData[i]=data.GetCalibData(i);
- fTimeStamp[i]=data.GetTimeStamp(i);
- }
+ for(int i=0;i<kNAliases;i++) fAliasNames[i] = data.GetAliasName(i);
+ for(int i=0;i<kNAlignDet;i++) fAlignData[i] = data.GetAlignData(i);
return *this;
}
AliDCSValue *aValue;
for(int j=0; j<kNAliases; j++){
- aliasArr = dynamic_cast<TObjArray*> (aliasMap.GetValue(fAliasNames[j].Data()));
+ //printf(" Processing alias %d aliasName %s \n", j, fAliasNames[j].Data());
+
+ aliasArr = (TObjArray*) (aliasMap.GetValue(fAliasNames[j].Data()));
if(!aliasArr){
AliWarning(Form("Alias %s not found!", fAliasNames[j].Data()));
- return kFALSE;
+ //printf(" AliZDCDataDCS: Alias %s not found!\n", fAliasNames[j].Data());
+ continue;
}
+
Introduce(j, aliasArr);
- TIter iterarray(aliasArr);
Int_t nentries = aliasArr->GetEntries();
if(nentries<=2){
- AliWarning(Form("Alias %s has just %d entries!",
- fAliasNames[j].Data(), nentries));
- continue;
+ AliWarning(Form("Alias %s has just %d entries!", fAliasNames[j].Data(), nentries));
+// continue;
}
Float_t *time = new Float_t[nentries];
Float_t *val = new Float_t[nentries];
+ TIter iterarray(aliasArr);
+
UInt_t ne=0;
- while((aValue = (AliDCSValue*) iterarray.Next())) {
- val[ne] = aValue->GetFloat();
- time[ne] = (Float_t) (aValue->GetTimeStamp());
- fCalibData[ne] = val[ne];
- fTimeStamp[ne] = time[ne];
- ne++;
+ Float_t sum=0.;
+ Int_t nMeasures=0;
+ while((aValue = (AliDCSValue*) iterarray.Next())){
+ val[ne] = aValue->GetFloat();
+ time[ne] = (Float_t) (aValue->GetTimeStamp());
+ if(j<4){
+ sum += val[ne];
+ nMeasures++;
+ }
+ else{
+ //fHVData[ne] = val[ne];
+ //fTimeStamp[ne] = time[ne];
+ }
+ ne++;
}
+ //
+ if(j<4 && nMeasures!=0) fAlignData[j] = sum/nMeasures;
delete[] val;
- delete[] time;
+ delete[] time;
}
- //
+
fIsProcessed=kTRUE;
-
return kTRUE;
+
}
//---------------------------------------------------------------
void AliZDCDataDCS::Init()
{
// Initialization
+
fAliasNames[0] = "ZDC_ZNA_POS.actual.position";
fAliasNames[1] = "ZDC_ZPA_POS.actual.position";
fAliasNames[2] = "ZDC_ZNC_POS.actual.position";
// Getting array of DCS aliases
int entries = aliasArr->GetEntries();
- AliDebug(2,Form("************ Alias: %s has %d DP values collected\n",
- fAliasNames[numAlias].Data(),entries));
+ printf("************ Alias: %s has %d DP values collected\n",
+ fAliasNames[numAlias].Data(),entries);
}
class AliZDCDataDCS : public TObject {
public:
- enum {kNAliases=28};
+ enum {kNAliases=28, kNAlignDet=4, kNHVChannels=24};
AliZDCDataDCS();
AliZDCDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime,
void SetEndTime(Int_t endTime) {fEndTime = endTime;}
void SetStartTimeDCSQuery(Int_t startTimeDCSQuery) {fStartTimeDCSQuery = startTimeDCSQuery;}
void SetEndTimeDCSQuery(Int_t endTimeDCSQuery) {fEndTimeDCSQuery = endTimeDCSQuery;}
- void SetCalibData(Float_t *val) {for(Int_t i=0; i<kNAliases; i++) fCalibData[i] = val[i];}
- void SetCalibData(Int_t i, Float_t val) {fCalibData[i] = val;}
//
Int_t GetRun() const {return fRun;}
Int_t GetStartTime() const {return fStartTime;}
Int_t GetEndTime() const {return fEndTime;}
Int_t GetStartTimeDCSQuery() const {return fStartTimeDCSQuery;}
Int_t GetEndTimeDCSQuery() const {return fEndTimeDCSQuery;}
- Float_t GetCalibData() const {return *fCalibData;}
- Float_t GetCalibData(Int_t i) const {return fCalibData[i];}
- Float_t GetTimeStamp() const {return *fTimeStamp;}
- Float_t GetTimeStamp(Int_t i) const {return fTimeStamp[i];}
+ Float_t GetAlignData(Int_t i) const {return fAlignData[i];}
+// Float_t* GetTimeStamp() const {return (float*)fTimeStamp;}
+// Float_t* GetHVData() const {return (float*)fHVData;}
Bool_t ProcessData(TMap& aliasMap);
Int_t fStartTimeDCSQuery; // start time DCSQuery
Int_t fEndTimeDCSQuery; // end time DCSQuery
- TString fAliasNames[kNAliases];// Name of the aliases provided by the DCS
- Double_t fCalibData[kNAliases]; // Array containing calibration data
- Float_t fTimeStamp[kNAliases]; // Array containing time stamps
+ TString fAliasNames[kNAliases]; // Name of the aliases provided by the DCS
+ Float_t fAlignData[kNAlignDet]; // Array containing alignment data
+// Float_t *fTimeStamp; // Array containing time stamps
+// Float_t *fHVData; // Array containing HV values
Bool_t fIsProcessed; // Flag set when data are processed
- ClassDef(AliZDCDataDCS, 5);
+ ClassDef(AliZDCDataDCS, 6);
};
#endif
AliPreprocessor::Initialize(run, startTime, endTime);
- AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", run,
+ AliDebug(2,Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", run,
TTimeStamp(startTime).AsString(),
TTimeStamp(endTime).AsString(), ((TTimeStamp)GetStartTimeDCSQuery()).AsString(), ((TTimeStamp)GetEndTimeDCSQuery()).AsString()));
// Fills data into a AliZDCDataDCS object
if(!dcsAliasMap){
Log(" No DCS map found: ZDC exiting from Shuttle");
+ if(fData){
+ delete fData;
+ fData = 0;
+ }
return 1;
}
if(resDCSProcess==kFALSE){
Log(" Problems in processing DCS DP");
return 1;
- }
+ }
- // Store DCS data for reference
+ // Store DCS data as reference
AliCDBMetaData metadata;
metadata.SetResponsible("Chiara Oppedisano");
- metadata.SetComment("DCS data for ZDC");
+ metadata.SetComment("DCS DP TMap for ZDC");
Bool_t resDCSRef = kTRUE;
- resDCSRef = StoreReferenceData("DCS","Data",fData,&metadata);
+ resDCSRef = StoreReferenceData("DCS","Data", dcsAliasMap, &metadata);
if(resDCSRef==kFALSE) return 2;
AliAlignObjParams a;
Double_t dx=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
// Vertical table position in mm from DCS
- Double_t dyZN1 = (Double_t) (fData->GetCalibData(0)/10.);
- Double_t dyZP1 = (Double_t) (fData->GetCalibData(1)/10.);
- Double_t dyZN2 = (Double_t) (fData->GetCalibData(2)/10.);
- Double_t dyZP2 = (Double_t) (fData->GetCalibData(3)/10.);
+ Double_t dyZN1 = (Double_t) (fData->GetAlignData(0)/10.);
+ Double_t dyZP1 = (Double_t) (fData->GetAlignData(1)/10.);
+ Double_t dyZN2 = (Double_t) (fData->GetAlignData(2)/10.);
+ Double_t dyZP2 = (Double_t) (fData->GetAlignData(3)/10.);
//
const char *n1ZDC="ZDC/NeutronZDC_C";
const char *p1ZDC="ZDC/ProtonZDC_C";
// To use it uncomment the following line:
//
TMap* dcsAliasMap = ReadDCSAliasMap();
- //dcsAliasMap->Print("");
//
// (b) generated in this macro: Use CreateDCSAliasMap() and its documentation
// To use it uncomment the following line:
//
//TMap* dcsAliasMap = CreateDCSAliasMap();
+ //dcsAliasMap->Print("");
//WriteDCSAliasMap();
// now give the alias map to the shuttle
aliasNames[2] = "ZDC_ZNC_POS.actual.position";
aliasNames[3] = "ZDC_ZPC_POS.actual.position";
//
- for(int nAlias=0; nAlias<4; nAlias++)
- {
+ for(int nAlias=0; nAlias<4; nAlias++){
TObjArray* valueSet = new TObjArray;
valueSet->SetOwner(1);
//printf("\n\n alias: %s\n\n",aliasName.Data());
Float_t simVal = (Float_t) (random.Rndm()*0.025+random.Rndm()*0.1);
- int timeStamp1[3] = {0,500,1000};
- for(int i=0;i<3;i++){
+ int timeStamp1[5] = {0,500,1000,1500,2000};
+ for(int i=0;i<5;i++){
AliDCSValue* dcsVal = new AliDCSValue(simVal, timeStamp1[i]);
//printf("%s\n",dcsVal->ToString());
valueSet->Add(dcsVal);
aliasNames[26] = "ZDC_REFA_HV.actual.vMon";
aliasNames[27] = "ZDC_REFC_HV.actual.vMon";
//
- for(int nAlias=4;nAlias<28;nAlias++)
- {
- TObjArray* valueSet = new TObjArray;
- valueSet->SetOwner(1);
+ for(int nAlias=4;nAlias<28;nAlias++){
+ if(nAlias<14 || nAlias>18){
+ TObjArray* valueSet = new TObjArray;
+ valueSet->SetOwner(1);
- TString aliasName = aliasNames[nAlias];
- //printf("\n\n alias: %s\n\n",aliasName.Data());
-
- for(int timeStamp=0;timeStamp<=1000;timeStamp+=500)
- {
- Float_t simVal = (Float_t) (random.Gaus()*600.+1800.);
- AliDCSValue* dcsVal = new AliDCSValue(simVal, timeStamp);
- //printf("%s\n",dcsVal->ToString());
- valueSet->Add(dcsVal);
- }
- aliasMap->Add(new TObjString(aliasName), valueSet);
+ TString aliasName = aliasNames[nAlias];
+ printf("\n\n alias: %s\n\n",aliasName.Data());
+
+ for(int timeStamp=0;timeStamp<=2000;timeStamp+=500){
+ Float_t simVal = (Float_t) (random.Gaus()*600.+1800.);
+ AliDCSValue* dcsVal = new AliDCSValue(simVal, timeStamp);
+ //printf("%s\n",dcsVal->ToString());
+ valueSet->Add(dcsVal);
+ }
+ aliasMap->Add(new TObjString(aliasName), valueSet);
+ }
}
return aliasMap;
AliCDBManager *manager = AliCDBManager::Instance();
AliCDBStorage *sto = manager->GetStorage("local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB/");
AliCDBId id("ZDC/DCS/Data",0,999999999);
- AliCDBEntry *entry = sto->Get("ZDC/DCS/Data", 0, 0, 0);
+ AliCDBEntry *entry = sto->Get("ZDC/DCS/Data", 0);
if(!entry) printf("TestZDCPreprocessor.C -> ERROR! No entry found as DCS Map! \n");
return dynamic_cast<TMap*> (entry->GetObject());
}