ROOT logo
/**************************************************************************
 * 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.                  *
 **************************************************************************/

///////////////////////////////////////////////////////////////
//                                                           //
// Class for ZDC calibration -> ADC channels mapping         //
// author: Chiara Oppedisano			             //
//                                                           //
///////////////////////////////////////////////////////////////

#include "AliZDCChMap.h"

ClassImp(AliZDCChMap)

//________________________________________________________________
AliZDCChMap::AliZDCChMap():
TNamed()
{
  Reset();
}

//________________________________________________________________
AliZDCChMap::AliZDCChMap(const char* name):
TNamed()
{
  // Constructor
  TString namst = "Calib_";
  namst += name;
  SetName(namst.Data());
  SetTitle(namst.Data());
  Reset();
  int const kNModules = 10;
  int const kNChannels = 48;
  int const kNScChannels = 32;
  for(Int_t i=0; i<kNModules; i++){
    for(Int_t j=0; j<3; j++) fModuleMap[i][j] = 0;
  }
  for(Int_t i=0; i<kNChannels; i++){
    fADCModule[i] = -1;
    fADCChannel[i] = -1;
    fDetector[i] = -1;
    fSector[i] = -1;
    fADCSignalCode[i] = -1;
  }
  for(Int_t i=0; i<kNScChannels; i++){
    fScalerChannel[i] = -1;
    fScDetector[i] = -1;
    fScSector[i] = -1;
    fScSignalCode[i] = -1;
    //
    fTDCChannel[i] = -1;
    fTDCSignalCode[i] = -1;
  }
  
  
}

//________________________________________________________________
AliZDCChMap::AliZDCChMap(const AliZDCChMap& calibda) :
  TNamed(calibda)
{
  // Copy constructor
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  int const kNModules = 10;
  int const kNChannels = 48;
  int const kNScChannels = 32;
  for(Int_t i=0; i<kNModules; i++){
     for(Int_t j=0; j<3; j++) fModuleMap[i][j] = calibda.GetModuleMap(i,j);
  }
  for(int t=0; t<kNChannels; t++){
     fADCModule[t]  = calibda.GetADCModule(t);
     fADCChannel[t] = calibda.GetADCChannel(t);
     fDetector[t]   = calibda.GetDetector(t);
     fSector[t]     = calibda.GetSector(t);
     fADCSignalCode[t]  = calibda.GetADCSignalCode(t);
     if(t<kNScChannels){
       fScalerChannel[t] = calibda.GetScChannel(t);
       fScDetector[t]    = calibda.GetScDetector(t);
       fScSector[t]      = calibda.GetScSector(t);
       fScSignalCode[t]  = calibda.GetScSignalCode(t);
       //
       fTDCChannel[t] = calibda.GetTDCChannel(t);
       fTDCSignalCode[t] = calibda.GetTDCChannel(t);
     }
  }
}

//________________________________________________________________
AliZDCChMap &AliZDCChMap::operator =(const AliZDCChMap& calibda)
{
// assignment operator
  SetName(calibda.GetName());
  SetTitle(calibda.GetName());
  Reset();
  int const kNModules = 10;
  int const kNChannels = 48;
  int const kNScChannels = 32;
  for(Int_t i=0; i<kNModules; i++){
     for(Int_t j=0; j<3; j++) fModuleMap[i][j] = calibda.GetModuleMap(i,j);
  }
  for(int t=0; t<kNChannels; t++){
     fADCModule[t]  = calibda.GetADCModule(t);
     fADCChannel[t] = calibda.GetADCChannel(t);
     fDetector[t]   = calibda.GetDetector(t);
     fSector[t]     = calibda.GetSector(t);
     fADCSignalCode[t]  = calibda.GetADCSignalCode(t);
     if(t<kNScChannels){
       fScalerChannel[t] = calibda.GetScChannel(t);
       fScDetector[t]    = calibda.GetScDetector(t);
       fScSector[t]      = calibda.GetScSector(t);
       fScSignalCode[t]  = calibda.GetScSignalCode(t);
       //
       fTDCChannel[t] = calibda.GetTDCChannel(t);
       fTDCSignalCode[t] = calibda.GetTDCChannel(t);
     }
  }

  return *this;
}

//________________________________________________________________
AliZDCChMap::~AliZDCChMap()
{
}

//________________________________________________________________
void AliZDCChMap::Reset()
{
  // Reset
  memset(fADCModule,0,48*sizeof(Int_t));
  memset(fADCChannel,0,48*sizeof(Int_t));
  memset(fDetector,0,48*sizeof(Int_t));
  memset(fSector,0,48*sizeof(Int_t));
  memset(fADCSignalCode,0,48*sizeof(Int_t));
  memset(fScalerChannel,0,32*sizeof(Int_t));
  memset(fScDetector,0,32*sizeof(Int_t));
  memset(fScSector,0,32*sizeof(Int_t));
  memset(fScSignalCode,0,32*sizeof(Int_t));
  memset(fTDCChannel,0,32*sizeof(Int_t));
  memset(fTDCSignalCode,0,32*sizeof(Int_t));
}                                                                                       


//________________________________________________________________
void  AliZDCChMap::Print(Option_t *) const
{
   // Printing of calibration object
   printf("\n\n\t ******************* AliZDCChMap object *******************\n\n");
   for(Int_t i=0; i<10; i++){
     printf("  ******** GEO %d mod. type %d #ch. %d\n",
      fModuleMap[i][0],fModuleMap[i][1],fModuleMap[i][2]);     
   } 
   printf("\n");
   for(Int_t i=0; i<48; i++) 
     printf(" ADC - mod. %d ch. %d signal %d -> detector %d sector %d\n",
      fADCModule[i], fADCChannel[i], fADCSignalCode[i], fDetector[i], fSector[i]);
   printf("\n");
   for(Int_t i=0; i<32; i++)
     if(fScalerChannel[i]!=-1)
       printf(" SCALER - ch. %d signal %d\n",
        fScalerChannel[i], fScSignalCode[i]);
   printf("\n");
   for(Int_t i=0; i<32; i++) 
     if(fTDCChannel[i]!=-1)
       printf(" TDC - ch. %d signal %d\n",
        fTDCChannel[i], fTDCSignalCode[i]);
   printf("\n\t **********************************************************\n\n");
 
} 
 AliZDCChMap.cxx:1
 AliZDCChMap.cxx:2
 AliZDCChMap.cxx:3
 AliZDCChMap.cxx:4
 AliZDCChMap.cxx:5
 AliZDCChMap.cxx:6
 AliZDCChMap.cxx:7
 AliZDCChMap.cxx:8
 AliZDCChMap.cxx:9
 AliZDCChMap.cxx:10
 AliZDCChMap.cxx:11
 AliZDCChMap.cxx:12
 AliZDCChMap.cxx:13
 AliZDCChMap.cxx:14
 AliZDCChMap.cxx:15
 AliZDCChMap.cxx:16
 AliZDCChMap.cxx:17
 AliZDCChMap.cxx:18
 AliZDCChMap.cxx:19
 AliZDCChMap.cxx:20
 AliZDCChMap.cxx:21
 AliZDCChMap.cxx:22
 AliZDCChMap.cxx:23
 AliZDCChMap.cxx:24
 AliZDCChMap.cxx:25
 AliZDCChMap.cxx:26
 AliZDCChMap.cxx:27
 AliZDCChMap.cxx:28
 AliZDCChMap.cxx:29
 AliZDCChMap.cxx:30
 AliZDCChMap.cxx:31
 AliZDCChMap.cxx:32
 AliZDCChMap.cxx:33
 AliZDCChMap.cxx:34
 AliZDCChMap.cxx:35
 AliZDCChMap.cxx:36
 AliZDCChMap.cxx:37
 AliZDCChMap.cxx:38
 AliZDCChMap.cxx:39
 AliZDCChMap.cxx:40
 AliZDCChMap.cxx:41
 AliZDCChMap.cxx:42
 AliZDCChMap.cxx:43
 AliZDCChMap.cxx:44
 AliZDCChMap.cxx:45
 AliZDCChMap.cxx:46
 AliZDCChMap.cxx:47
 AliZDCChMap.cxx:48
 AliZDCChMap.cxx:49
 AliZDCChMap.cxx:50
 AliZDCChMap.cxx:51
 AliZDCChMap.cxx:52
 AliZDCChMap.cxx:53
 AliZDCChMap.cxx:54
 AliZDCChMap.cxx:55
 AliZDCChMap.cxx:56
 AliZDCChMap.cxx:57
 AliZDCChMap.cxx:58
 AliZDCChMap.cxx:59
 AliZDCChMap.cxx:60
 AliZDCChMap.cxx:61
 AliZDCChMap.cxx:62
 AliZDCChMap.cxx:63
 AliZDCChMap.cxx:64
 AliZDCChMap.cxx:65
 AliZDCChMap.cxx:66
 AliZDCChMap.cxx:67
 AliZDCChMap.cxx:68
 AliZDCChMap.cxx:69
 AliZDCChMap.cxx:70
 AliZDCChMap.cxx:71
 AliZDCChMap.cxx:72
 AliZDCChMap.cxx:73
 AliZDCChMap.cxx:74
 AliZDCChMap.cxx:75
 AliZDCChMap.cxx:76
 AliZDCChMap.cxx:77
 AliZDCChMap.cxx:78
 AliZDCChMap.cxx:79
 AliZDCChMap.cxx:80
 AliZDCChMap.cxx:81
 AliZDCChMap.cxx:82
 AliZDCChMap.cxx:83
 AliZDCChMap.cxx:84
 AliZDCChMap.cxx:85
 AliZDCChMap.cxx:86
 AliZDCChMap.cxx:87
 AliZDCChMap.cxx:88
 AliZDCChMap.cxx:89
 AliZDCChMap.cxx:90
 AliZDCChMap.cxx:91
 AliZDCChMap.cxx:92
 AliZDCChMap.cxx:93
 AliZDCChMap.cxx:94
 AliZDCChMap.cxx:95
 AliZDCChMap.cxx:96
 AliZDCChMap.cxx:97
 AliZDCChMap.cxx:98
 AliZDCChMap.cxx:99
 AliZDCChMap.cxx:100
 AliZDCChMap.cxx:101
 AliZDCChMap.cxx:102
 AliZDCChMap.cxx:103
 AliZDCChMap.cxx:104
 AliZDCChMap.cxx:105
 AliZDCChMap.cxx:106
 AliZDCChMap.cxx:107
 AliZDCChMap.cxx:108
 AliZDCChMap.cxx:109
 AliZDCChMap.cxx:110
 AliZDCChMap.cxx:111
 AliZDCChMap.cxx:112
 AliZDCChMap.cxx:113
 AliZDCChMap.cxx:114
 AliZDCChMap.cxx:115
 AliZDCChMap.cxx:116
 AliZDCChMap.cxx:117
 AliZDCChMap.cxx:118
 AliZDCChMap.cxx:119
 AliZDCChMap.cxx:120
 AliZDCChMap.cxx:121
 AliZDCChMap.cxx:122
 AliZDCChMap.cxx:123
 AliZDCChMap.cxx:124
 AliZDCChMap.cxx:125
 AliZDCChMap.cxx:126
 AliZDCChMap.cxx:127
 AliZDCChMap.cxx:128
 AliZDCChMap.cxx:129
 AliZDCChMap.cxx:130
 AliZDCChMap.cxx:131
 AliZDCChMap.cxx:132
 AliZDCChMap.cxx:133
 AliZDCChMap.cxx:134
 AliZDCChMap.cxx:135
 AliZDCChMap.cxx:136
 AliZDCChMap.cxx:137
 AliZDCChMap.cxx:138
 AliZDCChMap.cxx:139
 AliZDCChMap.cxx:140
 AliZDCChMap.cxx:141
 AliZDCChMap.cxx:142
 AliZDCChMap.cxx:143
 AliZDCChMap.cxx:144
 AliZDCChMap.cxx:145
 AliZDCChMap.cxx:146
 AliZDCChMap.cxx:147
 AliZDCChMap.cxx:148
 AliZDCChMap.cxx:149
 AliZDCChMap.cxx:150
 AliZDCChMap.cxx:151
 AliZDCChMap.cxx:152
 AliZDCChMap.cxx:153
 AliZDCChMap.cxx:154
 AliZDCChMap.cxx:155
 AliZDCChMap.cxx:156
 AliZDCChMap.cxx:157
 AliZDCChMap.cxx:158
 AliZDCChMap.cxx:159
 AliZDCChMap.cxx:160
 AliZDCChMap.cxx:161
 AliZDCChMap.cxx:162
 AliZDCChMap.cxx:163
 AliZDCChMap.cxx:164
 AliZDCChMap.cxx:165
 AliZDCChMap.cxx:166
 AliZDCChMap.cxx:167
 AliZDCChMap.cxx:168
 AliZDCChMap.cxx:169
 AliZDCChMap.cxx:170
 AliZDCChMap.cxx:171
 AliZDCChMap.cxx:172
 AliZDCChMap.cxx:173
 AliZDCChMap.cxx:174
 AliZDCChMap.cxx:175
 AliZDCChMap.cxx:176
 AliZDCChMap.cxx:177
 AliZDCChMap.cxx:178
 AliZDCChMap.cxx:179
 AliZDCChMap.cxx:180
 AliZDCChMap.cxx:181
 AliZDCChMap.cxx:182
 AliZDCChMap.cxx:183