changes are needed in order to implement the code to be used in the TRIGGER PreProces...
authorrpreghen <rpreghen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 28 Oct 2010 12:45:01 +0000 (12:45 +0000)
committerrpreghen <rpreghen@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 28 Oct 2010 12:45:01 +0000 (12:45 +0000)
TOF/AliTOFFEEReader.cxx
TOF/AliTOFFEEReader.h
TOF/AliTOFFEElightConfig.h
TOF/AliTOFPreprocessor.cxx
TOF/AliTOFTriggerMask.cxx [new file with mode: 0644]
TOF/AliTOFTriggerMask.h [new file with mode: 0644]
TOF/CMakelibTOFbase.pkg
TOF/ShuttleInput/TOFFEElight.20101028.133932.8000 [new file with mode: 0644]
TOF/TOFPreprocessor.C
TOF/TOFbaseLinkDef.h
TOF/libTOFbase.pkg

index c8fd0b8..d414252 100644 (file)
@@ -121,6 +121,21 @@ AliTOFFEEReader::ResetChannelEnabledArray()
 
 //_______________________________________________________________
 
+void
+AliTOFFEEReader::ResetTriggerMaskArray()
+{
+  /*
+   *
+   * reset trigger mask array
+   *
+   */
+
+  for (Int_t iddl = 0; iddl < GetNumberOfDDLs(); iddl++)
+    fTriggerMask[iddl] = 0x0;
+}
+
+//_______________________________________________________________
+
 void
 AliTOFFEEReader::Reset()
 {
@@ -135,6 +150,9 @@ AliTOFFEEReader::Reset()
     fMatchingWindow[iIndex] = 0;
     fLatencyWindow[iIndex] = 0;
   }
+
+  for (Int_t iddl = 0; iddl < GetNumberOfDDLs(); iddl++)
+    fTriggerMask[iddl] = 0x0;
 }
 
 //_______________________________________________________________
@@ -244,6 +262,8 @@ AliTOFFEEReader::ParseFEElightConfig()
 
   AliInfo("parsing TOF FEElight config");
 
+  Reset();
+
   AliTOFcalibHisto calibHisto;
   calibHisto.LoadCalibHisto();
 
@@ -260,6 +280,12 @@ AliTOFFEEReader::ParseFEElightConfig()
     fMatchingWindow[index] = channelConfig->GetMatchingWindow();
     fLatencyWindow[index] = channelConfig->GetLatencyWindow();
   }
+
+  AliTOFFEEtriggerConfig *triggerConfig = NULL;
+  for (Int_t iddl = 0; iddl < GetNumberOfDDLs(); iddl++) {
+    triggerConfig = fFEElightConfig->GetTriggerConfig(iddl);
+    fTriggerMask[iddl] = triggerConfig->GetStatusMap();
+  }
  
   return nEnabled;
 }
index 4cf6cbc..c071227 100644 (file)
@@ -44,7 +44,9 @@ public TObject
   Bool_t GetChannelEnabled(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fChannelEnabled[iIndex] : kFALSE;}; // get channel enabled
   Int_t GetMatchingWindow(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fMatchingWindow[iIndex] : 0;}; // get matching window
   Int_t GetLatencyWindow(Int_t iIndex) const {return iIndex < GetNumberOfIndexes() ? fLatencyWindow[iIndex] : 0;}; // get latency window
-  
+  UInt_t GetTriggerMask(Int_t iddl) const {return iddl < GetNumberOfDDLs() ? fTriggerMask[iddl] : 0;}; // get trigger mask
+  UInt_t *GetTriggerMaskArray() {return fTriggerMask;}; // get trigger mask array
+
   /* setters */
   
   /* methods */
@@ -60,6 +62,7 @@ public TObject
   Int_t ParseFEElightConfig(); // parse FEElight config
 
   void ResetChannelEnabledArray(); // reset channel enabled array
+  void ResetTriggerMaskArray(); // reset trigger mask array
   void Reset(); // reset channel enabled array
   Bool_t IsChannelEnabled(Int_t iIndex) const {return GetChannelEnabled(iIndex);}; // is channel enabled
   
@@ -83,7 +86,9 @@ public TObject
   Int_t fMatchingWindow[fgkNumberOfIndexes]; // matching window
   Int_t fLatencyWindow[fgkNumberOfIndexes]; // matching window
 
-  ClassDef(AliTOFFEEReader, 1);
+  UInt_t fTriggerMask[fgkNumberOfDDLs]; // trigger mask
+
+  ClassDef(AliTOFFEEReader, 2);
 
 };
 
index 9ae1e3f..946d53b 100644 (file)
@@ -46,15 +46,37 @@ class AliTOFFEEchannelConfig
 
 //_____________________________________________________________________________
 
+class AliTOFFEEtriggerConfig
+{
+
+ public:
+  
+ private:
+  UInt_t fStatusMap; // status
+
+ public:
+  AliTOFFEEtriggerConfig() : fStatusMap(0x0) {}; // default construct
+  ~AliTOFFEEtriggerConfig() {}; // default destructor
+
+  UInt_t GetStatusMap() const {return fStatusMap;}; // get status map
+
+  void SetStatusMap(UInt_t value) {fStatusMap = value;}; // set status map
+
+};
+
+//_____________________________________________________________________________
+
 class AliTOFFEElightConfig
 {
 
  private:
   static const Int_t fgkNumberOfChannels = 172800; // number of channels
+  static const Int_t fgkNumberOfTriggerMaps = 72; // number of trigger maps
   Int_t fVersion; // version
   Int_t fRunNumber; // run number
   Int_t fRunType; // run type
   AliTOFFEEchannelConfig fChannelConfig[fgkNumberOfChannels]; // channel config array
+  AliTOFFEEtriggerConfig fTriggerConfig[fgkNumberOfTriggerMaps]; // trigger config array
 
  public:
   AliTOFFEElightConfig() : fVersion(0), fRunNumber(0), fRunType(0), fChannelConfig() {}; // default construct
@@ -64,6 +86,7 @@ class AliTOFFEElightConfig
   Int_t GetRunNumber() const {return fRunNumber;}; // get run number
   Int_t GetRunType() const {return fRunType;}; // get run type
   AliTOFFEEchannelConfig *GetChannelConfig(Int_t i) {return (i < fgkNumberOfChannels ? &fChannelConfig[i] : NULL);}; // get channel config
+  AliTOFFEEtriggerConfig *GetTriggerConfig(Int_t i) {return (i < fgkNumberOfTriggerMaps ? &fTriggerConfig[i] : NULL);}; // get trigger config
 
   void SetVersion(Int_t value) {fVersion = value;}; // get version
   void SetRunNumber(Int_t value) {fRunNumber = value;}; // get run number
index d118074..5d85c69 100644 (file)
@@ -1830,10 +1830,10 @@ UInt_t AliTOFPreprocessor::Process(TMap *dcsAliasMap)
     //    Int_t iresultDAQ = ProcessOnlineDelays();
     Int_t iresultDAQ = ProcessT0Fill();
     Int_t iresultNoiseCalib = ProcessNoiseCalibTrg();
-    //    Int_t iresultReadout = ProcessReadout();
+    Int_t iresultReadout = ProcessReadout();
     Int_t iresultDCS = ProcessDCSDataPoints(dcsAliasMap);
     Int_t iResultHVandLVdps = ProcessHVandLVdps(dcsAliasMap);
-    return iresultDAQ+iresultNoiseCalib+iresultDCS+iResultHVandLVdps;
+    return iresultDAQ+iresultNoiseCalib+iresultDCS+iResultHVandLVdps+iresultReadout;
   }
 
   // storing
diff --git a/TOF/AliTOFTriggerMask.cxx b/TOF/AliTOFTriggerMask.cxx
new file mode 100644 (file)
index 0000000..9f5f4a0
--- /dev/null
@@ -0,0 +1,95 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+// *
+// *
+// *
+// * this class defines the TOF object to be stored
+// * in OCDB on a run-by-run basis in order to have the status
+// * of TOF trigger inputs. it stores 32 bit masks for each crate
+// * 
+// *
+// *
+// *
+
+#include "AliTOFTriggerMask.h"
+
+ClassImp(AliTOFTriggerMask)
+
+//_________________________________________________________
+
+AliTOFTriggerMask::AliTOFTriggerMask() :
+  TObject(),
+  fTriggerMask()
+{
+  /*
+   * default constructor
+   */
+
+  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = 0;
+}
+
+//_________________________________________________________
+
+AliTOFTriggerMask::~AliTOFTriggerMask()
+{
+  /*
+   * default destructor
+   */
+
+}
+
+//_________________________________________________________
+
+AliTOFTriggerMask::AliTOFTriggerMask(const AliTOFTriggerMask &source) :
+  TObject(source),
+  fTriggerMask()
+{
+  /*
+   * copy constructor
+   */
+
+  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = source.fTriggerMask[iddl];
+}
+
+//_________________________________________________________
+
+AliTOFTriggerMask &
+AliTOFTriggerMask::operator=(const AliTOFTriggerMask &source)
+{
+  /*
+   * operator=
+   */
+
+  if (this == &source) return *this;
+  TObject::operator=(source);
+  
+  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = source.fTriggerMask[iddl];
+
+  return *this;
+}
+
+//_________________________________________________________
+
+void
+AliTOFTriggerMask::SetTriggerMaskArray(UInt_t *array)
+{
+  /*
+   * set trigger mask array
+   */
+
+  for (Int_t iddl = 0; iddl < 72; iddl++) fTriggerMask[iddl] = array[iddl];
+}
+
diff --git a/TOF/AliTOFTriggerMask.h b/TOF/AliTOFTriggerMask.h
new file mode 100644 (file)
index 0000000..ff980f5
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef ALITOFTRIGGERMASK_H
+#define ALITOFTRIGGERMASK_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+/* $Id$ */
+
+// *
+// *
+// *
+// * this class defines the TOF object to be stored
+// * in OCDB on a run-by-run basis in order to have the status
+// * of TOF trigger inputs. it stores 32 bit masks for each crate
+// * 
+// *
+// *
+// *
+
+#include "TObject.h"
+
+class AliTOFTriggerMask :
+public TObject
+{
+
+ public:
+
+  AliTOFTriggerMask(); // default constructor
+  virtual ~AliTOFTriggerMask(); // default destructor
+  AliTOFTriggerMask(const AliTOFTriggerMask &source); // copy constructor
+  AliTOFTriggerMask &operator=(const AliTOFTriggerMask &source); // operator=
+
+  UInt_t GetTriggerMask(UInt_t icrate) const {return icrate < 72 ? fTriggerMask[icrate] : 0;}; // get trigger mask
+  UInt_t *GetTriggerMaskArray() {return fTriggerMask;}; // get trigger mask array
+
+  void SetTriggerMaskArray(UInt_t *array); // set trigger mask array
+
+ private:
+
+  UInt_t fTriggerMask[72]; // trigger mask array
+
+  ClassDef(AliTOFTriggerMask, 1);
+};
+
+#endif /* ALITOFTRIGGERMASK_H */
index e6183a0..1ba24a8 100644 (file)
 # SHLIBS - Shared Libraries and objects for linking (Executables only)           #
 #--------------------------------------------------------------------------------#
 
-set ( SRCS  AliTOFGeometry.cxx AliTOFdigit.cxx AliTOFDigitMap.cxx AliTOFRawMap.cxx AliTOFrawData.cxx AliTOFRawStream.cxx AliTOFHitData.cxx AliTOFHitField.cxx AliTOFHitDataBuffer.cxx AliTOFDecoder.cxx AliTOFChannelOffline.cxx AliTOFChannelOnline.cxx AliTOFChannelOnlineStatus.cxx AliTOFChannelOnlineArray.cxx AliTOFChannelOnlineStatusArray.cxx AliTOFcalib.cxx AliTOFAlignment.cxx AliTOFPreprocessor.cxx AliTOFDataDCS.cxx AliTOFFormatDCS.cxx AliTOFPreprocessorFDR.cxx AliTOFFEEReader.cxx AliTOFFEEDump.cxx AliTOFCableLengthMap.cxx AliTOFNoiseConfigHandler.cxx AliTOFcalibHisto.cxx AliTOFArray.cxx AliTOFDaConfigHandler.cxx AliTOFDeltaBCOffset.cxx AliTOFCTPLatency.cxx AliTOFT0Fill.cxx AliTOFRunParams.cxx AliTOFResponseParams.cxx AliTOFT0FillOnlineCalib.cxx AliTOFLvHvDataPoints.cxx AliTOFDCSmaps.cxx AliTOFChainSummaryData.cxx AliTOFDRMSummaryData.cxx AliTOFDecoderSummaryData.cxx AliTOFLTMSummaryData.cxx AliTOFTRMSummaryData.cxx AliTOFDecoderV2.cxx AliTOFTDCError.cxx AliTOFTDCErrorBuffer.cxx AliTOFTDCHit.cxx AliTOFTDCHitBuffer.cxx AliTOFReadoutInfo.cxx)
+set ( SRCS  AliTOFGeometry.cxx AliTOFdigit.cxx AliTOFDigitMap.cxx
+AliTOFRawMap.cxx AliTOFrawData.cxx AliTOFRawStream.cxx AliTOFHitData.cxx
+AliTOFHitField.cxx AliTOFHitDataBuffer.cxx AliTOFDecoder.cxx
+AliTOFChannelOffline.cxx AliTOFChannelOnline.cxx AliTOFChannelOnlineStatus.cxx
+AliTOFChannelOnlineArray.cxx AliTOFChannelOnlineStatusArray.cxx
+AliTOFcalib.cxx AliTOFAlignment.cxx AliTOFPreprocessor.cxx AliTOFDataDCS.cxx
+AliTOFFormatDCS.cxx AliTOFPreprocessorFDR.cxx AliTOFFEEReader.cxx
+AliTOFFEEDump.cxx AliTOFCableLengthMap.cxx AliTOFNoiseConfigHandler.cxx
+AliTOFcalibHisto.cxx AliTOFArray.cxx AliTOFDaConfigHandler.cxx
+AliTOFDeltaBCOffset.cxx AliTOFCTPLatency.cxx AliTOFT0Fill.cxx
+AliTOFRunParams.cxx AliTOFResponseParams.cxx AliTOFT0FillOnlineCalib.cxx
+AliTOFLvHvDataPoints.cxx AliTOFDCSmaps.cxx AliTOFChainSummaryData.cxx
+AliTOFDRMSummaryData.cxx AliTOFDecoderSummaryData.cxx AliTOFLTMSummaryData.cxx
+AliTOFTRMSummaryData.cxx AliTOFDecoderV2.cxx AliTOFTDCError.cxx
+AliTOFTDCErrorBuffer.cxx AliTOFTDCHit.cxx AliTOFTDCHitBuffer.cxx
+AliTOFReadoutInfo.cxx AliTOFTriggerMask.cxx)
 
 string ( REPLACE ".cxx" ".h" HDRS "${SRCS}" )
 
diff --git a/TOF/ShuttleInput/TOFFEElight.20101028.133932.8000 b/TOF/ShuttleInput/TOFFEElight.20101028.133932.8000
new file mode 100644 (file)
index 0000000..6dc0ff3
Binary files /dev/null and b/TOF/ShuttleInput/TOFFEElight.20101028.133932.8000 differ
index a5331c4..1a95a4e 100644 (file)
@@ -40,7 +40,7 @@ void TOFPreprocessor(Char_t * RunType="PHYSICS")
   shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "READOUT", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Readout.root");
   shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "DELAYS", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Total.root");
   shuttle->AddInputFile(AliTestShuttle::kDAQ, "TOF", "RUNLevel", "MON", "$ALICE_ROOT/TOF/ShuttleInput/Partial.root");
-  shuttle->AddInputFile(AliTestShuttle::kDCS, "TOF", "TofFeeLightMap", "", "$ALICE_ROOT/TOF/ShuttleInput/TOFFEElight.20090616.102605.8000");
+  shuttle->AddInputFile(AliTestShuttle::kDCS, "TOF", "TofFeeLightMap", "", "$ALICE_ROOT/TOF/ShuttleInput/TOFFEElight.20101028.133932.8000");
   shuttle->AddInputFile(AliTestShuttle::kDCS, "TOF", "TofFeeMap", "", "$ALICE_ROOT/TOF/ShuttleInput/TOFFEE.20091217.194708.105517");
 
   TString filename;
index 87c2d6d..f6b4fb5 100644 (file)
@@ -57,6 +57,7 @@
 #pragma link C++ class  AliTOFTDCHitBuffer+;
 
 #pragma link C++ class  AliTOFReadoutInfo+;
+#pragma link C++ class  AliTOFTriggerMask+;
 
 
 #endif
index 3ae8413..7aaa992 100644 (file)
@@ -47,7 +47,8 @@ SRCS  = AliTOFGeometry.cxx  \
        AliTOFTDCErrorBuffer.cxx\
        AliTOFTDCHit.cxx\
        AliTOFTDCHitBuffer.cxx\
-       AliTOFReadoutInfo.cxx   
+       AliTOFReadoutInfo.cxx\
+       AliTOFTriggerMask.cxx
 
 
 HDRS:= $(SRCS:.cxx=.h)