/[PAMELA software]/calo/flight/CaloProfile/inc/CaloProfile.h
ViewVC logotype

Annotation of /calo/flight/CaloProfile/inc/CaloProfile.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations) (download)
Tue Jun 16 14:30:09 2009 UTC (15 years, 7 months ago) by mocchiut
Branch: MAIN
Changes since 1.4: +5 -0 lines
File MIME type: text/plain
Mask calorimeter sections feature added in CaloLong class

1 mocchiut 1.1 /**
2     * \file CaloProfile.h
3     * \author Emiliano Mocchiutti
4     */
5     #ifndef caloprofile_h
6     #define caloprofile_h
7    
8 mocchiut 1.3 #include <iostream>
9 mocchiut 1.1 #include <TTree.h>
10     #include <TFriendElement.h>
11     #include <TChain.h>
12     #include <TCanvas.h>
13     #include <TGraph.h>
14     #include <TH1F.h>
15     #include <TH2F.h>
16     #include <TFile.h>
17     #include <TPolyLine.h>
18     #include <TMath.h>
19     #include <TStyle.h>
20     #include <TList.h>
21     #include <TKey.h>
22     #include <TSystemFile.h>
23     #include <TSystemDirectory.h>
24     #include <TSQLServer.h>
25     #include <TF1.h>
26 mocchiut 1.3
27     #include <PamLevel2.h>
28 mocchiut 1.1
29     using namespace std;
30    
31     /**
32     *
33     */
34     class CaloLat : public TObject {
35    
36     private:
37     //
38     PamLevel2 *L2;
39     Bool_t debug;
40     //
41     // needed to avoid reprocessing the same event over and over to obtain the variables
42     //
43     UInt_t OBT;
44     UInt_t PKT;
45     UInt_t atime;
46     //
47     Float_t estrip[2][22][96];
48     //
49    
50     public:
51     //
52     //
53     void Draw();
54     void Draw(Int_t,Int_t);
55     //
56     CaloLat();
57     CaloLat(PamLevel2 *L2);
58     ~CaloLat(){ Delete(); };
59     //
60     void SetDebug(Bool_t d){ debug=d; };
61     //
62     void Clear();
63     void Clear(Option_t *option){Clear();};
64     void Delete();
65 mocchiut 1.2 void Delete(Option_t *option){Delete();};
66 mocchiut 1.1 //
67     void Process(); ///< Process data
68     void Print();
69 mocchiut 1.2 void Print(Option_t *option){Print();};
70 mocchiut 1.1 //
71     ClassDef(CaloLat,1);
72     };
73    
74     /**
75     *
76     */
77     class CaloLong : public TObject {
78    
79     private:
80     //
81     PamLevel2 *L2;
82     Bool_t debug;
83     //
84     // needed to avoid reprocessing the same event over and over to obtain the variables
85     //
86     UInt_t OBT;
87     UInt_t PKT;
88     UInt_t atime;
89 mocchiut 1.3 UInt_t fOBT;
90     UInt_t fPKT;
91     UInt_t fatime;
92     //
93     Int_t N;
94     Int_t NC;
95     Bool_t sel;
96     Bool_t cont;
97     Int_t mask18b;
98     //
99     Float_t chi2;
100     Float_t ndf;
101     Float_t E0;
102     Float_t a;
103     Float_t b;
104     Float_t errE0;
105     Float_t erra;
106     Float_t errb;
107     Float_t etmax;
108     Float_t asymm;
109     Float_t X0pl;
110     Int_t fitresult;
111     //
112     Bool_t no18x;
113 mocchiut 1.5 Bool_t maskXE;
114     Bool_t maskYE;
115     Bool_t maskXO;
116     Bool_t maskYO;
117 mocchiut 1.1 //
118     Float_t eplane[2][22];
119     //
120    
121     public:
122     //
123     //
124 mocchiut 1.3 void Fit();
125     void Fit(Bool_t draw);
126     //
127     // Double_t ccurve(Double_t *t, Double_t *par);
128     //
129     Float_t Get_E0(){this->Fit(); return E0;};
130     Float_t Get_a(){this->Fit(); return a;};
131     Float_t Get_b(){this->Fit(); return b;};
132     Float_t Get_errE0(){this->Fit(); return errE0;};
133     Float_t Get_erra(){this->Fit(); return erra;};
134     Float_t Get_errb(){this->Fit(); return errb;};
135     Float_t Get_chi2(){this->Fit(); return chi2;};
136     Float_t Get_ndf(){this->Fit(); return ndf;};
137     Float_t Get_nchi2(){this->Fit(); if ( ndf > 0 ) return (chi2/ndf); return 0;};
138     Float_t Get_tmax(){this->Fit(); if ( b != 0 ) return ((a-1.)/b); return 0;};
139     Float_t Get_asymm(){this->Fit(); return asymm;};
140     Float_t Get_exptmax(){this->Process(); return etmax;};
141     Float_t Get_X0pl(){this->Process(); return X0pl;};
142     Int_t Get_fitresult(){this->Fit(); return fitresult;};
143     //
144 mocchiut 1.1 void Draw();
145     void Draw(Int_t);
146     //
147     CaloLong();
148     CaloLong(PamLevel2 *L2);
149     ~CaloLong(){ Delete(); };
150     //
151     void SetDebug(Bool_t d){ debug=d; };
152 mocchiut 1.3 void UsePlane18X(){ no18x=false; };
153     //
154 mocchiut 1.5 void MaskSection(TString);
155 mocchiut 1.3 void Selection(){sel = true; cont = false;}; ///< Set selection mode: planes from 1 to 22-N are used, plane 18 - N is masked if "emulate18" variable is true (DEFAULT);
156     void Contamination(){sel = false; cont = true;}; ///< Set contamination mode: planes from N to 22 are used.
157     void SetNoWpreSampler(Int_t n);
158     void SetNoWcalo(Int_t n);
159 mocchiut 1.4 void SplitInto(Int_t NoWpreSampler, Int_t NoWcalo);
160 mocchiut 1.3 Int_t GetNoWpreSampler(){return N;}; ///< Get the number of W planes used as presampler.
161     Int_t GetNoWcalo(){return NC;}; ///< Get the number of W planes used as calorimeter.
162     //
163     void Clear();
164     void Clear(Option_t *option){Clear();};
165     void Delete();
166     void Delete(Option_t *option){Delete();};
167     //
168     void Process(); ///< Process data
169     void Print();
170     void Print(Option_t *option){Print();};
171     //
172     ClassDef(CaloLong,2);
173     };
174    
175     /**
176     *
177     */
178     class Calo2D : public TObject {
179    
180     private:
181     //
182     PamLevel2 *L2;
183     Bool_t debug;
184     //
185     // needed to avoid reprocessing the same event over and over to obtain the variables
186     //
187     UInt_t OBT;
188     UInt_t PKT;
189     UInt_t atime;
190     //
191     Float_t estrip[23][96][96];
192     Int_t smax[23];
193     Int_t smay[23];
194     //
195    
196     public:
197     //
198     //
199     void Draw();
200     void Draw(Int_t);
201     //
202     Calo2D();
203     Calo2D(PamLevel2 *L2);
204     ~Calo2D(){ Delete(); };
205     //
206     void SetDebug(Bool_t d){ debug=d; };
207 mocchiut 1.1 //
208     void Clear();
209     void Clear(Option_t *option){Clear();};
210     void Delete();
211 mocchiut 1.2 void Delete(Option_t *option){Delete();};
212 mocchiut 1.1 //
213     void Process(); ///< Process data
214     void Print();
215 mocchiut 1.2 void Print(Option_t *option){Print();};
216 mocchiut 1.1 //
217 mocchiut 1.3 ClassDef(Calo2D,1);
218 mocchiut 1.1 };
219    
220     #endif
221    

  ViewVC Help
Powered by ViewVC 1.1.23