/[PAMELA software]/PamCut/TrkCuts/TrkDedxHeCut/TrkDedxHeCut.h
ViewVC logotype

Contents of /PamCut/TrkCuts/TrkDedxHeCut/TrkDedxHeCut.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Wed Jun 10 12:37:56 2009 UTC (15 years, 5 months ago) by pam-fi
Branch: MAIN
File MIME type: text/plain
Added to repository.

1 /*
2 * TrkDedxHeCut.h
3 *
4 * Created on: 19-may-2009
5 * Author: N. Nikonov
6 */
7
8 /*! @file TrkDedxHeCut.h The TrkDedxHeCut.h class definition file. */
9
10 #ifndef TRKDEDXHECUT_H_
11 #define TRKDEDXHECUT_H_
12
13 #include "../../PamCutBase/PamCutBase.h"
14
15 #include <TH2F.h>
16 #include <TF1.h>
17 #include <TStyle.h>
18 #include <TMath.h>
19
20
21 /*! @brief Cutting a band DEDX vs. Rigidity for Helium.
22 * This cut discards events where DEDX vs. Rigidity by Tracker measurements are outside the helium "corridor".
23 */
24 class TrkDedxHeCut: public PamCut {
25
26 public:
27 /*! @brief Constructor.
28 *
29 * @param cutName The cut's name.
30 */
31 TrkDedxHeCut(const char *cutName) :
32 PamCut(cutName){
33 _cuthededxrig = BBbetagamma(4*.938, 2, 14, 28.0855, 173, 0, 500, 4.44, .1492, 3.3, .2014, 2.87,1.); //Bethe-Bloch for He in Si
34
35
36 #ifdef DEBUGPAMCUT
37
38 #define RIG_XBIN 600
39 #define DEDX_YBIN 600
40
41 Double_t RIB[RIG_XBIN+1];
42 for(Int_t i = 0; i<RIG_XBIN+1; i++) RIB[i]=(0.01)*TMath::Power(10.,i/(Double_t(RIG_XBIN))*5.);
43 h_dedx_rig_before = new TH2F("DEDX_RIG_before","DEDX(Trk) vs. Rigidity distribution",
44 RIG_XBIN,RIB, DEDX_YBIN, 0., 30.);
45 h_dedx_rig_before->GetYaxis()->SetTitle("Trk DE/DX (MIP)");
46 h_dedx_rig_before->GetYaxis()->SetLabelSize(0.025);
47 h_dedx_rig_before->GetXaxis()->SetTitle("Rigidity (GV)");
48 h_dedx_rig_before->GetXaxis()->SetLabelSize(0.025);
49 h_dedx_rig_before->SetContour(50);
50 h_dedx_rig_before->SetStats(kFALSE);
51 gStyle->SetPalette(1);
52 Double_t sum = h_dedx_rig_before->GetBinContent(h_dedx_rig_before->GetMaximumBin());
53 Double_t lev[50];
54 for(Int_t i = 0; i<50; i++){
55 lev[i]=TMath::Power(10.,i/(50.)*TMath::Log10(sum));
56 h_dedx_rig_before->SetContourLevel(i,lev[i]);
57 }
58 h_dedx_rig_after = (TH2F*)h_dedx_rig_before->Clone("DEDX_RIG_after");
59 #endif
60
61 }
62 /*! @brief Destructor. */
63 ~TrkDedxHeCut() {
64
65 delete _cuthededxrig;
66
67 #ifdef DEBUGPAMCUT
68 h_dedx_rig_before->Write();
69 h_dedx_rig_after->Write();
70 #endif
71 }
72
73 /*! @brief The DEDX vs. beta Helium check.
74 *
75 * @param event The event to analyze.
76 * @return #CUTOK if event is inside helium "corridor".
77 * @return 0 otherwise.
78 */
79 int Check(PamLevel2 *event);
80
81 private:
82
83 TF1* _cuthededxrig;
84
85 #ifdef DEBUGPAMCUT
86 TH2F* h_dedx_rig_before;
87 TH2F* h_dedx_rig_after;
88 #endif
89
90
91 TF1* BBbetagamma(Float_t m_GeV, Float_t z, Int_t Z, Float_t A, Float_t I_eV, Double_t xmin, Double_t xmax, Float_t C_positive, Float_t a, Float_t m, Float_t x0, Float_t x1, Float_t scale);
92 Bool_t CutHeDEDXrig(Float_t rig, Float_t dedx, Float_t factor, TF1* _cuthededxrig);
93
94 };
95 #endif /* TRKDEDXHECUT_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23