Ignore:
Timestamp:
07/16/02 17:15:22 (22 years ago)
Author:
blanch
Message:
A first implementation of the Star field rotation has been done.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx

    r1311 r1419  
    2121//
    2222// $RCSfile: camera.cxx,v $
    23 // $Revision: 1.39 $
     23// $Revision: 1.40 $
    2424// $Author: blanch $
    25 // $Date: 2002-04-27 10:48:39 $
     25// $Date: 2002-07-16 16:15:22 $
    2626//
    2727////////////////////////////////////////////////////////////////////////
     
    367367
    368368extern char FileName[];
    369 
    370 
     369// switch on  starfield rotation
     370static int Starfield_rotate = TRUE;
     371static float zenith = 0.0;//zenith angle for starfield rotation
     372static float azimutal = 90.0;//azimuth angle for starfield rotation
    371373//=-----------------------------------------------------------
    372374// @subsection Main program.
     
    622624 
    623625  Select_Energy = get_select_energy( &Select_Energy_le, &Select_Energy_ue);
    624  
     626 
     627  //parameters for starfield rotation
     628    get_teles_axis(&zenith, &azimutal);
     629    Starfield_rotate = get_starfield_rotate();
     630    log(SIGNATURE,
     631        "%s:\n\t%20s:  %s\n\t%20s: %f\n\t%20s: %f \n",
     632        "Starfield Rotate",
     633        "Rotate Starfield",  ONoff(Starfield_rotate),
     634        "Zenith Angle",zenith,
     635        "Azimutal Angle",azimutal
     636          );
     637 
    625638  // log filenames information
    626639
     
    13231336                          &ncph,    // will be changed by the function!
    13241337                          &arrtmin_ns, // will be changed by the function!
    1325                           &arrtmax_ns // will be changed by the function!
    1326                           );
     1338                          &arrtmax_ns, // will be changed by the function!
     1339                          -1 ); // photons from the shower
    13271340
    13281341        if( k != 0 ){ // non-zero returnvalue means error
     
    29132926                  int *incph,    // total number of cph read
    29142927                  float *tmin_ns,   // minimum arrival time of all phes
    2915                   float *tmax_ns    // maximum arrival time of all phes
    2916                   ){
     2928                  float *tmax_ns,    // maximum arrival time of all phes
     2929                  int star          // star=0 starfield rotation star=-1 not rotation
     2930                   ){
    29172931
    29182932  static int i, k, ipixnum;
     
    29222936  static char flag[SIZE_OF_FLAGS + 1];
    29232937  static float radius;
    2924 
     2938  static float SFR  , C3 , C2 , C1;
     2939  const double pi = 3.14159;
    29252940
    29262941  // reset variables
     
    29762991    // Pixelization
    29772992    //
    2978            
    2979     cx = photon.get_x();
    2980     cy = photon.get_y();
     2993       
     2994   // Where the photon provide(0 from starfield, -1 from Mmcs ???
     2995   
     2996       if ( star == 0   && Starfield_rotate == TRUE )
     2997
     2998       {
     2999       get_teles_axis(&zenith, &azimutal);
     3000         // Introduction SFR angle
     3001       
     3002        zenith = (pi/180) * zenith;
     3003
     3004        azimutal =( pi/180) * azimutal;
     3005
     3006        C1 = 0.48 * sin(zenith) - 0.87 * cos(zenith) * cos(azimutal);
     3007   
     3008        C3 = (0.87 * cos(zenith) - 0.48 * sin(zenith) * cos(azimutal));
     3009   
     3010        C2 = sqrt( sin(zenith) * sin(zenith) * sin(azimutal) * sin(azimutal) + C3 * C3 );
     3011
     3012        SFR = acos( C1/C2 );
     3013
     3014     if ( sin(azimutal) < 0)
     3015            {
     3016               SFR = 2 * pi - SFR;
     3017            }   
     3018         else
     3019            {
     3020               SFR = SFR;
     3021            }
     3022   
     3023//final of introduction SFR angle//
     3024
     3025       cx = photon.get_x() * cos(SFR) - photon.get_y() * sin(SFR);
     3026       cy = photon.get_y() * cos(SFR) + photon.get_x() * sin(SFR);
     3027
     3028              }
     3029        else
     3030     {
     3031         cx = photon.get_x();
     3032         cy = photon.get_y();
     3033
     3034     }
     3035 
    29813036 
    29823037    // get wavelength
     
    31853240                              &incph,
    31863241                              &tmin_ns,
    3187                               &tmax_ns );
     3242                              &tmax_ns,
     3243                              0 ); // photons from starfield
    31883244
    31893245            if( k != 0 ){ // non-zero returnvalue means error
     
    33533409//
    33543410// $Log: not supported by cvs2svn $
     3411// Revision 1.39  2002/04/27 10:48:39  blanch
     3412// Some unused varibles have been removed.
     3413//
    33553414// Revision 1.38  2002/03/18 18:44:29  blanch
    33563415// Small modificatin to set the electronic Noise in the MMcTrigHeader class.
     
    34693528//
    34703529// $Log: not supported by cvs2svn $
     3530// Revision 1.39  2002/04/27 10:48:39  blanch
     3531// Some unused varibles have been removed.
     3532//
    34713533// Revision 1.38  2002/03/18 18:44:29  blanch
    34723534// Small modificatin to set the electronic Noise in the MMcTrigHeader class.
Note: See TracChangeset for help on using the changeset viewer.