ITSModuleSelection::ITSModuleSelection():
fType(-1),
fLayer(-1),
- fMinPhi(0),
- fMaxPhi(2*TMath::Pi()),
- fMinTheta(0),
- fMaxTheta(2*TMath::Pi())
+ fMinPhi(-TMath::Pi()),
+ fMaxPhi(TMath::Pi()),
+ fMinTheta(-TMath::Pi()),
+ fMaxTheta(TMath::Pi())
{}
fSDDMaxVal = 80;
fSSDMaxVal = 100;
- fSPDMaxOcc = 0.15;
- fSDDMaxOcc = 0.15;
- fSSDMaxOcc = 0.3;
+ fSPDHighLim = 1;
+ fSDDHighLim = 512;
+ fSSDHighLim = 1024;
// lowest scale factor refers to unscaled ITS module
fSPDScaleX[0] = 1;
fTree = tree;
}
-void ITSDigitsInfo::ReadRaw(AliRawReader* raw)
+void ITSDigitsInfo::ReadRaw(AliRawReader* raw, Int_t mode)
{
// Read raw-data into internal structures. AliITSdigit is used to
// store raw-adata for all sub-detectors.
- {
+ if ((mode & 1) || (mode & 2)){
AliITSRawStreamSPD inputSPD(raw);
TClonesArray* digits = 0;
while (inputSPD.Next())
raw->Reset();
}
- {
+ if ((mode & 4) || (mode & 8)){
AliITSRawStreamSDD input(raw);
TClonesArray* digits = 0;
while (input.Next())
raw->Reset();
}
- {
+ if ((mode & 16) || (mode & 32)){
AliITSRawStreamSSD input(raw);
TClonesArray* digits = 0;
while (input.Next())
TClonesArray* digitsSPD = 0;
map<Int_t, TClonesArray*>::iterator i = fSPDmap.find(mod);
if(i == fSPDmap.end()) {
- if (fTree == 0) return 0;
- TBranch* br = fTree->GetBranch("ITSDigitsSPD");
- br->SetAddress(&digitsSPD);
- br->GetEntry(mod);
- fSPDmap[mod] = digitsSPD;
- return digitsSPD;
+ if (fTree) {
+ TBranch* br = fTree->GetBranch("ITSDigitsSPD");
+ br->SetAddress(&digitsSPD);
+ br->GetEntry(mod);
+ fSPDmap[mod] = digitsSPD;
+ return digitsSPD;
+ }
+ else
+ return NULL;
} else {
return i->second;
}
TClonesArray* digitsSDD = 0;
map<Int_t, TClonesArray*>::iterator i = fSDDmap.find(mod);
if(i == fSDDmap.end()) {
- if (fTree == 0) return 0;
- TBranch* br = fTree->GetBranch("ITSDigitsSDD");
- br->SetAddress(&digitsSDD);
- br->GetEntry(mod);
- fSDDmap[mod] = digitsSDD;
- return digitsSDD;
- } else {
+ if (fTree) {
+ TBranch* br = fTree->GetBranch("ITSDigitsSDD");
+ br->SetAddress(&digitsSDD);
+ br->GetEntry(mod);
+ fSDDmap[mod] = digitsSDD;
+ return digitsSDD;
+ }
+ else
+ return NULL;
+ } else {
return i->second;
}
break;
TClonesArray* digitsSSD = 0;
map<Int_t, TClonesArray*>::iterator i = fSSDmap.find(mod);
if(i == fSSDmap.end()) {
- if (fTree == 0) return 0;
- TBranch* br = fTree->GetBranch("ITSDigitsSSD");
- br->SetAddress(&digitsSSD);
- br->GetEntry(mod);
-
- fSSDmap[mod] = digitsSSD;
- return digitsSSD;
- } else {
+ if (fTree) {
+ TBranch* br = fTree->GetBranch("ITSDigitsSSD");
+ br->SetAddress(&digitsSSD);
+ br->GetEntry(mod);
+
+ fSSDmap[mod] = digitsSSD;
+ return digitsSSD;
+ }
+ else
+ return NULL;
+ } else {
return i->second;
}
break;
idx1 = fGeom->GetLastSPD();
break;
case 1:
- idx0 = fGeom->GetLastSPD();
+ idx0 = fGeom->GetLastSPD()+1;
idx1 = fGeom->GetLastSDD();
break;
case 2:
- idx0 = fGeom->GetLastSDD();
+ idx0 = fGeom->GetLastSDD()+1;
idx1 = fGeom->GetLastSSD();
break;
default:
fGeom->GetTrans(id, x);
mx.SetBaseVec(4, x);
mx.GetPos(v);
- if(v.Phi()<sel->fMaxPhi && v.Phi()>sel->fMinPhi &&
- v.Theta()<sel->fMaxTheta && v.Theta()>sel->fMinTheta )
+ if(v.Phi()<=sel->fMaxPhi && v.Phi()>=sel->fMinPhi &&
+ v.Theta()<=sel->fMaxTheta && v.Theta()>=sel->fMinTheta )
ids.push_back(id);
}
}