Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Chain.h

Go to the documentation of this file.
00001 #ifndef CHAIN_H
00002 #define CHAIN_H
00003 
00004 #include "TObject.h"
00005 #include <vector>
00006 
00007 class Chain : public TObject
00008 {
00009         public:
00010         
00011                 Chain();
00012                 ~Chain();
00013                 
00014                 std::vector<double>t;
00015                 std::vector<double>z;
00016                 std::vector<double>e;
00017                 std::vector<int>cluster_id;
00018                 
00019                 std::vector<int> children;
00020                 
00021                 double start_t;
00022                 double end_t;
00023                 double start_z;
00024                 double end_z;
00025         
00026                 static int lastid;
00027                 
00028                 int particletype;
00029         
00030                 double sum_e;
00031                 
00032                 int available;
00033                 
00034                 double weighted_t;
00035                 
00036                 int entries;
00037 
00038                 int good_slope();
00039                 
00040                 void Recalc();
00041                 
00042                 static void ResetCounter();
00043                 void updateMuonFrac(double it, double iz, double ie);
00044                 void updateNumPeaks(double it, double iz, double ie);
00045                 void updateEMLike(double it, double iz, double ie);
00046 
00047                 double avg_slope;
00048                 double avg_offset;
00049                 double last_slope; //last 2
00050                 
00051                 double front_slope; //first 4 slope
00052                 double back_slope; //last 4 slope
00053                 double front_offset;
00054                 double back_offset;
00055                 
00056                 void add_to_back(double it, double iz, double ie, int my_cluster_id);  //allways assuming adding from front to back
00057                 void insert(double it, double iz, double ie, int my_cluster_id); //add to the proper location
00058 
00059 
00060                 int parentChain;
00061                 int myId;
00062                 int level;
00063                 
00064                 double muonfrac;
00065                 double interior_muonfrac;
00066                 double emlike;
00067                 int num_peaks;
00068                 int strict_decreasing;
00069                 int strict_increasing;
00070                 
00071                 
00072                 double muon_threshold_max;
00073                 double muon_threshold_min;
00074                 int   muon_min_hits; 
00075                 
00076                 void Reverse();  //cause the chain to reverse itself
00077                 void ClearHits();               
00078                 
00079                 void PrintChain();
00080 
00081 
00082                 // t=a+bz
00083                 double a;
00084                 double b;               
00085 
00086                 double interpolate(double z);//returns best guess at t
00087                 static double interpolate(double z0, double t0, double z1, double t1, double z2, double t2,  double z);//interpolate after fitting a parobola
00088 
00089         private:
00090                 
00091                 double sum_z;
00092                 double sum_t;
00093                 double sum_z_z;
00094                 double sum_z_t;
00095                 
00096                 int muonlike;
00097                 
00098                 double lastpeake;
00099                 int lastpeakprob;
00100 
00101                 ClassDef(Chain,1)
00102 
00103                 
00104 
00105 };
00106 
00107 #endif
00108 

Generated on Mon Feb 15 11:06:31 2010 for loon by  doxygen 1.3.9.1