/[PAMELA software]/calo/flight/CaloEnergy/src/CaloEnergy.cpp
ViewVC logotype

Diff of /calo/flight/CaloEnergy/src/CaloEnergy.cpp

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

revision 1.13 by mocchiut, Thu Aug 20 09:02:13 2009 UTC revision 1.19 by mocchiut, Thu Dec 3 10:43:19 2009 UTC
# Line 45  void CaloEnergy::UseLevel2(){ Line 45  void CaloEnergy::UseLevel2(){
45      delete clong;      delete clong;
46      clong = new CaloLong(L2);      clong = new CaloLong(L2);
47      clong->SplitInto(0,22);      clong->SplitInto(0,22);
48        //    clong->HeavyTail(true);
49        clong->HeavyTail(false);
50    };    };
51    if ( cp ) delete cp;    if ( cp ) delete cp;
52    cp = NULL;    cp = NULL;
# Line 61  void CaloEnergy::UseCaloPreSampler(){ Line 63  void CaloEnergy::UseCaloPreSampler(){
63  //   cp->ForceCaloFit();  //   cp->ForceCaloFit();
64  //   cp->SetDebug(true);  //   cp->SetDebug(true);
65  //   cp->Process();  //   cp->Process();
66    if ( clong ) clong->SetCaloLevel2Pointer(cp->GetLevel2Pointer());    if ( clong ) clong->SetCaloLevel2Pointer(cp->GetCaloLevel2Pointer());
67  }  }
68    
69    
# Line 70  void CaloEnergy::UseLongFit(){ Line 72  void CaloEnergy::UseLongFit(){
72    fLong = true;    fLong = true;
73    if ( !clong ){    if ( !clong ){
74      clong = new CaloLong(L2);      clong = new CaloLong(L2);
75      if ( cp ) clong->SetCaloLevel2Pointer(cp->GetLevel2Pointer());      if ( cp ) clong->SetCaloLevel2Pointer(cp->GetCaloLevel2Pointer());
76      clong->SplitInto(0,22);      clong->SplitInto(0,22);
77        //    clong->HeavyTail(true);
78        clong->HeavyTail(false);
79    };    };
80    //    //
81  }  }
# Line 118  void CaloEnergy::Set(){ Line 122  void CaloEnergy::Set(){
122    fYomin = 1000;    fYomin = 1000;
123    fYemin = 1000;    fYemin = 1000;
124    //    //
125      this->UseCaloPreSampler(); // use it by default, to go back to "standard" mode use CaloEnergy::UseLevel2().
126      //
127  }  }
128  void CaloEnergy::DefineGeometry(){  void CaloEnergy::DefineGeometry(){
129    //    //
# Line 272  void CaloEnergy::Clear(){ Line 278  void CaloEnergy::Clear(){
278    entot[0] = 0.;    entot[0] = 0.;
279    entot[1] = 0.;    entot[1] = 0.;
280    //    //
281      X0pl = 0.76;
282      //
283  }  }
284    
285  void CaloEnergy::Print(){  void CaloEnergy::Print(){
# Line 328  void CaloEnergy::Print(){ Line 336  void CaloEnergy::Print(){
336    printf(" fYEen_maxplane:........ %f \n",fYEen_maxplane);    printf(" fYEen_maxplane:........ %f \n",fYEen_maxplane);
337    printf(" fYOen_maxplane:........ %f \n",fYOen_maxplane);    printf(" fYOen_maxplane:........ %f \n",fYOen_maxplane);
338    printf(" x0max   :.............. %f \n",x0max);    printf(" x0max   :.............. %f \n",x0max);
339      printf(" X0pl    :.............. %f \n",X0pl);
340    printf(" debug   :.............. %i \n",debug);    printf(" debug   :.............. %i \n",debug);
341    
342    printf("========================================================================\n");    printf("========================================================================\n");
# Line 526  Bool_t CaloEnergy::IsInsideAcceptance(TS Line 535  Bool_t CaloEnergy::IsInsideAcceptance(TS
535    //    //
536    if ( debug && ((fM1+0.122-0.244*(Float_t)fRad) < 0.) ) printf("Error: (fM1+0.122-0.244*(Float_t)fRad) < 0. fM1 %f fRad %i %f \n",fM1,fRad,(fM1+0.122-0.244*(Float_t)fRad));    if ( debug && ((fM1+0.122-0.244*(Float_t)fRad) < 0.) ) printf("Error: (fM1+0.122-0.244*(Float_t)fRad) < 0. fM1 %f fRad %i %f \n",fM1,fRad,(fM1+0.122-0.244*(Float_t)fRad));
537    //    //
538      // inclination factor (stolen from Daniele's code)
539      //
540      Float_t ytgx = 0;
541      Float_t ytgy = 0;
542      ytgx = 0.76 * cl2->tanx[0];
543      ytgy = 0.76 * cl2->tany[0];  
544      X0pl = sqrt( pow(0.76,2.) + pow(ytgx,2.) + pow(ytgy,2.) );
545      //
546    // sum energy plane by plane for each sections    // sum energy plane by plane for each sections
547    //    //
548    Float_t fen_xep[11];    Float_t fen_xep[11];
# Line 641  Bool_t CaloEnergy::IsInsideAcceptance(TS Line 658  Bool_t CaloEnergy::IsInsideAcceptance(TS
658    //    //
659    if ( x0max > 0. ){    if ( x0max > 0. ){
660      if ( debug ) printf(" CALCULATE MAX PLANE GIVEN X0 ASSUMING PERPENDICULAR TRACK \n");      if ( debug ) printf(" CALCULATE MAX PLANE GIVEN X0 ASSUMING PERPENDICULAR TRACK \n");
661      Int_t wpl = (Int_t)roundf(x0max/0.76);      //    Int_t wpl = (Int_t)roundf(x0max/0.76);
662        Int_t wpl = (Int_t)roundf(x0max/X0pl);
663      Bool_t isY = false;      Bool_t isY = false;
664      if ( ((x0max/0.76)-(Float_t)wpl) > 0. ) isY = true;      //    if ( ((x0max/0.76)-(Float_t)wpl) > 0. ) isY = true;
665        if ( ((x0max/X0pl)-(Float_t)wpl) > 0. ) isY = true;
666      xomax_en = 0.;      xomax_en = 0.;
667      yemax_en = 0.;      yemax_en = 0.;
668      xemax_en = 0.;      xemax_en = 0.;
# Line 684  Bool_t CaloEnergy::IsInsideAcceptance(TS Line 703  Bool_t CaloEnergy::IsInsideAcceptance(TS
703          if ( section.Contains("YO") ) yomax_en = 10.;          if ( section.Contains("YO") ) yomax_en = 10.;
704        };        };
705      };      };
706      if ( debug ) printf(" x0max %f x0max/0.76 %f wpl %i isY %i yomax_en %f xemax_en %f yemax_en %f xomax_en %f fMaxplane %i %i %i %i\n",x0max,(x0max/0.76),wpl,isY,yomax_en,xemax_en,yemax_en,xomax_en,fMax_planeyo,fMax_planexe,fMax_planeye,fMax_planexo);      //    if ( debug ) printf(" x0max %f x0max/0.76 %f wpl %i isY %i yomax_en %f xemax_en %f yemax_en %f xomax_en %f fMaxplane %i %i %i %i\n",x0max,(x0max/0.76),wpl,isY,yomax_en,xemax_en,yemax_en,xomax_en,fMax_planeyo,fMax_planexe,fMax_planeye,fMax_planexo);
707        if ( debug ) printf(" x0max %f x0max/X0pl %f X0pl %f wpl %i isY %i yomax_en %f xemax_en %f yemax_en %f xomax_en %f fMaxplane %i %i %i %i\n",x0max,(x0max/X0pl),X0pl,wpl,isY,yomax_en,xemax_en,yemax_en,xomax_en,fMax_planeyo,fMax_planexe,fMax_planeye,fMax_planexo);
708    };    };
709    //    //
710    Int_t nPl = fPl;    Int_t nPl = fPl;
# Line 1116  void CaloEnergy::Process(TString section Line 1136  void CaloEnergy::Process(TString section
1136    //    //
1137    // check if the cylinder of integration can go out of the sensor given the frame which has been set (if we use all the calorimeter fRad is < 0 and the printout is suppressed)    // check if the cylinder of integration can go out of the sensor given the frame which has been set (if we use all the calorimeter fRad is < 0 and the printout is suppressed)
1138    //    //
1139    if ( (fM1+0.122-0.244*(Float_t)fRad) < 0. ) printf("Error: (fM1+0.122-0.244*(Float_t)fRad) < 0. fM1 %f fRad %i %f \n",fM1,fRad,(fM1+0.122-0.244*(Float_t)fRad));    if ( (fM1+0.122-0.244*(Float_t)fRad) < 0.001 ) printf("Error: (fM1+0.122-0.244*(Float_t)fRad) < 0. fM1 %f fRad %i %f \n",fM1,fRad,(fM1+0.122-0.244*(Float_t)fRad));
1140    //    //
1141    if ( fLong ){    if ( fLong ){
1142      if ( debug ) printf(" ==================================================================> LONGITUDINAL FIT! \n");      if ( debug ) printf(" ==================================================================> LONGITUDINAL FIT! \n");

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

  ViewVC Help
Powered by ViewVC 1.1.23