/[PAMELA software]/DarthVader/TrackerLevel2/src/TrkLevel1.cpp
ViewVC logotype

Diff of /DarthVader/TrackerLevel2/src/TrkLevel1.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by pam-fi, Fri Nov 24 16:44:15 2006 UTC revision 1.10 by pam-fi, Sat Dec 2 10:42:53 2006 UTC
# Line 40  TrkCluster::TrkCluster(){ Line 40  TrkCluster::TrkCluster(){
40  //  //
41  //--------------------------------------  //--------------------------------------
42  TrkCluster::~TrkCluster(){  TrkCluster::~TrkCluster(){
43            
44        if(CLlength){
45          delete [] clsignal;          delete [] clsignal;
46          delete [] clsigma;          delete [] clsigma;
47          delete [] cladc;          delete [] cladc;
48          delete [] clbad;          delete [] clbad;
49        }
50  };  };
51  //--------------------------------------  //--------------------------------------
52  //  //
# Line 57  TrkCluster::TrkCluster(const TrkCluster& Line 59  TrkCluster::TrkCluster(const TrkCluster&
59          indmax   = t.indmax;          indmax   = t.indmax;
60                    
61          CLlength = t.CLlength;            CLlength = t.CLlength;  
62          clsignal = new Float_t[CLlength];          if(CLlength){
63          clsigma  = new Float_t[CLlength];              clsignal = new Float_t[CLlength];
64          cladc    = new Int_t[CLlength];              clsigma  = new Float_t[CLlength];
65          clbad    = new Bool_t[CLlength];              cladc    = new Int_t[CLlength];
66          for(Int_t i=0; i<CLlength;i++){              clbad    = new Bool_t[CLlength];
67                for(Int_t i=0; i<CLlength;i++){
68                  clsignal[i] = t.clsignal[i];                  clsignal[i] = t.clsignal[i];
69                  clsigma[i]  = t.clsigma[i];                  clsigma[i]  = t.clsigma[i];
70                  cladc[i]    = t.cladc[i];                  cladc[i]    = t.cladc[i];
71                  clbad[i]    = t.clbad[i];                  clbad[i]    = t.clbad[i];
72                };
73          };          };
74    };
75    //--------------------------------------
76    //
77    //
78    //--------------------------------------
79    void TrkCluster::Clear(){
80            
81            view     = 0;
82            maxs     = 0;
83            indmax   = 0;
84            
85            CLlength = 0;
86            clsignal = 0;
87            clsigma  = 0;
88            cladc    = 0;
89            clbad    = 0;
90    
91  };  };
92  //--------------------------------------  //--------------------------------------
# Line 411  void TrkLevel1::Dump(){ Line 431  void TrkLevel1::Dump(){
431  /**  /**
432   * Fills a TrkLevel1 object with values from a struct cTrkLevel1 (to get data from F77 common).   * Fills a TrkLevel1 object with values from a struct cTrkLevel1 (to get data from F77 common).
433   */   */
434  void TrkLevel1::SetFromLevel1Struct(cTrkLevel1 *l1){  void TrkLevel1::SetFromLevel1Struct(cTrkLevel1 *l1, Bool_t full){
435    
436        //  ---------------
437      //  *** CLUSTER ***      //  *** CLUSTER ***
438        //  ---------------
439      TrkCluster* t_cl = new TrkCluster();      TrkCluster* t_cl = new TrkCluster();
440      TClonesArray &t = *Cluster;      TClonesArray &t = *Cluster;
441      for(int i=0; i<l1->nclstr1; i++){      for(int i=0; i<l1->nclstr1; i++){
442    
443            t_cl->Clear();
444            if( full || (!full && l1->whichtrack[i]) ){
445                    
446          t_cl->view     = l1->view[i];              t_cl->view     = l1->view[i];
447          t_cl->maxs     = l1->maxs[i];              t_cl->maxs     = l1->maxs[i];
448          t_cl->indmax   = l1->indmax[i] - l1->indstart[i];              t_cl->indmax   = l1->indmax[i] - l1->indstart[i];
449                        
450          Int_t from = l1->indstart[i] -1;              Int_t from = l1->indstart[i] -1;
451          Int_t to   = l1->totCLlength ;              Int_t to   = l1->totCLlength ;
452          if(i != l1->nclstr1-1)to   = l1->indstart[i+1] -1 ;              if(i != l1->nclstr1-1)to   = l1->indstart[i+1] -1 ;
453          t_cl->CLlength = to - from ;              t_cl->CLlength = to - from ;
454                        
455          t_cl->clsignal = new Float_t[t_cl->CLlength];              t_cl->clsignal = new Float_t[t_cl->CLlength];
456          t_cl->clsigma  = new Float_t[t_cl->CLlength];              t_cl->clsigma  = new Float_t[t_cl->CLlength];
457          t_cl->cladc    = new Int_t[t_cl->CLlength];              t_cl->cladc    = new Int_t[t_cl->CLlength];
458          t_cl->clbad    = new Bool_t[t_cl->CLlength];              t_cl->clbad    = new Bool_t[t_cl->CLlength];
459          Int_t index = 0;              Int_t index = 0;
460          for(Int_t is = from; is < to; is++ ){              for(Int_t is = from; is < to; is++ ){
461              t_cl->clsignal[index] = (Float_t) l1->clsignal[is];                  t_cl->clsignal[index] = (Float_t) l1->clsignal[is];
462              t_cl->clsigma[index]  = (Float_t) l1->clsigma[is];                  t_cl->clsigma[index]  = (Float_t) l1->clsigma[is];
463              t_cl->cladc[index]    = (Int_t)   l1->cladc[is];                  t_cl->cladc[index]    = (Int_t)   l1->cladc[is];
464              t_cl->clbad[index]    = (Bool_t)  l1->clbad[is];                  t_cl->clbad[index]    = (Bool_t)  l1->clbad[is];
465              index++;                  index++;
466          };              };
467                    }
468          new(t[i]) TrkCluster(*t_cl);          new(t[i]) TrkCluster(*t_cl); // <<< store cluster
469      };      };
470            
471      delete t_cl;      delete t_cl;
472            
473        //  -------------------------
474      //  ****general variables****      //  ****general variables****
475            //  -------------------------    
476      for(Int_t i=0; i<12 ; i++){      for(Int_t i=0; i<12 ; i++){
477          good[i] = l1->good[i];          good[i] = l1->good[i];
478          for(Int_t j=0; j<24 ; j++){          for(Int_t j=0; j<24 ; j++){
# Line 539  void TrkLevel1::Delete(){ Line 565  void TrkLevel1::Delete(){
565  //--------------------------------------  //--------------------------------------
566  TrkCluster *TrkLevel1::GetCluster(int is){  TrkCluster *TrkLevel1::GetCluster(int is){
567    
568          if(is >= this->nclstr()){  //      if(is >= this->nclstr()){
569                  cout << "** TrkLevel1::GetCluster(int) ** Cluster "<< is << " does not exits! " << endl;  //              cout << "** TrkLevel1::GetCluster(int) ** Cluster "<< is << " does not exits! " << endl;
570                  cout << "( Stored clusters nclstr() = "<< this->nclstr()<<" )" << endl;  //              cout << "( Stored clusters nclstr() = "<< this->nclstr()<<" )" << endl;
571                  return 0;  //              return 0;
572          }  //      }
573          TClonesArray &t = *(Cluster);          TClonesArray &t = *(Cluster);
574          TrkCluster *cluster = (TrkCluster*)t[is];          TrkCluster *cluster = (TrkCluster*)t[is];
575          return cluster;          return cluster;

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.23