]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSHandleDaSSD.cxx
debug message removed
[u/mrichter/AliRoot.git] / ITS / AliITSHandleDaSSD.cxx
index 9ad823a8ab03df5cb4457cce90688326168e7317..20dd2220aad2b9ef9bcc8d6ba16026d1b18bc0b8 100644 (file)
@@ -23,7 +23,7 @@
 //  Date: 18/07/2008
 ///////////////////////////////////////////////////////////////////////////////
 
-#include <string>
+#include <cstring>
 #include <fstream>
 #include <new>
 #include <Riostream.h> 
@@ -122,13 +122,13 @@ AliITSHandleDaSSD::AliITSHandleDaSSD(Char_t *rdfname) :
 //______________________________________________________________________________
 AliITSHandleDaSSD::AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc) :
   TObject(ssdadldc),
-  fRawDataFileName(ssdadldc.fRawDataFileName),
+  fRawDataFileName(NULL),
   fNumberOfModules(ssdadldc.fNumberOfModules),
   fModules(NULL),
   fModIndProcessed(ssdadldc.fModIndProcessed),
   fModIndRead(ssdadldc.fModIndRead),
   fModIndex(NULL),
-  fEqIndex(0),
+  fEqIndex(ssdadldc.fEqIndex),
   fNumberOfEvents(ssdadldc.fNumberOfEvents),
   fBadChannelsList(NULL),
   fDDLModuleMap(NULL),
@@ -145,6 +145,10 @@ AliITSHandleDaSSD::AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc) :
   fZsFactor(ssdadldc.fZsFactor)
 {
   // copy constructor
+  if (ssdadldc.fRawDataFileName) {
+    fRawDataFileName = new (nothrow) Char_t[strlen(ssdadldc.fRawDataFileName)+1];
+    if (fRawDataFileName) strncpy(fRawDataFileName, ssdadldc.fRawDataFileName, strlen(ssdadldc.fRawDataFileName)+1);
+  } else fRawDataFileName = NULL;
   if ((ssdadldc.fNumberOfModules > 0) && (ssdadldc.fModules)) {
     fModules = new (nothrow) AliITSModuleDaSSD* [ssdadldc.fNumberOfModules];
     if (fModules) {
@@ -166,11 +170,20 @@ AliITSHandleDaSSD::AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc) :
       fModules = NULL;
     }
   }
-  if (ssdadldc.fBadChannelsList) AliWarning("fBadChannelsList is not copied by copy constructor, use other methods to init it!");
-  if (ssdadldc.fDDLModuleMap) AliWarning("fDDLModuleMap is not copied by copy constructor, use other methods to init it!");
+  if (ssdadldc.fModIndex) {
+    fModIndex = new (nothrow) Int_t [ssdadldc.fNumberOfModules];
+    if (fModIndex) memcpy(fModIndex, ssdadldc.fModIndex, ssdadldc.fNumberOfModules*sizeof(Int_t));
+  } else fModIndex = NULL;
+  fBadChannelsList = new AliITSBadChannelsSSDv2(*ssdadldc.fBadChannelsList);
+  if (ssdadldc.fDDLModuleMap) {
+    fDDLModuleMap = new (nothrow) Int_t [fgkNumberOfSSDDDLs * fgkNumberOfSSDModulesPerDdl];
+    if (fDDLModuleMap) memcpy(fDDLModuleMap, ssdadldc.fDDLModuleMap, fgkNumberOfSSDDDLs * fgkNumberOfSSDModulesPerDdl * sizeof(Int_t)); 
+  } else fDDLModuleMap = NULL;
+
+  //  if (ssdadldc.fBadChannelsList) AliWarning("fBadChannelsList is not copied by copy constructor, use other methods to init it!");
+  //  if (ssdadldc.fDDLModuleMap) AliWarning("fDDLModuleMap is not copied by copy constructor, use other methods to init it!");
 }
 
-
 //______________________________________________________________________________
 AliITSHandleDaSSD& AliITSHandleDaSSD::operator = (const AliITSHandleDaSSD& ssdadldc)
 {
@@ -183,10 +196,11 @@ AliITSHandleDaSSD& AliITSHandleDaSSD::operator = (const AliITSHandleDaSSD& ssdad
     fModules = NULL;
   }
   if (fModIndex) { delete [] fModIndex; fModIndex = NULL; }
-  if ((ssdadldc.fNumberOfModules > 0) && (ssdadldc.fModules)) {
-    fModules = new (nothrow) AliITSModuleDaSSD* [ssdadldc.fNumberOfModules];
+  fNumberOfModules = ssdadldc.fNumberOfModules;
+  if ((fNumberOfModules > 0) && (ssdadldc.fModules)) {
+    fModules = new (nothrow) AliITSModuleDaSSD* [fNumberOfModules];
     if (fModules) {
-      for (Int_t modind = 0; modind < ssdadldc.fNumberOfModules; modind++) {
+      for (Int_t modind = 0; modind < fNumberOfModules; modind++) {
         if (ssdadldc.fModules[modind]) {
              fModules[modind] = new AliITSModuleDaSSD(*(ssdadldc.fModules[modind]));
           if (!fModules[modind]) { 
@@ -204,10 +218,19 @@ AliITSHandleDaSSD& AliITSHandleDaSSD::operator = (const AliITSHandleDaSSD& ssdad
       fModules = NULL;
     }
   }
-  fRawDataFileName = NULL;
-  fModIndProcessed = 0;
-  fModIndRead = 0;
-  fModIndex = NULL;
+  if(fRawDataFileName)delete[]fRawDataFileName;
+  if (ssdadldc.fRawDataFileName) {
+    fRawDataFileName = new (nothrow) Char_t[strlen(ssdadldc.fRawDataFileName)+1];
+    if (fRawDataFileName) strncpy(fRawDataFileName, ssdadldc.fRawDataFileName, strlen(ssdadldc.fRawDataFileName)+1);
+  } else fRawDataFileName = NULL;
+  fModIndProcessed = ssdadldc.fModIndProcessed;
+  fModIndRead = ssdadldc.fModIndRead;
+
+  if (ssdadldc.fModIndex) {
+    fModIndex = new (nothrow) Int_t [ssdadldc.fNumberOfModules];
+    if (fModIndex) memcpy(fModIndex, ssdadldc.fModIndex, ssdadldc.fNumberOfModules*sizeof(Int_t));
+  } else fModIndex = NULL;
+
   fEqIndex = ssdadldc.fEqIndex;
   fNumberOfEvents = ssdadldc.fNumberOfEvents;
   fLdcId = ssdadldc.fLdcId;
@@ -221,11 +244,16 @@ AliITSHandleDaSSD& AliITSHandleDaSSD::operator = (const AliITSHandleDaSSD& ssdad
   fZsFactor = ssdadldc.fZsFactor;
   fALaddersOff = ssdadldc.fALaddersOff;
   fCLaddersOff = ssdadldc.fCLaddersOff;
-  fBadChannelsList = NULL;
-  fDDLModuleMap = NULL;
-  fModIndex = NULL;
-  if (ssdadldc.fBadChannelsList) AliWarning("fBadChannelsList is not copied by assignment operator, use other methods to init it!");
-  if (ssdadldc.fDDLModuleMap) AliWarning("fDDLModuleMap is not copied by assignment operator, use other methods to init it!");
+  if (fBadChannelsList) delete fBadChannelsList;
+  fBadChannelsList = new AliITSBadChannelsSSDv2(*ssdadldc.fBadChannelsList);
+  if (fDDLModuleMap) delete [] fDDLModuleMap; 
+  if (ssdadldc.fDDLModuleMap) {
+    fDDLModuleMap = new (nothrow) Int_t [fgkNumberOfSSDDDLs * fgkNumberOfSSDModulesPerDdl];
+    if (fDDLModuleMap) memcpy(fDDLModuleMap, ssdadldc.fDDLModuleMap, fgkNumberOfSSDDDLs * fgkNumberOfSSDModulesPerDdl * sizeof(Int_t)); 
+  } else fDDLModuleMap = NULL;
+
+  //  if (ssdadldc.fBadChannelsList) AliWarning("fBadChannelsList is not copied by assignment operator, use other methods to init it!");
+  //  if (ssdadldc.fDDLModuleMap) AliWarning("fDDLModuleMap is not copied by assignment operator, use other methods to init it!");
   return *this;
 }
 
@@ -234,6 +262,7 @@ AliITSHandleDaSSD& AliITSHandleDaSSD::operator = (const AliITSHandleDaSSD& ssdad
 AliITSHandleDaSSD::~AliITSHandleDaSSD()
 {
 // Default destructor 
+  delete []fRawDataFileName;
   if (fModules) 
   {
     for (Int_t i = 0; i < fNumberOfModules; i++)
@@ -268,7 +297,10 @@ void AliITSHandleDaSSD::Reset()
 */
   fALaddersOff.Set(0);
   fCLaddersOff.Set(0);
-  fRawDataFileName = NULL;
+  if(fRawDataFileName){
+    delete []fRawDataFileName;
+    fRawDataFileName = NULL;
+  }
   fModIndProcessed = fModIndRead = 0;
   fNumberOfEvents = 0;
   fLdcId = fRunId = 0;
@@ -333,7 +365,11 @@ Bool_t AliITSHandleDaSSD::Init(Char_t *rdfname)
   if ((physeventind > 0) && (strn > 0))
   {
     fNumberOfEvents = physeventind;
-    fRawDataFileName = rdfname;
+    if(rdfname){
+      delete []fRawDataFileName;
+      fRawDataFileName = new Char_t[strlen(rdfname)+1];
+      strncpy(fRawDataFileName,rdfname,strlen(rdfname)+1);
+    }
     fEqIndex.Set(eqn);
     fEqIndex.Reset(-1);
     fModIndex = new (nothrow) Int_t [fgkNumberOfSSDModulesPerDdl * eqn];
@@ -1118,7 +1154,7 @@ Bool_t AliITSHandleDaSSD::DumpModInfo(const Float_t meannosethreshold) const
     if (meannoise > meannosethreshold)
       cout << "Mod: " << i << ";  DDl: " << (int)mod->GetDdlId() << ";  AD: " << (int)mod->GetAD()  
                            << ";  ADC: " << (int)mod->GetADC() << "; MaxPed = " << maxped
-                          << ";  MeanNoise = " << meannoise 
+                          << ";  MeanNoise = " << meannoise << "; MaxNoise = " << maxnoise << "; MaxNoiseStrip = " << maxstrind 
                           << ";  NOfStrips = " << (mod->GetNumberOfStrips() - novfstr) << endl;
        if (maxovf > 10) cout << "Max number of events with overflow :  " << maxovf << ";  mean : " << meanovf << endl;
   }