Changeset 4706


Ignore:
Timestamp:
08/23/04 13:37:54 (20 years ago)
Author:
wittek
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mtemp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mtemp/MFindStars.cc

    r4685 r4706  
    120120  UInt_t numPixels = geom->GetNumPixels();
    121121 
    122   // fix the correlation if requested
    123   if ( find->GetUseCorrelatedGauss() && find->GetFixCorrelation() )
    124   {
    125     Double_t tandel;
    126     if (par[1] != 0.0)
    127       tandel = par[3]/par[1];
    128     else
    129       tandel = 1.e10;
    130     Double_t cxx = par[2]*par[2];
    131     Double_t cyy = par[4]*par[4];
    132     par[5] =   tandel/(tandel*tandel-1.0) * (cyy-cxx)/sqrt(cxx*cyy);
    133   }
    134122
    135123//calculate chisquare
     
    205193  fNumVar = 6;
    206194  fUseCorrelatedGauss = kTRUE;
    207   fFixCorrelation     = kFALSE;
    208195
    209196  fNumIntegratedEvents=0;
     
    287274//-------------------------------------------------------------------------
    288275//
    289 // Set 'fUseCorrelatedGauss' and 'fFixCorrelation'  flag
     276// Set 'fUseCorrelatedGauss' flag
    290277//
    291278//     if 'fUseCorrelatedGauss' is TRUE a 2dim Gaussian with correlation
    292279//                                 will be fitted
    293 //     if 'fFixCorrelation' is TRUE the orientation of the 2dim Gaussian
    294 //                             will be kept fixed at the angle delta,
    295 //                             where tan(delta) = ymean/xmean
    296 
    297 void MFindStars::SetUseCorrelatedGauss(Bool_t usecorrgauss, Bool_t fixcorr)
     280//
     281
     282void MFindStars::SetUseCorrelatedGauss(Bool_t usecorrgauss)
    298283{
    299284  fUseCorrelatedGauss = usecorrgauss;
    300   fFixCorrelation   = fixcorr;
    301285
    302286  if (usecorrgauss)
     
    445429      TIter Next(fStars->GetList());
    446430      while ((starpos=(MStarPos*)Next())) {
    447         starpos->SetCalcValues(40,40,starpos->GetXExp(),starpos->GetYExp(),fRingInterest/2,fRingInterest/2);
    448         starpos->SetFitValues (40,40,starpos->GetXExp(),starpos->GetYExp(),fRingInterest/2,fRingInterest/2,0.,-1);
     431        //starpos->SetCalcValues(40,40,starpos->GetXExp(), starpos->GetYExp(),
     432        //                       fRingInterest/2,          fRingInterest/2,
     433        //                       0.,   0., 0., 0.);
     434        //starpos->SetFitValues (40,40,starpos->GetXExp(), starpos->GetYExp(),
     435        //                       fRingInterest/2,          fRingInterest/2, 0.,
     436        //                       0., 0., 0.,   0., -1);
    449437      }
    450438
     
    483471       
    484472        while(FindPixelWithMaxDC(maxPixelDC, maxPixel)) {
    485          
    486473          MStarPos *starpos = new MStarPos;
    487           starpos->SetExpValues(maxPixelDC,maxPixel.GetX(),maxPixel.GetY());
    488           starpos->SetCalcValues(maxPixelDC,maxPixelDC,maxPixel.GetX(),maxPixel.GetY(),fRingInterest/2,fRingInterest/2);
    489           starpos->SetFitValues(maxPixelDC,maxPixelDC,maxPixel.GetX(),maxPixel.GetY(),fRingInterest/2,fRingInterest/2,0.,-1);
     474
     475          starpos->SetExpValues(maxPixelDC,maxPixel.GetX(),maxPixel.GetY());
     476
     477          //starpos->SetCalcValues(maxPixelDC,      maxPixelDC,
     478          //                       maxPixel.GetX(), maxPixel.GetY(),
     479          //                       fRingInterest/2, fRingInterest/2,
     480          //                       0.,   0., 0., 0.);
     481
     482          //starpos->SetFitValues(maxPixelDC,      maxPixelDC,
     483          //                      maxPixel.GetX(), maxPixel.GetY(),
     484          //                      fRingInterest/2, fRingInterest/2, 0.,
     485          //                      0., 0., 0.,      0., -1);
     486
    490487          fStars->GetList()->Add(starpos);
    491          
    492488          ShadowStar(starpos);
    493489        }       
     
    792788  Float_t expY = star->GetYExp();
    793789
    794   Float_t max=0;
    795   UInt_t  pixmax=0;
    796   Float_t meanX=0;
    797   Float_t meanY=0;
    798   Float_t meanSqX=0;
    799   Float_t meanSqY=0;
    800   Float_t sumCharge=0;
    801   UInt_t  usedInnerPx=0;       
    802   UInt_t  usedOuterPx=0;       
     790  Float_t max         =0;
     791  UInt_t  pixmax      =0;
     792  Float_t meanX       =0;
     793  Float_t meanY       =0;
     794  Float_t meanSqX     =0;
     795  Float_t meanSqY     =0;
     796  Float_t sumCharge   =0;
     797  Float_t sumSqCharge =0;
     798  UInt_t  usedInnerPx =0;       
     799  UInt_t  usedOuterPx =0;       
     800  Float_t factor = 1.0;
    803801
    804802  Float_t meanXold = 1.e10;
     
    882880      meanSqY     = 0.0;
    883881      sumCharge   = 0.0;
     882      sumSqCharge = 0.0;
    884883      usedInnerPx =   0;       
    885884      usedOuterPx =   0;       
     
    905904              meanSqX   += charge*pixXpos*pixXpos;
    906905              meanSqY   += charge*pixYpos*pixYpos;
    907               sumCharge += charge;
     906              sumCharge   += charge;
     907              sumSqCharge += charge*charge;
    908908            }
    909909        }
     
    915915      meanSqX /= sumCharge;
    916916      meanSqY /= sumCharge;
     917      factor = sqrt( sumSqCharge/(sumCharge*sumCharge) );
    917918
    918919      // stop iteration when (meanX, meanY) becomes stable
     
    962963    }
    963964 
     965  Float_t deltameanX = factor * rmsX;
     966  Float_t deltameanY = factor * rmsY;
     967
     968
    964969  // Substrack pedestal DC
    965970  sumCharge-= (usedInnerPx*innerped+usedOuterPx*outerped)/(usedInnerPx+usedOuterPx);
     
    967972 
    968973 
    969   star->SetCalcValues( sumCharge, max, meanX, meanY, rmsX, rmsY);
     974  star->SetCalcValues( sumCharge, max, meanX, meanY, rmsX, rmsY,
     975                       0.,   deltameanX*deltameanX, 0., deltameanY*deltameanY);
    970976 
    971977  if (rmsX <= 0. || rmsY <= 0.)
     
    10041010    }
    10051011
    1006     // set the correlation fixed if requested
    1007     if (fUseCorrelatedGauss && fFixCorrelation)
    1008     {
    1009       fStep[5] = 0.0;
    1010       fFix[5]  = 1;
    1011     }
    1012 
    10131012
    10141013    // -------------------------------------------
     
    10531052      Double_t sigmaY,   sigmaYError;
    10541053      Float_t  chisquare = GetChisquare();
    1055       Int_t    dregrees  = GetDegreesofFreedom()-fNumVar;
     1054      Int_t    degrees  = GetDegreesofFreedom()-fNumVar;
    10561055
    10571056      if (!ierflg)
     
    10781077      }
    10791078
    1080       //rwagner: get error matrix
     1079      // get error matrix
    10811080      Double_t matrix[5][5];
    10821081      gMinuit->mnemat(&matrix[0][0],5);
    10831082
    10841083      star->SetFitValues(integratedCharge,maxFit,       meanXFit,    meanYFit,
    1085                          sigmaX,          sigmaY,       chisquare,   dregrees,
    1086                          matrix[1][1],    matrix[1][3], matrix[3][3]);
    1087 
    1088       // set the results from the correlated Gauss fit to zero
    1089       star->SetCGFitValues(100.0,  100.0,  0.0, 0.0,  0.0,   0.0,  0.0,
    1090                            0.0,      0.0,  0.0, 0.0,   -1);
     1084                         sigmaX,          sigmaY,       0.0,
     1085                         matrix[1][1],    matrix[1][3], matrix[3][3],
     1086                         chisquare,   degrees);
    10911087    }
    10921088    //----------  for the uncorrelated Gauss fit (end)   ---------   
     
    11801176      if (fMinuitPrintOutLevel>=0)
    11811177      {
    1182         *fLog << "Before calling SetCGFitValues : " << endl;
     1178        *fLog << "Before calling SetFitValues : " << endl;
    11831179        *fLog << "fValues = " << fValues[0] << ",  " << fValues[1] << ",  "
    11841180              << fValues[2] << ",  " << fValues[3] << ",  " << fValues[4]
     
    12151211      }
    12161212
    1217       star->SetCGFitValues(charge,       fValues[0],  fValues[1], fValues[3],
    1218                            fValues[2],   fValues[4],  fValues[5],
    1219                            matrix[1][1], matrix[1][3],matrix[3][3],
    1220                            chi2,         ndof);
    1221       // set the results from the uncorrelated Gauss fit to zero
    1222       star->SetFitValues(100.0, 100.0,  0.0, 0.0,  0.0, 0.0,  0.0, -1,
    1223                            0.0, 0.0, 0.0);
     1213      star->SetFitValues(charge,       fValues[0],  fValues[1], fValues[3],
     1214                         fValues[2],   fValues[4],  fValues[5],
     1215                         matrix[1][1], matrix[1][3],matrix[3][3],
     1216                         chi2,         ndof);
    12241217    }
    12251218
     
    12481241        Float_t starYpos = star->GetMeanY();
    12491242
    1250         Float_t starSize = 3*star->GetSigmaMajorAxis();     
     1243        Float_t starSize = 3*sqrt(   star->GetSigmaX()*star->GetSigmaX()
     1244                                   + star->GetSigmaY()*star->GetSigmaY() );
    12511245       
    12521246        Float_t dist = sqrt((pixXpos-starXpos)*(pixXpos-starXpos)+
  • trunk/MagicSoft/Mars/mtemp/MFindStars.h

    r4685 r4706  
    6060   
    6161    Bool_t fUseCorrelatedGauss;
    62     Bool_t fFixCorrelation;
    6362
    6463    TString *fVname;
     
    8887    Int_t PostProcess();
    8988
    90     void SetUseCorrelatedGauss(Bool_t usecorrgauss = kTRUE,
    91                                Bool_t fixcorr      = kFALSE);
     89    void SetUseCorrelatedGauss(Bool_t usecorrgauss = kTRUE);
    9290    Bool_t  GetUseCorrelatedGauss()          {return fUseCorrelatedGauss;}
    93     Bool_t  GetFixCorrelation()              {return fFixCorrelation;}
    9491
    9592    // setters
  • trunk/MagicSoft/Mars/mtemp/MSourceDirections.cc

    r4697 r4706  
    9090  }
    9191
     92
    9293  fStars = (MStarCam*)pList->FindCreateObj(AddSerialNumber("MStarCam"),"MSourceCam");
    9394  if (!fStars) {
    94     *fLog << err << AddSerialNumber("MStarCam") << " cannot be created ... aborting" << endl;
     95    *fLog << err << AddSerialNumber("MStarCam") << " with name '"
     96          << "MSourceCam" << " cannot be created ... aborting" << endl;
    9597    return kFALSE;
    9698  }
    9799 
     100
     101
    98102  MObservatory magic1;
    99103 
     
    110114  fAstro.SetGeom(*geom);       
    111115  fAstro.SetObservatory(magic1); 
    112    
     116
    113117  return kTRUE;
    114118}
     
    116120Int_t MSourceDirections::AddDirection(Float_t ra, Float_t dec, Float_t mag, TString name)
    117121{
     122  *fLog << "MSourceDirections::AddDirection; add the direction : ra, dec, mag, name = "
     123        << ra << ",  " << dec << ",  " << mag << ",  " << name << endl;
     124
    118125  Int_t rc = fAstro.AddObject(ra,dec,1,name);
    119   if (rc) {
    120     MStarPos *starpos = new MStarPos;
    121     starpos->SetName(name);
    122     fStars->GetList()->Add(starpos);
    123   }
     126
    124127  return rc;
    125128}
     
    127130Int_t MSourceDirections::Process()
    128131{
    129   //Fist delete the previous directions in the list
     132  //First delete the previous directions in the list
    130133  fStars->GetList()->Delete();
    131134
     
    137140  TIter Next(fStars->GetList());
    138141  while ((starpos=(MStarPos*)Next())) {
    139     starpos->SetCalcValues(40,40,starpos->GetXExp(),starpos->GetYExp(),0.,0.);
    140     starpos->SetFitValues (40,40,starpos->GetXExp(),starpos->GetYExp(),0.,0.,0.,1);
     142    //starpos->SetCalcValues(40,40,starpos->GetXExp(),starpos->GetYExp(),
     143    //                       0.,0.,0.,    0.,0.,0.);
     144    //starpos->SetFitValues (40,40,starpos->GetXExp(),starpos->GetYExp(),
     145    //                       0.,0.,0.,    0.,0.,0.,  0., -1);
    141146  }
    142    
     147
    143148  if (fStars->GetList()->GetSize() == 0) {
    144149    *fLog << err << GetName() << "No directions inside the chosen FOV." << endl;
     
    154159  return kTRUE;
    155160}
     161
Note: See TracChangeset for help on using the changeset viewer.