3 #include "AliITSModuleDaSSD.h"
5 ClassImp(AliITSModuleDaSSD)
9 AliITSModuleDaSSD::AliITSModuleDaSSD() :
23 AliITSModuleDaSSD::AliITSModuleDaSSD(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t moduleID) :
38 AliITSModuleDaSSD::AliITSModuleDaSSD(const Int_t numberofstrips) :
49 if (numberofstrips != fgkStripsPerModule)
50 Warning("AliITSModuleDaSSD", "ALICE ITS SSD Module contains %d strips", fgkStripsPerModule);
52 fStrips = new AliITSChannelDaSSD* [numberofstrips];
53 fNumberOfStrips = numberofstrips;
54 for (Int_t i = 0; i < numberofstrips; i++) fStrips[i]= NULL;
57 Error("AliITSModuleDaSSD", "Error allocating memory for %d AliITSChannelDaSSD objects!", numberofstrips);
64 AliITSModuleDaSSD::AliITSModuleDaSSD(const Int_t numberofstrips, const Long_t eventsnumber) :
75 if (numberofstrips != fgkStripsPerModule)
76 Warning("AliITSModuleDaSSD", "ALICE ITS SSD Module contains %d strips", fgkStripsPerModule);
78 fStrips = new AliITSChannelDaSSD* [numberofstrips];
79 fNumberOfStrips = numberofstrips;
82 Error("AliITSModuleDaSSD", "Error allocating memory for %d AliITSChannelDaSSD objects!", numberofstrips);
89 for (i = 0; i < fNumberOfStrips; i++) fStrips[i] = new AliITSChannelDaSSD(i, eventsnumber);
92 Error("AliITSModuleDaSSD", "Error allocating memory for %d-th AliITSChannelDaSSD objects!", i);
93 for (Int_t j = 0; j < i; j++) delete fStrips[j];
103 AliITSModuleDaSSD::AliITSModuleDaSSD(const AliITSModuleDaSSD& module) :
105 fEquipId(module.fEquipId),
106 fEquipType(module.fEquipType),
107 fDdlId(module.fDdlId),
110 fModuleId(module.fModuleId),
111 fNumberOfStrips(module.fNumberOfStrips),
112 fStrips(module.fStrips),
113 fEventsNumber(module.fEventsNumber)
117 Fatal("AliITSModuleDaSSD", "copy constructor not implemented");
122 AliITSModuleDaSSD& AliITSModuleDaSSD::operator = (const AliITSModuleDaSSD& module)
124 // assignment operator
126 Fatal("AliITSModuleDaSSD: operator =", "assignment operator not implemented");
132 AliITSModuleDaSSD::~AliITSModuleDaSSD()
136 for (Long_t i = 0; i < fNumberOfStrips; i++)
138 if (fStrips[i]) delete fStrips[i];
139 // if (!(i % 100)) cout << "Deleted fStrips[i], i = " << i << endl;
147 Bool_t AliITSModuleDaSSD::SetModuleIdData (const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t moduleID)
149 if (ad > fgkMaxAdNumber) {
150 Warning("AliITSModuleDaSSD", "Wrong AD number: %i", ad);
153 if (adc > fgkMaxAdcNumber || ForbiddenAdcNumber(adc)) {
154 Warning("AliITSModuleDaSSD", "Wrong ADC number: %i", adc);
160 fModuleId = moduleID;
166 void AliITSModuleDaSSD::SetModuleFEEId (const UChar_t ddlID, const UChar_t ad, const UChar_t adc)
174 void AliITSModuleDaSSD::SetModuleRorcId (const Int_t equipid, const Int_t equiptype)
177 fEquipType = equiptype;
181 Bool_t AliITSModuleDaSSD::SetEventsNumber(const Long_t eventsnumber)
184 if (!fStrips) return kFALSE;
186 for (i = 0; i < fNumberOfStrips; i++) {
187 if (fStrips[i]) fStrips[i]->SetEvenetsNumber(eventsnumber);
188 else fStrips[i] = new AliITSChannelDaSSD(i, eventsnumber);
192 Error("AliITSModuleDaSSD", "Error allocating memory for %d-th AliITSChannelDaSSD objects!", i);
193 for (Int_t j = 0; j < i; j++) delete fStrips[j];
204 AliITSNoiseSSD* AliITSModuleDaSSD::GetCalibrationSSDModule() const
207 if (!fStrips) return NULL;
208 mc = new AliITSNoiseSSD();
209 mc->SetMod(fModuleId);
210 mc->SetNNoiseP(fgkPNStripsPerModule);
211 mc->SetNNoiseN(fgkPNStripsPerModule);
212 for (Int_t i = 0; i < fNumberOfStrips; i++) {
217 if (i < fgkPNStripsPerModule)
218 mc->AddNoiseP(i, fStrips[i]->GetNoise());
219 else mc->AddNoiseN((i - fgkPNStripsPerModule), fStrips[i]->GetNoise());