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

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

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

revision 1.8 by mocchiut, Fri Mar 30 14:37:44 2007 UTC revision 1.13 by mocchiut, Thu Mar 13 16:34:58 2008 UTC
# Line 70  CaloStrip::CaloStrip(CaloLevel1 *calo, B Line 70  CaloStrip::CaloStrip(CaloLevel1 *calo, B
70  /**  /**
71   * Clear variables   * Clear variables
72  **/  **/
73  void CaloStrip::Clear() {    void CaloStrip::Clear(Option_t *t) {  
74    fE = 0.;    fE = 0.;
75    fX = 0.;    fX = 0.;
76    fY = 0.;    fY = 0.;
# Line 326  CaloLevel1::CaloLevel1() {     Line 326  CaloLevel1::CaloLevel1() {    
326  /**  /**
327   * Clear the CaloLevel1 object   * Clear the CaloLevel1 object
328   **/   **/
329  void CaloLevel1::Clear() {      void CaloLevel1::Clear(Option_t *t) {    
330    //    //
331    istrip = 0;    istrip = 0;
332    estrip.Reset();    estrip.Reset();
# Line 364  Float_t CaloLevel1::GetEstrip(Int_t svie Line 364  Float_t CaloLevel1::GetEstrip(Int_t svie
364   * Given estrip entry returns energy plus view, plane and strip numbers   * Given estrip entry returns energy plus view, plane and strip numbers
365  **/  **/
366  Float_t CaloLevel1::DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip){  Float_t CaloLevel1::DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip){
367      Bool_t sat = false;
368      Float_t mip=this->DecodeEstrip(entry,view,plane,strip,sat);
369      return(mip);
370    };
371    
372    /**
373     * Given estrip entry returns energy plus view, plane, strip numbers and saturation info
374    **/
375    Float_t CaloLevel1::DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip, Bool_t &saturated){
376    //    //
377    if ( entry>istrip ) return(0.);    if ( entry>istrip ){
378        //
379        printf(" ERROR: problems decoding entry %i, it seems that number of entries is %i\n",entry,istrip);
380        //
381        return(0.);
382      };
383    //    //
384    //  printf(" num lim %f \n",std::numeric_limits<Float_t>::max());    //  printf(" num lim %f \n",std::numeric_limits<Float_t>::max());
385    //  printf(" estrip.At(%i) = %i \n",entry,estrip.At(entry));    //  printf(" estrip.At(%i) = %i \n",entry,estrip.At(entry));
# Line 407  Float_t CaloLevel1::DecodeEstrip(Int_t e Line 421  Float_t CaloLevel1::DecodeEstrip(Int_t e
421    //    //
422    strip = (Int_t)truncf((Float_t)((eval - fbi*1000000000 -plom*10000000)/100000));    strip = (Int_t)truncf((Float_t)((eval - fbi*1000000000 -plom*10000000)/100000));
423    //    //
424    Float_t mip = ((Float_t)(eval - fbi*1000000000 -plom*10000000 -strip*100000))/tim;    Double_t mip = (Double_t)(((Float_t)(eval - fbi*1000000000 -plom*10000000 -strip*100000))/tim);
425    //    //
426    if ( mip > 0. && mip < 99999. ) return(mip);    saturated = false;
427      if ( mip > 5000. ){
428        mip -= 5000.;
429        saturated = true;
430      };
431      if ( mip > 0. && mip < 99999. ) return((Float_t)mip);
432    //    //
433    printf(" WARNING: problems decoding value %i at entry %i \n",estrip.At(entry),entry);    printf(" ERROR: problems decoding value %i at entry %i \n",estrip.At(entry),entry);
434    //    //
435    view = -1;    view = -1;
436    plane = -1;    plane = -1;
# Line 423  Float_t CaloLevel1::DecodeEstrip(Int_t e Line 442  Float_t CaloLevel1::DecodeEstrip(Int_t e
442   * Returns energy released on plane nplane (where 0<= nplane <= 43, 0 = 1Y, 1 = 1X, 2 = 2Y, 3 = 2X, etc. etc.).   * Returns energy released on plane nplane (where 0<= nplane <= 43, 0 = 1Y, 1 = 1X, 2 = 2Y, 3 = 2X, etc. etc.).
443   */   */
444  Float_t CaloLevel1::qtotpl(Int_t nplane){  Float_t CaloLevel1::qtotpl(Int_t nplane){
445      Bool_t sat = false;
446      Float_t mip = this->qtotpl(nplane,sat);
447      return(mip);
448    };
449    
450    /*
451     * Returns energy released on plane nplane (where 0<= nplane <= 43, 0 = 1Y, 1 = 1X, 2 = 2Y, 3 = 2X, etc. etc.).
452     */
453    Float_t CaloLevel1::qtotpl(Int_t nplane, Bool_t &sat){
454    //    //
455      sat = false;
456    Int_t sview = 1;    Int_t sview = 1;
457    if ( nplane%2 ) sview = 0;    if ( nplane%2 ) sview = 0;
458    //    //
459    Int_t splane = nplane-(sview+1)/2;  //  Int_t splane = nplane-(sview+1)/2;
460      Int_t splane = (nplane+sview-1)/2;
461    //    //
462    Float_t totmip = qtotpl(sview,splane);    Float_t totmip = qtotpl(sview,splane,sat);
463    //    //
464    return(totmip);    return(totmip);
465    //    //
# Line 439  Float_t CaloLevel1::qtotpl(Int_t nplane) Line 469  Float_t CaloLevel1::qtotpl(Int_t nplane)
469   * Returns energy released on view "view" (0 = X, 1 = Y) and plane "plane" ( 0 <= plane <= 21 ).   * Returns energy released on view "view" (0 = X, 1 = Y) and plane "plane" ( 0 <= plane <= 21 ).
470   */   */
471  Float_t CaloLevel1::qtotpl(Int_t sview, Int_t splane){  Float_t CaloLevel1::qtotpl(Int_t sview, Int_t splane){
472      Bool_t sat = false;
473      Float_t mip = this->qtotpl(sview,splane,sat);
474      return(mip);
475    };
476    
477    /*
478     * Returns energy released on view "view" (0 = X, 1 = Y) and plane "plane" ( 0 <= plane <= 21 ).
479     */
480    Float_t CaloLevel1::qtotpl(Int_t sview, Int_t splane, Bool_t &sat){
481    //    //
482    Int_t view = -1;    Int_t view = -1;
483    Int_t plane = -1;    Int_t plane = -1;
484    Int_t strip = -1;    Int_t strip = -1;
485      Bool_t lsat = false;
486      sat = false;
487    //    //
488    Float_t mip = 0.;    Float_t mip = 0.;
489    Float_t totmip = 0.;    Float_t totmip = 0.;
# Line 451  Float_t CaloLevel1::qtotpl(Int_t sview, Line 492  Float_t CaloLevel1::qtotpl(Int_t sview,
492    //    //
493    for (Int_t i = 0; i<istrip; i++ ){    for (Int_t i = 0; i<istrip; i++ ){
494      //      //
495      mip = DecodeEstrip(i,view,plane,strip);      mip = DecodeEstrip(i,view,plane,strip,lsat);
496      //      //
497      if ( view == sview && splane == plane ) totmip += mip;      if ( view == sview && splane == plane ){
498          if ( lsat ) sat = true;
499          totmip += mip;
500          //printf(" totmip %f mip %f \n",totmip,mip);
501        };
502      //      //
503      // entry are ordered by strip, plane and view number. Go out if you pass the input strip      // entry are ordered by strip, plane and view number. Go out if you pass the input strip
504      //      //

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

  ViewVC Help
Powered by ViewVC 1.1.23