Adding TDC channel delays to the calib object.
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Mar 2010 12:29:33 +0000 (12:29 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Mar 2010 12:29:33 +0000 (12:29 +0000)
VZERO/AliVZEROCalibData.cxx
VZERO/AliVZEROCalibData.h
VZERO/AliVZERODataDCS.cxx
VZERO/AliVZERODataDCS.h

index 8ff4e3f..606d03c 100644 (file)
@@ -203,10 +203,16 @@ void AliVZEROCalibData::SetParameter(TString name, Int_t val){
        // Set given parameter
        
        Int_t iBoard = -1;
+       Int_t iChannel = -1;
 
        TSeqCollection* nameSplit = name.Tokenize("/");
        TObjString * boardName = (TObjString *)nameSplit->At(2);
        sscanf(boardName->String().Data(),"CIU%d",&iBoard);
+
+       TString paramName = ((TObjString *)nameSplit->At(3))->String();
+       Char_t channel[2] ; channel[1] = '\0';
+       channel[0] = paramName[paramName.Sizeof()-2];
+       sscanf(channel,"%d",&iChannel);
                
        if(name.Contains("TimeResolution")) SetTimeResolution((UShort_t) val,iBoard);
        else if(name.Contains("WidthResolution")) SetWidthResolution((UShort_t) val,iBoard);
@@ -214,6 +220,7 @@ void AliVZEROCalibData::SetParameter(TString name, Int_t val){
        else if(name.Contains("SearchWindow")) SetSearchWindow((UInt_t) val,iBoard);
        else if(name.Contains("TriggerCountOffset")) SetTriggerCountOffset((UInt_t) val,iBoard);
        else if(name.Contains("RollOver")) SetRollOver((UInt_t) val,iBoard);
+       else if(name.Contains("DelayHit")) SetTimeOffset(0.01*(Float_t)val,8*iBoard+(iChannel-1));
        else AliError(Form("No Setter found for FEE parameter : %s",name.Data()));
 }
 
@@ -274,6 +281,17 @@ void AliVZEROCalibData::SetGain(const Float_t* Gain)
 }
 
 //________________________________________________________________
+void AliVZEROCalibData::SetTimeOffset(Float_t val, Int_t channel)
+{
+  if((channel>=0) && (channel<64)){
+    fTimeOffset[channel]=val;
+    AliInfo(Form("Time offset for channel &d set to %f",channel,fTimeOffset[channel]));
+  }
+  else
+    AliError(Form("Channel %d is not valid",channel));
+}
+
+//________________________________________________________________
 void AliVZEROCalibData::SetTimeOffset(const Float_t* TimeOffset) 
 {
   if(TimeOffset) for(int t=0; t<64; t++) fTimeOffset[t] = TimeOffset[t];
index b807388..9df98fb 100644 (file)
@@ -81,7 +81,7 @@ class AliVZEROCalibData: public TNamed {
    
   void            SetGain(Float_t val, Int_t channel) {fGain[channel]=val;}
   void            SetGain(const Float_t* Gain);  
-  void     SetTimeOffset(Float_t val, Int_t channel) {fTimeOffset[channel]=val;}
+  void     SetTimeOffset(Float_t val, Int_t channel);
   void     SetTimeOffset(const Float_t* TimeOffset);
   void     SetTimeGain(Float_t val, Int_t channel) {fTimeGain[channel]=val;}
   void     SetTimeGain(const Float_t* TimeGain);
index 5217b7d..3585eaa 100644 (file)
@@ -210,6 +210,12 @@ void AliVZERODataDCS::Init(){
          fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/RollOver",iCIU);
        }
 
+       for(int iCIU = 0; iCIU<8 ; iCIU++){
+         for(int iCh=1;iCh<=8;iCh++){
+           fAliasNames[iAlias++] = Form("V00/FEE/CIU%d/DelayHit%d",iCIU,iCh);
+         }
+       }
+
   if(iAlias!=kNAliases) 
              AliError(Form("Number of DCS Aliases defined not correct"));
 
index c72c97c..a76593c 100644 (file)
@@ -20,7 +20,7 @@ class TH1F;
 
 class AliVZERODataDCS : public TObject {
 public:
-  enum {kNAliases=112,kNGraphs=64,kNHvChannel=64,kNLvChannel=16,kNCIUBoards = 8};
+  enum {kNAliases=176,kNGraphs=64,kNHvChannel=64,kNLvChannel=16,kNCIUBoards = 8};
   enum {kHvMin=0, kHvMax=3000};
   
   AliVZERODataDCS();