--- DarthVader/CalorimeterLevel2/src/CaloLevel2.cpp 2006/11/22 08:31:11 1.9 +++ DarthVader/CalorimeterLevel2/src/CaloLevel2.cpp 2007/01/11 09:32:54 1.10 @@ -86,7 +86,8 @@ **/ CaloLevel2::CaloLevel2() { // - CaloTrk = new TClonesArray("CaloTrkVar",1); +// CaloTrk = new TClonesArray("CaloTrkVar",1); //ELENA + CaloTrk = 0; //ELENA // this->Clear(); // @@ -97,7 +98,8 @@ **/ void CaloLevel2::Clear() { // - CaloTrk->Clear(); +// CaloTrk->Clear(); //ELENA + if(CaloTrk)CaloTrk->Delete(); //ELENA // nstrip = 0; qtot = 0.; @@ -124,6 +126,15 @@ // }; +/** + * Delete the CaloLevel2 object + **/ +void CaloLevel2::Delete() { //ELENA + if(CaloTrk){ //ELENA + CaloTrk->Delete(); //ELENA + delete CaloTrk; //ELENA + } //ELENA +} //ELENA /** * Fills a struct cCaloLevel2 with values from a CaloLevel2 object (to put data into a F77 common). @@ -156,40 +167,40 @@ l2->qq[i] = qq[i]; } - l2->calntrk = CaloTrk->GetEntries(); - - for(Int_t i=0;icalntrk;i++){ - l2->caltrkseqno[i] = ((CaloTrkVar *)CaloTrk->At(i))->trkseqno; - l2->ncore[i] = ((CaloTrkVar *)CaloTrk->At(i))->ncore; - l2->noint[i] = ((CaloTrkVar *)CaloTrk->At(i))->noint; - l2->ncyl[i] = ((CaloTrkVar *)CaloTrk->At(i))->ncyl; - l2->nlast[i] = ((CaloTrkVar *)CaloTrk->At(i))->nlast; - l2->npre[i] = ((CaloTrkVar *)CaloTrk->At(i))->npre; - l2->npresh[i] = ((CaloTrkVar *)CaloTrk->At(i))->npresh; - l2->ntr[i] = ((CaloTrkVar *)CaloTrk->At(i))->ntr; - l2->planetot[i] = ((CaloTrkVar *)CaloTrk->At(i))->planetot; - l2->nlow[i] = ((CaloTrkVar *)CaloTrk->At(i))->nlow; - l2->qcore[i] =((CaloTrkVar *)CaloTrk->At(i))->qcore ; - l2->qcyl[i] = ((CaloTrkVar *)CaloTrk->At(i))->qcyl; - l2->qlast[i] = ((CaloTrkVar *)CaloTrk->At(i))->qlast; - l2->qpre[i] = ((CaloTrkVar *)CaloTrk->At(i))->qpre; - l2->qpresh[i] = ((CaloTrkVar *)CaloTrk->At(i))->qpresh; - l2->qtr[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtr; - l2->qtrack[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtrack; - l2->qtrackx[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtrackx; - l2->qtracky[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtracky; - l2->dxtrack[i] = ((CaloTrkVar *)CaloTrk->At(i))->dxtrack; - l2->dytrack[i] = ((CaloTrkVar *)CaloTrk->At(i))->dytrack; - l2->qmean[i] = ((CaloTrkVar *)CaloTrk->At(i))->qmean; - l2->qlow[i] = ((CaloTrkVar *)CaloTrk->At(i))->qlow; - l2->dX0l[i] = ((CaloTrkVar *)CaloTrk->At(i))->dX0l; - for (Int_t j=0; j<2; j++){ - for (Int_t k=0; k<22; k++){ - l2->tbar[i][k][j] = ((CaloTrkVar *)CaloTrk->At(i))->tbar[k][j]; - }; - }; - } - + if(CaloTrk){ //ELENA + l2->calntrk = CaloTrk->GetEntries(); + for(Int_t i=0;icalntrk;i++){ + l2->caltrkseqno[i] = ((CaloTrkVar *)CaloTrk->At(i))->trkseqno; + l2->ncore[i] = ((CaloTrkVar *)CaloTrk->At(i))->ncore; + l2->noint[i] = ((CaloTrkVar *)CaloTrk->At(i))->noint; + l2->ncyl[i] = ((CaloTrkVar *)CaloTrk->At(i))->ncyl; + l2->nlast[i] = ((CaloTrkVar *)CaloTrk->At(i))->nlast; + l2->npre[i] = ((CaloTrkVar *)CaloTrk->At(i))->npre; + l2->npresh[i] = ((CaloTrkVar *)CaloTrk->At(i))->npresh; + l2->ntr[i] = ((CaloTrkVar *)CaloTrk->At(i))->ntr; + l2->planetot[i] = ((CaloTrkVar *)CaloTrk->At(i))->planetot; + l2->nlow[i] = ((CaloTrkVar *)CaloTrk->At(i))->nlow; + l2->qcore[i] =((CaloTrkVar *)CaloTrk->At(i))->qcore ; + l2->qcyl[i] = ((CaloTrkVar *)CaloTrk->At(i))->qcyl; + l2->qlast[i] = ((CaloTrkVar *)CaloTrk->At(i))->qlast; + l2->qpre[i] = ((CaloTrkVar *)CaloTrk->At(i))->qpre; + l2->qpresh[i] = ((CaloTrkVar *)CaloTrk->At(i))->qpresh; + l2->qtr[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtr; + l2->qtrack[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtrack; + l2->qtrackx[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtrackx; + l2->qtracky[i] = ((CaloTrkVar *)CaloTrk->At(i))->qtracky; + l2->dxtrack[i] = ((CaloTrkVar *)CaloTrk->At(i))->dxtrack; + l2->dytrack[i] = ((CaloTrkVar *)CaloTrk->At(i))->dytrack; + l2->qmean[i] = ((CaloTrkVar *)CaloTrk->At(i))->qmean; + l2->qlow[i] = ((CaloTrkVar *)CaloTrk->At(i))->qlow; + l2->dX0l[i] = ((CaloTrkVar *)CaloTrk->At(i))->dX0l; + for (Int_t j=0; j<2; j++){ + for (Int_t k=0; k<22; k++){ + l2->tbar[i][k][j] = ((CaloTrkVar *)CaloTrk->At(i))->tbar[k][j]; + }; + }; + } + } //ELENA } /** @@ -214,6 +225,7 @@ printf(" stored track related variables = %i \n",ntrk()); return(NULL); } + if(!CaloTrk)return 0; //ELENA TClonesArray &t = *(CaloTrk); CaloTrkVar *calotrack = (CaloTrkVar*)t[itrk]; return calotrack;