fSDigits changed from pointer to a TClonesArray to a TClonesArray
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Apr 2008 16:07:30 +0000 (16:07 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Apr 2008 16:07:30 +0000 (16:07 +0000)
ITS/AliITS.cxx
ITS/AliITS.h
ITS/AliITSDetTypeSim.cxx
ITS/AliITSDetTypeSim.h
ITS/AliITSDigitizer.cxx

index 64b386e..b8b9aae 100644 (file)
@@ -345,7 +345,6 @@ void AliITS::MakeBranchS(const char* fl){
   sprintf(branchname,"%s",GetName());
 
   if(fLoader->TreeS()){
-    if(fDetTypeSim->GetSDigits()==0x0) fDetTypeSim->SetSDigits(new TClonesArray("AliITSpListItem",1000));
     TClonesArray* sdig = (TClonesArray*)fDetTypeSim->GetSDigits();
     MakeBranchInTree(fLoader->TreeS(),branchname,&sdig,buffersize,fl);
   } 
index e7527b4..4a68618 100644 (file)
@@ -105,7 +105,7 @@ class AliITS : public AliDetector {
     virtual AliTriggerDetector* CreateTriggerDetector() const
        { return new AliITSTrigger(); }
    
-    TClonesArray* GetSDigits() const { return fDetTypeSim->GetSDigits();}
+    //   TClonesArray* GetSDigits() const { return fDetTypeSim->GetSDigits();}
 
     AliDigitizer* CreateDigitizer(AliRunDigitizer* manager) const;
     virtual void UpdateInternalGeometry();
index 90244ab..a01e44e 100644 (file)
@@ -77,7 +77,7 @@ fCalibration(),     // [NMod]
 fPreProcess(),   // [] e.g. Fill fHitModule with hits
 fPostProcess(),  // [] e.g. Wright Raw data
 fNSDigits(0),    //! number of SDigits
-fSDigits(),      //! [NMod][NSDigits]
+fSDigits("AliITSpListItem",1000),   
 fNDigits(0),     //! number of Digits
 fRunNumber(0),   //! Run number (to access DB)
 fDigits(),       //! [NMod][NDigits]
@@ -98,7 +98,6 @@ fFirstcall(kTRUE){ // flag
   fSimulation = new TObjArray(fgkNdettypes);
   fSegmentation = new TObjArray(fgkNdettypes);
   fSegmentation->SetOwner(kTRUE);
-  fSDigits = new TClonesArray("AliITSpListItem",1000);
   fDigits = new TObjArray(fgkNdettypes);
   fNDigits = new Int_t[fgkNdettypes];
   fDDLMapSDD=new AliITSDDLModuleMapSDD();
@@ -156,11 +155,7 @@ AliITSDetTypeSim::~AliITSDetTypeSim(){
     fNDigits = 0;
     if (fLoader)fLoader->GetModulesFolder()->Remove(this);
     fLoader = 0; // Not deleting it.
-    if (fSDigits) {
-       fSDigits->Delete();
-       delete fSDigits;
-    }
-    fSDigits=0;
+    fSDigits.Delete();
     if (fDigits) {
       fDigits->Delete();
       delete fDigits;
@@ -175,7 +170,7 @@ fCalibration(source.fCalibration),     // [NMod]
 fPreProcess(source.fPreProcess),   // [] e.g. Fill fHitModule with hits
 fPostProcess(source.fPostProcess),  // [] e.g. Wright Raw data
 fNSDigits(source.fNSDigits),    //! number of SDigits
-fSDigits(source.fSDigits),      //! [NMod][NSDigits]
+fSDigits(*((TClonesArray*)source.fSDigits.Clone())),
 fNDigits(source.fNDigits),     //! number of Digits
 fRunNumber(source.fRunNumber),   //! Run number (to access DB)
 fDigits(source.fDigits),       //! [NMod][NDigits]
@@ -684,13 +679,11 @@ void AliITSDetTypeSim::SetTreeAddressS(TTree* treeS, Char_t* name){
   if(!treeS){
     return;
   }
-  if (fSDigits ==  0x0){
-    fSDigits = new TClonesArray("AliITSpListItem",1000);
-  }
   TBranch *branch;
   sprintf(branchname,"%s",name);
   branch = treeS->GetBranch(branchname);
-  if (branch) branch->SetAddress(&fSDigits);
+  TClonesArray *sdigi = &fSDigits;
+  if (branch) branch->SetAddress(&sdigi);
 
 }
 //___________________________________________________________________
@@ -796,9 +789,9 @@ void AliITSDetTypeSim::SDigitsToDigits(Option_t* opt, Char_t* name){
     }
     sim->InitSimulationModule(module,gAlice->GetEvNumber());
     
-    fSDigits->Clear();
+    fSDigits.Clear();
     brchSDigits->GetEvent(module);
-    sim->AddSDigitsToModule(fSDigits,0);
+    sim->AddSDigitsToModule(&fSDigits,0);
     sim->FinishSDigitiseModule();
     fLoader->TreeD()->Fill();
     ResetDigits();
@@ -811,8 +804,7 @@ void AliITSDetTypeSim::SDigitsToDigits(Option_t* opt, Char_t* name){
 void AliITSDetTypeSim::AddSumDigit(AliITSpListItem &sdig){  
   //Adds the module full of summable digits to the summable digits tree.
 
-  TClonesArray &lsdig = *fSDigits;
-  new(lsdig[fNSDigits++]) AliITSpListItem(sdig);
+  new(fSDigits[fNSDigits++]) AliITSpListItem(sdig);
 }
 //__________________________________________________________
 void AliITSDetTypeSim::AddRealDigit(Int_t branch, Int_t *digits){
index 3dccd4a..ab1e0de 100644 (file)
@@ -70,14 +70,13 @@ class AliITSDetTypeSim : public TObject {
     virtual void SetTreeAddressS(TTree* treeS, Char_t* name);
     virtual void SetTreeAddressD(TTree* treeD, Char_t* name);
 
-    virtual void SetSDigits(TClonesArray* sdigits) {fSDigits=sdigits;}
     virtual void SetDigits(TObjArray* digits) {fDigits=digits;}
-    TClonesArray* GetSDigits() const {return fSDigits;}
+    const TClonesArray* GetSDigits() const { return &fSDigits;}
     TObjArray*    GetDigits() const {return fDigits;}
     Int_t* GetNDigitArray() const {return fNDigits;}
     TClonesArray *DigitsAddress(Int_t id) const {
        return ((TClonesArray*)(*fDigits)[id]);}
-    virtual void ResetSDigits(){fNSDigits=0;if(fSDigits!=0) fSDigits->Clear();}
+    virtual void ResetSDigits(){fNSDigits=0; fSDigits.Clear();}
     virtual void ResetDigits();
     virtual void ResetDigits(Int_t branch);
     virtual void SDigitsToDigits(Option_t *opt,Char_t* name);
@@ -110,7 +109,7 @@ class AliITSDetTypeSim : public TObject {
     TObjArray    *fPreProcess;   //! [] e.g. Fill fHitModule with hits
     TObjArray    *fPostProcess;  //! [] e.g. Wright Raw data
     Int_t         fNSDigits;     //! number of SDigits
-    TClonesArray *fSDigits;      //! [NMod][NSDigits]
+    TClonesArray  fSDigits;      //! Summable digits
     Int_t*        fNDigits;      //! [NDet] number of Digits for det.
     Int_t         fRunNumber;    //! run number (to access DB)
     TObjArray     *fDigits;      //! [NMod][NDigits]
index be7c008..6eb2077 100644 (file)
@@ -238,7 +238,7 @@ void AliITSDigitizer::Exec(Option_t* opt){
            TTree *treeS = ingime->TreeS();
            fITS->SetTreeAddress();
            
-           if( !(treeS && fITS->GetSDigits()) ) continue; 
+           if( !treeS  ) continue; 
            TBranch *brchSDigits = treeS->GetBranch( name );
            if( brchSDigits ) 
             {