Ignore:
Timestamp:
08/28/07 13:03:04 (17 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mhflux
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mhflux/MHDisp.cc

    r7616 r8719  
    7070//
    7171MHDisp::MHDisp(const char *name, const char *title)
    72     : fDisp(0), fDeviation(0), fSmearing(-1), fWobble(kFALSE),
     72    : fDisp(0), fDeviation(0), fSrcAnti(0), fSmearing(-1), fWobble(kFALSE),
    7373    fScaleMin(0.325), fScaleMax(0.475)
    7474{
     
    8181    fHist.SetName("Alpha");
    8282    fHist.SetTitle("3D-plot of ThetaSq vs x, y");
    83     fHist.SetXTitle("x [\\circ]");
    84     fHist.SetYTitle("y [\\circ]");
     83    fHist.SetXTitle("dx [\\circ]");
     84    fHist.SetYTitle("dy [\\circ]");
    8585    fHist.SetZTitle("Eq.cts");
    8686
     
    112112    }
    113113
     114    if (fWobble)
     115    {
     116        fSrcAnti = (MSrcPosCam*)plist->FindObject("MSrcPosAnti", "MSrcPosCam");
     117        if (!fSrcAnti)
     118        {
     119            *fLog << err << "MSrcPosAnti [MSrcPosCam] not found... abort." << endl;
     120            return kFALSE;
     121        }
     122
     123        *fLog << inf << "Wobble mode initialized. " << endl;
     124    }
     125
    114126    fDeviation = (MPointingDev*)plist->FindObject("MPointingDev");
    115127    if (!fDeviation)
     
    132144// --------------------------------------------------------------------------
    133145//
    134 // Calculate the delta angle between fSrcPos->GetXY() and v.
    135 // Return result in deg.
    136 //
    137 Double_t MHDisp::DeltaPhiSrc(const TVector2 &v) const
    138 {
    139     return TMath::Abs(fSrcPos->GetXY().DeltaPhi(v))*TMath::RadToDeg();
    140 }
    141 
    142 // --------------------------------------------------------------------------
    143 //
    144146// Fill the histogram. For details see the code or the class description
    145147//
     
    162164    TVector2 pos1 = hil->GetMean()*fMm2Deg + hil->GetNormAxis()*fDisp->GetVal();
    163165
     166    const TVector2 src = fSrcPos->GetXY()*fMm2Deg;
     167
    164168    Double_t w0 = 1;
    165169    if (fWobble)
    166170    {
    167         const Double_t delta = DeltaPhiSrc(pos1);
     171        const TVector2 anti = fSrcAnti->GetXY()*fMm2Deg;
    168172
    169173        // Skip off-data not in the same half than the source (here: anti-source)
     
    171175        if (!fHistOff)
    172176        {
    173             if (delta>180-25)
     177            Double_t r = anti.Mod()>0.2*1.7 ? 0.2*1.7 : anti.Mod();
     178
     179            // In wobble mode processing the off-data, the anti-source
     180            // position is our source position. Check if this is a possible
     181            // gamma. If it is, do not fill it into our off-data histogram
     182            if ((pos1-anti).Mod()<r)
    174183                return kTRUE;
    175184
     
    181190            // increased uncertainty
    182191            // FIXME: The delta stuff could be replaced by a 2*antitheta cut...
    183             w0 = delta>25 ? 1 : 2;
    184         }
     192            //w0 = delta>25 ? 1 : 2;
     193
     194            w0 = (pos1+anti).Mod()<r ? 2 : 1;
     195        }
     196
     197        // When processing off-data the anti-source is the real source
     198        const TVector2 srcpos = fHistOff ? src : anti;
    185199
    186200        // Define by the source position which histogram to fill
    187         if (DeltaPhiSrc(fFormerSrc)>90)
     201        if (TMath::Abs(srcpos.DeltaPhi(fFormerSrc))*TMath::RadToDeg()>90)
    188202            fHalf = !fHalf;
    189         fFormerSrc = fSrcPos->GetXY();
     203        fFormerSrc = srcpos;
    190204    }
    191205
     
    202216        {
    203217            // m: Position of the camera center in the FS plot
    204             m = fSrcPos->GetXY().Rotate(-rho)*fMm2Deg;
     218            m = src.Rotate(-rho);
    205219            pos1 -= m;
    206220        }
     
    410424    const TAxis &axey = *h2.GetYaxis();
    411425
    412     const Double_t rmax = (fWobble ? axex.GetXmax()-0.4 : axex.GetXmax()) - axex.GetBinWidth(1);
     426    const Double_t rmax = (fWobble ? axex.GetXmax()/*-0.7*/ : axex.GetXmax()) - axex.GetBinWidth(1);
    413427
    414428    for (int x=1; x<=axex.GetNbins(); x++)
  • trunk/MagicSoft/Mars/mhflux/MHDisp.h

    r7616 r8719  
    2525    MPointingDev *fDeviation; //!
    2626    //MSrcPosCam   *fAxis;      //!
     27    MSrcPosCam   *fSrcAnti; //!
     28
    2729
    2830    TH2D         fHistBg;
     
    4143    // MHDisp
    4244    Double_t GetOffSignal(TH1 &h) const;
    43     Double_t DeltaPhiSrc(const TVector2 &v) const;
    4445
    4546    void Update();
  • trunk/MagicSoft/Mars/mhflux/MMcSpectrumWeight.cc

    r8709 r8719  
    493493    if (hasold)
    494494    {
    495         *fLog << " Old Spectrum:  " << GetFormulaSpecOldX();
     495        *fLog << " Old Spectrum:             " << GetFormulaSpecOldX();
    496496        if (fEnergyMin>=0 && fEnergyMax>0)
    497497            *fLog << "   (I=" << GetSpecOldIntegral() << ")";
     
    500500    if (hasnew)
    501501    {
    502         *fLog << " New Spectrum:  " << GetFormulaSpecNewX();
     502        *fLog << " New Spectrum:             " << GetFormulaSpecNewX();
    503503        if (fEnergyMin>=0 && fEnergyMax>0)
    504504            *fLog << "   (I=" << GetSpecNewIntegral() << ")";
     
    506506    }
    507507    if (fFunc)
    508         *fLog << " Weight func:  " << fFunc->GetTitle()   << endl;
     508        *fLog << " Weight func:              " << fFunc->GetTitle()   << endl;
    509509}
    510510
Note: See TracChangeset for help on using the changeset viewer.