]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCCalPadRegion.cxx
Adding the class for Cosmic events
[u/mrichter/AliRoot.git] / TPC / AliTPCCalPadRegion.cxx
index 7a8e67284a40221dda9633c74481ba5bbd251000..3af7ec5d1e75b54d33be7effc531ce4d584132e0 100644 (file)
@@ -55,16 +55,19 @@ AliTPCCalPadRegion::AliTPCCalPadRegion(const char *name, const char *title) :
    //
 
    fObjects = new TObjArray(fgkNSegments * fgkNPadTypes);
+   fObjects->SetOwner(kTRUE);
 }
 
 AliTPCCalPadRegion::AliTPCCalPadRegion(const AliTPCCalPadRegion& obj) :
-   TNamed(obj)
+  TNamed(obj),
+  fObjects(0)
 {
    //
    // Copy constructor.
    //
 
    fObjects = new TObjArray(*(obj.fObjects));
+   fObjects->SetOwner(kTRUE);
 }
 
 AliTPCCalPadRegion& AliTPCCalPadRegion::operator=(const AliTPCCalPadRegion& rhs) {
@@ -79,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()<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()<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