DDL info added to the database
authorbasanta <basanta@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Oct 2010 14:42:11 +0000 (14:42 +0000)
committerbasanta <basanta@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Oct 2010 14:42:11 +0000 (14:42 +0000)
PMD/AliPMDClusterFinder.cxx
PMD/AliPMDClusterFinder.h
PMD/AliPMDReadDdlinfo.C [new file with mode: 0644]
PMD/AliPMDddlinfoData.cxx [new file with mode: 0644]
PMD/AliPMDddlinfoData.h [new file with mode: 0644]
PMD/CreateDDLinfoCDB.C [new file with mode: 0644]
PMD/PMDbaseLinkDef.h
PMD/libPMDbase.pkg

index 811a322..18d5d27 100644 (file)
@@ -46,6 +46,7 @@
 #include "AliPMDddldata.h"
 #include "AliPMDHotData.h"
 #include "AliPMDNoiseCut.h"
+#include "AliPMDddlinfoData.h"
 #include "AliPMDRecoParam.h"
 #include "AliPMDReconstructor.h"
 
@@ -64,6 +65,7 @@ AliPMDClusterFinder::AliPMDClusterFinder():
   fCalibPed(GetCalibPed()),
   fCalibHot(GetCalibHot()),
   fNoiseCut(GetNoiseCut()),
+  fDdlinfo(GetDdlinfoData()),
   fRecoParam(0x0),
   fTreeD(0),
   fTreeR(0),
@@ -86,6 +88,7 @@ AliPMDClusterFinder::AliPMDClusterFinder(AliRunLoader* runLoader):
   fCalibPed(GetCalibPed()),
   fCalibHot(GetCalibHot()),
   fNoiseCut(GetNoiseCut()),
+  fDdlinfo(GetDdlinfoData()),
   fRecoParam(0x0),
   fTreeD(0),
   fTreeR(0),
@@ -109,6 +112,7 @@ AliPMDClusterFinder::AliPMDClusterFinder(const AliPMDClusterFinder & finder):
   fCalibPed(GetCalibPed()),
   fCalibHot(GetCalibHot()),
   fNoiseCut(GetNoiseCut()),
+  fDdlinfo(GetDdlinfoData()),
   fRecoParam(0x0),
   fTreeD(0),
   fTreeR(0),
@@ -340,34 +344,15 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader,
 
   AliPMDClustering *pmdclust = new AliPMDClusteringV1();
 
-  // open the ddl file info to know the module
-  TString ddlinfofileName(gSystem->Getenv("ALICE_ROOT"));
-  ddlinfofileName += "/PMD/PMD_ddl_info.dat";
-  
-  ifstream infileddl;
-  infileddl.open(ddlinfofileName.Data(), ios::in); // ascii file
-  if(!infileddl) AliError("Could not read the ddl info file");
+  // access the ddlinfo database to fetch  the no of modules per DDL
 
-  Int_t ddlno = 0;
-  Int_t modno = 0;
-  Int_t modulePerDDL = 0;
   Int_t moduleddl[6] = {0,0,0,0,0,0};
 
   for(Int_t jddl = 0; jddl < 6; jddl++)
     {
-      if (infileddl.eof()) break;
-      infileddl >> ddlno >> modulePerDDL;
-      moduleddl[jddl] = modulePerDDL;
-
-      if (modulePerDDL == 0) continue;
-      for (Int_t im = 0; im < modulePerDDL; im++)
-       {
-         infileddl >> modno;
-       }
+      moduleddl[jddl] = fDdlinfo->GetNoOfModulePerDdl(jddl);
     }
 
-  infileddl.close();
-
   // Set the minimum noise cut per module before clustering
 
   fRecoParam = AliPMDReconstructor::GetRecoParam();
@@ -449,7 +434,6 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader,
              continue; 
            }
 
-
          // Pedestal Subtraction
          Int_t   pedmeanrms = fCalibPed->GetPedMeanRms(det,smn,row,col);
          Int_t   pedrms1    = (Int_t) pedmeanrms%100;
@@ -461,7 +445,6 @@ void AliPMDClusterFinder::Digits2RecPoints(AliRawReader *rawReader,
          // Float_t sig1 = (Float_t) sig;
          Float_t sig1 = (Float_t) sig - (pedmean + 3.0*pedrms);
 
-
          // Hot cell - set the cell adc = 0
          Float_t hotflag = fCalibHot->GetHotChannel(det,smn,row,col);
          if (hotflag == 1.) sig1 = 0;
@@ -802,4 +785,20 @@ AliPMDNoiseCut* AliPMDClusterFinder::GetNoiseCut() const
   
   return ncut;
 }
+//--------------------------------------------------------------------//
+AliPMDddlinfoData* AliPMDClusterFinder::GetDdlinfoData() const
+{
+  // The run number will be centralized in AliCDBManager,
+  // you don't need to set it here!
+  AliCDBEntry  *entry = AliCDBManager::Instance()->Get("PMD/Calib/Ddlinfo");
+  
+  if(!entry) AliFatal("ddlinfo object retrieval failed!");
+  
+  AliPMDddlinfoData *ddlinfo = 0;
+  if (entry) ddlinfo = (AliPMDddlinfoData*) entry->GetObject();
+  
+  if (!ddlinfo)  AliFatal("No ddl info data from  database !");
+  
+  return ddlinfo;
+}
   
index e5a95be..3778908 100644 (file)
@@ -22,6 +22,7 @@ class AliPMDCalibData;
 class AliPMDPedestal;
 class AliPMDHotData;
 class AliPMDNoiseCut;
+class AliPMDddlinfoData;
 class AliPMDRecoParam;
 
 class AliPMDClusterFinder : public TObject
@@ -49,19 +50,21 @@ class AliPMDClusterFinder : public TObject
   void UnLoad();
   void UnLoadClusters();
 
-  AliPMDCalibData *GetCalibGain() const;
-  AliPMDPedestal  *GetCalibPed() const;
-  AliPMDHotData   *GetCalibHot() const;
-  AliPMDNoiseCut  *GetNoiseCut() const;
+  AliPMDCalibData    *GetCalibGain() const;
+  AliPMDPedestal     *GetCalibPed() const;
+  AliPMDHotData      *GetCalibHot() const;
+  AliPMDNoiseCut     *GetNoiseCut() const;
+  AliPMDddlinfoData  *GetDdlinfoData() const;
 
  protected:
   AliRunLoader *fRunLoader; // Pointer to Run Loader
   AliLoader    *fPMDLoader; // Pointer to specific detector loader
 
-  AliPMDCalibData *fCalibGain;  //! Gain calibration data
-  AliPMDPedestal  *fCalibPed;   //! Pedestal calibration data
-  AliPMDHotData   *fCalibHot;   //! Hot data
-  AliPMDNoiseCut  *fNoiseCut;   //! Noise cut
+  AliPMDCalibData    *fCalibGain;  //! Gain calibration data
+  AliPMDPedestal     *fCalibPed;   //! Pedestal calibration data
+  AliPMDHotData      *fCalibHot;   //! Hot data
+  AliPMDNoiseCut     *fNoiseCut;   //! Noise cut
+  AliPMDddlinfoData  *fDdlinfo;    //! ddl info data
 
   const AliPMDRecoParam *fRecoParam; // reconstruction parameter
 
@@ -83,7 +86,7 @@ class AliPMDClusterFinder : public TObject
   Int_t    fCellTrack[fgkRow][fgkCol]; // Array containing individual cell tr
   Int_t    fCellPid[fgkRow][fgkCol]; // Array containing individual cell pid
 
-  ClassDef(AliPMDClusterFinder,17) // To run PMD clustering
+  ClassDef(AliPMDClusterFinder,18) // To run PMD clustering
 };
 #endif
 
diff --git a/PMD/AliPMDReadDdlinfo.C b/PMD/AliPMDReadDdlinfo.C
new file mode 100644 (file)
index 0000000..ec88c23
--- /dev/null
@@ -0,0 +1,19 @@
+void AliPMDReadDdlinfo()
+{
+  TFile * f = TFile::Open("/Users/basanta/ALISOFT/PMD/VarInit/OCDB/PMD/Calib/Ddlinfo/Run0_999999999_v0_s0.root");
+  //  TFile * f = TFile::Open("$ALICE_ROOT/OCDB/PMD/Calib/Mapping/Run0_999999999_v0_s0.root");
+
+  f->ls();
+  if (!AliCDBEntry)
+    {
+      printf("Something is wrong ************ \n");
+    }
+  else if(AliCDBEntry)
+    {
+      AliCDBEntry->PrintId(); 
+      AliCDBEntry->PrintMetaData();
+      AliPMDddlinfoData * mapdata = 0;
+      mapdata = (AliPMDddlinfoData*)AliCDBEntry->GetObject();
+      mapdata->Print(); 
+    }
+}
diff --git a/PMD/AliPMDddlinfoData.cxx b/PMD/AliPMDddlinfoData.cxx
new file mode 100644 (file)
index 0000000..c42ade5
--- /dev/null
@@ -0,0 +1,316 @@
+/***************************************************************************
+ * 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.                  *
+ **************************************************************************/
+//
+// Author : 
+//
+#include "TNamed.h"
+#include "AliCDBEntry.h"
+#include "AliPMDddlinfoData.h"
+
+
+ClassImp(AliPMDddlinfoData)
+
+AliPMDddlinfoData::AliPMDddlinfoData()
+{
+  // Default constructor
+  Reset();
+}
+// ----------------------------------------------------------------- //
+AliPMDddlinfoData::AliPMDddlinfoData(const char* name)
+{
+  //constructor
+  TString namst = "Calib_";
+  namst += name;
+  SetName(namst.Data());
+  SetTitle(namst.Data());
+  Reset();
+  
+}
+// ----------------------------------------------------------------- //
+AliPMDddlinfoData::AliPMDddlinfoData(const AliPMDddlinfoData& ddlinfoda) :
+  TNamed(ddlinfoda)
+{
+  // copy constructor
+  SetName(ddlinfoda.GetName());
+  SetTitle(ddlinfoda.GetName());
+  Reset();
+
+  for(Int_t iddl = 0; iddl < 6; iddl++)
+    {
+      fModules[iddl] = ddlinfoda.GetNoOfModulePerDdl(iddl);
+      for(Int_t imod = 0; imod < 12; imod++)
+       {
+         fModuleNo[iddl][imod] = ddlinfoda.GetModulesPerDdl(iddl,imod);
+       }
+    }
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartRowA[idet][ismn] = ddlinfoda.GetStartRowA(idet,ismn);
+         fStartRowB[idet][ismn] = ddlinfoda.GetStartRowB(idet,ismn);
+         fEndRowA[idet][ismn]   = ddlinfoda.GetEndRowA(idet,ismn);
+         fEndRowB[idet][ismn]   = ddlinfoda.GetEndRowB(idet,ismn);
+         fStartColA[idet][ismn] = ddlinfoda.GetStartColA(idet,ismn);
+         fStartColB[idet][ismn] = ddlinfoda.GetStartColB(idet,ismn);
+         fEndColA[idet][ismn]   = ddlinfoda.GetEndColA(idet,ismn);
+         fEndColB[idet][ismn]   = ddlinfoda.GetEndColB(idet,ismn);
+       }
+    }
+
+}
+// ----------------------------------------------------------------- //
+AliPMDddlinfoData &AliPMDddlinfoData::operator =(const AliPMDddlinfoData& ddlinfoda)
+{
+  //asignment operator
+  SetName(ddlinfoda.GetName());
+  SetTitle(ddlinfoda.GetName());
+  Reset();
+
+  for(Int_t iddl = 0; iddl < 6; iddl++)
+    {
+      fModules[iddl] = ddlinfoda.GetNoOfModulePerDdl(iddl);
+      for(Int_t imod = 0; imod < 12; imod++)
+       {
+         fModuleNo[iddl][imod] = ddlinfoda.GetModulesPerDdl(iddl,imod);
+       }
+    }
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartRowA[idet][ismn] = ddlinfoda.GetStartRowA(idet,ismn);
+         fStartRowB[idet][ismn] = ddlinfoda.GetStartRowB(idet,ismn);
+         fEndRowA[idet][ismn]   = ddlinfoda.GetEndRowA(idet,ismn);
+         fEndRowB[idet][ismn]   = ddlinfoda.GetEndRowB(idet,ismn);
+         fStartColA[idet][ismn] = ddlinfoda.GetStartColA(idet,ismn);
+         fStartColB[idet][ismn] = ddlinfoda.GetStartColB(idet,ismn);
+         fEndColA[idet][ismn]   = ddlinfoda.GetEndColA(idet,ismn);
+         fEndColB[idet][ismn]   = ddlinfoda.GetEndColB(idet,ismn);
+       }
+    }
+
+  return *this;
+}
+// ----------------------------------------------------------------- //
+AliPMDddlinfoData::~AliPMDddlinfoData()
+{
+  //destructor
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData::Reset()
+{
+
+  for(Int_t iddl = 0; iddl < 6; iddl++)
+    {
+      fModules[iddl] = -1;
+      for(Int_t imod = 0; imod < 12; imod++)
+       {
+         fModuleNo[iddl][imod] = -1;
+       }
+    }
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartRowA[idet][ismn] = -1;
+         fStartRowB[idet][ismn] = -1;
+         fEndRowA[idet][ismn]   = -1;
+         fEndRowB[idet][ismn]   = -1;
+         fStartColA[idet][ismn] = -1;
+         fStartColB[idet][ismn] = -1;
+         fEndColA[idet][ismn]   = -1;
+         fEndColB[idet][ismn]   = -1;
+       }
+    }
+  
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetNoOfModulePerDdl(Int_t iddl) const
+{
+  return fModules[iddl];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetModulesPerDdl(Int_t iddl, Int_t imod) const
+{
+  return fModuleNo[iddl][imod];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetStartRowA(Int_t idet, Int_t ismn) const
+{
+  return fStartRowA[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetStartRowB(Int_t idet, Int_t ismn) const
+{
+  return fStartRowB[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetEndRowA(Int_t idet, Int_t ismn) const
+{
+  return fEndRowA[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetEndRowB(Int_t idet, Int_t ismn) const
+{
+  return fEndRowB[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetStartColA(Int_t idet, Int_t ismn) const
+{
+  return fStartColA[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetStartColB(Int_t idet, Int_t ismn) const
+{
+  return fStartColB[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetEndColA(Int_t idet, Int_t ismn) const
+{
+  return fEndColA[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+Int_t AliPMDddlinfoData:: GetEndColB(Int_t idet, Int_t ismn) const
+{
+  return fEndColB[idet][ismn];
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetNoOfModulePerDdl(Int_t iddl, Int_t nmod)
+{
+  fModules[iddl] = nmod;
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetModuleNoPerDdl(Int_t iddl, Int_t mod[])
+{
+  for(Int_t i = 0; i < 12; i++) fModuleNo[iddl][i] = mod[i];
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetStartRowA(Int_t srowa[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartRowA[idet][ismn] = srowa[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetStartRowB(Int_t srowb[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartRowB[idet][ismn] = srowb[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetEndRowA(Int_t erowa[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fEndRowA[idet][ismn] = erowa[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetEndRowB(Int_t erowb[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fEndRowB[idet][ismn] = erowb[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetStartColA(Int_t scola[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartColA[idet][ismn] = scola[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetStartColB(Int_t scolb[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fStartColB[idet][ismn] = scolb[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetEndColA(Int_t ecola[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fEndColA[idet][ismn] = ecola[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+void AliPMDddlinfoData:: SetEndColB(Int_t ecolb[][24])
+{
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         fEndColB[idet][ismn] = ecolb[idet][ismn];
+       }
+    }
+}
+// ----------------------------------------------------------------- //
+
+void AliPMDddlinfoData::Print(Option_t *) const
+{
+  printf("\n ######ddlinfo File for each ddl and patchbus ####\n");
+
+  for(Int_t iddl=0; iddl<6; iddl++)
+    {
+      printf("%d %d \n",iddl, fModules[iddl]);
+      for(Int_t imod = 0; imod < 12; imod++)
+       {
+         printf("%d \n",fModuleNo[iddl][imod]);
+       }
+    }
+
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         printf("%d %d %d %d %d %d %d %d %d %d \n",idet, ismn,
+                fStartRowA[idet][ismn], fEndRowA[idet][ismn],
+                fStartColA[idet][ismn], fEndColA[idet][ismn],
+                fStartRowB[idet][ismn], fEndRowB[idet][ismn],
+                fStartColB[idet][ismn], fEndColB[idet][ismn]);
+       }
+      printf("\n");
+    }
+
+}
diff --git a/PMD/AliPMDddlinfoData.h b/PMD/AliPMDddlinfoData.h
new file mode 100644 (file)
index 0000000..9bad5d9
--- /dev/null
@@ -0,0 +1,60 @@
+#ifndef ALIPMDDDLINFODATA_H
+#define ALIPMDDDLINFODATA_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+
+class TNamed;
+class AliCDBEntry;
+
+class AliPMDddlinfoData: public TNamed
+{
+ public:
+  AliPMDddlinfoData();
+  AliPMDddlinfoData(const char* name);
+  AliPMDddlinfoData(const AliPMDddlinfoData &ddlinfoda);
+  AliPMDddlinfoData& operator= (const AliPMDddlinfoData &ddlinfoda);
+  virtual ~AliPMDddlinfoData();
+  void  Reset();
+
+  Int_t GetNoOfModulePerDdl(Int_t iddl) const;
+  Int_t GetModulesPerDdl(Int_t iddl, Int_t imod) const;
+  Int_t GetStartRowA(Int_t idet, Int_t ismn) const;
+  Int_t GetStartRowB(Int_t idet, Int_t ismn) const;
+  Int_t GetEndRowA(Int_t idet, Int_t ismn) const;
+  Int_t GetEndRowB(Int_t idet, Int_t ismn) const;
+  Int_t GetStartColA(Int_t idet, Int_t ismn) const;
+  Int_t GetStartColB(Int_t idet, Int_t ismn) const;
+  Int_t GetEndColA(Int_t idet, Int_t ismn) const;
+  Int_t GetEndColB(Int_t idet, Int_t ismn) const;
+
+  void SetNoOfModulePerDdl(Int_t iddl, Int_t nmod);
+  void SetModuleNoPerDdl(Int_t iddl, Int_t mod[]);
+  void SetStartRowA(Int_t srowa[][24]);
+  void SetStartRowB(Int_t srowb[][24]);
+  void SetEndRowA(Int_t erowa[][24]);
+  void SetEndRowB(Int_t erowb[][24]);
+  void SetStartColA(Int_t scola[][24]);
+  void SetStartColB(Int_t scolb[][24]);
+  void SetEndColA(Int_t ecola[][24]);
+  void SetEndColB(Int_t ecolb[][24]);
+
+  virtual void Print(Option_t *) const;
+  
+ protected:
+
+  Int_t fModules[6];        // Total no. of modules per DDL
+  Int_t fModuleNo[6][12];   // Serial Module nos. per DDL (12 nos)
+
+  Int_t fStartRowA[2][24];  // removed from row A
+  Int_t fStartRowB[2][24];  // removed from row B
+  Int_t fEndRowA[2][24];    // removed upto row A
+  Int_t fEndRowB[2][24];    // removed upto row B
+  Int_t fStartColA[2][24];  // removed from col A
+  Int_t fStartColB[2][24];  // removed from col B
+  Int_t fEndColA[2][24];    // removed upto row A
+  Int_t fEndColB[2][24];    // removed upto row B
+
+  ClassDef(AliPMDddlinfoData,1) // ddlinfo database
+};
+#endif
diff --git a/PMD/CreateDDLinfoCDB.C b/PMD/CreateDDLinfoCDB.C
new file mode 100644 (file)
index 0000000..7cd1856
--- /dev/null
@@ -0,0 +1,94 @@
+void CreateDDLinfoCDB()
+{
+
+  AliCDBManager* man = AliCDBManager::Instance();
+  man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");  
+  //  man->SetDefaultStorage("local:///Users/basanta/ALISOFT/PMD/VarInit/OCDB");       
+  AliPMDddlinfoData *mapda = new AliPMDddlinfoData();
+
+  Int_t ddlno;
+  Int_t modno, totmod;
+  Int_t serialmodno[12];
+  //  Int_t moduleDDL[6] = {12,12,0,0,12,12};
+
+  ifstream infile;
+  infile.open("PMD_ddl_info.dat"); // ascii file
+  if(!infile) AliError("Could not open the DDL info file");
+
+
+  for(Int_t iddl = 0; iddl < 6; iddl++)
+    {
+      infile >> ddlno >> totmod;
+
+      mapda->SetNoOfModulePerDdl(iddl,totmod);
+
+      //printf("%d %d\n", ddlno, totmod);
+      if(totmod == 0) continue;
+
+      for(Int_t imod = 0; imod < 12; imod++)
+       {
+         infile >> modno;
+         serialmodno[imod] = modno;
+         //printf("%d \n", modno);
+       }
+
+      mapda->SetModuleNoPerDdl(iddl,serialmodno);
+    }
+
+  infile.close();
+  
+  infile.open("PMD_removed_chains.dat"); // ascii file
+  if(!infile) AliError("Could not open the DDL info file");
+
+  Int_t det, smn;
+  Int_t rows1, rowe1, cols1, cole1;
+  Int_t rows2, rowe2, cols2, cole2;
+
+  Int_t srowa[2][24];
+  Int_t erowa[2][24];
+  Int_t scola[2][24];
+  Int_t ecola[2][24];
+  Int_t srowb[2][24];
+  Int_t erowb[2][24];
+  Int_t scolb[2][24];
+  Int_t ecolb[2][24];
+
+
+  for(Int_t idet = 0; idet < 2; idet++)
+    {
+      for(Int_t ismn = 0; ismn < 24; ismn++)
+       {
+         infile >> det >> smn >> rows1 >> rowe1 >> cols1 >> cole1
+                    >> rows2 >> rowe2 >> cols2 >> cole2;
+      
+         srowa[idet][ismn] = rows1;
+         erowa[idet][ismn] = rowe1;
+         scola[idet][ismn] = cols1;
+         ecola[idet][ismn] = cole1;
+         srowb[idet][ismn] = rows2;
+         erowb[idet][ismn] = rowe2;
+         scolb[idet][ismn] = cols2;
+         ecolb[idet][ismn] = cole2;
+
+       }
+    }
+
+  mapda->SetStartRowA(srowa);
+  mapda->SetStartRowB(srowb);
+  mapda->SetStartColA(scola);
+  mapda->SetStartColB(scolb);
+  mapda->SetEndRowA(erowa);
+  mapda->SetEndRowB(erowb);
+  mapda->SetEndColA(ecola);
+  mapda->SetEndColB(ecolb);
+
+
+  AliCDBMetaData *md= new AliCDBMetaData();
+  md->SetResponsible("Basanta Nandi");
+  md->SetComment("DDL info for PMD");
+  
+  AliCDBId id("PMD/Calib/Ddlinfo",0,AliCDBRunRange::Infinity());
+
+  man->GetDefaultStorage()->Put(mapda,id, md);
+
+}
index 68701ef..6e52d1d 100644 (file)
@@ -26,4 +26,5 @@
 #pragma link C++ class  AliPMDHotData+;
 #pragma link C++ class  AliPMDMeanSm+;
 #pragma link C++ class  AliPMDMappingData+;
+#pragma link C++ class  AliPMDddlinfoData+;
 #endif
index 47b17d8..67c0400 100644 (file)
@@ -1,7 +1,7 @@
 #-*- Mode: Makefile -*-
 # $Id$
 
-SRCS:= AliPMDLoader.cxx AliPMDdigit.cxx AliPMDBlockHeader.cxx AliPMDDspHeader.cxx AliPMDPatchBusHeader.cxx AliPMDddldata.cxx AliPMDRawStream.cxx AliPMDCalibData.cxx AliPMDCalibrator.cxx AliPMDPreprocessor.cxx AliPMDRawToSDigits.cxx AliPMDPedestal.cxx AliPMDsdigit.cxx AliPMDQAChecker.cxx AliPMDMisAligner.cxx AliPMDHotData.cxx AliPMDMeanSm.cxx AliPMDMappingData.cxx
+SRCS:= AliPMDLoader.cxx AliPMDdigit.cxx AliPMDBlockHeader.cxx AliPMDDspHeader.cxx AliPMDPatchBusHeader.cxx AliPMDddldata.cxx AliPMDRawStream.cxx AliPMDCalibData.cxx AliPMDCalibrator.cxx AliPMDPreprocessor.cxx AliPMDRawToSDigits.cxx AliPMDPedestal.cxx AliPMDsdigit.cxx AliPMDQAChecker.cxx AliPMDMisAligner.cxx AliPMDHotData.cxx AliPMDMeanSm.cxx AliPMDMappingData.cxx AliPMDddlinfoData.cxx
 
 HDRS:= $(SRCS:.cxx=.h)