#include <TString.h>
#include <TSystem.h>
#include "AliLog.h"
#include "AliCaloRawStreamV3.h"
#include "AliRawReader.h"
#include "AliCaloAltroMapping.h"
ClassImp(AliCaloRawStreamV3)
AliCaloRawStreamV3::AliCaloRawStreamV3(AliRawReader* rawReader, TString calo, AliAltroMapping **mapping) :
AliAltroRawStreamV3(rawReader),
fModule(-1),
fRow(-1),
fColumn(-1),
fCaloFlag(0),
fNModules(0),
fNRCU(0),
fNSides(0),
fCalo(calo),
fExternalMapping(kFALSE)
{
SelectRawData(calo);
if(fCalo == "PHOS") {
fNModules = 5;
fNRCU = 4;
fNSides = 1;
}
if(fCalo == "EMCAL") {
fNModules = 1;
fNRCU = 2;
fNSides = 2;
}
TString sides[]={"A","C"};
if (mapping == NULL) {
TString path = gSystem->Getenv("ALICE_ROOT");
path += "/"+fCalo+"/mapping/";
TString path1, path2;
for(Int_t m = 0; m < fNModules; m++) {
path1 = path;
if (fCalo == "EMCAL") {
path1 += "RCU";
}
else if(fCalo == "PHOS" ) {
path1 += "Mod";
path1 += m;
path1 += "RCU";
}
for(Int_t j = 0; j < fNSides; j++){
for(Int_t i = 0; i < fNRCU; i++) {
path2 = path1;
path2 += i;
if(fCalo == "EMCAL") path2 += sides[j];
path2 += ".data";
AliDebug(2,Form("Mapping file: %s",path2.Data()));
fMapping[m*fNSides*fNRCU + j*fNRCU + i] = new AliCaloAltroMapping(path2.Data());
}
}
}
}
else {
fExternalMapping = kTRUE;
for(Int_t i = 0; i < fNModules*fNRCU*fNSides; i++)
fMapping[i] = mapping[i];
}
}
AliCaloRawStreamV3::AliCaloRawStreamV3(const AliCaloRawStreamV3& stream) :
AliAltroRawStreamV3(stream),
fModule(-1),
fRow(-1),
fColumn(-1),
fCaloFlag(0),
fNModules(0),
fNRCU(0),
fNSides(0),
fCalo(""),
fExternalMapping(kFALSE)
{
Fatal("AliCaloRawStreamV3", "copy constructor not implemented");
}
AliCaloRawStreamV3& AliCaloRawStreamV3::operator = (const AliCaloRawStreamV3&
)
{
Fatal("operator =", "assignment operator not implemented");
return *this;
}
AliCaloRawStreamV3::~AliCaloRawStreamV3()
{
if (!fExternalMapping)
for(Int_t i = 0; i < fNModules*fNRCU*fNSides; i++)
delete fMapping[i];
}
void AliCaloRawStreamV3::Reset()
{
AliAltroRawStreamV3::Reset();
fModule = fRow = fColumn = -1;
fCaloFlag = 0;
fCalo="";
}
Bool_t AliCaloRawStreamV3::NextChannel()
{
if (AliAltroRawStreamV3::NextChannel()) {
ApplyAltroMapping();
return kTRUE;
}
else
return kFALSE;
}
void AliCaloRawStreamV3::ApplyAltroMapping()
{
Int_t ddlNumber = GetDDLNumber();
fModule = ddlNumber / fNRCU;
Int_t rcuIndex = ddlNumber % fNRCU;
if( fNModules > 1) rcuIndex += fModule*fNRCU*fNSides;
if( fNRCU == 2 ){
if (fModule%2 == 1) { rcuIndex += 2; }
}
Short_t hwAddress = GetHWAddress();
fRow = fMapping[rcuIndex]->GetPadRow(hwAddress);
fColumn = fMapping[rcuIndex]->GetPad(hwAddress);
fCaloFlag = fMapping[rcuIndex]->GetSector(hwAddress);
}
AliCaloRawStreamV3.cxx:10 AliCaloRawStreamV3.cxx:11 AliCaloRawStreamV3.cxx:12 AliCaloRawStreamV3.cxx:13 AliCaloRawStreamV3.cxx:14 AliCaloRawStreamV3.cxx:15 AliCaloRawStreamV3.cxx:16 AliCaloRawStreamV3.cxx:17 AliCaloRawStreamV3.cxx:18 AliCaloRawStreamV3.cxx:19 AliCaloRawStreamV3.cxx:20 AliCaloRawStreamV3.cxx:21 AliCaloRawStreamV3.cxx:22 AliCaloRawStreamV3.cxx:23 AliCaloRawStreamV3.cxx:24 AliCaloRawStreamV3.cxx:25 AliCaloRawStreamV3.cxx:26 AliCaloRawStreamV3.cxx:27 AliCaloRawStreamV3.cxx:28 AliCaloRawStreamV3.cxx:29 AliCaloRawStreamV3.cxx:30 AliCaloRawStreamV3.cxx:31 AliCaloRawStreamV3.cxx:32 AliCaloRawStreamV3.cxx:33 AliCaloRawStreamV3.cxx:34 AliCaloRawStreamV3.cxx:35 AliCaloRawStreamV3.cxx:36 AliCaloRawStreamV3.cxx:37 AliCaloRawStreamV3.cxx:38 AliCaloRawStreamV3.cxx:39 AliCaloRawStreamV3.cxx:40 AliCaloRawStreamV3.cxx:41 AliCaloRawStreamV3.cxx:42 AliCaloRawStreamV3.cxx:43 AliCaloRawStreamV3.cxx:44 AliCaloRawStreamV3.cxx:45 AliCaloRawStreamV3.cxx:46 AliCaloRawStreamV3.cxx:47 AliCaloRawStreamV3.cxx:48 AliCaloRawStreamV3.cxx:49 AliCaloRawStreamV3.cxx:50 AliCaloRawStreamV3.cxx:51 AliCaloRawStreamV3.cxx:52 AliCaloRawStreamV3.cxx:53 AliCaloRawStreamV3.cxx:54 AliCaloRawStreamV3.cxx:55 AliCaloRawStreamV3.cxx:56 AliCaloRawStreamV3.cxx:57 AliCaloRawStreamV3.cxx:58 AliCaloRawStreamV3.cxx:59 AliCaloRawStreamV3.cxx:60 AliCaloRawStreamV3.cxx:61 AliCaloRawStreamV3.cxx:62 AliCaloRawStreamV3.cxx:63 AliCaloRawStreamV3.cxx:64 AliCaloRawStreamV3.cxx:65 AliCaloRawStreamV3.cxx:66 AliCaloRawStreamV3.cxx:67 AliCaloRawStreamV3.cxx:68 AliCaloRawStreamV3.cxx:69 AliCaloRawStreamV3.cxx:70 AliCaloRawStreamV3.cxx:71 AliCaloRawStreamV3.cxx:72 AliCaloRawStreamV3.cxx:73 AliCaloRawStreamV3.cxx:74 AliCaloRawStreamV3.cxx:75 AliCaloRawStreamV3.cxx:76 AliCaloRawStreamV3.cxx:77 AliCaloRawStreamV3.cxx:78 AliCaloRawStreamV3.cxx:79 AliCaloRawStreamV3.cxx:80 AliCaloRawStreamV3.cxx:81 AliCaloRawStreamV3.cxx:82 AliCaloRawStreamV3.cxx:83 AliCaloRawStreamV3.cxx:84 AliCaloRawStreamV3.cxx:85 AliCaloRawStreamV3.cxx:86 AliCaloRawStreamV3.cxx:87 AliCaloRawStreamV3.cxx:88 AliCaloRawStreamV3.cxx:89 AliCaloRawStreamV3.cxx:90 AliCaloRawStreamV3.cxx:91 AliCaloRawStreamV3.cxx:92 AliCaloRawStreamV3.cxx:93 AliCaloRawStreamV3.cxx:94 AliCaloRawStreamV3.cxx:95 AliCaloRawStreamV3.cxx:96 AliCaloRawStreamV3.cxx:97 AliCaloRawStreamV3.cxx:98 AliCaloRawStreamV3.cxx:99 AliCaloRawStreamV3.cxx:100 AliCaloRawStreamV3.cxx:101 AliCaloRawStreamV3.cxx:102 AliCaloRawStreamV3.cxx:103 AliCaloRawStreamV3.cxx:104 AliCaloRawStreamV3.cxx:105 AliCaloRawStreamV3.cxx:106 AliCaloRawStreamV3.cxx:107 AliCaloRawStreamV3.cxx:108 AliCaloRawStreamV3.cxx:109 AliCaloRawStreamV3.cxx:110 AliCaloRawStreamV3.cxx:111 AliCaloRawStreamV3.cxx:112 AliCaloRawStreamV3.cxx:113 AliCaloRawStreamV3.cxx:114 AliCaloRawStreamV3.cxx:115 AliCaloRawStreamV3.cxx:116 AliCaloRawStreamV3.cxx:117 AliCaloRawStreamV3.cxx:118 AliCaloRawStreamV3.cxx:119 AliCaloRawStreamV3.cxx:120 AliCaloRawStreamV3.cxx:121 AliCaloRawStreamV3.cxx:122 AliCaloRawStreamV3.cxx:123 AliCaloRawStreamV3.cxx:124 AliCaloRawStreamV3.cxx:125 AliCaloRawStreamV3.cxx:126 AliCaloRawStreamV3.cxx:127 AliCaloRawStreamV3.cxx:128 AliCaloRawStreamV3.cxx:129 AliCaloRawStreamV3.cxx:130 AliCaloRawStreamV3.cxx:131 AliCaloRawStreamV3.cxx:132 AliCaloRawStreamV3.cxx:133 AliCaloRawStreamV3.cxx:134 AliCaloRawStreamV3.cxx:135 AliCaloRawStreamV3.cxx:136 AliCaloRawStreamV3.cxx:137 AliCaloRawStreamV3.cxx:138 AliCaloRawStreamV3.cxx:139 AliCaloRawStreamV3.cxx:140 AliCaloRawStreamV3.cxx:141 AliCaloRawStreamV3.cxx:142 AliCaloRawStreamV3.cxx:143 AliCaloRawStreamV3.cxx:144 AliCaloRawStreamV3.cxx:145 AliCaloRawStreamV3.cxx:146 AliCaloRawStreamV3.cxx:147 AliCaloRawStreamV3.cxx:148 AliCaloRawStreamV3.cxx:149 AliCaloRawStreamV3.cxx:150 AliCaloRawStreamV3.cxx:151 AliCaloRawStreamV3.cxx:152 AliCaloRawStreamV3.cxx:153 AliCaloRawStreamV3.cxx:154 AliCaloRawStreamV3.cxx:155 AliCaloRawStreamV3.cxx:156 AliCaloRawStreamV3.cxx:157 AliCaloRawStreamV3.cxx:158 AliCaloRawStreamV3.cxx:159 AliCaloRawStreamV3.cxx:160 AliCaloRawStreamV3.cxx:161 AliCaloRawStreamV3.cxx:162 AliCaloRawStreamV3.cxx:163 AliCaloRawStreamV3.cxx:164 AliCaloRawStreamV3.cxx:165 AliCaloRawStreamV3.cxx:166 AliCaloRawStreamV3.cxx:167 AliCaloRawStreamV3.cxx:168 AliCaloRawStreamV3.cxx:169 AliCaloRawStreamV3.cxx:170 AliCaloRawStreamV3.cxx:171 AliCaloRawStreamV3.cxx:172 AliCaloRawStreamV3.cxx:173 AliCaloRawStreamV3.cxx:174 AliCaloRawStreamV3.cxx:175 AliCaloRawStreamV3.cxx:176 AliCaloRawStreamV3.cxx:177 AliCaloRawStreamV3.cxx:178 AliCaloRawStreamV3.cxx:179 AliCaloRawStreamV3.cxx:180 AliCaloRawStreamV3.cxx:181 AliCaloRawStreamV3.cxx:182 AliCaloRawStreamV3.cxx:183 AliCaloRawStreamV3.cxx:184 AliCaloRawStreamV3.cxx:185 AliCaloRawStreamV3.cxx:186 AliCaloRawStreamV3.cxx:187 AliCaloRawStreamV3.cxx:188 AliCaloRawStreamV3.cxx:189 AliCaloRawStreamV3.cxx:190 AliCaloRawStreamV3.cxx:191 AliCaloRawStreamV3.cxx:192 AliCaloRawStreamV3.cxx:193 AliCaloRawStreamV3.cxx:194 AliCaloRawStreamV3.cxx:195