Ignore:
Timestamp:
05/10/09 11:52:17 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

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

    r9428 r9441  
    6262
    6363#include "MArgs.h"
    64 //#include "MDirIter.h"
     64#include "MDirIter.h"
    6565#include "MParList.h"
    6666#include "MTaskList.h"
     
    126126//
    127127MJSimulation::MJSimulation(const char *name, const char *title)
    128     : fForceMode(kFALSE), fCamera(kTRUE) ,fForceTrigger(kFALSE)
     128    : fForceMode(kFALSE), fCamera(kTRUE), fForceTrigger(kFALSE),
     129    fOperationMode(kModeData)
    129130{
    130131    fName  = name  ? name  : "MJSimulation";
     
    140141    return kTRUE;
    141142}
    142 
    143 Bool_t MJSimulation::WriteResult(const MParList &plist)
     143/*
     144TString MJSimulation::GetOutFile(const MSequence &seq) const
     145{
     146    return seq.IsValid() ? Form("ceres%08d.root", seq.GetSequence()) : "ceres.root";
     147}
     148*/
     149
     150Bool_t MJSimulation::WriteResult(const MParList &plist, const MSequence &seq)
    144151{
    145152    if (fPathOut.IsNull())
     
    151158    TObjArray cont;
    152159    cont.Add(const_cast<TEnv*>(GetEnv()));
    153     //cont.Add(const_cast<MSequence*>(&fSequence));
     160    if (seq.IsValid())
     161        cont.Add(const_cast<MSequence*>(&seq));
    154162
    155163    cont.Add(plist.FindObject("PulseShape"));
     
    160168    if (fDisplay)
    161169    {
    162 //        TString title = "--  Reflector: ";
    163 //        title += fSequence.GetSequence();
    164 //        title += "  --";
    165 //        fDisplay->SetTitle(title, kFALSE);
     170        TString title = "--  Ceres";
     171        if (seq.IsValid())
     172        {
     173            title += ": ";
     174            title += seq.GetSequence();
     175        }
     176        title += "  --";
    166177        fDisplay->SetTitle("Ceres", kFALSE);
    167178
     
    169180    }
    170181
    171 //    const TString oname = Form("reflector%08d.root", fSequence.GetSequence());
    172     const TString oname = "ceres.root";
    173     return WriteContainer(cont, oname, "RECREATE");
     182    const TString name = seq.IsValid() ? Form("ceres%08d.root", seq.GetSequence()) : "ceres.root";
     183    return WriteContainer(cont, name, "RECREATE");
    174184}
    175185
     
    235245}
    236246
    237 Bool_t MJSimulation::Process(const MArgs &args)
     247Bool_t MJSimulation::Process(const MArgs &args, const MSequence &seq)
    238248{
    239249    /*
     
    245255    */
    246256
    247     //if (!HasWritePermission(GetPathOut()))
    248     //    return kFALSE;
     257//    if (!HasWritePermission(CombinePath(fPathOut, GetOutFile(seq))))
     258//        return kFALSE;
    249259
    250260    *fLog << inf;
     
    254264        return kFALSE;
    255265
    256     *fLog << warn << "FIXME: Monte Carlo simulation: Sequences not supported yet.";
    257     //*fLog << fSequence.GetFileName() << endl;
     266    if (seq.IsValid())
     267        *fLog << fSequence.GetFileName() << endl;
     268    else
     269        *fLog << args.GetNumArguments() << "-files" << endl;
    258270    *fLog << endl;
    259271
     272    MDirIter iter;
     273    if (seq.IsValid() && seq.GetRuns(iter, MSequence::kCorsika)<=0)
     274    {
     275        *fLog << err << "ERROR - Sequence valid but without files." << endl;
     276        return kFALSE;
     277    }
     278
    260279    // --------------------------------------------------------------------------------
    261 
    262     //MDirIter iter;
    263     //if (fSequence.GetRuns(iter, MSequence::kCalibrated)<=0)
    264     //    return kFALSE;
    265280
    266281    // Setup Parlist
     
    297312    //header.InitFadcType(3);
    298313
    299     header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTData);
    300     if (args.GetNumArguments()==1)
    301     {
    302         if (!args.GetArgumentStr(0).CompareTo("pedestal", TString::kIgnoreCase))
    303         {
    304             header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTPedestal);
    305             header.SetSourceInfo("Pedestal");
    306         }
    307         if (!args.GetArgumentStr(0).CompareTo("calibration", TString::kIgnoreCase))
    308         {
    309             header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTCalibration);
    310             header.SetSourceInfo("Calibration");
    311         }
    312         if (!args.GetArgumentStr(0).CompareTo("pointrun", TString::kIgnoreCase))
    313             header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTPointRun);
     314    switch (fOperationMode)
     315    {
     316    case kModeData:
     317        header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTData);
     318        break;
     319
     320    case kModePed:
     321        header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTPedestal);
     322        header.SetSourceInfo("Pedestal");
     323        break;
     324
     325    case kModeCal:
     326        header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTCalibration);
     327        header.SetSourceInfo("Calibration");
     328        break;
     329
     330    case kModePointRun:
     331        header.SetRunType(MRawRunHeader::kRTMonteCarlo|MRawRunHeader::kRTPointRun);
     332        break;
    314333    }
    315334
     
    333352    read.SetForceMode(fForceMode);
    334353
    335     for (int i=0; i<args.GetNumArguments(); i++)
    336         read.AddFile(args.GetArgumentStr(i));
     354    if (!seq.IsValid())
     355    {
     356        for (int i=0; i<args.GetNumArguments(); i++)
     357            read.AddFile(args.GetArgumentStr(i));
     358    }
     359    else
     360        read.AddFiles(iter);
    337361
    338362    MSimMMCS simmmcs;
     
    366390    // -------------------------------------------------------------------
    367391
    368     MBinning binse( 100,     1,   100000, "BinningEnergy",    "log");
    369     MBinning binsth( 70,   0.9,   900000, "BinningThreshold", "log");
    370     MBinning binsee( 35,   0.9,   900000, "BinningEnergyEst", "log");
     392    MBinning binse( 120,     1,  1000000, "BinningEnergy",    "log");
     393    MBinning binsth( 60,   0.9,   900000, "BinningThreshold", "log");
     394    MBinning binsee( 36,   0.9,   900000, "BinningEnergyEst", "log");
    371395    MBinning binss( 100,     1, 10000000, "BinningSize",      "log");
    372396//    MBinning binsi( 100,  -500,      500, "BinningImpact");
    373     MBinning binsi(  55,     0,     1100, "BinningImpact");
     397    MBinning binsi(  32,     0,      800, "BinningImpact");
    374398    MBinning binsh( 150,     0,       50, "BinningHeight");
    375399    MBinning binsaz(720,  -360,      360, "BinningAz");
    376400    MBinning binszd( 70,     0,       70, "BinningZd");
    377     MBinning binsvc( 45,     0,        9, "BinningViewCone");
     401    MBinning binsvc( 35,     0,        7, "BinningViewCone");
    378402    MBinning binsel(150,     0,       50, "BinningTotLength");
    379403    MBinning binsew(150,     0,       15, "BinningMedLength");
     
    845869    //-------------------------------------------
    846870
    847     if (!WriteResult(plist))
     871    if (!WriteResult(plist, seq))
    848872        return kFALSE;
    849873
Note: See TracChangeset for help on using the changeset viewer.