/[PAMELA software]/DarthVader/CalorimeterLevel2/src/CaloProcessing.cpp
ViewVC logotype

Diff of /DarthVader/CalorimeterLevel2/src/CaloProcessing.cpp

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

revision 1.9 by pam-fi, Thu Jan 11 09:32:54 2007 UTC revision 1.13 by mocchiut, Tue Feb 13 16:55:08 2007 UTC
# Line 67  CaloProcessing::CaloProcessing(){ Line 67  CaloProcessing::CaloProcessing(){
67    calopar1 = true;    calopar1 = true;
68    calopar2 = true;    calopar2 = true;
69    calopar3 = true;    calopar3 = true;
70      crosst = true;
71    ftcalopar1 = 0;    ftcalopar1 = 0;
72    ttcalopar1 = 0;    ttcalopar1 = 0;
73    ftcalopar2 = 0;    ftcalopar2 = 0;
# Line 75  CaloProcessing::CaloProcessing(){ Line 76  CaloProcessing::CaloProcessing(){
76    ttcalopar3 = 0;    ttcalopar3 = 0;
77  }  }
78    
79    void CaloProcessing::SetCrossTalk(Bool_t ct){
80      crosst = ct;
81    };
82    
83  /**  /**
84   * Initialize CaloProcessing object   * Initialize CaloProcessing object
85  **/  **/
# Line 363  Int_t CaloProcessing::Calibrate(Int_t ei Line 368  Int_t CaloProcessing::Calibrate(Int_t ei
368    Int_t val = 0;    Int_t val = 0;
369    Int_t del = 1100;    Int_t del = 1100;
370    if ( clevel2->trigty != 2. ){    if ( clevel2->trigty != 2. ){
371        Bool_t ck = false;
372      for (Int_t sec = 0; sec < 4; sec++){      for (Int_t sec = 0; sec < 4; sec++){
373        val = (Int_t)de->calselftrig[sec][6];        val = (Int_t)de->calselftrig[sec][6];
374        del = delay(val);        del = delay(val);
375        if ( del < 1100 ){        if ( del < 1100 ){
376            clevel2->wartrig = 0.;      
377          clevel2->trigty = 3.;          clevel2->trigty = 3.;
378            ck = true;
379          break;          break;
380        };        };
381      };      };
382        if ( !ck ) clevel2->wartrig = 100.;      
383      } else {
384        Bool_t ck = false;
385        for (Int_t sec = 0; sec < 4; sec++){
386          val = (Int_t)de->calselftrig[sec][6];
387          del = delay(val);
388          if ( del < 1100 ){
389            clevel2->wartrig = 0.;      
390            ck = true;
391          };
392        };
393        if ( !ck ) clevel2->wartrig = 100.;      
394    };    };
395    //    //
396    Int_t se = 5;    Int_t se = 5;
# Line 560  Int_t CaloProcessing::Calibrate(Int_t ei Line 580  Int_t CaloProcessing::Calibrate(Int_t ei
580                };                };
581              };              };
582            };            };
583            if (ck == 1){            if ( crosst ){
584              if (ip[i]%2 == 0) {              if (ck == 1){
585                ipre = ip[i] + 1;                if (ip[i]%2 == 0) {
586              } else {                  ipre = ip[i] + 1;
587                ipre = ip[i] - 1;                } else {
588              };                  ipre = ip[i] - 1;
589              for (Int_t j = ipre*16 ; j < (ipre+1)*16 ; j++){                };
590                clevel1->estrip[j][m][l] += (qpre[ipre] - qpre[ip[i]]) * 0.00478;                for (Int_t j = ipre*16 ; j < (ipre+1)*16 ; j++){
591                    clevel1->estrip[j][m][l] += (qpre[ipre] - qpre[ip[i]]) * 0.00478;
592                  };
593              };              };
594            };              if (ck == 2){
595            if (ck == 2){                for (Int_t j = i*32 ; j < (i+1)*32 ; j++){
596              for (Int_t j = i*32 ; j < (i+1)*32 ; j++){                  ipre = j/16 + 1;
597                ipre = j/16 + 1;                  clevel1->estrip[j][m][l] +=  qpre[ipre] * 0.00478;
598                clevel1->estrip[j][m][l] +=  qpre[ipre] * 0.00478;                };
599              };              };
600            };            };
601          };          };
602          //          //
603          if ( ener0 == 0. && cbase0 == 0. && !pproblem ){          if ( ener0 == 0. && cbase0 == 0. && !pproblem && clevel2->perr[se] == 0){
604            if ( verbose ) printf(" Calorimeter power problems! event marked as bad \n");            if ( verbose ) printf(" L0 entry %i : calorimeter power problems! event marked as bad perr %f swerr %X view %i plane %i \n",ei,de->perror[se],de->stwerr[se],l,m);
605            pproblem = true;            pproblem = true;
606            pe++;            pe++;
607          };          };
# Line 592  Int_t CaloProcessing::Calibrate(Int_t ei Line 614  Int_t CaloProcessing::Calibrate(Int_t ei
614            jjj++;            jjj++;
615            j4++;            j4++;
616            if ( j < 96 ) ene[j] = clevel1->estrip[j][m][l];            if ( j < 96 ) ene[j] = clevel1->estrip[j][m][l];
617            if ( jj >= 0 && jj < 96 ){            if ( crosst ){
618              if ( jj != 0 && jj != 32 && jj != 64 ) ene[jj-1] += -clevel1->estrip[jj][m][l] * 0.01581;              if ( jj >= 0 && jj < 96 ){
619              if ( jj != 31 && jj != 63 && jj != 95 ) ene[jj+1] += -clevel1->estrip[jj][m][l] * 0.01581;                                  if ( jj != 0 && jj != 32 && jj != 64 ) ene[jj-1] += -clevel1->estrip[jj][m][l] * 0.01581;
620            };                if ( jj != 31 && jj != 63 && jj != 95 ) ene[jj+1] += -clevel1->estrip[jj][m][l] * 0.01581;                        
621            if ( jjj >= 0 && jjj < 96 ){              };
622              if ( jjj != 0 && jjj != 32 && jjj != 64 ) clevel1->estrip[jjj-1][m][l] +=  -ene[jjj] * 0.01581;              if ( jjj >= 0 && jjj < 96 ){
623              if ( jjj != 31 && jjj != 63 && jjj != 95 ) clevel1->estrip[jjj+1][m][l] +=  -ene[jjj] * 0.01581;                if ( jjj != 0 && jjj != 32 && jjj != 64 ) clevel1->estrip[jjj-1][m][l] +=  -ene[jjj] * 0.01581;
624                  if ( jjj != 31 && jjj != 63 && jjj != 95 ) clevel1->estrip[jjj+1][m][l] +=  -ene[jjj] * 0.01581;
625                };
626            };            };
627            if ( j4 >= 0 && j4 < 96 ){            if ( j4 >= 0 && j4 < 96 ){
628              //              //
# Line 709  void CaloProcessing::FillTrkVar(CaloLeve Line 733  void CaloProcessing::FillTrkVar(CaloLeve
733    t_ca->qlow = clevel2->qlow;    t_ca->qlow = clevel2->qlow;
734    t_ca->nlow = (Int_t)clevel2->nlow;    t_ca->nlow = (Int_t)clevel2->nlow;
735    //    //
   memcpy(t_ca->tibar,clevel2->tibar,sizeof(clevel2->tibar));  
   memcpy(t_ca->tbar,clevel2->tbar,sizeof(clevel2->tbar));  
   //  
736    if ( trkseqno == -1 ){    if ( trkseqno == -1 ){
737      ca->impx = clevel2->impx;      //    ca->impx = clevel2->impx;
738      ca->impy = clevel2->impy;      //    ca->impy = clevel2->impy;
739      ca->tanx = clevel2->tanx;      ca->tanx[1] = clevel2->tanx;
740      ca->tany = clevel2->tany;      ca->tany[1] = clevel2->tany;
741      ca->elen = clevel2->elen;      ca->elen = clevel2->elen;
742      ca->selen = clevel2->selen;      ca->selen = clevel2->selen;
743      memcpy(ca->cibar,clevel2->cibar,sizeof(clevel2->cibar));      //    memcpy(ca->cibar,clevel2->cibar,sizeof(clevel2->cibar));
744      memcpy(ca->cbar,clevel2->cbar,sizeof(clevel2->cbar));      //    memcpy(ca->cbar,clevel2->cbar,sizeof(clevel2->cbar));
745        memcpy(t_ca->tibar,clevel2->cibar,sizeof(clevel2->cibar));
746        memcpy(t_ca->tbar,clevel2->cbar,sizeof(clevel2->cbar));
747      memcpy(ca->planemax,clevel2->planemax,sizeof(clevel2->planemax));      memcpy(ca->planemax,clevel2->planemax,sizeof(clevel2->planemax));
748      memcpy(ca->varcfit,clevel2->varcfit,sizeof(clevel2->varcfit));      ca->varcfit[2] = clevel2->varcfit[0];
749      memcpy(ca->npcfit,clevel2->npcfit,sizeof(clevel2->npcfit));      ca->varcfit[3] = clevel2->varcfit[1];
750        ca->npcfit[2] = clevel2->npcfit[0];
751        ca->npcfit[3] = clevel2->npcfit[1];    
752        //    memcpy(ca->varcfit,clevel2->varcfit,sizeof(clevel2->varcfit));
753        //    memcpy(ca->npcfit,clevel2->npcfit,sizeof(clevel2->npcfit));
754      } else {
755        memcpy(t_ca->tibar,clevel2->tibar,sizeof(clevel2->tibar));
756        memcpy(t_ca->tbar,clevel2->tbar,sizeof(clevel2->tbar));
757    };    };
758      //
759    //    //
760    if(!(ca->CaloTrk))ca->CaloTrk = new TClonesArray("CaloTrkVar",1); //ELENA    if ( !(ca->CaloTrk) ) ca->CaloTrk = new TClonesArray("CaloTrkVar",1); //ELENA
761    TClonesArray &t = *ca->CaloTrk;    TClonesArray &t = *ca->CaloTrk;
762    new(t[nutrk]) CaloTrkVar(*t_ca);    new(t[nutrk]) CaloTrkVar(*t_ca);
763    //    //
# Line 747  void CaloProcessing::FillCommonVar(CaloL Line 778  void CaloProcessing::FillCommonVar(CaloL
778    } else {    } else {
779      ca->selftrigger = 0;      ca->selftrigger = 0;
780    };    };
781      //
782      ca->selftrigger += (Int_t)clevel2->wartrig;
783      //
784    memcpy(ca->perr,clevel2->perr,sizeof(clevel2->perr));    memcpy(ca->perr,clevel2->perr,sizeof(clevel2->perr));
785    memcpy(ca->swerr,clevel2->swerr,sizeof(clevel2->swerr));    memcpy(ca->swerr,clevel2->swerr,sizeof(clevel2->swerr));
786    memcpy(ca->crc,clevel2->crc,sizeof(clevel2->crc));    memcpy(ca->crc,clevel2->crc,sizeof(clevel2->crc));
787    ca->nstrip = (Int_t)clevel2->nstrip;    ca->nstrip = (Int_t)clevel2->nstrip;
788    ca->qtot = clevel2->qtot;    ca->qtot = clevel2->qtot;
789    ca->impx = clevel2->impx;    //  ca->impx = clevel2->impx;
790    ca->impy = clevel2->impy;    //  ca->impy = clevel2->impy;
791    ca->tanx = clevel2->tanx;    ca->tanx[0] = clevel2->tanx;
792    ca->tany = clevel2->tany;    ca->tany[0] = clevel2->tany;
793    ca->nx22 = (Int_t)clevel2->nx22;    ca->nx22 = (Int_t)clevel2->nx22;
794    ca->qx22 = clevel2->qx22;    ca->qx22 = clevel2->qx22;
795    ca->qmax = clevel2->qmax;    ca->qmax = clevel2->qmax;
# Line 763  void CaloProcessing::FillCommonVar(CaloL Line 797  void CaloProcessing::FillCommonVar(CaloL
797    ca->selen = clevel2->selen;    ca->selen = clevel2->selen;
798    memcpy(ca->qq,clevel2->qq,sizeof(clevel2->qq));    memcpy(ca->qq,clevel2->qq,sizeof(clevel2->qq));
799    memcpy(ca->planemax,clevel2->planemax,sizeof(clevel2->planemax));    memcpy(ca->planemax,clevel2->planemax,sizeof(clevel2->planemax));
800    memcpy(ca->varcfit,clevel2->varcfit,sizeof(clevel2->varcfit));    ca->varcfit[0] = clevel2->varcfit[0];
801    memcpy(ca->npcfit,clevel2->npcfit,sizeof(clevel2->npcfit));    ca->varcfit[1] = clevel2->varcfit[1];
802      ca->npcfit[0] = clevel2->npcfit[0];
803      ca->npcfit[1] = clevel2->npcfit[1];
804      ca->fitmode[0] = clevel2->fmode[0];
805      ca->fitmode[1] = clevel2->fmode[1];
806      //  memcpy(ca->varcfit,clevel2->varcfit,sizeof(clevel2->varcfit));
807      //  memcpy(ca->npcfit,clevel2->npcfit,sizeof(clevel2->npcfit));
808    memcpy(ca->cibar,clevel2->cibar,sizeof(clevel2->cibar));    memcpy(ca->cibar,clevel2->cibar,sizeof(clevel2->cibar));
809    memcpy(ca->cbar,clevel2->cbar,sizeof(clevel2->cbar));    memcpy(ca->cbar,clevel2->cbar,sizeof(clevel2->cbar));
810    //    //
# Line 829  void CaloProcessing::ClearTrkVar(){ Line 869  void CaloProcessing::ClearTrkVar(){
869  void CaloProcessing::ClearCommonVar(){  void CaloProcessing::ClearCommonVar(){
870    istrip = 0;    istrip = 0;
871    clevel2->trigty = -1.;    clevel2->trigty = -1.;
872      clevel2->wartrig = 0.;
873    clevel2->good = 0;    clevel2->good = 0;
874    clevel2->nstrip = 0.;    clevel2->nstrip = 0.;
875    clevel2->qtot = 0.;    clevel2->qtot = 0.;
876    clevel2->impx = 0.;    //  clevel2->impx = 0.;
877    clevel2->impy = 0.;    //  clevel2->impy = 0.;
878    clevel2->tanx = 0.;    clevel2->tanx = 0.; // this is correct since it refers to the fortran structure
879    clevel2->tany = 0.;    clevel2->tany = 0.; // this is correct since it refers to the fortran structure
880    clevel2->qmax = 0.;    clevel2->qmax = 0.;
881    clevel2->nx22 = 0.;    clevel2->nx22 = 0.;
882    clevel2->qx22 = 0.;    clevel2->qx22 = 0.;
# Line 843  void CaloProcessing::ClearCommonVar(){ Line 884  void CaloProcessing::ClearCommonVar(){
884    memset(clevel2->swerr, 0, 4*sizeof(Int_t));    memset(clevel2->swerr, 0, 4*sizeof(Int_t));
885    memset(clevel2->crc, 0, 4*sizeof(Int_t));    memset(clevel2->crc, 0, 4*sizeof(Int_t));
886    memset(clevel2->qq, 0, 4*sizeof(Int_t));    memset(clevel2->qq, 0, 4*sizeof(Int_t));
887    memset(clevel2->varcfit, 0, 2*sizeof(Float_t));    memset(clevel2->varcfit, 0, 4*sizeof(Float_t));
888    memset(clevel2->npcfit, 0, 2*sizeof(Int_t));    memset(clevel2->npcfit, 0, 4*sizeof(Int_t));
889    memset(clevel2->planemax, 0, 2*sizeof(Int_t));    memset(clevel2->planemax, 0, 2*sizeof(Int_t));
890      memset(clevel2->fmode, 0, 2*sizeof(Int_t));
891    memset(clevel2->cibar, 0, 2*22*sizeof(Int_t));    memset(clevel2->cibar, 0, 2*22*sizeof(Int_t));
892    memset(clevel2->cbar, 0, 2*22*sizeof(Float_t));    memset(clevel2->cbar, 0, 2*22*sizeof(Float_t));
893  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.23