]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCCalPadRegion.cxx
mag. field and geometry initialised from GRP
[u/mrichter/AliRoot.git] / TPC / AliTPCCalPadRegion.cxx
index 7bc94c0b6fd38f770039eaefdb1c57ca9b87c301..01e93153464216eba6054038cd6ce60b89bb9f93 100644 (file)
@@ -55,6 +55,7 @@ AliTPCCalPadRegion::AliTPCCalPadRegion(const char *name, const char *title) :
    //
 
    fObjects = new TObjArray(fgkNSegments * fgkNPadTypes);
+   fObjects->SetOwner(kTRUE);
 }
 
 AliTPCCalPadRegion::AliTPCCalPadRegion(const AliTPCCalPadRegion& obj) :
@@ -66,6 +67,7 @@ AliTPCCalPadRegion::AliTPCCalPadRegion(const AliTPCCalPadRegion& obj) :
    //
 
    fObjects = new TObjArray(*(obj.fObjects));
+   fObjects->SetOwner(kTRUE);
 }
 
 AliTPCCalPadRegion& AliTPCCalPadRegion::operator=(const AliTPCCalPadRegion& rhs) {
@@ -80,6 +82,37 @@ AliTPCCalPadRegion& AliTPCCalPadRegion::operator=(const AliTPCCalPadRegion& rhs)
    return *this;
 }
 
+
+void       AliTPCCalPadRegion::SetObject(TObject* obj, UInt_t segment, UInt_t padType)
+{
+  //
+  // Set the object for given segment
+  //
+  if (!fObjects) {
+    fObjects = new TObjArray(fgkNSegments * fgkNPadTypes);
+    fObjects->SetOwner(kTRUE);
+  }
+  if (fObjects->GetEntriesFast()<Int_t(fgkNSegments * fgkNPadTypes)){
+    fObjects->Expand(fgkNSegments * fgkNPadTypes);
+  }
+  if (BoundsOk("SetObject", segment, padType)){ 
+    if (segment+fgkNSegments*padType>static_cast<UInt_t>(fObjects->GetEntriesFast())) fObjects->Expand(fgkNSegments * fgkNPadTypes);
+    fObjects->AddAt(obj, segment+fgkNSegments*padType); 
+  }
+}
+
+TObject*   AliTPCCalPadRegion::GetObject(UInt_t segment, UInt_t padType){  
+  //
+  //
+  //
+  if (fObjects->GetEntriesFast()<Int_t(fgkNSegments * fgkNPadTypes)){
+    fObjects->Expand(fgkNSegments * fgkNPadTypes);
+  }
+  return fObjects->At(segment+fgkNSegments*padType); 
+}
+
+
+
 void AliTPCCalPadRegion::GetPadRegionCenterLocal(UInt_t padType, Double_t* xy) {
    //
    // Return the center of the pad size region in local