/[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.3 by mocchiut, Fri Aug 4 10:31:27 2006 UTC revision 1.4 by mocchiut, Wed Sep 6 11:03:31 2006 UTC
# Line 18  Line 18 
18  // YODA headers  // YODA headers
19  //  //
20  #include <PamelaRun.h>  #include <PamelaRun.h>
 #include <RegistryEvent.h>  
21  #include <physics/calorimeter/CalorimeterEvent.h>  #include <physics/calorimeter/CalorimeterEvent.h>
22  #include <CalibCalPedEvent.h>  #include <CalibCalPedEvent.h>
23  //  //
# Line 67  CaloProcessing::CaloProcessing(){ Line 66  CaloProcessing::CaloProcessing(){
66    memset(sbase, 0, 2*22*6*sizeof(Float_t));    memset(sbase, 0, 2*22*6*sizeof(Float_t));
67    calopar1 = true;    calopar1 = true;
68    calopar2 = true;    calopar2 = true;
69    ftcalopar1 = 0ULL;    ftcalopar1 = 0;
70    ttcalopar1 = 0ULL;    ttcalopar1 = 0;
71    ftcalopar2 = 0ULL;    ftcalopar2 = 0;
72    ttcalopar2 = 0ULL;    ttcalopar2 = 0;
73  }  }
74    
75  /**  /**
76   * Initialize CaloProcessing object   * Initialize CaloProcessing object
77  **/  **/
78  void CaloProcessing::ProcessingInit(TSQLServer *dbc, ULong64_t hs, Int_t &sgnl, TTree *l0tree, Bool_t isdeb, Bool_t isverb){  void CaloProcessing::ProcessingInit(TSQLServer *dbc, UInt_t hs, Int_t &sgnl, TTree *l0tree, Bool_t isdeb, Bool_t isverb){
79    //    //
80    debug = isdeb;    debug = isdeb;
81    verbose = isverb;    verbose = isverb;
# Line 94  void CaloProcessing::ProcessingInit(TSQL Line 93  void CaloProcessing::ProcessingInit(TSQL
93    sgnl = 0;    sgnl = 0;
94    //    //
95    for (Int_t s = 0; s < 4; s++){    for (Int_t s = 0; s < 4; s++){
96      idcalib[s] = 0ULL;      idcalib[s] = 0;
97      fromtime[s] = 0ULL;      fromtime[s] = 0;
98      totime[s] = 0ULL;      totime[s] = 0;
99      calibno[s] = 0;      calibno[s] = 0;
100      ClearCalibVals(s);      ClearCalibVals(s);
101  //      //
102      sgnl = glcalo->Query_GL_CALO_CALIB(hs,s,dbc);      sgnl = glcalo->Query_GL_CALO_CALIB(hs,s,dbc);
103      if ( sgnl < 0 ){      if ( sgnl < 0 ){
104          if ( verbose ) printf(" CALORIMETER - ERROR: error from GLTables\n");          if ( verbose ) printf(" CALORIMETER - ERROR: error from GLTables\n");
105          return;          return;
106      };      };
107  //        //  
108      idcalib[s] = glcalo->ID_REG_CALIBCALPED;      idcalib[s] = glcalo->ID_ROOT_L0;
109      fromtime[s] = glcalo->FROM_TIME;      fromtime[s] = glcalo->FROM_TIME;
110      totime[s] = glcalo->TO_TIME;      totime[s] = glcalo->TO_TIME;
111      calibno[s] = glcalo->EV_REG_CALIBCALPED;      calibno[s] = glcalo->EV_ROOT;
112  //      //
113      if ( totime[s] == 0ULL){      if ( totime[s] == 0 ){
114        if ( verbose ) printf(" CALORIMETER - WARNING: data with no associated calibration\n");        if ( verbose ) printf(" CALORIMETER - WARNING: data with no associated calibration\n");
115        ClearCalibVals(s);        ClearCalibVals(s);
116        sgnl = 100;              sgnl = 100;      
# Line 124  void CaloProcessing::ProcessingInit(TSQL Line 123  void CaloProcessing::ProcessingInit(TSQL
123    if ( verbose ) printf("\n");    if ( verbose ) printf("\n");
124    for (Int_t s = 0; s < 4; s++){    for (Int_t s = 0; s < 4; s++){
125      if ( verbose ) printf(" ** SECTION %i **\n",s);      if ( verbose ) printf(" ** SECTION %i **\n",s);
126      if ( totime[s] > 0ULL ){      if ( totime[s] > 0 ){
127  //        //
128        sgnl = glroot->Query_GL_ROOT(idcalib[s],dbc);        sgnl = glroot->Query_GL_ROOT(idcalib[s],dbc);
129        if ( sgnl < 0 ){        if ( sgnl < 0 ){
130          if ( verbose ) printf(" CALORIMETER - ERROR: error from GLTables\n");          if ( verbose ) printf(" CALORIMETER - ERROR: error from GLTables\n");
131          return;          return;
132        };        };
133  //              //        
134        stringstream name;        stringstream name;
135        name.str("");        name.str("");
136        name << glroot->PATH.Data() << "/";        name << glroot->PATH.Data() << "/";
137        name << glroot->NAME.Data();        name << glroot->NAME.Data();
138        //        //
139        fcalname[s] = (TString)name.str().c_str();        fcalname[s] = (TString)name.str().c_str();
140        if ( verbose ) printf(" - runheader at time %llu. From time %llu to time %llu \n   use file %s \n   calibration at entry %i \n\n",hs,fromtime[s],totime[s],fcalname[s].Data(),calibno[s]);        if ( verbose ) printf(" - runheader at time %u. From time %u to time %u \n   use file %s \n   calibration at entry %i \n\n",hs,fromtime[s],totime[s],fcalname[s].Data(),calibno[s]);
141      } else {      } else {
142        if ( verbose ) printf(" - runheader at time %llu. NO CALIBRATION INCLUDE THE RUNHEADER! ",hs);        if ( verbose ) printf(" - runheader at time %u. NO CALIBRATION INCLUDE THE RUNHEADER! ",hs);
143      };      };
144      sgnl = LoadCalib(s);      sgnl = LoadCalib(s);
145      if ( sgnl ) break;      if ( sgnl ) break;
# Line 153  void CaloProcessing::ProcessingInit(TSQL Line 152  void CaloProcessing::ProcessingInit(TSQL
152    //    //
153  }  }
154    
155  Int_t CaloProcessing::ChkCalib(TSQLServer *dbc, ULong64_t atime){  Int_t CaloProcessing::ChkCalib(TSQLServer *dbc, UInt_t atime){
156    Int_t sgnl = 0;    Int_t sgnl = 0;
157    for ( Int_t s = 0; s < 4; s++){    for ( Int_t s = 0; s < 4; s++){
158      if ( atime > totime[s] ){      if ( atime > totime[s] ){
# Line 164  Int_t CaloProcessing::ChkCalib(TSQLServe Line 163  Int_t CaloProcessing::ChkCalib(TSQLServe
163    return(sgnl);    return(sgnl);
164  }  }
165    
166  Int_t CaloProcessing::ChkParam(TSQLServer *dbc, ULong64_t runheader){  Int_t CaloProcessing::ChkParam(TSQLServer *dbc, UInt_t runheader){
167    stringstream calfile;    stringstream calfile;
168    stringstream aligfile;    stringstream aligfile;
169    Int_t error = 0;    Int_t error = 0;
# Line 179  Int_t CaloProcessing::ChkParam(TSQLServe Line 178  Int_t CaloProcessing::ChkParam(TSQLServe
178      if ( verbose ) printf(" Querying DB for calorimeter parameters files...\n");      if ( verbose ) printf(" Querying DB for calorimeter parameters files...\n");
179      //      //
180      error = 0;      error = 0;
181      error = glparam->Query_GL_PARAM(runheader,"Calorimeter ADC to MIP",dbc);      error = glparam->Query_GL_PARAM(runheader,101,dbc);
182      if ( error < 0 ) return(error);      if ( error < 0 ) return(error);
183      //      //
184      calfile.str("");      calfile.str("");
# Line 212  Int_t CaloProcessing::ChkParam(TSQLServe Line 211  Int_t CaloProcessing::ChkParam(TSQLServe
211      //      //
212      //      //
213      error = 0;      error = 0;
214      error = glparam->Query_GL_PARAM(runheader,"Calorimeter alignement",dbc);      error = glparam->Query_GL_PARAM(runheader,102,dbc);
215      if ( error < 0 ) return(error);      if ( error < 0 ) return(error);
216      //      //
217      aligfile.str("");      aligfile.str("");
# Line 241  Int_t CaloProcessing::ChkParam(TSQLServe Line 240  Int_t CaloProcessing::ChkParam(TSQLServe
240    };    };
241    //    //
242    delete glparam;    delete glparam;
   //  delete f;  
243    //    //
244    return(0);    return(0);
245  }  }
# Line 779  void CaloProcessing::ClearCalibVals(Int_ Line 777  void CaloProcessing::ClearCalibVals(Int_
777    return;    return;
778  }  }
779    
780  Int_t CaloProcessing::Update(TSQLServer *dbc, ULong64_t atime, Int_t s){  Int_t CaloProcessing::Update(TSQLServer *dbc, UInt_t atime, Int_t s){
781    //    //
782    Int_t sgnl = 0;    Int_t sgnl = 0;
783    //    //
# Line 787  Int_t CaloProcessing::Update(TSQLServer Line 785  Int_t CaloProcessing::Update(TSQLServer
785    //    //
786    sgnl = 0;    sgnl = 0;
787    //    //
788    idcalib[s] = 0ULL;    idcalib[s] = 0;
789    fromtime[s] = 0ULL;    fromtime[s] = 0;
790    totime[s] = 0ULL;    totime[s] = 0;
791    calibno[s] = 0;    calibno[s] = 0;
792    ClearCalibVals(s);    ClearCalibVals(s);
793    //    //
# Line 799  Int_t CaloProcessing::Update(TSQLServer Line 797  Int_t CaloProcessing::Update(TSQLServer
797      return(sgnl);      return(sgnl);
798    };    };
799    //      //  
800    idcalib[s] = glcalo->ID_REG_CALIBCALPED;    idcalib[s] = glcalo->ID_ROOT_L0;
801    fromtime[s] = glcalo->FROM_TIME;    fromtime[s] = glcalo->FROM_TIME;
802    totime[s] = glcalo->TO_TIME;    totime[s] = glcalo->TO_TIME;
803    calibno[s] = glcalo->EV_REG_CALIBCALPED;    calibno[s] = glcalo->EV_ROOT;
804    //    //
805    if ( totime[s] == 0ULL){    if ( totime[s] == 0 ){
806      if ( verbose ) printf(" CALORIMETER - WARNING: data with no associated calibration\n");      if ( verbose ) printf(" CALORIMETER - WARNING: data with no associated calibration\n");
807      ClearCalibVals(s);      ClearCalibVals(s);
808      sgnl = 100;            sgnl = 100;      
# Line 828  Int_t CaloProcessing::Update(TSQLServer Line 826  Int_t CaloProcessing::Update(TSQLServer
826    name << glroot->NAME.Data();    name << glroot->NAME.Data();
827    //    //
828    fcalname[s] = (TString)name.str().c_str();    fcalname[s] = (TString)name.str().c_str();
829    if ( verbose ) printf(" - event at time %llu. From time %llu to time %llu \n   use file %s \n   calibration at entry %i \n\n",atime,fromtime[s],totime[s],fcalname[s].Data(),calibno[s]);    if ( verbose ) printf(" - event at time %u. From time %u to time %u \n   use file %s \n   calibration at entry %i \n\n",atime,fromtime[s],totime[s],fcalname[s].Data(),calibno[s]);
830    //    //
831    sgnl = LoadCalib(s);    sgnl = LoadCalib(s);
832    //    //
# Line 854  Int_t CaloProcessing::LoadCalib(Int_t s) Line 852  Int_t CaloProcessing::LoadCalib(Int_t s)
852    TTree *tr = (TTree*)File->Get("CalibCalPed");    TTree *tr = (TTree*)File->Get("CalibCalPed");
853    if ( !tr ) return(-109);    if ( !tr ) return(-109);
854    //    //
   TBranch *registry = tr->GetBranch("Registry");  
855    TBranch *calo = tr->GetBranch("CalibCalPed");    TBranch *calo = tr->GetBranch("CalibCalPed");
856    //    //
   pamela::RegistryEvent *reg = 0;  
857    pamela::CalibCalPedEvent *ce = 0;    pamela::CalibCalPedEvent *ce = 0;
858    tr->SetBranchAddress("CalibCalPed", &ce);    tr->SetBranchAddress("CalibCalPed", &ce);
   tr->SetBranchAddress("Registry", &reg);  
859    //    //
860    Long64_t ncalibs = registry->GetEntries();    Long64_t ncalibs = calo->GetEntries();
861    //    //
862    if ( !ncalibs ) return(-110);    if ( !ncalibs ) return(-110);
863    //    //
864    registry->GetEntry(calibno[s]);    calo->GetEntry(calibno[s]);
   //  
   calo->GetEntry(reg->event);  
865    //    //
866    if (ce->cstwerr[s] != 0 && ce->cperror[s] == 0 ) {    if (ce->cstwerr[s] != 0 && ce->cperror[s] == 0 ) {
867      for ( Int_t d=0 ; d<11 ;d++  ){      for ( Int_t d=0 ; d<11 ;d++  ){

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.23