]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/Alieve/ITSDigitsInfo.cxx
- The default value of useFastDecoder in ctor changed to kFALSE,
[u/mrichter/AliRoot.git] / EVE / Alieve / ITSDigitsInfo.cxx
index 12d3a4c0b7282fcf68fea37683548e9e583cadb3..057e3e6383ef1763ac7b2669e7dcb1aa4e24d22d 100644 (file)
@@ -30,10 +30,10 @@ ClassImp(ITSModuleSelection)
 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())
 {}
 
 
@@ -72,9 +72,9 @@ void ITSDigitsInfo::InitInternals()
   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;
@@ -137,12 +137,12 @@ void ITSDigitsInfo::SetTree(TTree* tree)
   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())
@@ -168,7 +168,7 @@ void ITSDigitsInfo::ReadRaw(AliRawReader* raw)
     raw->Reset();
   }
 
-  {
+  if ((mode & 4) || (mode & 8)){
     AliITSRawStreamSDD input(raw);
     TClonesArray* digits = 0;
     while (input.Next())
@@ -195,7 +195,7 @@ void ITSDigitsInfo::ReadRaw(AliRawReader* raw)
     raw->Reset();
   }
 
-  {
+  if ((mode & 16) || (mode & 32)){
     AliITSRawStreamSSD input(raw);
     TClonesArray* digits = 0;
     while (input.Next())
@@ -273,12 +273,15 @@ TClonesArray* ITSDigitsInfo::GetDigits(Int_t mod, Int_t subdet)
       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;
       }
@@ -288,13 +291,16 @@ TClonesArray* ITSDigitsInfo::GetDigits(Int_t mod, Int_t subdet)
       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;
@@ -303,14 +309,17 @@ TClonesArray* ITSDigitsInfo::GetDigits(Int_t mod, Int_t subdet)
       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;
@@ -333,11 +342,11 @@ void ITSDigitsInfo::GetModuleIDs(ITSModuleSelection* sel, std::vector<UInt_t>& i
       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:
@@ -362,8 +371,8 @@ void ITSDigitsInfo::GetModuleIDs(ITSModuleSelection* sel, std::vector<UInt_t>& i
       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);
     }
   }