Fork me on GitHub

Changeset a95da74 in git


Ignore:
Timestamp:
Apr 28, 2021, 9:35:32 AM (3 years ago)
Author:
michele <michele.selvaggi@…>
Branches:
master
Children:
d4fb268
Parents:
4739226
Message:

added v0 of Ionisation cluster counting

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • cards/delphes_card_IDEA.tcl

    r4739226 ra95da74  
    2424  TrackMergerPre
    2525  TrackSmearing
     26  ClusterCounting
    2627
    2728  TrackMerger
     
    161162
    162163module TrackCovariance TrackSmearing {
     164
    163165    set InputArray TrackMergerPre/tracks
    164166    set OutputArray tracks
    165167
    166 
    167     set InputArray TrackMergerPre/tracks
    168     set OutputArray tracks
    169 
    170     set Bz 2.0
    171 
    172168    ## minimum number of hits to accept a track
    173169    set NMinHits 6
     170
     171    ## magnetic field
     172    set Bz $B
    174173
    175174    ## uses https://raw.githubusercontent.com/selvaggi/FastTrackCovariance/master/GeoIDEA_BASE.txt
     
    343342    }
    344343
    345     set Bz $B
    346 }
     344}
     345
     346###################
     347# Cluster Counting
     348###################
     349
     350module ClusterCounting ClusterCounting {
     351
     352  add InputArray TrackSmearing/tracks
     353  set OutputArray tracks
     354
     355  set Bz $B
     356
     357  set Rmin 0.35
     358  set Rmax 2.0
     359  set Zmin -2.0
     360  set Zmax 2.0
     361
     362  # gas mix option: 0
     363  # 0:  Helium 90% - Isobutane 10%
     364  # 1:  Helium 100%
     365  # 2:  Argon 50% - Ethane 50%
     366  # 3:  Argon 100%
     367
     368  set GasOption 0
     369
     370}
     371
     372
    347373
    348374##############
     
    352378module Merger TrackMerger {
    353379# add InputArray InputArray
    354   add InputArray TrackSmearing/tracks
     380  add InputArray ClusterCounting/tracks
    355381  set OutputArray tracks
    356382}
  • classes/DelphesClasses.cc

    r4739226 ra95da74  
    230230  Phi(0), ErrorPhi(0),
    231231  Xd(0), Yd(0), Zd(0),
     232  Nclusters(0.0),
    232233  TrackResolution(0),
    233234  NCharged(0),
     
    406407  object.Yd = Yd;
    407408  object.Zd = Zd;
     409  object.Nclusters = Nclusters;
    408410  object.TrackResolution = TrackResolution;
    409411  object.NCharged = NCharged;
     
    538540  Yd = 0.0;
    539541  Zd = 0.0;
     542  Nclusters = 0.0;
    540543  TrackResolution = 0.0;
    541544  NCharged = 0;
  • classes/DelphesClasses.h

    r4739226 ra95da74  
    461461  Float_t D0; // track transverse impact parameter
    462462  Float_t DZ; // track longitudinal impact parameter
     463  Float_t Nclusters; // Number of ionization clusters
    463464
    464465  Float_t ErrorP; // track momentum error
     
    565566  Float_t D0; // track transverse impact parameter
    566567  Float_t DZ; // track longitudinal impact parameter
     568  Float_t Nclusters; // Number of ionization clusters
    567569
    568570  Float_t ErrorP; // track momentum error
     
    694696  Float_t ErrorPhi;
    695697
     698  Float_t Nclusters; // Number of ionization clusters
     699
    696700  Float_t Xd;
    697701  Float_t Yd;
  • external/TrackCovariance/TrkUtil.cc

    r4739226 ra95da74  
    233233}
    234234//
     235
     236//
     237void TrkUtil::SetBfield(Double_t Bz)
     238{
     239        fBz = Bz;
     240}
     241
    235242// Setup chamber volume
    236243void TrkUtil::SetDchBoundaries(Double_t Rmin, Double_t Rmax, Double_t Zmin, Double_t Zmax)
     
    267274                //      << ", C= " << C << ", z0= " << z0 << ", ct= " << ct << std::endl;
    268275                //
    269                 // Track length per unit phase change 
     276                // Track length per unit phase change
    270277                Double_t Scale = sqrt(1.0 + ct*ct) / (2.0*TMath::Abs(C));
    271278                //
    272279                // Find intersections with chamber boundaries
    273280                //
    274                 Double_t phRin = 0.0;                   // phase of inner cylinder 
     281                Double_t phRin = 0.0;                   // phase of inner cylinder
    275282                Double_t phRin2= 0.0;                   // phase of inner cylinder intersection (2nd branch)
    276283                Double_t phRhi = 0.0;                   // phase of outer cylinder intersection
     
    287294                        //std::cout << "Rin intersection: ph = " << ph<<", z= "<<z << std::endl;
    288295
    289                         if (z < fZmax && z > fZmin)     phRin = TMath::Abs(ph); // Intersection inside chamber volume   
     296                        if (z < fZmax && z > fZmin)     phRin = TMath::Abs(ph); // Intersection inside chamber volume
    290297                        //
    291298                        // Include second branch of loopers
     
    301308                        Double_t ph = 2 * asin(C*sqrt((fRmax*fRmax - D*D) / (1.0 + 2.0*C*D)));
    302309                        Double_t z = z0 + ct*ph / (2.0*C);
    303                         if (z < fZmax && z > fZmin)     phRhi = TMath::Abs(ph); // Intersection inside chamber volume   
     310                        if (z < fZmax && z > fZmin)     phRhi = TMath::Abs(ph); // Intersection inside chamber volume
    304311                }
    305312                //  ... with left wall
     
    309316                        Double_t ph = 2.0*C*Zdir;
    310317                        Double_t Rint = sqrt(D*D + (1.0 + 2.0*C*D)*pow(sin(ph / 2), 2) / (C*C));
    311                         if (Rint < fRmax && Rint > fRmin)       phZmn = TMath::Abs(ph); // Intersection inside chamber volume   
     318                        if (Rint < fRmax && Rint > fRmin)       phZmn = TMath::Abs(ph); // Intersection inside chamber volume
    312319                }
    313320                //  ... with right wall
     
    317324                        Double_t ph = 2.0*C*Zdir;
    318325                        Double_t Rint = sqrt(D*D + (1.0 + 2.0*C*D)*pow(sin(ph / 2), 2) / (C*C));
    319                         if (Rint < fRmax && Rint > fRmin)       phZmx = TMath::Abs(ph); // Intersection inside chamber volume   
     326                        if (Rint < fRmax && Rint > fRmin)       phZmx = TMath::Abs(ph); // Intersection inside chamber volume
    320327                }
    321328                //
     
    390397//
    391398//
    392 Double_t TrkUtil::Nclusters(Double_t begam) 
     399Double_t TrkUtil::Nclusters(Double_t begam)
    393400{
    394401        Int_t Opt = fGasSel;
     
    465472        {
    466473                case 0: std::copy(ncl_He_Iso, ncl_He_Iso + Npt, ncl);   // He-Isobutane
    467                 break;                                                 
     474                break;
    468475                case 1: std::copy(ncl_He, ncl_He + Npt, ncl);           // pure He
    469476                break;
     
    493500        TVectorD coeff = Xval * y;
    494501        Double_t interp = coeff[0] + coeff[1] * begam + coeff[2] * begam * begam;
    495         //std::cout << "val1= (" <<x(0)<<", "<< y(0) << "), val2= (" 
    496         //      <<x(1)<<", "<< y(1) << "), val3= (" 
     502        //std::cout << "val1= (" <<x(0)<<", "<< y(0) << "), val2= ("
     503        //      <<x(1)<<", "<< y(1) << "), val3= ("
    497504        //      <<x(2)<<", "<< y(2)
    498505        //      << "), result= (" <<begam<<", "<< interp<<")" << std::endl;
  • external/TrackCovariance/TrkUtil.h

    r4739226 ra95da74  
    2525        // Service routines
    2626        //
    27         void SetBfield(Double_t Bz) { fBz = Bz; }
    2827        TVectorD XPtoPar(TVector3 x, TVector3 p, Double_t Q);
    2928        TVector3 ParToP(TVectorD Par);
     
    5453                Double_t c = 2.99792458e8;      // speed of light m/sec
    5554                //return TMath::C()*1.0e-9;     // Incompatible with root5
    56                 return c*1.0e-9;                // Reduced speed of light       
     55                return c*1.0e-9;                // Reduced speed of light
    5756        }
    5857        //
     
    7170        // Cluster counting in gas
    7271        //
    73         // Define gas volume (units = meters)
     72        void SetBfield(Double_t Bz);
     73        // Define gas volume (units = meters)
    7474        void SetDchBoundaries(Double_t Rmin, Double_t Rmax, Double_t Zmin, Double_t Zmax);
    7575        // Gas mixture selection
  • modules/ModulesLinkDef.h

    r4739226 ra95da74  
    3737#include "modules/TrackSmearing.h"
    3838#include "modules/TrackCovariance.h"
     39#include "modules/ClusterCounting.h"
    3940#include "modules/ImpactParameterSmearing.h"
    4041#include "modules/TimeSmearing.h"
     
    9495#pragma link C++ class TrackSmearing+;
    9596#pragma link C++ class TrackCovariance+;
     97#pragma link C++ class ClusterCounting+;
    9698#pragma link C++ class ImpactParameterSmearing+;
    9799#pragma link C++ class TimeSmearing+;
  • modules/TreeWriter.cc

    r4739226 ra95da74  
    355355    entry->D0 = candidate->D0;
    356356    entry->DZ = candidate->DZ;
     357    entry->Nclusters = candidate->Nclusters;
    357358
    358359    entry->ErrorP = candidate->ErrorP;
     
    507508    entry->D0 = candidate->D0;
    508509    entry->DZ = candidate->DZ;
     510    entry->Nclusters = candidate->Nclusters;
    509511
    510512    entry->ErrorP = candidate->ErrorP;
Note: See TracChangeset for help on using the changeset viewer.