Ignore:
Timestamp:
04/16/09 12:04:29 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mjobs/MJSimulation.cc

    r9420 r9425  
    108108#include "MReflector.h"
    109109#include "MParEnv.h"
    110 #include "MPulseShape.h"
     110#include "MSpline3.h"
     111#include "MParSpline.h"
    111112#include "MGeomCam.h"
    112113
     
    152153    //cont.Add(const_cast<MSequence*>(&fSequence));
    153154
    154     cont.Add(plist.FindObject("MPulseShape"));
     155    cont.Add(plist.FindObject("PulseShape"));
    155156    cont.Add(plist.FindObject("Reflector"));
    156157    cont.Add(plist.FindObject("MGeomCam"));
     
    185186    hist.SetLog(kTRUE, kTRUE, kFALSE);
    186187
    187     hist.AddHist("-MCorsikaEvtHeader.fX/100","-MCorsikaEvtHeader.fY/100");
    188     hist.SetDrawOption("colz");
    189     hist.InitName("Impact;Impact;Impact");
    190     hist.InitTitle("Impact;West <--> East [m];South <--> North [m]");
     188    /*
     189     hist.AddHist("-MCorsikaEvtHeader.fX/100","-MCorsikaEvtHeader.fY/100");
     190     hist.SetDrawOption("colz");
     191     hist.InitName("Impact;Impact;Impact");
     192     hist.InitTitle("Impact;West <--> East [m];South <--> North [m]");
     193     hist.SetAutoRange();
     194     */
     195
     196    hist.AddHist("MCorsikaEvtHeader.GetImpact/100");
     197    hist.InitName("Impact");
     198    hist.InitTitle("Impact;Impact [m]");
    191199    hist.SetAutoRange();
    192200
     
    197205    hist.AddHist("(MCorsikaEvtHeader.fAz+MCorsikaRunHeader.fMagneticFieldAz)*TMath::RadToDeg()", "MCorsikaEvtHeader.fZd*TMath::RadToDeg()");
    198206    hist.InitName("SkyOrigin;Az;Zd");
    199     hist.InitTitle("Sky Origin;Az [deg];Zd [deg]");
     207    hist.InitTitle("Sky Origin;Az [\\deg];Zd [\\deg]");
    200208    hist.SetDrawOption("colz");
    201209    hist.SetAutoRange();
     
    279287    plist.FindCreateObj("MPedPhotCam", "MPedPhotFromExtractorRndm");
    280288
    281     MPulseShape shape;
     289    MParSpline shape("PulseShape");
    282290    plist.AddToList(&shape);
    283291
     
    325333    read.SetForceMode(fForceMode);
    326334
    327     for (int i=0; i<args.GetNumArguments();i ++)
     335    for (int i=0; i<args.GetNumArguments(); i++)
    328336        read.AddFile(args.GetArgumentStr(i));
    329337
    330338    MSimMMCS simmmcs;
    331339
     340    MParSpline splinepde("PhotonDetectionEfficiency");
     341    MParSpline splinemirror("MirrorReflectivity");
     342    MParSpline splinecones("ConesAngularAcceptance");
     343    plist.AddToList(&splinepde);
     344    plist.AddToList(&splinemirror);
     345    plist.AddToList(&splinecones);
     346
    332347    MSimAtmosphere simatm;
    333     MSimAbsorption absapd("PhotonDetectionEfficiency");
    334     MSimAbsorption absmir("MirrorReflectivity");
    335     MSimAbsorption cones("ConesAngularAcceptance");
     348    MSimAbsorption absapd("SimPhotonDetectionEfficiency");
     349    MSimAbsorption absmir("SimMirrorReflectivity");
     350    MSimAbsorption cones("SimConesAngularAcceptance");
     351    absapd.SetParName("PhotonDetectionEfficiency");
     352    absmir.SetParName("MirrorReflectivity");
     353    cones.SetParName("ConesAngularAcceptance");
    336354    cones.SetUseTheta();
    337355
     
    344362    MContinue cont1("MPhotonEvent.GetNumPhotons<1", "ContEmpty1");
    345363    MContinue cont2("MPhotonEvent.GetNumPhotons<1", "ContEmpty2");
     364    MContinue cont3("MPhotonEvent.GetNumPhotons<2", "ContEmpty3");
    346365
    347366    // -------------------------------------------------------------------
    348367
    349368    MBinning binse( 100,     1,   100000, "BinningEnergy",    "log");
    350     MBinning binsth( 35,   0.9,   900000, "BinningThreshold", "log");
     369    MBinning binsth( 70,   0.9,   900000, "BinningThreshold", "log");
    351370    MBinning binsee( 35,   0.9,   900000, "BinningEnergyEst", "log");
    352371    MBinning binss( 100,     1, 10000000, "BinningSize",      "log");
    353     MBinning binsi( 100,  -500,      500, "BinningImpact");
     372//    MBinning binsi( 100,  -500,      500, "BinningImpact");
     373    MBinning binsi(  55,     0,     1100, "BinningImpact");
    354374    MBinning binsh( 150,     0,       50, "BinningHeight");
    355375    MBinning binsaz(720,  -360,      360, "BinningAz");
     
    377397    plist.AddToList(&binsd0);
    378398
    379     MHn mhn1, mhn2, mhn3;
     399    MHn mhn1, mhn2, mhn3, mhn4;
    380400    SetupHist(mhn1);
    381401    SetupHist(mhn2);
    382402    SetupHist(mhn3);
    383 
    384     MH3 mhtp("TriggerPos.fVal-IntendedPulsePos.fVal-MPulseShape.GetPulseWidth");
     403    SetupHist(mhn4);
     404
     405    MH3 mhtp("TriggerPos.fVal-IntendedPulsePos.fVal-PulseShape.GetWidth");
    385406    mhtp.SetName("TrigPos");
    386407    mhtp.SetTitle("Trigger position w.r.t. the first photon hitting a detector");
     
    397418    MFillH fillh2(&mhn2, "", "FillH2");
    398419    MFillH fillh3(&mhn3, "", "FillH3");
     420    MFillH fillh4(&mhn4, "", "FillH4");
    399421    MFillH filltp(&mhtp, "", "FillTriggerPos");
    400422    MFillH fillew(&mhew, "", "FillEvtWidth");
     
    403425    fillh2.SetNameTab("Detectable", "Distribution of events hit the detector");
    404426    fillh3.SetNameTab("Triggered",  "Distribution of triggered events");
     427    fillh4.SetNameTab("Cleaned",    "Distribution after cleaning and cuts");
    405428    filltp.SetNameTab("TrigPos",    "TriggerPosition w.r.t the first photon");
    406429    fillew.SetNameTab("EvtWidth",   "Time between first and last photon hitting a detector");
     
    491514    simcal.SetNameGeomCam("GeomCones");
    492515
    493     //  Dark Current: 4MHz = 0.004 GHz
    494     //  Light of night sky at La Palma: ~ 0.2 ph / cm^2 / sr / ns
    495     //  5deg camera: 6e-3 sr
    496     //  NSB = 0.2*6e-3
    497 
    498     // MAGIC: 84MHz       / Pixel
    499     // DWARF: 14MHz-25Mhz / APD
    500 
    501516    // FIXME: Simulate photons before cones and QE!
    502517
    503518    MSimRandomPhotons  simnsb;
    504     simnsb.SetFreq(0.0015, 0.04);  // 1.5MHz dark count rate, 40MHZ/cm^2 NSB
     519    simnsb.SetFreq(5.8, 0.004);  // ph/m^2/nm/sr/ns NSB, 4MHz dark count rate
    505520    simnsb.SetNameGeomCam("GeomCones");
    506521
     
    509524
    510525    MSimAPD simapd;
    511     //simapd.SetFreq(0.04); // Must be identical to MSimRandomPhotons!!
    512526    simapd.SetNameGeomCam("GeomCones");
    513527
     
    555569    MFillH fillx0d(&evt0d,             "MSignalCam",      "FillArrTm");
    556570    MFillH fillx1("MHHillas",          "MHillas",         "FillHillas");
    557     //MFillH fillx2("MHHillasExt",       "",                "FillHillasExt");
    558571    MFillH fillx3("MHHillasSrc",       "MHillasSrc",      "FillHillasSrc");
     572    MFillH fillx4("MHNewImagePar",     "MNewImagePar",    "FillNewImagePar");
    559573    MFillH fillth("MHThreshold",       "",                "FillThreshold");
    560574    MFillH fillca("MHCollectionArea",  "",                "FillTrigArea");
    561     //MFillH fillx4("MHImagePar",        "MImagePar",       "FillImagePar");
    562     //MFillH fillx5("MHNewImagePar",     "MNewImagePar",    "FillNewImagePar");
    563575
    564576    fillth.SetNameTab("Threshold");
     
    603615        }
    604616        tasks.AddToList(&cones);
    605         tasks.AddToList(&fillF2);
    606617        //if (header.IsPointRun())
    607618        //    tasks.AddToList(&fillP);
    608619        tasks.AddToList(&cont1);
    609         if (!header.IsPointRun())
    610             tasks.AddToList(&fillh2);
    611620    }
    612621    // -------------------------------
     
    617626        tasks.AddToList(&simgeom);
    618627        tasks.AddToList(&cont2);
     628        if (!header.IsPointRun())
     629        {
     630            tasks.AddToList(&fillF2);
     631            tasks.AddToList(&fillh2);
     632        }
     633        tasks.AddToList(&cont3);
    619634    }
    620635    if (fCamera)
     
    669684        //tasks.AddToList(&fillx2);
    670685        tasks.AddToList(&fillx3);
    671         //tasks.AddToList(&fillx4);
     686        tasks.AddToList(&fillx4);
    672687        //tasks.AddToList(&fillx5);
    673688    }
    674689    if (header.IsDataRun())
    675690    {
     691        tasks.AddToList(&fillh4);
    676692        tasks.AddToList(&fillth);
    677693        tasks.AddToList(&fillca);
     
    695711
    696712    if (binstr.IsDefault())
    697         binstr.SetEdgesLin(150, -shape.GetPulseWidth(),
    698                            header.GetFreqSampling()/1000.*header.GetNumSamples()+shape.GetPulseWidth());
     713        binstr.SetEdgesLin(150, -shape.GetWidth(),
     714                           header.GetFreqSampling()/1000.*header.GetNumSamples()+shape.GetWidth());
    699715
    700716    if (binsd.IsDefault() && cam)
     
    731747            gROOT->SetSelectedPad(0);
    732748            static_cast<MReflector*>(env0.GetCont())->DrawClone("line")->SetBit(kCanDelete);
    733 
    734749        }
    735750
     
    749764                c->SetBit(kCanDelete);
    750765                c->Draw();
    751 
    752766            }
    753767
     
    767781            }
    768782        }
     783
     784        TCanvas &d = fDisplay->AddTab("Info2");
     785        d.Divide(2,2);
     786
     787        d.cd(1);
     788        gPad->SetBorderMode(0);
     789        gPad->SetFrameBorderMode(0);
     790        gPad->SetGridx();
     791        gPad->SetGridy();
     792        gROOT->SetSelectedPad(0);
     793        splinepde.DrawClone()->SetBit(kCanDelete);
     794
     795        d.cd(2);
     796        gPad->SetBorderMode(0);
     797        gPad->SetFrameBorderMode(0);
     798        gPad->SetGridx();
     799        gPad->SetGridy();
     800        gROOT->SetSelectedPad(0);
     801        splinemirror.DrawClone()->SetBit(kCanDelete);
     802
     803        d.cd(3);
     804        gPad->SetBorderMode(0);
     805        gPad->SetFrameBorderMode(0);
     806        gPad->SetGridx();
     807        gPad->SetGridy();
     808        gROOT->SetSelectedPad(0);
     809        splinecones.DrawClone()->SetBit(kCanDelete);
     810
     811        d.cd(4);
     812        gPad->SetBorderMode(0);
     813        gPad->SetFrameBorderMode(0);
     814        gPad->SetGridx();
     815        gPad->SetGridy();
     816        gROOT->SetSelectedPad(0);
     817        MParSpline *all = (MParSpline*)splinepde.DrawClone();
     818        //all->SetTitle("Combined acceptance");
     819        all->SetBit(kCanDelete);
     820        all->Multiply(*splinemirror.GetSpline());
    769821    }
    770822
Note: See TracChangeset for help on using the changeset viewer.